본문 바로가기
C.W.K.
Stream
Lesson 10 of 10 · published

PostgreSQL 생태계

~14 min · foundations, ecosystem

Level 0스키마 새싹
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

오래 곁에 둘 터미널 도구

psql은 PostgreSQL의 공식 터미널 클라이언트야. 빠르고 자동화하기 쉬우며 메타 명령도 강력해. GUI보다 먼저 익혀 두면 어느 컴퓨터, 클라우드, 컨테이너에서도 평생 같은 방식으로 데이터베이스를 다룰 수 있어.

함께 알아둘 명령줄 도구

  • pg_dump는 데이터베이스 하나를 SQL이나 사용자 정의 형식으로 논리 백업해.
  • pg_restore는 사용자 정의 형식의 덤프를 복원해.
  • pg_basebackup은 군집 전체를 물리 백업해.
  • pgbench는 내장 성능 시험과 부하 생성을 맡아.
  • vacuumdb, reindexdb, clusterdb는 유지보수 작업을 명령줄에서 실행해.

자주 쓰는 확장 기능

  • PostGIS는 완전한 GIS 데이터베이스 기능을 더해.
  • pg_trgm은 오타와 비슷한 문자열을 찾는 검색에 쓰여.
  • pgcrypto는 해시, 암호화, 안전한 난수를 제공해.
  • pgvector는 임베딩 저장과 ANN 검색을 더해.
  • pg_stat_statements는 질의별 실행 통계를 모아. 운영 환경에서 가장 먼저 켤 만한 기능이야.
  • uuid-ossp는 전통적으로 UUID 생성에 썼고, PG 18부터는 uuidv7()이 내장돼.

화면 도구, 감시, 호스팅

화면 도구로는 공식 웹 도구 pgAdmin, 여러 운영체제에서 쓰는 DBeaver, macOS에 잘 맞는 TablePlus와 Postico가 있어. 연결 풀은 pgBouncer가, 고가용성 관리는 Patroni가 대표적이야. 관리형 호스팅에는 Supabase, Neon, RDS/Aurora, AlloyDB, Azure Flexible Server, Railway, Render가 있어.

Code

psql에서 자주 쓰는 명령·bash
# 연결
psql -h localhost -U myuser -d mydb

# psql 안 — meta command
\dt                  -- 현재 schema 의 테이블 목록
\d+ orders           -- orders 테이블 상세 묘사
\df                  -- 함수 목록
\du                  -- 유저/역할 목록
\timing on           -- 쿼리 실행 시간 표시
\x auto              -- 넓은 행은 expanded 출력
\copy orders TO 'orders.csv' WITH CSV HEADER
\i seed.sql          -- SQL 파일 실행
\q                   -- 종료
백업하고 복원하기·bash
# Logical dump (SQL 텍스트 — 읽기 가능, portable)
pg_dump -h prod-db -U app mydb > mydb.sql

# Logical dump (custom format — 빠름, parallel 복원, 선택적)
pg_dump -h prod-db -U app -F c -f mydb.dump mydb

# 새 DB 에 custom dump 복원
createdb mydb_restore
pg_restore -h localhost -U app -d mydb_restore mydb.dump
대표 확장 기능 설치하기·sql
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE EXTENSION IF NOT EXISTS vector;

External links

Exercise

로컬 설치나 Supabase, Neon 무료 요금제처럼 접근 가능한 PostgreSQL 데이터베이스에 psql로 연결해. \dt, \df, \du, \timing on을 실행하고 확장 기능 하나를 CREATE EXTENSION으로 설치해봐. 이번 수업에서 처음 알게 된 메타 명령 세 개를 적어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.