새소식

300x250
PostgreSQL/환경 구축

PostgreSQL 17 환경 구축(1) : 설치 하기 - Rocky Linux 8, Ubuntu 24.04 LTS 환경

  • -
728x90

안녕하세요! 갓대희 입니다.

오늘은 PostgreSQL을 처음 설치하는 과정을 공유하려 한다. 

 

이 글에서는 Rocky Linux 8.10Ubuntu 24.04 LTS 두 환경에서 PostgreSQL 17을 설치하고 원격 접속 설정까지 완료하는 과정을 비교한다. 각 환경의 특성과 장단점을 이해하면 프로젝트에 맞는 선택을 할 수 있다.

 

  • 대상 버전 : PostgreSQL 17.7 (2025년 11월 릴리즈)
  • 대상 플랫폼 : Rocky Linux 8.10 (Green Obsidian) / Ubuntu 24.04 LTS (Noble Numbat)
  • 대상 독자 : DBA, 백엔드 개발자
  • 공식문서 링크 : https://www.postgresql.org/docs/17/

 

1. 환경 비교 개요

Rocky Linux와 Ubuntu는 PostgreSQL 운영 환경으로 모두 훌륭하지만, 패키지 관리 방식과 기본 설정이 상당히 다르다.

표 1-1. Rocky Linux vs Ubuntu 주요 차이점

항목 Rocky Linux 8.10 Ubuntu 24.04 LTS
패키지 관리자 dnf (yum) apt
데이터 디렉토리 /var/lib/pgsql/17/data /var/lib/postgresql/17/main
설정 파일 위치 /var/lib/pgsql/17/data/ /etc/postgresql/17/main/
클러스터 초기화 수동 initdb 필요 apt 설치 시 자동 생성
서비스 관리 systemctl + postgresql-17 pg_ctlcluster 래퍼
보안 모델 SELinux Enforcing AppArmor
방화벽 firewalld ufw
지원 기간 2029년 (10년) 2029년 (5년, ESM 10년)
핵심 포인트
Rocky Linux는 RHEL 호환으로 엔터프라이즈 환경에, Ubuntu는 빠른 실험과 개발 환경에 적합하다. 백업 스크립트 작성 시 데이터 디렉토리 및 설정 파일 경로가 다르므로 주의가 필요하다.

 

2. Rocky Linux 8.10 PostgreSQL 17 설치

단계별 권한 요약 (Rocky Linux)

PostgreSQL 설치시 root 작업postgres 작업을 구분하자. 하기 요약 참고

단계 권한 권장 명령
PGDG 저장소 설치 root sudo dnf install ...
디렉토리 생성 (/data, /pg_wal) root sudo mkdir, sudo chown
initdb 실행 postgres sudo -iu postgres
서비스 등록/시작 (systemctl) root sudo systemctl ...
SELinux 설정 root sudo semanage ...
psql 접속 테스트 postgres sudo -u postgres psql
핵심 원칙: su - root 대신 sudo를 사용한다. initdb는 반드시 postgres 유저로 실행해야 하며, root로 실행하면 소유권 문제가 발생한다.

 

2-0. 준비된 환경에 따른 설치 방법 확인

상기에 작성한 버전에 따른 설치를 진행할 예정이지만, 혹시 다른 환경인 경우에도 다음과 같은 방법으로 설치 준비를 할 수 있다.

 - Download 페이지 접속 > 본인이 설치할 환경 선택

 - 본인의 준비된 장비 상세 스펙과 설치할 PostgreSQL 버전을 선택하면 설치 스크립트를 복사할 수 있다.

 

2-1. PGDG 저장소 설정 및 엔진 설치

PostgreSQL Global Development Group (PGDG)에서 제공하는 공식 저장소를 사용한다. 배포판 기본 저장소의 PostgreSQL은 버전이 오래된 경우가 많으므로 PGDG를 권장한다. 

# PGDG 저장소 RPM 설치
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 배포판 기본 PostgreSQL 모듈 비활성화
sudo dnf -qy module disable postgresql

# PostgreSQL 17 서버 설치
sudo dnf install -y postgresql17-server postgresql17-contrib

ex) sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

 

ex) sudo dnf -qy module disable postgresql

ex) sudo dnf install -y postgresql17-server postgresql17-contrib 

설치 완료 확인
설치가 완료되면 postgres OS 유저가 자동으로 생성된다.
# postgres 유저 확인
cat /etc/passwd | grep postgres
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

# postgres OS 유저 패스워드 설정 (su - postgres 사용 시 필요)
sudo passwd postgres

 

2-2. 데이터 디렉토리 준비 (별도 볼륨 사용 시)

업무 환경에서는 데이터와 WAL 파일을 별도 디스크 볼륨에 저장하는 것이 일반적이다. 디렉토리를 생성하고 postgres 유저에게 소유권을 부여한다.

# 데이터 및 WAL 디렉토리 생성 (root 권한 필요)
sudo mkdir -p /pgdata/17
sudo mkdir -p /pg_wal/17

# postgres 유저에게 소유권 부여
sudo chown postgres:postgres /pgdata/17
sudo chown postgres:postgres /pg_wal/17

# 권한 확인
ls -la /pgdata/
drwxr-xr-x. 2 postgres postgres 6 Jan 19 12:30 17
디렉토리 분리의 이점
  • 성능: WAL을 별도 SSD에 배치하면 I/O 경합 감소
  • 용량 관리: 데이터와 WAL의 증가량을 별도로 모니터링 가능
  • 백업 효율: 스냅샷 백업 시 볼륨 단위로 관리 용이

 

2-3. 데이터베이스 클러스터 초기화 (initdb)

Rocky Linux에서는 apt와 달리 수동으로 initdb를 실행해야 한다. 이는 DBA가 직접 옵션을 제어할 수 있다는 장점이 있다.

표 2-1. initdb 핵심 옵션

옵션 설명
--locale='C' 한글 정렬 정확성 및 LIKE 검색 인덱스 사용을 위해 필수
--encoding='UTF8' 모든 한글 조합 지원 (한글 3바이트, 영문 1바이트)
--auth='scram-sha-256' 버전 14부터 기본값, 가장 안전한 인증 방식
--data-checksums 데이터 블록 손상 감지, pgBackRest delta 복구에 필요
--pgdata 데이터베이스 클러스터 저장 위치
--waldir WAL 파일 저장 위치 (별도 디스크 권장)
locale='C' 설정이 중요한 이유
  • 한글 정렬 문제: ko_KR.UTF-8 로케일에서 한글 정렬 결과가 부정확할 수 있다
  • 인덱스 사용 문제: 'C' 외의 로케일에서 LIKE 'prefix%' 검색 시 인덱스를 사용하지 못할 수 있다

기본 경로 사용 시: (나의 경우 별도 디렉도리 사용 > 이후 방법)

# postgres 유저로 전환
sudo -i -u postgres

# 데이터베이스 클러스터 초기화
/usr/pgsql-17/bin/initdb --locale='C' --encoding='UTF8' \
  --auth='scram-sha-256' --data-checksums --pwprompt

# 기본 데이터 경로: /var/lib/pgsql/17/data

 

업무용 별도 디스크 볼륨 사용 시:

/usr/pgsql-17/bin/initdb --locale='C' --encoding='UTF8' --pgdata='/pgdata/17' --waldir='/pg_wal/17' --auth='scram-sha-256' --data-checksums --pwprompt

ex)

 

2-4. 인스턴스 시작 및 서비스 등록

# postgres 유저로 전환 후 환경 변수 설정
sudo -iu postgres

# ~/.bash_profile에 환경 변수 추가
echo "export PATH=/usr/pgsql-17/bin:\$PATH" >> ~/.bash_profile
echo "export PGDATA=/pgdata/17" >> ~/.bash_profile
source ~/.bash_profile

# postgres 유저 세션 종료
exit

# 서비스 자동 시작 등록 (일반 유저로 복귀 후)
sudo systemctl enable postgresql-17
별도 데이터 경로 사용 시 서비스 파일 수정 필요
기본 경로(/var/lib/pgsql/17/data)가 아닌 별도 경로를 사용하는 경우, systemd 서비스 파일에서 PGDATA를 수정해야 한다.
# 서비스 파일 위치 확인
systemctl list-unit-files | grep -i postgre
postgresql-17.service disabled

# 서비스 파일 수정
sudo vi /usr/lib/systemd/system/postgresql-17.service

# Environment 라인 수정
Environment=PGDATA=/pgdata/17

# 변경사항 적용
sudo systemctl daemon-reload

# 서비스 시작 및 상태 확인
sudo systemctl start postgresql-17
sudo systemctl status postgresql-17

 

표 2-3. pg_ctl 명령어 주요 옵션

옵션 설명
start 인스턴스 시작
stop 인스턴스 종료
restart 인스턴스 재시작
reload 설정 변경 적용 (재시작 없이)
status 인스턴스 상태 확인

 

표 2-4. pg_ctl 종료 모드 (-m 옵션)

모드 동작 Oracle 대응
smart 모든 클라이언트 세션이 종료될 때까지 대기 후 종료 SHUTDOWN NORMAL
fast 트랜잭션 롤백 후 세션 강제 종료, 체크포인트 수행 (기본값) SHUTDOWN IMMEDIATE
immediate 체크포인트 없이 즉시 종료 (다음 시작 시 복구 필요) SHUTDOWN ABORT
# 기본 종료 (fast 모드)
pg_ctl stop

# 세션 종료 대기 후 종료
pg_ctl stop -m smart

# 강제 즉시 종료 (복구 필요)
pg_ctl stop -m immediate

 

2-5. SELinux 고려사항

Rocky Linux는 기본적으로 SELinux Enforcing 모드로 동작한다. 단, 환경에 따라 Disabled 또는 Permissive로 설정된 경우도 있으므로 먼저 상태를 확인한다.

# SELinux 상태 확인
getenforce
Enforcing  # 또는 Permissive / Disabled
SELinux 상태별 조치
  • Disabled: SELinux가 비활성화 상태 → 이 섹션을 건너뛰어도 됨
  • Permissive: 정책 위반을 로그만 기록 → 선택적으로 설정
  • Enforcing: 정책 위반 시 차단 → 아래 설정 필수

Enforcing 모드에서 별도 데이터 디렉토리 사용 시:

# semanage 명령이 없는 경우 패키지 설치
sudo dnf install -y policycoreutils-python-utils

# 별도 데이터 디렉토리 SELinux 컨텍스트 설정
sudo semanage fcontext -a -t postgresql_db_t "/pgdata/17(/.*)?"
sudo restorecon -Rv /pgdata/17

# 비표준 포트 사용 시 (5432 외 포트)
sudo semanage port -a -t postgresql_port_t -p tcp 5433

 

2-6. 접속 테스트

# postgres 유저로 psql 접속
sudo -u postgres psql

-- 버전 확인
SELECT version();

-- 종료
\q

ex) sudo -iu postgres > psql -d postgres

 

3. Ubuntu 24.04 PostgreSQL 17 설치

Ubuntu는 apt 설치 시 클러스터가 자동으로 생성된다. 이 점이 Rocky Linux와 가장 큰 차이점이다.

단계별 권한 요약 (Ubuntu)

단계 권한 권장 명령
PGDG APT 저장소 설정 root sudo apt install ...
PostgreSQL 설치 (클러스터 자동 생성) root sudo apt install ...
서비스 제어 (pg_ctlcluster) root sudo pg_ctlcluster ...
psql 접속 테스트 postgres sudo -u postgres psql
Ubuntu의 장점: initdb가 자동 실행되므로 Rocky Linux보다 권한 전환이 적다. apt 설치 후 바로 sudo -u postgres psql로 접속 가능하다.

3-1. PGDG APT 저장소 설정

# 필수 패키지 설치
sudo apt install -y postgresql-common

# PGDG APT 저장소 자동 설정 스크립트 실행
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

# 또는 수동 설정
sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
. /etc/os-release
sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
sudo apt update

 

3-2. PostgreSQL 17 설치

# PostgreSQL 17 서버 설치 (클러스터 자동 생성)
sudo apt install -y postgresql-17 postgresql-contrib-17
Ubuntu의 장점
apt 설치 완료 후 바로 sudo -u postgres psql로 접속할 수 있다. initdb 없이 기본 클러스터(main)가 자동 생성된다.

 

3-3. pg_ctlcluster 래퍼 명령어

Ubuntu/Debian에서는 pg_ctl 대신 pg_ctlcluster 래퍼 명령어를 사용한다.

# 클러스터 목록 확인
pg_lsclusters

# 클러스터 제어
sudo pg_ctlcluster 17 main start
sudo pg_ctlcluster 17 main stop
sudo pg_ctlcluster 17 main restart
sudo pg_ctlcluster 17 main reload
sudo pg_ctlcluster 17 main status

표 3-1. Ubuntu PostgreSQL 주요 경로

항목 경로
데이터 디렉토리 /var/lib/postgresql/17/main
설정 파일 /etc/postgresql/17/main/
바이너리 /usr/lib/postgresql/17/bin/
로그 /var/log/postgresql/

 

3-4. 접속 테스트

# postgres 유저로 psql 접속
sudo -u postgres psql

-- 버전 확인
SELECT version();

-- 종료
\q

ex) 

 

4. 접속 설정 (pg_hba.conf, 방화벽)

PostgreSQL 설치 후 로컬 접속은 바로 가능하지만, 원격 접속을 위해서는 추가 설정이 필요하다. 두 가지를 설정해야 한다: postgresql.conf(리스닝 설정)와 pg_hba.conf(인증 설정).

 

4-1. postgresql.conf - listen_addresses 설정

기본 설정에서 PostgreSQL은 localhost(127.0.0.1)에서만 접속을 수신한다. 원격 접속을 허용하려면 listen_addresses를 변경해야 한다.

# Rocky Linux: 설정 파일 위치
sudo vi /var/lib/pgsql/17/data/postgresql.conf

# Ubuntu: 설정 파일 위치
sudo vi /etc/postgresql/17/main/postgresql.conf

# listen_addresses 설정 변경
listen_addresses = '*' # 모든 IP에서 접속 허용
# 또는 특정 IP만 허용
listen_addresses = '192.168.1.10,127.0.0.1'

# 포트 설정 (기본값: 5432)
port = 5432

 

4-2. pg_hba.conf - 클라이언트 인증 설정

pg_hba.conf는 PostgreSQL의 Host-Based Authentication 파일로, 누가 어떤 데이터베이스에 어떤 방식으로 접속할 수 있는지 정의한다.

 

표 4-1. pg_hba.conf 칼럼 설명

칼럼 설명
TYPE local (유닉스 소켓), host (TCP/IP), hostssl (SSL 필수), hostnossl (SSL 금지)
DATABASE 대상 데이터베이스 (all, 특정 DB명, @파일명)
USER 대상 사용자 (all, 특정 유저명, +그룹명)
ADDRESS 클라이언트 IP (CIDR 형식: 192.168.1.0/24)
METHOD 인증 방식 (아래 표 참조)

 

표 4-2. 인증 방식 (METHOD)

METHOD 설명
trust 암호 없이 접속 허용 (보안 취약, 테스트 환경에서만)
peer OS 유저명과 DB 유저명 일치 시 허용 (local 접속만)
scram-sha-256 암호 해시 검증 (권장, PG 14+ 기본값)
md5 암호 해시 검증 (레거시, scram-sha-256 권장)
reject 무조건 접속 거부

 

권장 설정 예시:

# Rocky: /var/lib/pgsql/17/data/pg_hba.conf
# Ubuntu: /etc/postgresql/17/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD

# 로컬 유닉스 소켓 접속 (OS 유저 인증)
local all postgres peer
local all all peer

# IPv4 로컬 접속
host all all 127.0.0.1/32 scram-sha-256

# IPv6 로컬 접속
host all all ::1/128 scram-sha-256

# 특정 서브넷에서 원격 접속 허용
host all all 192.168.1.0/24 scram-sha-256

# 특정 IP에서만 특정 DB 접속 허용
host mydb myuser 10.0.0.100/32 scram-sha-256
pg_hba.conf 규칙 순서
  • 규칙은 위에서 아래로 순차 적용된다 (첫 번째 매칭 규칙 사용)
  • 더 구체적인 규칙을 위에 배치해야 한다
  • 설정 변경 후 pg_ctl reload 또는 서비스 재시작 필요

 

4-3. 사용자 생성 및 암호 설정

-- postgres 유저로 접속 후
sudo -u postgres psql

-- 새 사용자 생성
CREATE USER myuser WITH PASSWORD 'secure_password';

-- 데이터베이스 생성
CREATE DATABASE mydb OWNER myuser;

-- 권한 부여
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

-- 기존 유저 암호 변경
ALTER USER postgres PASSWORD 'new_secure_password';

 

 

4-4. 설정 적용 및 방화벽

# 설정 변경 적용 (재시작 없이)

# Rocky Linux
sudo systemctl reload postgresql-17

# Ubuntu
sudo pg_ctlcluster 17 main reload

방화벽 설정:

# Rocky Linux (firewalld)
sudo firewall-cmd --add-service=postgresql --permanent
sudo firewall-cmd --reload

# 또는 포트 직접 지정
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

# Ubuntu (ufw)
sudo ufw allow 5432/tcp
sudo ufw status

 

4-5. 원격 접속 트러블슈팅

PostgreSQL 원격 접속은 3단계로 이루어진다. 각 단계에서 발생하는 에러와 해결 방법을 체계적으로 정리한다.

PostgreSQL 연결 3단계

1 네트워크 도달 클라이언트 → 서버 IP:Port 도달 (방화벽, 라우팅)
2 TCP 수신 대기 PostgreSQL이 해당 인터페이스에서 수신 (listen_addresses)
3 클라이언트 인증 pg_hba.conf 규칙 매칭 + 암호 검증

(출처: PostgreSQL 17 공식 문서 - Client Authentication)

 

표 4-3. 접속 에러 유형과 원인

단계 에러 메시지 (영문) 원인 확인 대상
1-2 Connection refused 서버가 해당 IP에서 수신하지 않음 listen_addresses, 방화벽
3 no pg_hba.conf entry for host pg_hba.conf에 규칙 없음 pg_hba.conf
3 password authentication failed 암호 불일치 또는 암호화 방식 불일치 암호, password_encryption
3 role "user" does not exist 해당 유저가 존재하지 않음 CREATE ROLE
3 database "db" does not exist 해당 데이터베이스가 존재하지 않음 CREATE DATABASE

(출처: PostgreSQL 17 공식 문서 - Authentication Problems)

 

Case 1: Connection refused

$ psql -h <server-ip> -p 5432 -d postgres -U postgres
psql: error: connection to server at "<server-ip>", port 5432 failed:
Connection refused
Is the server running on that host and accepting TCP/IP connections?

원인: PostgreSQL이 해당 네트워크 인터페이스에서 TCP 연결을 수신하지 않는다. listen_addresses 파라미터의 기본값은 'localhost'이며, 이 경우 로컬 루프백 인터페이스에서만 수신한다.

해결:

# postgresql.conf 수정
listen_addresses = '*' # 모든 인터페이스에서 수신

# 재시작 필요 (listen_addresses는 서버 시작 시에만 적용)
pg_ctl restart -D $PGDATA
주의: listen_addresses는 서버 시작 시점에만 읽는 파라미터다. pg_ctl reload로는 적용되지 않으며, 반드시 재시작이 필요하다.
(출처: PostgreSQL 17 - Connection Settings)

 

Case 2: no pg_hba.conf entry for host

$ psql -h <server-ip> -p 5432 -d postgres -U postgres
psql: error: connection to server at "<server-ip>", port 5432 failed:
FATAL: no pg_hba.conf entry for host "<client-ip>", user "postgres",
database "postgres", no encryption

원인: TCP 연결은 성공했으나, pg_hba.conf에 해당 클라이언트 IP/유저/DB 조합에 대한 인증 규칙이 없다.

해결:

# pg_hba.conf에 규칙 추가 (보안 수준에 맞게 선택)

# 특정 서브넷만 허용 (권장)
host all all 192.168.1.0/24 scram-sha-256

# 모든 IP 허용 (개발 환경 전용)
host all all 0.0.0.0/0 scram-sha-256

# reload로 적용 가능 (재시작 불필요)
pg_ctl reload -D $PGDATA

 

표 4-4. 설정 변경 시 적용 방법

설정 파일/파라미터 적용 방법 Rocky Linux Ubuntu
listen_addresses 재시작 필요 systemctl restart postgresql-17 pg_ctlcluster 17 main restart
pg_hba.conf reload 가능 systemctl reload postgresql-17 pg_ctlcluster 17 main reload
postgresql.conf (대부분) reload 가능 systemctl reload postgresql-17 pg_ctlcluster 17 main reload

특정 파라미터의 적용 방법은 pg_settings 뷰의 context 컬럼으로 확인할 수 있다: SELECT name, context FROM pg_settings WHERE name = 'listen_addresses';

트러블슈팅 팁: 서버 로그 확인
클라이언트에 표시되는 에러 메시지는 보안상 간략화되어 있다. 상세한 인증 실패 원인은 서버 로그에 기록된다.
# Rocky Linux
tail -f /pgdata/17/log/postgresql-*.log

# Ubuntu (기본 경로)
tail -f /var/log/postgresql/postgresql-17-main.log

(출처: PostgreSQL 17 - Authentication Problems - "The server log always contains the real reason for failure")

 

4-6. 접속 방법 요약

표 4-5. 접속 유형별 설정

접속 유형 명령어 pg_hba.conf TYPE 권장 METHOD
로컬 (유닉스 소켓) psql local peer
로컬 TCP psql -h localhost host (127.0.0.1/32) scram-sha-256
원격 TCP psql -h <server-ip> host (CIDR) scram-sha-256

 

표 4-6. psql 접속 옵션

옵션 설명 기본값
-h 데이터베이스 서버 호스트 (IP 또는 hostname) 유닉스 소켓 (local)
-p 접속 포트 5432
-d 접속 대상 데이터베이스 $PGDATABASE 또는 OS 유저명
-U 접속 유저명 $PGUSER 또는 OS 유저명

 

5. 환경별 선택 가이드

5-1. Rocky Linux를 선택해야 하는 경우

  • On-premises 엔터프라이즈 환경: RHEL 호환성이 필요한 경우
  • 장기 운영 시스템: 10년 지원 주기 (EOL 2029년)
  • Oracle에서 마이그레이션: DBA가 RHEL 계열에 익숙한 경우
  • 규제 환경: SELinux Enforcing 필수인 경우
  • 금융/공공 기관: RHEL 계열 표준화된 환경

 

5-2. Ubuntu를 선택해야 하는 경우

  • 빠른 실험/PoC: apt 설치 후 바로 사용 가능
  • 개발 환경: 상대적으로 낮은 운영 마찰 (AppArmor)
  • 클라우드 환경: AWS, GCP 등에서 Ubuntu 이미지 선호도 높음
  • 컨테이너 환경: Docker 이미지 크기가 상대적으로 작음
  • AI/ML 파이프라인: Python 생태계와의 통합이 용이

 

5-3. 공통 주의사항

백업 스크립트 작성 시 주의
두 환경의 데이터 디렉토리 및 설정 파일 경로가 다르므로, 환경별 분기 처리가 필요하다.
항목 Rocky Linux Ubuntu
데이터 /var/lib/pgsql/17/data /var/lib/postgresql/17/main
설정 /var/lib/pgsql/17/data/ /etc/postgresql/17/main/

마무리

이번 글에서는 Rocky Linux 8.10과 Ubuntu 24.04 LTS 두 환경에서 PostgreSQL 17을 설치하고 원격 접속 설정까지 완료하는 방법을 비교했다.

핵심 요약:

  • Rocky Linux: 수동 initdb, SELinux, firewalld - 엔터프라이즈 환경에 적합
  • Ubuntu: 자동 클러스터 생성, AppArmor, ufw - 개발/실험 환경에 적합
  • 접속 설정: listen_addresses + pg_hba.conf + 방화벽 세 가지 모두 설정 필요
  • 인증 방식: scram-sha-256 권장 (PG 14+ 기본값)

다음 글에서는 pgvector를 활용한 벡터 검색을 다룰 예정이다. AI/RAG 파이프라인에서 PostgreSQL을 벡터 DB로 활용하는 방법을 소개한다.

궁금한 점은 댓글로 남겨주시면 아는 선에서 답변드리겠다!

 

참고 자료

공식 문서

검증 정보

  • 이 글의 명령어는 PostgreSQL 공식 문서(2026년 1월 기준)와 대조 검증됨
  • Rocky Linux 8.10, Ubuntu 24.04 LTS 환경에서 테스트됨
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.

💡 AI 관련 질문이 있나요? 눌러보세요!