PostgreSQL
오픈소스 관계형 데이터베이스(RDBMS)입니다. 테이블 형태로 데이터를 저장하고 SQL로 조회합니다.
어디에 쓰이나요?
- 사용자 정보, 게시글, 주문 내역 등 구조화된 데이터를 저장할 때
- Dify, Langfuse, n8n 등 대부분의 애플리케이션이 기본 데이터베이스로 사용
- 트랜잭션, 외래 키 등 데이터 무결성이 필요한 경우
이 가이드에서 다루는 Dify, Langfuse, Langflow, n8n 모두 내부적으로 PostgreSQL을 사용합니다. 각 서비스의 docker-compose.yml에 PostgreSQL이 포함되어 있으므로, 별도로 설치할 필요 없이 해당 서비스를 실행하면 됩니다.
Docker Compose
services:
postgres:
image: postgres:17
container_name: postgres
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: changeme
POSTGRES_DB: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
접속 확인
docker exec -it postgres psql -U postgres
정상적으로 접속되면 postgres=# 프롬프트가 표시됩니다.
기본 정보
| 항목 | 값 |
|---|
| 포트 | 5432 |
| 기본 사용자 | postgres |
| 기본 비밀번호 | changeme |
| 데이터 저장 경로 | postgres_data 볼륨 |
환경 변수
| 변수 | 설명 | 기본값 |
|---|
POSTGRES_USER | 슈퍼유저 이름 | postgres |
POSTGRES_PASSWORD | 슈퍼유저 비밀번호 | (필수) |
POSTGRES_DB | 기본 데이터베이스 이름 | POSTGRES_USER 값 |
PGDATA | 데이터 디렉토리 경로 | /var/lib/postgresql/data |
라이선스
| 구분 | 내용 |
|---|
| 라이선스 | PostgreSQL License (BSD 계열) |
| 개인 사용 | 자유롭게 사용 가능 |
| 상업적 사용 | 자유롭게 사용 가능, 수정/재배포 제한 없음 |