postgreSQL을 로컬에 설치할 일이 생겼다.
이왕 설치하는 거, 블로그에 기록해두면 이후에 두고두고 보기 좋을 것 같아서 포스팅해보려 한다.
설치환경은 Mac M1이며, 별도로 홈페이지 접속하여 설치하기 귀찮아서 homebrew로 설치하려 한다.
DB IDE는 Datagrip을 이용할 것이며, 여기에 연동할 예정이다.
DBeaver, PGAdmin 등 다양한 IDE가 있던데, PGAdmin은 비교적 느리고 일부 버그가 있다고 해서 DBeaver이랑 Datagrip 중에 고민했다. 그러던 중, https://medium.com/querypie/맘에-쏙-드는-database-ide를-찾아서-b38ee2d09103 글을 발견하여 최종적으론 Datagrip과 연동하기로 결정!
맘에 쏙 드는 Database IDE를 찾아서
QueryPie 개발기 #1: 난 왜 Database 도구를 만들게 되었나
medium.com
설치 방법
1. postgre 설치 가능 버전을 찾는다.
brew search postgresql

2023년 1월 18일 기준, postgresql@15 버전까지 나온 것을 확인할 수 있었다.
1-1. 설치할 버전 판단
결론부터 말하자면 나는 최신버전인 14버전을 설치하기로 했다.
그 이유는 아래와 같다.
우선 나는 postgresql 경험이 적어 postgresql 에 대한 이해도가 낮다.
postgresql 14 와 15 버전의 차이는 사실 MERGE 기능이 추가된 것 외에는 잘 모르긴 한다.
또 postgresql 15는 2022년 11월에 나와서 아직 너무 최신이라 불안정할 수 있겠다는 판단을 해서, 비교적 안정적인 14 버전을 설치하기로 결정했다.
그럼 왜 14보다 이전 버전은 설치하지 않았는가?
버전이 추가될 때마다 b-tree 커버링 인덱스 지원(postgresql@11 이후), b-tree index update 관련 성능 이슈 해결(postgresql@14 이후) 등과 같이 많은 성능개선이 있었기 때문에 최신 버전을 설치하는 것이 합리적이라 판단, 14 버전을 설치하기로 했다.
postgresql 14 버전의 b-tree index update 성능 이슈에 대한 자세한 내용은 아래 링크를 참고하자.
https://www.postgresql.org/docs/14/btree-implementation.html#BTREE-DELETION
64.4. Implementation
64.4. Implementation 64.4.1. B-Tree Structure 64.4.2. Bottom-up Index Deletion 64.4.3. Deduplication This section covers B-Tree index implementation details that may be …
www.postgresql.org
다만, 아직 나는 PostgreSQL 경험이 적어서 올바른 판단을 하지 못했을 가능성도 존재한다.
추가로 조언해줄 부분이 있다면 댓글을 남겨주세요!
2. 설치하기
brew install postgresql
설치하는데는 약 3~5분 정도 소요된다.

postgres --version
위 명령어로 postgres가 잘 설치됐는지, 어떤 버전이 설치됐는지 확인해보자.
3. PostgreSQL 실행하기
brew services start postgresql@14
참고로 `brew services start postgresql` 명령어도 되긴 한다.
하지만 아래처럼 곧 deprecated되니 @{version} 을 붙여서 사용하라는 안내문이 나온다.

4. psql (postgresql 쉘) 접속
psql postgres

이 상태에서 \du 를 입력해주면 사용자 및 권한에 대한 정보가 나온다.


board는 내가 추가로 넣어준 것이고, kth990303은 postgresql을 설치하면 자동으로 사용자가 권한을 부여받기 때문에 보이는 것이다.
5. 사용자 생성 및 권한 추가
CREATE ROLE {사용자명} WITH LOGIN PASSWORD '{비밀번호}';
ALTER ROLE {사용자명} CREATEDB; // DB 생성 권한 부여
이 작업을 해주어야 해당 사용자명으로 Datagrip에서 DB를 생성할 수 있게 된다.
작업 후에 \du 명령어로 권한이 부여됐는지 확인해보자.
6. Datagrip 연동

좌측 상단의 빨간박스에 있는 +를 눌러 datasource를 새로 만들어주자.
DB는 PostgreSQL을 선택한다.

postgreSQL의 default 포트 번호는 5432이므로 위와 같이 세팅해준다.
우리는 로컬에서 postgresql을 사용할 것이므로 host는 localhost로, Authentication은 User & Password를 선택하고 아까 권한을 부여해준 사용자 정보를 입력해주면 된다.
커넥션이 연결되는지 하단에 Test Connection을 클릭하여 위와 같이 나오면 성공!
만약, 제대로 뜨지 않는다면 사용자 및 권한 정보를 확인해보자.

이제 위와 같이 DB를 만들어주고~

스크립트를 작성하여 실행해보면 localhost에 연결되고 결과가 잘 나오는 것을 확인할 수 있다~
참고자료
- postgreSQL 14 버전 안내 - https://www.postgresql.org/about/press/presskit14/ko/
- postgreSQL 15 버전 안내 - https://www.postgresql.org/about/news/postgresql-15-released-2526/
- postgreSQL 10 vs 11 - https://jojoldu.tistory.com/630
- postgreSQL + DBeaver 연동 - https://reinvestment.tistory.com/m/66