PostgreSQL은 엔터프라이즈급 기능을 갖춘 강력한 오픈 소스 객체-관계형 데이터베이스 시스템입니다. 안정성과 확장성이 뛰어나 많은 개발자와 기업에서 선호하며, 특히 리눅스 환경에서 그 성능을 극대화할 수 있습니다.
이 가이드에서는 2025년 현재, 가장 많이 사용되는 리눅스 배포판인 Ubuntu와 CentOS/RHEL 계열에서 PostgreSQL을 설치하고 초기 설정하는 최신 방법에 대해 상세히 다룹니다. 특히, 패키지 관리자를 이용한 간편한 설치부터 최신 버전(예: PostgreSQL 16) 설치를 위한 공식 저장소 추가 방법까지 모두 안내하여, 초보자도 쉽게 따라 할 수 있도록 구성했습니다.
PostgreSQL 공식 저장소 추가 및 설치 환경 설정 확인하기
리눅스 배포판의 기본 저장소(Repository)에는 종종 구형 버전의 PostgreSQL이 포함되어 있습니다. 최신 기능과 보안 패치를 이용하기 위해서는 PostgreSQL 공식 APT(Debian/Ubuntu) 또는 YUM/DNF(CentOS/RHEL) 저장소를 시스템에 추가하는 것이 가장 안정적이고 권장되는 방법입니다.
공식 저장소를 사용하면 시스템의 패키지 관리 도구(apt 또는 dnf/yum)를 통해 쉽게 최신 버전을 설치 및 업데이트할 수 있습니다. 아래 단계는 설치를 시작하기 전 공통적으로 필요한 준비 과정입니다.
- Ubuntu/Debian 환경: 먼저, 저장소 관리에 필요한 도구들을 설치하고 저장소 키를 추가합니다.
sudo apt update sudo apt install -y curl gnupg2 curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- CentOS/RHEL 환경: YUM/DNF 저장소 설정을 위해 dnf 또는 yum을 사용하여 저장소 설정 파일을 다운로드합니다.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/RHEL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
각 환경에 맞는 저장소 설정이 완료되었다면, 이제 다음 단계에서 원하는 PostgreSQL 버전을 설치할 준비가 된 것입니다.
Ubuntu 환경 PostgreSQL 최신 버전 설치 명령어 상세 더보기
Ubuntu 환경에서는 apt 패키지 관리자를 사용하여 PostgreSQL을 설치합니다. 위에서 공식 저장소를 성공적으로 추가했다면, 다음과 같이 원하는 버전을 명시하여 설치할 수 있습니다.
Ubuntu/Debian: PostgreSQL 16 설치 및 초기화 확인하기
버전을 지정하지 않고 설치하면 저장소에서 제공하는 최신 버전을 설치하지만, 명시적으로 버전을 지정하는 것이 관리상 더 유리합니다. 아래는 PostgreSQL 16 버전을 설치하는 명령어입니다.
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' sudo apt update sudo apt install -y postgresql-16
설치 후, PostgreSQL 서비스는 자동으로 시작되며, 상태를 확인하고 시스템 부팅 시 자동 시작되도록 설정할 수 있습니다. 서비스 시작/확인 명령어는 리눅스 시스템 관리의 기본입니다.
sudo systemctl start postgresql sudo systemctl enable postgresql sudo systemctl status postgresql
설치가 완료되면, 기본적으로 postgres라는 데이터베이스 사용자가 생성됩니다. 초기 데이터베이스 관리 작업을 위해 이 사용자로 전환하여 접근해야 합니다.
sudo -i -u postgres psql
접속 후 \q를 입력하여 psql 셸을 종료하고, exit를 입력하여 postgres 사용자 세션에서 일반 사용자로 돌아옵니다.
CentOS RHEL 환경 DNF 기반 PostgreSQL 설치 및 설정 보기
CentOS 또는 RHEL 기반의 시스템(예: AlmaLinux, Rocky Linux)에서는 dnf 또는 yum 패키지 관리자를 사용합니다. 공식 저장소를 추가했다면, 설치 방법은 매우 간단합니다.
CentOS/RHEL: PostgreSQL 16 및 필요 패키지 설치 확인하기
CentOS/RHEL 8 이상에서는 dnf를 사용하며, 7 이하에서는 yum을 사용합니다. 아래는 dnf를 사용하는 최신 방법입니다.
sudo dnf install -y postgresql16-server
CentOS/RHEL 계열에서는 설치 후 데이터베이스 클러스터를 수동으로 초기화해야 합니다. 또한, 서비스 활성화 및 시작은 Ubuntu와 동일하게 systemctl을 사용합니다.
# 데이터베이스 초기화 (최초 1회 실행) sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
서비스 활성화 및 시작
sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16 sudo systemctl status postgresql-16
마찬가지로, 기본 postgres 사용자 계정으로 데이터베이스에 접근하여 관리 작업을 시작할 수 있습니다.
sudo -i -u postgres psql
PostgreSQL 초기 사용자 설정 및 원격 접속 환경 설정 확인하기
PostgreSQL 설치 후에는 보안 강화를 위해 기본 postgres 계정의 비밀번호를 설정하고, 필요하다면 원격 접속을 허용하는 설정을 진행해야 합니다.
슈퍼유저(postgres) 비밀번호 설정 상세 더보기
psql 셸에 접속하여 postgres 사용자의 비밀번호를 설정합니다. 이는 데이터베이스 접근 보안의 핵심 단계입니다.
sudo -i -u postgres psql \password
새 비밀번호 입력 (두 번)
\q exit
원격 접속 허용을 위한 설정 보기
PostgreSQL은 기본적으로 로컬호스트(127.0.0.1)에서만 접속을 허용합니다. 외부 네트워크에서 접속하려면 설정 파일을 수정해야 합니다.
1. postgresql.conf 파일 수정:
설정 파일 위치는 배포판 및 버전에 따라 다를 수 있습니다. (예: /etc/postgresql/16/main/postgresql.conf 또는 /var/lib/pgsql/16/data/postgresql.conf)
listen_addresses 항목을 찾아 주석을 해제하고, '*'로 변경합니다. (모든 IP 허용)
#listen_addresses = 'localhost' listen_addresses = '*'
2. pg_hba.conf 파일 수정:
이 파일은 어떤 사용자가 어떤 데이터베이스에 어떤 방식으로 접속할 수 있는지에 대한 인증 설정을 정의합니다. 원격 접속을 허용하려면 맨 아래에 다음 줄을 추가합니다. 보안을 위해 특정 IP 대역만 허용하는 것이 권장됩니다.
# 호스트 타입 | 데이터베이스 | 사용자 | 접속 IP 대역 | 인증 방식 host all all 0.0.0.0/0 md5
수정 후, 변경 사항을 적용하기 위해 PostgreSQL 서비스를 재시작합니다.
sudo systemctl restart postgresql
📌 추가로 참고할 만한 글
PostgreSQL 리눅스 설치 관련 자주 묻는 질문 FAQ
PostgreSQL 설치 과정에서 자주 발생하는 질문과 그에 대한 답변을 정리했습니다.
| 질문 | 답변 |
|---|---|
| PostgreSQL 설치 시 기본 포트는 무엇인가요? | PostgreSQL의 기본 통신 포트는 5432입니다. 방화벽 설정 시 이 포트가 열려 있는지 확인해야 합니다. |
FATAL: role "user" does not exist 오류는 어떻게 해결하나요? |
해당 오류는 접속하려는 리눅스 사용자 이름과 동일한 데이터베이스 역할(Role)이 PostgreSQL 내에 없음을 의미합니다. createuser -s -i 리눅스사용자명 명령을 postgres 사용자로 실행하여 역할을 생성해야 합니다. |
| 특정 버전 대신 최신 버전을 자동으로 설치하려면 어떻게 해야 하나요? | 공식 저장소를 추가한 후, Ubuntu에서는 postgresql, CentOS/RHEL에서는 postgresql-server 패키지를 버전 번호 없이 설치하면 저장소에서 제공하는 가장 최신 버전을 설치합니다. (예: sudo apt install postgresql) |
| PostgreSQL 설치 후 메모리 및 성능 튜닝이 필수인가요? | 기본 설치만으로도 사용 가능하지만, 운영 환경에서는 shared_buffers, work_mem, effective_cache_size 등 핵심 설정값을 서버의 메모리 용량에 맞춰 조정하는 성능 튜닝이 필수적입니다. |
PostgreSQL은 강력한 기능만큼이나 설정할 부분이 많지만, 이 가이드를 통해 리눅스 환경에서 기본적인 설치와 설정을 완벽하게 마스터할 수 있습니다. 설치 후에는 방화벽(FirewallD 또는 UFW) 설정을 통해 외부 접속 보안을 철저히 하는 것이 중요합니다.