SlideShare a Scribd company logo
POSTGRES 빌드 및 개발환경 설정하는법
발표자: 이동욱
이메일: sh95119@gmail.com
마지막 업데이트: 2022.09.11
실습 환경
실습 환경은 우분투 20.04.4 LTS 입니다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
1. 유저 생성
터미널
# adduser postgres
# passwd postgres
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
루트 권한으로 터미널에 접속해서 위의 명령어를 입력합니다.
유저를 정상적으로 생성하였으면, 해당 유저로 로그인 합니다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
2. 빌드에 필요한 패키지 다운로드 받기
터미널
$postgres sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison
libxml2-dev libxslt-dev libssl-dev libxml2-utils xsltproc ccache
빌드할 떄 필요한 패키지를 다운로드 받는다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
3. 폴더 생성
터미널
$postgres mkdir -p git/postgres/dev
$postgres cd git/postgres/dev
/home/postgres/git/pg/dev 경로에 디렉터리를 생성 및 이동 합니다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
4. 소스 코드 다운로드 받기
터미널
$postgres git clone https://git.postgresql.org/git/postgresql.git
깃을 이용하여 소스 코드를 클론 한다.
그리고 나서 소스 코드 디렉터리의 이름을 ‘master‘ 로 변경합니다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
5. 스크립트를 이용하여 빌드 하기
터미널
$postgres ./buildPostgresBranch.sh master
./buildPostgresBrach.sh {브랜치 이름} 스크립트를 이용하여, 빌드 및 설
치를 합니다.
buildPostgresBranch.sh 스크립트는 해당 링크에서 다운로드 받을 수 있습
니다.
https://gist.github.com/dongwooklee96/820e4b408d49ad06fc3eddccc531adcb
정상적으로 수행되었다면, 각각 /build, /install 디렉터리가 생성되며, /in-
stall 에서 빌드된 프로그램을 실행할 수 있습니다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
6. git worktree
터미널
git worktree add ../{생성한 디렉터리 명} -b {브랜치 명}
브랜치를 변경할떄 마다 빌드를 하는 것은 번거롭다 따라서 worktree 명
령어를 이용하여 브랜치를 분기한다.
worktree 명령어를 이용하면 디렉터리 단위로 브랜치가 생성된다.
위의 스크립트는 git worktree 명령어를 염두하고 작성되었다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
7. ctags & cscope & tagbar 설치하기
터미널
sudo apt install ctags
sudo apt install cscope
코드 분석을 할 때 해당 함수의 정의와 참조를 빠르고 쉽게 확인하기 위해
설치를 해준다.
자세한 내용은 https://jen6.tistory.com/119 해당 블로그를 참조하면 된다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
7. 디버거 설치하기
터미널
sudo apt-get install cgdb
디버거는 cgdb를 사용한다. /.cgdb/cgdbrc 파일에 설정파일을 적용할 수
있는데 키를 맵핑하면 디버깅하기 편하다.
https://gist.github.com/dongwooklee96/fb4534e8725a81d4e0c8ad77bdb58b43
해당 링크에서 설정 파일을 다운로드 받으실 수 있습니다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
8. 디버깅 하는 법
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
8. 디버깅 하는 법
postmaster를 실행하고 psql로 접속하면 백엔드 프로세스가 생성된다.
ps -ef | grep idle 로 백엔드 프로세스의 pid를 얻어낸다.
cgdb를 실행하고 나서, attach pid 로 해당 프로세스에 디버거를 붙인다.
break {함수명}으로 원하는 함수에 중단점을 지정한다.
이동욱 POSTGRES 빌드 및 개발환경 설정하는법
8. 디버깅 하는 법
이동욱 POSTGRES 빌드 및 개발환경 설정하는법

More Related Content

What's hot

서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로
신우 방
 

What's hot (20)

서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로서비스 무중단 마이그레이션 : KT에서 Amazon으로
서비스 무중단 마이그레이션 : KT에서 Amazon으로
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
 
Ad-Tech on AWS 세미나 | AWS와 데이터 분석
Ad-Tech on AWS 세미나 | AWS와 데이터 분석Ad-Tech on AWS 세미나 | AWS와 데이터 분석
Ad-Tech on AWS 세미나 | AWS와 데이터 분석
 
Table partitioning in PostgreSQL + Rails
Table partitioning in PostgreSQL + RailsTable partitioning in PostgreSQL + Rails
Table partitioning in PostgreSQL + Rails
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
 
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
AWS Black Belt Techシリーズ Amazon Kinesis
AWS Black Belt Techシリーズ  Amazon KinesisAWS Black Belt Techシリーズ  Amazon Kinesis
AWS Black Belt Techシリーズ Amazon Kinesis
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingCloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
서버리스 아키텍처 패턴 및 로그 처리를 위한 파이프라인 구축기 - 황윤상 솔루션즈 아키텍트, AWS / Matthew Han, SendBi...
서버리스 아키텍처 패턴 및 로그 처리를 위한 파이프라인 구축기 - 황윤상 솔루션즈 아키텍트, AWS / Matthew Han, SendBi...서버리스 아키텍처 패턴 및 로그 처리를 위한 파이프라인 구축기 - 황윤상 솔루션즈 아키텍트, AWS / Matthew Han, SendBi...
서버리스 아키텍처 패턴 및 로그 처리를 위한 파이프라인 구축기 - 황윤상 솔루션즈 아키텍트, AWS / Matthew Han, SendBi...
 
data platform on kubernetes
data platform on kubernetesdata platform on kubernetes
data platform on kubernetes
 
CloudWatch Logsについて
CloudWatch LogsについてCloudWatch Logsについて
CloudWatch Logsについて
 
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 

Similar to postgres_빌드_및_디버깅.pdf

Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
지수 윤
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
Jae Sung Park
 

Similar to postgres_빌드_및_디버깅.pdf (20)

[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
Internship backend
Internship backendInternship backend
Internship backend
 
Hyperledger Explorer.pptx
Hyperledger Explorer.pptxHyperledger Explorer.pptx
Hyperledger Explorer.pptx
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
 
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
Udamp3 django apache-my_sql_python3_ubuntu14.04-v11
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법왕초보를 위한 도커 사용법
왕초보를 위한 도커 사용법
 
Introduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOTIntroduction to Docker - LOGISPOT
Introduction to Docker - LOGISPOT
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 

Recently uploaded

INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
ahghwo99
 

Recently uploaded (6)

INU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrintINU Graduation Powerpoint-Rabbit FootPrint
INU Graduation Powerpoint-Rabbit FootPrint
 
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
JSI LAB의 X-Chat for SOC 보안관제센터 시큐리티 코파일럿 제품과 사례 소개
 
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라(독서광) 대격변 AI 시대,   데이터로 사고하고   데이터로 리드하라
(독서광) 대격변 AI 시대, 데이터로 사고하고 데이터로 리드하라
 
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
암호화 보안USB & 외장하드 중앙관리 솔루션 ‘DataLocker SafeConsole’_DATASHEET
 
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
인천대학교 컴퓨터공학과 아틀란티스 졸업작품 commINUty PPT
 
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
2024년 5월 27일 개발자 이야기 - AWS 람다의 내부 동작 방식 외
 

postgres_빌드_및_디버깅.pdf

  • 1. POSTGRES 빌드 및 개발환경 설정하는법 발표자: 이동욱 이메일: sh95119@gmail.com 마지막 업데이트: 2022.09.11
  • 2. 실습 환경 실습 환경은 우분투 20.04.4 LTS 입니다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 3. 1. 유저 생성 터미널 # adduser postgres # passwd postgres New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. 루트 권한으로 터미널에 접속해서 위의 명령어를 입력합니다. 유저를 정상적으로 생성하였으면, 해당 유저로 로그인 합니다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 4. 2. 빌드에 필요한 패키지 다운로드 받기 터미널 $postgres sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt-dev libssl-dev libxml2-utils xsltproc ccache 빌드할 떄 필요한 패키지를 다운로드 받는다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 5. 3. 폴더 생성 터미널 $postgres mkdir -p git/postgres/dev $postgres cd git/postgres/dev /home/postgres/git/pg/dev 경로에 디렉터리를 생성 및 이동 합니다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 6. 4. 소스 코드 다운로드 받기 터미널 $postgres git clone https://git.postgresql.org/git/postgresql.git 깃을 이용하여 소스 코드를 클론 한다. 그리고 나서 소스 코드 디렉터리의 이름을 ‘master‘ 로 변경합니다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 7. 5. 스크립트를 이용하여 빌드 하기 터미널 $postgres ./buildPostgresBranch.sh master ./buildPostgresBrach.sh {브랜치 이름} 스크립트를 이용하여, 빌드 및 설 치를 합니다. buildPostgresBranch.sh 스크립트는 해당 링크에서 다운로드 받을 수 있습 니다. https://gist.github.com/dongwooklee96/820e4b408d49ad06fc3eddccc531adcb 정상적으로 수행되었다면, 각각 /build, /install 디렉터리가 생성되며, /in- stall 에서 빌드된 프로그램을 실행할 수 있습니다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 8. 6. git worktree 터미널 git worktree add ../{생성한 디렉터리 명} -b {브랜치 명} 브랜치를 변경할떄 마다 빌드를 하는 것은 번거롭다 따라서 worktree 명 령어를 이용하여 브랜치를 분기한다. worktree 명령어를 이용하면 디렉터리 단위로 브랜치가 생성된다. 위의 스크립트는 git worktree 명령어를 염두하고 작성되었다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 9. 7. ctags & cscope & tagbar 설치하기 터미널 sudo apt install ctags sudo apt install cscope 코드 분석을 할 때 해당 함수의 정의와 참조를 빠르고 쉽게 확인하기 위해 설치를 해준다. 자세한 내용은 https://jen6.tistory.com/119 해당 블로그를 참조하면 된다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 10. 7. 디버거 설치하기 터미널 sudo apt-get install cgdb 디버거는 cgdb를 사용한다. /.cgdb/cgdbrc 파일에 설정파일을 적용할 수 있는데 키를 맵핑하면 디버깅하기 편하다. https://gist.github.com/dongwooklee96/fb4534e8725a81d4e0c8ad77bdb58b43 해당 링크에서 설정 파일을 다운로드 받으실 수 있습니다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 11. 8. 디버깅 하는 법 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 12. 8. 디버깅 하는 법 postmaster를 실행하고 psql로 접속하면 백엔드 프로세스가 생성된다. ps -ef | grep idle 로 백엔드 프로세스의 pid를 얻어낸다. cgdb를 실행하고 나서, attach pid 로 해당 프로세스에 디버거를 붙인다. break {함수명}으로 원하는 함수에 중단점을 지정한다. 이동욱 POSTGRES 빌드 및 개발환경 설정하는법
  • 13. 8. 디버깅 하는 법 이동욱 POSTGRES 빌드 및 개발환경 설정하는법