한양과학기술고등학교

에듀테크 프로젝트 대시보드

PostgreSQL 준비 (Ubuntu)

apt psql CREATE DATABASE pg_hba.conf role

이 서버(Ubuntu)에 PostgreSQL 을 설치하고 앱 전용 DB·계정을 만드는 과정.

1. 설치

sudo apt update
sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable --now postgresql
psql --version

2. DB·역할(role) 생성

postgres 슈퍼유저로 psql 접속
sudo -u postgres psql
CREATE ROLE school WITH LOGIN PASSWORD 'strong-secret';
CREATE DATABASE school OWNER school;
GRANT ALL PRIVILEGES ON DATABASE school TO school;
\q

3. 접속 테스트

psql "postgresql://school:strong-secret@localhost:5432/school" -c "SELECT version();"
psql 안에서 자주 쓰는 명령
  • \l DB 목록 · \c dbname DB 전환
  • \dt 테이블 목록 · \d tablename 스키마
  • \du 역할 목록 · \dn 스키마 목록
  • \x 확장 표시 토글 · \timing 실행 시간

4. 인증 설정 (pg_hba.conf)

sudo -u postgres psql -c "SHOW hba_file;"   # 경로 확인
sudo nano /etc/postgresql/16/main/pg_hba.conf
# TYPE  DATABASE  USER    ADDRESS         METHOD
local   all       all                     scram-sha-256
host    school    school  127.0.0.1/32    scram-sha-256
host    school    school  ::1/128         scram-sha-256
수정 후 반영
sudo systemctl reload postgresql

5. 로컬 전용으로 두기 (권장)

앱과 DB 가 같은 서버면 listen_addresses = 'localhost' (postgresql.conf) 로 두어 외부 노출을 막습니다. 원격 접속이 꼭 필요하면 방화벽(보안그룹)에서 특정 IP 만 5432 허용 + sslmode=require.

6. .env 에 반영

DATABASE_URL=postgresql+psycopg://school:strong-secret@localhost:5432/school
"API 스키마는 코드가 곧 문서다 (/docs)"