PostgreSQL 학습 가이드

PostgreSQL 학습 가이드

소개

이 폴더는 PostgreSQL 관계형 데이터베이스를 학습하기 위한 자료를 담고 있습니다. SQL 기초부터 고급 기능, 운영까지 단계별로 학습할 수 있습니다.

대상 독자: SQL 입문자 ~ 중급자, 백엔드 개발자


학습 로드맵

[기초]                [중급]                 [고급]
  │                     │                      │
  ▼                     ▼                      ▼
PostgreSQL 기초 ──▶ JOIN ──────────▶ 함수/프로시저
  │                     │                      │
  ▼                     ▼                      ▼
DB 관리 ──────────▶ 집계와 그룹 ────▶ 트랜잭션
  │                     │                      │
  ▼                     ▼                      ▼
테이블/타입 ──────▶ 서브쿼리/CTE ───▶ 트리거
  │                     │                      │
  ▼                     ▼                      ▼
CRUD 기본 ────────▶ 뷰와 인덱스 ────▶ 백업/운영
  
  
조건과 정렬

선수 지식

  • 기본적인 컴퓨터 사용법
  • 터미널/명령줄 사용 경험
  • (선택) Docker 기초 지식

파일 목록

파일명 난이도 주요 내용
01_PostgreSQL_Basics.md 개념, 설치, psql 기본
02_Database_Management.md DB 생성/삭제, 사용자, 권한
03_Tables_and_Data_Types.md ⭐⭐ CREATE TABLE, 자료형, 제약조건
04_CRUD_Basics.md SELECT, INSERT, UPDATE, DELETE
05_Conditions_and_Sorting.md ⭐⭐ WHERE, ORDER BY, LIMIT
06_JOIN.md ⭐⭐ INNER, LEFT, RIGHT, FULL JOIN
07_Aggregation_and_Grouping.md ⭐⭐ COUNT, SUM, GROUP BY, HAVING
08_Subqueries_and_CTE.md ⭐⭐⭐ 서브쿼리, WITH 절
09_Views_and_Indexes.md ⭐⭐⭐ VIEW, INDEX, EXPLAIN
10_Functions_and_Procedures.md ⭐⭐⭐ PL/pgSQL, 사용자 정의 함수
11_Transactions.md ⭐⭐⭐ ACID, BEGIN, COMMIT, 격리 수준
12_Triggers.md ⭐⭐⭐ 트리거 생성 및 활용
13_Backup_and_Operations.md ⭐⭐⭐⭐ pg_dump, 모니터링, 운영
14_JSON_JSONB.md ⭐⭐⭐ JSON 연산자, 인덱싱, 스키마 검증
15_Query_Optimization.md ⭐⭐⭐⭐ EXPLAIN ANALYZE, 인덱스 전략
16_Replication_HA.md ⭐⭐⭐⭐⭐ 스트리밍 복제, 논리 복제, 페일오버
17_Window_Functions.md ⭐⭐⭐ OVER, ROW_NUMBER, RANK, LEAD/LAG
18_Table_Partitioning.md ⭐⭐⭐⭐ Range/List/Hash 파티셔닝
19_Full_Text_Search.md ⭐⭐⭐ tsvector/tsquery, GIN 인덱스, 랭킹, pg_trgm
20_Security_Access_Control.md ⭐⭐⭐⭐ 역할, 행 수준 보안, pg_hba.conf, SSL, 감사 로깅

추천 학습 순서

초급 (SQL 입문)

  1. PostgreSQL 기초 → DB 관리 → 테이블/타입 → CRUD → 조건/정렬

중급 (데이터 분석)

  1. JOIN → 집계와 그룹 → 서브쿼리/CTE → 뷰와 인덱스

고급 (DBA/백엔드)

  1. 함수/프로시저 → 트랜잭션 → 트리거 → 백업/운영

심화 (전문가)

  1. JSON/JSONB → 쿼리 최적화 심화 → 윈도우 함수 → 파티셔닝 → 복제와 고가용성

실습 환경

Docker (권장)

# PostgreSQL 컨테이너 실행
docker run --name postgres-study \
  -e POSTGRES_PASSWORD=mypassword \
  -p 5432:5432 \
  -d postgres:16

# psql 접속
docker exec -it postgres-study psql -U postgres

macOS (Homebrew)

brew install postgresql@16
brew services start postgresql@16
psql postgres

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install postgresql postgresql-contrib
sudo -u postgres psql

psql 기본 명령어

명령어 설명
\l 데이터베이스 목록
\c dbname 데이터베이스 전환
\dt 테이블 목록
\d tablename 테이블 구조
\q psql 종료

관련 자료

to navigate between lessons