애플리케이션 문제를 데이터 구조와 성능 문제로 읽어내는 감각
설계, SQL, 인덱스, 트랜잭션, Redis까지 실무 데이터 사고력을 다룹니다.
🎯 완료 후 할 수 있는 것
📋 커리큘럼
총 37개 모듈01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
🧪 실습 Labs
개념을 익혔다면 직접 손으로 해보는 시간. 서버에서 따라하고 verify.sh로 검증하세요.
PostgreSQL 설치 및 기본 설정
초급Linux 서버에 PostgreSQL을 설치하고, 데이터베이스와 사용자를 생성한 뒤 외부 접속이 가능하도록 설정한다.
PostgreSQL 슬로우 쿼리 진단 및 최적화
중급pg_stat_statements와 EXPLAIN ANALYZE를 활용해 슬로우 쿼리를 찾아내고, 인덱스를 생성해 성능을 개선한다.
쿼리가 100만 건을 다 뒤진다 — PostgreSQL 인덱스 설계
중급EXPLAIN ANALYZE로 Seq Scan을 발견하고, 단일·복합 인덱스를 설계해 주문 조회 쿼리를 100배 이상 빠르게 만든다. 인덱스 오버헤드와 VACUUM ANALYZE까지 다룬다.
Redis로 API 응답속도 10배 줄이기 — Cache-Aside 패턴 실습
중급DB 쿼리가 느려 API가 1초 넘게 걸린다. Redis를 도입해 Cache-Aside 패턴을 구현하고, TTL 전략과 캐시 무효화(Invalidation)까지 다룬다. KEYS vs SCAN, 핫키 문제, 캐시 스탬피드를 실무 관점에서 이해한다.
PostgreSQL 백업·복구 — pg_dump/pg_restore
중급pg_dump로 운영 DB 전체 백업 후 새 서버에 pg_restore로 복구하고, row count 비교로 데이터 정합성을 검증한다.
PostgreSQL Lock·Deadlock — pg_stat_activity 진단
중급pg_stat_activity와 pg_locks를 조인해 락 대기 세션을 찾아내고, 데드락을 재현해 로그에서 원인을 확인하고 해결한다.
DB 마이그레이션 판단 — MySQL → PostgreSQL 시나리오
중급MySQL 스키마 분석부터 pgloader 테스트 마이그레이션, 롤백 계획까지 MySQL→PostgreSQL 마이그레이션의 전 과정을 설계하고 판단한다.
인덱스 튜닝 — EXPLAIN으로 Seq Scan을 Index Scan으로
중급EXPLAIN ANALYZE로 실행 계획을 읽고, 인덱스 추가 전후 비용·실행시간을 정량 비교한다. 복합 인덱스 컬럼 순서, 커버링 인덱스, 사용되지 않는 인덱스 제거까지 다룬다.
슬로우 쿼리 범인 찾기 — pg_stat_statements 랭킹
중급DB 전체가 느릴 때 pg_stat_statements로 총 소요시간·호출 횟수 기준으로 가장 비싼 쿼리를 순위로 특정하고, EXPLAIN으로 원인을 확인해 개선한다.
트랜잭션 락·데드락 — 격리수준·lock_timeout·SKIP LOCKED
고급데드락을 재현하고, 행 접근 순서 고정으로 예방한다. lock_timeout으로 무한 대기를 막고, SELECT FOR UPDATE NOWAIT/SKIP LOCKED로 경합 회피 패턴을 익힌다.
복제 지연 진단 — pg_stat_replication·LSN·lag
고급Primary에서 pg_stat_replication으로 복제 상태를 보고, LSN 차이와 replay_lag로 지연을 정량화한다. Replica에서 지연 시간을 측정하고 원인을 좁혀 대응한다.
커넥션 풀 고갈 진단 — max_connections·idle in transaction
중급pg_stat_activity로 연결 수와 상태 분포를 확인해 풀 고갈 원인을 찾는다. idle in transaction 누수와 max_connections 한계를 구분하고, 풀러(PgBouncer) 관점으로 대응한다.
VACUUM·테이블 부풀림 — dead tuple과 bloat 진단
중급MVCC가 만드는 dead tuple과 테이블 bloat를 pg_stat_user_tables로 진단하고, VACUUM/autovacuum 동작을 이해해 부풀림을 회수한다.