Windows에서 PostgreSQL 18 포터블 환경 구축: 설치 없이 데이터베이스 서버 실행하기

Portable setup for PostgreSQL on Windows (Pg18 Edition)

작성자
발행일
2025년 10월 14일

핵심 요약

  • 1 Windows에서 설치 프로그램 없이 PostgreSQL 18 ZIP 아카이브를 활용한 포터블 개발 환경 설정 방법을 설명합니다.
  • 2 환경 변수 설정 및 배치 스크립트를 통해 PostgreSQL 서버의 초기화, 시작, 중지 및 관리를 자동화하는 과정을 상세히 다룹니다.
  • 3 개인 개발용 서버 구축에 초점을 맞춰, PgAdmin4를 통한 연결 및 기본 인증 설정(`-A trust`)의 주의사항을 안내합니다.

도입

Windows 환경에서 PostgreSQL을 사용하는 일반적인 방법은 설치 프로그램을 이용하는 것이지만, 이 방식은 항상 백그라운드에서 실행되거나 여러 버전 관리, 혹은 포터블 환경 구축에 제약이 있습니다. 본 문서는 이러한 제약을 극복하고, 설치 없이 ZIP 아카이브를 통해 PostgreSQL 18을 포터블 개발 서버로 구축하는 방법을 제시합니다. 이는 개인 개발용으로만 권장되며, 공유 또는 배포 시에는 반드시 보안 설정을 강화해야 합니다.

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과 같은 스택의 기본 폴더에 위치시키는 것이 효율적입니다.

  1. 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
  2. pg-18-initialize.cmd: 데이터베이스 클러스터를 초기화합니다.
    • call pg18-vars.cmd
    • "%PGDIR%\bin\initdb" -U postgres -A trust -E UTF8
  3. pg-18-start.cmd: PostgreSQL 서버를 시작합니다.
    • call pg18-vars.cmd
    • "%PGDIR%\bin\pg_ctl" -D "%PGDATA%" -l "%PGLOGS%" start
  4. 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를 실행하여 서버를 안전하게 종료합니다.

결론

이 문서는 Windows 환경에서 PostgreSQL 18을 설치 없이 포터블 방식으로 구축하고 관리하는 상세한 절차를 제공합니다. ZIP 아카이브 다운로드부터 환경 변수 설정, 배치 스크립트를 통한 서버 제어, 그리고 PgAdmin4를 이용한 연결까지 모든 과정을 다루었습니다. 이러한 방식은 개발자가 여러 버전의 PostgreSQL을 유연하게 사용하거나, 필요할 때만 서버를 실행하고자 할 때 매우 유용합니다. 개인 개발 서버로서의 목적을 명확히 인지하고, 보안에 유의하며 활용하시기 바랍니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!