Database
키와 인덱스, 조인, 트랜잭션과 로깅, 잠금, 복제 등 DBMS 기본 원리
- 01
E/R 모델 설계 원칙 정리
충실성, 중복 회피, 단순성, 관계 선택, Weak Entity Set까지 E/R 설계에서 지켜야 할 원칙을 예시와 함께 정리한다.
- 02
데이터베이스 키의 종류와 UNIQUE 제약
슈퍼키부터 후보키, 기본키, 대체키, 외래키까지 키의 종류와 암시적 기본키, UNIQUE 제약의 비용을 정리한다.
- 03
인덱스와 B-Tree, 그리고 스캔 방식
인덱스의 개념과 B-Tree·B+Tree 구조, 해시 대신 B-Tree를 쓰는 이유, 테이블 풀 스캔과 인덱스 스캔의 선택 기준을 정리한다.
- 04
JOIN의 종류와 구현 방식
INNER·OUTER JOIN의 차이와 Nested Loop, Sort-Merge, Hash Join의 동작 방식, 인덱스의 영향을 정리한다.
- 05
트랜잭션의 ACID와 DBMS의 복구 전략: UNDO, REDO, WAL
ACID 속성을 짚고, DBMS가 버퍼 관리 정책과 로그로 원자성과 지속성을 보장하는 방식을 정리한다.
- 06
데이터베이스 Lock: 공유 락·배타 락, 낙관적 락·비관적 락
Shared Lock과 Exclusive Lock의 차이, 그리고 충돌을 다루는 두 전략인 낙관적 락과 비관적 락을 정리한다.
- 07
DB 클러스터링, 레플리케이션, 샤딩과 분산 트랜잭션
클러스터링과 레플리케이션의 차이, 2PC와 Saga, 복제 지연 대응(Semi-Sync, MHA), 샤딩 방식을 한 번에 정리한다.
- 08
PostgreSQL Vacuum 이해와 AutoVacuum 튜닝
PostgreSQL의 MVCC에서 Dead Tuple이 쌓이는 이유와 Vacuum 동작, AutoVacuum 실행 조건과 튜닝을 정리한다.