PostgreSQL 설치: 포괄적인 단계별 가이드
Linux, macOS 또는 Windows에 PostgreSQL을 설치하고, 사용자를 생성하며, 액세스를 확인하고, 안전한 네트워크 연결을 구성합니다.
PostgreSQL 설치: 포괄적인 단계별 가이드
PostgreSQL 설치는 일반적으로 간단하지만, Linux, macOS, Windows에 따라 세부 사항이 다릅니다. 목표는 단순히 서비스를 실행하는 것뿐만 아니라 사용 가능한 데이터베이스 사용자, 깔끔한 연결 방법, 네트워크 액세스에 대한 안전한 기본값을 갖추는 것입니다.
이 가이드를 사용하여 개발 또는 소규모 서버 설정을 위해 PostgreSQL을 설치한 다음, 운영 체제의 현재 패키지에 맞게 경로와 버전 번호를 조정하세요.
사전 요구 사항
설치 프로세스를 시작하기 전에 시스템이 다음 기본 요구 사항을 충족하는지 확인하세요.
- 관리 권한: 소프트웨어를 설치하고 시스템 서비스를 구성하려면 Linux/macOS에서는
sudo권한이, Windows에서는 관리자 권한이 필요합니다. - 인터넷 연결: 설치 패키지를 다운로드하는 데 필요합니다.
- 충분한 디스크 공간: 초기 설치는 비교적 작지만 데이터베이스는 커집니다. 데이터를 위한 충분한 디스크 공간이 있는지 확인하세요.
Linux에 설치
Linux 배포판은 일반적으로 기본 패키지 저장소를 통해 PostgreSQL을 제공하므로 설치가 간단합니다.
Debian/Ubuntu
Ubuntu와 같은 Debian 기반 시스템의 경우 apt를 사용하여 PostgreSQL을 설치할 수 있습니다.
패키지 목록 업데이트: 항상 패키지 관리자 목록을 업데이트하여 사용 가능한 최신 패키지를 가져오는 것으로 시작하세요.
sudo apt updatePostgreSQL 설치: 서버, 클라이언트 유틸리티 및 문서를 포함하는
postgresql패키지를 설치합니다. 버전을 지정하거나(예:postgresql-16)postgresql만 사용하여 기본 버전을 설치할 수 있습니다.sudo apt install postgresql postgresql-contribpostgresql-contrib패키지는 추가 유틸리티와 기능을 제공합니다.참고: Debian/Ubuntu에서 PostgreSQL 서비스는 일반적으로 설치 후 자동으로 시작되며 기본
postgres사용자(시스템 및 데이터베이스 사용자 모두)가 생성됩니다.설치 확인: 서비스 상태를 확인합니다.
sudo systemctl status postgresqlactive (exited)또는active (running)임을 나타내는 출력이 표시되어야 합니다.exited는 여러 클러스터를 별도의 프로세스로 관리하는 경우 기본 서비스 단위에서는 정상입니다.
RHEL/CentOS/Fedora
Red Hat 기반 시스템의 경우 dnf(이전 CentOS/RHEL 버전의 경우 yum)를 사용하세요.
PostgreSQL 저장소 설치: PostgreSQL은 기본 OS 저장소에서 사용할 수 있는 것보다 최신 버전을 위해 자체 저장소를 제공합니다. 최신 안정 릴리스를 위해서는 이 저장소를 사용하는 것이 좋습니다.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # EL-9의 경우: sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 필요한 경우 EL-8-x86_64를 특정 OS 버전 및 아키텍처로 바꾸세요.기본 PostgreSQL 모듈 비활성화(해당하는 경우): 일부 RHEL/CentOS 버전에는 기본 PostgreSQL 모듈이 있습니다. PGDG 저장소와의 충돌을 피하기 위해 비활성화하세요.
sudo dnf -qy module disable postgresqlPostgreSQL 설치: 서버 및 contrib 패키지를 설치합니다.
16을 원하는 버전으로 바꾸세요.sudo dnf install -y postgresql16-server postgresql16-contrib데이터베이스 클러스터 초기화: Debian/Ubuntu와 달리 RHEL 기반 시스템에서는 데이터베이스 클러스터를 수동으로 초기화해야 하는 경우가 많습니다.
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb설치된 버전에 따라
/usr/pgsql-16/bin및postgresql-16-setup경로를 조정하세요.PostgreSQL 서비스 시작 및 활성화: 서비스를 시작하고 부팅 시 실행되도록 구성합니다.
sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16설치 확인: 서비스 상태를 확인합니다.
sudo systemctl status postgresql-16
macOS에 설치
macOS에서는 Homebrew가 PostgreSQL을 설치하는 권장되고 가장 쉬운 방법입니다.
Homebrew 설치(아직 설치하지 않은 경우):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Homebrew를
PATH에 추가하는 것을 포함하여 화면의 지시를 따르세요.PostgreSQL 설치: Homebrew를 사용하여 PostgreSQL을 설치합니다. 버전을 지정하거나(예:
postgresql@16) 기본적으로 최신 안정 버전을 설치할 수 있습니다.brew install postgresqlPostgreSQL 서비스 시작: Homebrew는 PostgreSQL을 백그라운드 서비스로 설치합니다.
brew services start postgresql중지하려면:
brew services stop postgresql다시 시작하려면:brew services restart postgresql설치 확인:
psql을 사용할 수 있고 연결되어 있는지 확인합니다.psql -V기본 데이터베이스에 연결하려면:
psql postgres팁: 시각적 앱 기반 경험을 위해 명령줄 없이 PostgreSQL을 실행하고 관리할 수 있는 간단한 방법을 제공하는 Postgres.app을 고려해보세요.
Windows에 설치
Windows의 경우 EnterpriseDB(EDB) 그래픽 설치 프로그램이 로컬 PostgreSQL 설정에 가장 일반적인 방법입니다.
설치 프로그램 다운로드: 공식 PostgreSQL 다운로드 페이지(www.postgresql.org/download/windows/)를 방문하여 Windows 버전에 맞는 최신 EDB 설치 프로그램을 다운로드하세요.
설치 프로그램 실행: 다운로드한
.exe파일을 실행합니다. 설치 마법사가 프로세스를 안내합니다.- 설치 디렉터리: PostgreSQL이 설치될 위치를 선택합니다(예:
C:\Program Files\PostgreSQL\16). - 데이터 디렉터리: 데이터베이스 파일의 위치를 선택합니다(예:
C:\Program Files\PostgreSQL\16\data). 이는 중요하며 이상적으로는 빠르고 안정적인 디스크에 있어야 합니다. postgres슈퍼유저 비밀번호: 기본postgres데이터베이스 슈퍼유저에 대한 강력한 비밀번호를 설정합니다. 이 비밀번호를 기억하세요. 초기 연결에 필요합니다.- 포트: 기본 PostgreSQL 포트는
5432입니다. 충돌이 없는 한 일반적으로 기본값으로 두는 것이 안전합니다. - 로케일: 데이터베이스 클러스터의 기본 로케일을 선택합니다.
- 설치 디렉터리: PostgreSQL이 설치될 위치를 선택합니다(예:
스택 빌더: 설치 후 EDB 설치 프로그램이 스택 빌더를 실행할 수 있습니다. 이 도구는 추가 드라이버, 도구 및 확장(예:
pgAdmin 4)을 설치하는 데 도움이 됩니다. 데이터베이스를 관리하기 위한 그래픽 인터페이스로pgAdmin 4를 설치하는 것이 좋습니다.설치 확인: 설치 후
pgAdmin 4(일반적으로 시작 메뉴의 "PostgreSQL 16" 등에서 찾을 수 있음)를 열고 설정한 비밀번호를 사용하여postgres슈퍼유저로 로컬 서버에 연결을 시도할 수 있습니다.
초기 구성 및 설치 후 단계
PostgreSQL이 설치되면 다음 단계는 기능적이고 안전한 설정에 필수적입니다.
1. PATH 환경 변수 설정(선택 사항, 주로 psql을 찾을 수 없는 Windows/macOS의 경우)
모든 터미널 위치에서 psql 및 기타 PostgreSQL 바이너리를 쉽게 실행하려면 PostgreSQL의 bin 디렉터리를 시스템의 PATH에 추가하세요.
- Linux: 패키지 관리자에 의해 처리되는 경우가 많지만, 그렇지 않은 경우
/usr/pgsql-X.Y/bin(RHEL) 또는/usr/lib/postgresql/X.Y/bin(Debian/Ubuntu)을PATH에 추가하세요. - macOS(Homebrew):
brew가 자동으로 처리합니다. - Windows: EDB 설치 중에
PATH에 추가하는 옵션이 있습니다. 선택하지 않은 경우시스템 속성 > 환경 변수를 통해 수동으로C:\Program Files\PostgreSQL\16\bin(버전 조정)을 추가할 수 있습니다.
2. psql 터미널 액세스
psql은 PostgreSQL용 명령줄 인터페이스로, 관리 및 쿼리에 중요합니다.
Linux/macOS:
postgres시스템 사용자(설치 중 생성됨)로 전환합니다.sudo -i -u postgres psql이제
postgres사용자로postgres데이터베이스에 연결되었습니다. 종료하려면\q를 입력하세요.Windows: 시작 메뉴(
PostgreSQL 16 > SQL Shell (psql))에서SQL Shell (psql)을 엽니다. 서버 세부 정보와postgres사용자 비밀번호를 묻는 메시지가 표시됩니다.
3. 새 데이터베이스 사용자 및 데이터베이스 생성
일상적인 애플리케이션 사용을 위해 postgres 슈퍼유저를 사용하지 않는 것이 좋습니다. 새 전용 사용자와 데이터베이스를 만드세요.
postgres슈퍼유저로 로그인(위에 표시된 대로).새 사용자(역할) 생성:
CREATE USER myuser WITH PASSWORD 'strong_password';팁:
myuser와strong_password를 안전한 자격 증명으로 바꾸세요.새 데이터베이스를 만들고 소유권 할당:
CREATE DATABASE mydatabase OWNER myuser;권한 부여(필요한 경우 또는 기본 작업의 경우
CREATE DATABASE소유자가 처리함):GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;psql종료:\q
4. 네트워크 액세스를 위한 pg_hba.conf 구성
pg_hba.conf 파일은 클라이언트 인증을 제어합니다. 기본적으로 PostgreSQL은 localhost(127.0.0.1)에서의 연결만 허용할 수 있습니다.
위치: 이 파일은 일반적으로 PostgreSQL 데이터 디렉터리에 있습니다(예: Debian/Ubuntu의 경우
/var/lib/postgresql/16/main/pg_hba.conf, RHEL의 경우/var/lib/pgsql/16/data/pg_hba.conf, Windows의 경우C:\Program Files\PostgreSQL\16\data\pg_hba.conf).파일 편집(root/관리자로):
sudo nano /etc/postgresql/16/main/pg_hba.conf(OS 및 버전에 맞게 경로를 조정하세요).
myuser가 비밀번호 인증을 사용하여 신뢰할 수 있는 서브넷에서 연결할 수 있도록 하려면 다음과 같은 줄을 추가하세요.# TYPE DATABASE USER ADDRESS METHOD host mydatabase myuser 192.168.1.0/24 scram-sha-256scram-sha-256은 최신 PostgreSQL 배포에 선호되는 비밀번호 방법입니다. 서버가 엄격한 방화벽 규칙으로 보호되고 광범위한 액세스가 정말로 필요하지 않은 한0.0.0.0/0은 피하세요.PostgreSQL 다시 로드:
pg_hba.conf를 수정한 후에는 변경 사항을 적용하기 위해 PostgreSQL 서비스를 다시 로드해야 합니다.sudo systemctl reload postgresql # Linux # macOS Homebrew의 경우: # brew services restart postgresql # Windows의 경우 Services.msc를 통해 PostgreSQL 서비스를 다시 시작합니다.
5. postgresql.conf 구성(네트워크 수신)
기본적으로 PostgreSQL은 종종 localhost에서만 수신합니다. 다른 머신의 연결을 허용하려면 postgresql.conf를 수정해야 합니다.
위치: 이 파일은 일반적으로
pg_hba.conf와 같은 디렉터리에 있습니다.파일 편집:
sudo nano /etc/postgresql/16/main/postgresql.conflisten_addresses매개변수를 찾아 원격 클라이언트가 연결해야 하는 경우에만 변경하세요.#listen_addresses = 'localhost' # 수신할 IP 주소; listen_addresses = 'localhost,192.168.1.10'192.168.1.10대신 서버의 실제 개인 IP 주소를 사용하세요.listen_addresses = '*'도 작동하지만 제한적인pg_hba.conf및 방화벽 규칙과 함께 사용해야 합니다.PostgreSQL 다시 시작:
postgresql.conf변경 사항은 전체 서비스 다시 시작이 필요합니다.sudo systemctl restart postgresql # Linux # brew services restart postgresql # macOS # Windows의 경우 Services.msc를 통해 PostgreSQL 서비스를 다시 시작합니다.
설치 확인
모든 구성 후에 최종 확인을 수행하세요.
PostgreSQL 서비스 상태 확인(
systemctl status postgresql또는brew services list또는 Windows 서비스).새 사용자로 새 데이터베이스에 연결:
psql -h localhost -U myuser -d mydatabasemyuser의 비밀번호를 묻는 메시지가 표시됩니다. 성공하면mydatabase=>프롬프트가 표시됩니다. 종료하려면\q를 입력하세요.다른 머신에서 연결하는 경우
localhost를 서버의 IP 주소로 바꾸세요.
팁 및 모범 사례
- 강력한 비밀번호: 특히
postgres슈퍼유저의 경우 모든 데이터베이스 사용자에 대해 항상 강력하고 고유한 비밀번호를 사용하세요. - 전용 데이터 디렉터리: 프로덕션의 경우 성능과 안정성을 위해 데이터 디렉터리를 전용 볼륨 또는 RAID 어레이에 배치하는 것을 고려하세요.
- 정기적인 백업: 첫날부터 강력한 백업 전략을 구현하세요. PostgreSQL의
pg_dump및pg_basebackup유틸리티는 이에 탁월한 도구입니다. - 최신 상태 유지: 버그 수정, 보안 패치 및 새로운 기능의 혜택을 받으려면 PostgreSQL 설치를 최신 상태로 유지하세요. 시스템의 패키지 관리자를 사용하거나 EDB 설치 프로그램의 업데이트 프로세스를 따르세요.
- 방화벽 구성: 원격 연결을 허용하는 경우 시스템 방화벽(예:
ufw,firewalld, Windows 방화벽)이 포트5432(또는 선택한 포트)에서 인바운드 트래픽을 허용하도록 구성되어 있는지 확인하세요.
핵심 내용
PostgreSQL이 설치되면 서비스를 확인하고, psql로 연결하고, 애플리케이션 역할을 만들고, 원격 액세스를 좁게 유지하세요. 프로덕션의 경우 데이터베이스에 중요한 데이터를 저장하기 전에 다음 단계는 백업 및 모니터링입니다.