PostgreSQL 패키지 다운로드 및 준비
PostgreSQL 공식 웹사이트에서 Windows용 ZIP 아카이브를 다운로드합니다. 이 문서에서는 PostgreSQL 18 버전을 기준으로 하며, EDB 설치 프로그램이 아닌 ZIP 파일을 선택해야 합니다. 다운로드된 아카이브(약 325MB)는 d:\stack\pg-18과 같은 원하는 경로에 압축을 해제합니다. 압축 해제 시 생성되는 pgsql 폴더의 내용을 pg-18 폴더 직하위로 이동하여 bin, doc, include 등의 폴더가 직접 보이도록 구성하는 것이 좋습니다. 디스크 공간 절약을 위해 해당 폴더의 콘텐츠 압축 기능을 활성화하는 것을 권장합니다.
필수 환경 변수 및 pg_ctl 명령어 이해
PostgreSQL 서버를 실행하기 전에 다음과 같은 핵심 환경 변수를 설정해야 합니다:
-
PATH: PostgreSQL 실행 파일(
bin폴더) 경로를 추가하여 명령줄에서 접근 가능하게 합니다. -
PGDIR: PostgreSQL 설치의 기본 디렉토리 (
d:\stack\pg-18). -
PGDATA: PostgreSQL 데이터가 저장될 디렉토리 (
%PGDIR%\data로 설정). -
PGLOCALEDIR: 로케일 파일 경로 (
%PGDIR%\share\locale). -
PGPORT: 서버가 실행될 포트 (기본 5432, 이 문서에서는 5418 사용).
-
PGDATABASE: 기본 데이터베이스 이름 (
postgres). -
PGUSER: 관리자 사용자 이름 (
postgres). -
PGLOGS: 로그 파일 경로 (
d:\stack\logs\pg-18\logfile).
PostgreSQL 데이터베이스 클러스터를 초기화하고 서버를 시작/중지하려면 pg_ctl 유틸리티를 사용합니다. 초기화 시에는 initdb 서브 명령을 사용하며, 다음 매개변수가 중요합니다:
-
-A trust: 모든 로컬 연결을 신뢰합니다. 개인 개발용으로 편리하지만, 보안상 주의가 필요합니다. -
-U postgres: 슈퍼유저를postgres로 설정합니다. -
-E UTF8: 서버 인코딩을 UTF-8로 설정합니다.
배치 스크립트를 통한 자동화
반복적인 작업을 위해 다음 네 가지 배치 스크립트를 생성합니다. 이 스크립트들은 d:\stack과 같은 스택의 기본 폴더에 위치시키는 것이 효율적입니다.
pg-18-vars.cmd: 모든 필요한 환경 변수를 설정합니다.@SET PATH=%~dp0pg-18\bin;%PATH%@SET PGDIR=%~dp0\pg-18@SET PGDATA=%PGDIR%\data@SET PGLOCALEDIR=%PGDIR%\share\locale@SET PGPORT=5418@SET PGDATABASE=postgres@SET PGUSER=postgres@SET PGLOGS=%~dp0\logs\pg-18\logfile
pg-18-initialize.cmd: 데이터베이스 클러스터를 초기화합니다.call pg18-vars.cmd"%PGDIR%\bin\initdb" -U postgres -A trust -E UTF8
pg-18-start.cmd: PostgreSQL 서버를 시작합니다.call pg18-vars.cmd"%PGDIR%\bin\pg_ctl" -D "%PGDATA%" -l "%PGLOGS%" start
pg-18-stop.cmd: PostgreSQL 서버를 중지합니다.call pg18-vars.cmd"%PGDIR%\bin\pg_ctl" -D "%PGDATA%" -l "%PGLOGS%" stop
이 스크립트들은 pushd/popd 명령어를 사용하여 어느 디렉토리에서든 실행 가능하도록 구성됩니다.
서버 초기화, 시작 및 연결
먼저 pg18-initialize.cmd를 실행하여 데이터베이스 클러스터를 생성합니다. 성공적으로 완료되면 pg18-start.cmd를 실행하여 서버를 시작할 수 있습니다. 서버가 시작되면 PgAdmin4 (pgAdmin 4\runtime\pgAdmin4.exe)를 사용하여 연결합니다. 서버 추가 시 호스트/주소는 localhost, 포트는 5418, 유지보수 데이터베이스는 postgres, 사용자도 postgres로 설정합니다. 연결이 성공하면 PgAdmin4 좌측 패널에서 서버가 실행 중임을 확인할 수 있습니다. 작업 완료 후에는 pg18-stop.cmd를 실행하여 서버를 안전하게 종료합니다.