이 단계에서 얻는 것
프레임워크나 라이브러리 사용법을 넘어, **시스템의 근본 원리(First Principles)**를 파고듭니다.
왜 분산 시스템에서 데이터가 깨지는지, DB가 디스크에 어떻게 쓰는지 이해하면 “해결할 수 없는 문제"와 “해결할 수 있는 문제"를 구분할 수 있게 됩니다.
- 데이터 정합성(Consistency): Eventual Consistency가 실제 시스템에서 어떤 부작용을 낳는지, 어떻게 제어하는지 이해합니다.
- 스토리지 엔진: B-Tree와 LSM-Tree의 차이를 알고, Write-heavy 워크로드에 맞는 DB를 선정할 수 있습니다.
- 분산 합의: 리더가 죽었을 때 시스템이 어떻게 합의하고 복구하는지 원리를 봅니다.
커리큘럼 (Topic List)
1. 분산 시스템 이론 (Distributed Systems)
- Consistency Models: Linearizability(Strong) vs Sequential vs Eventual Consistency.
- CAP & PACELC: 단순히 “3개 중 2개"가 아니라, 지연(Latency)과 정합성(Consistency)의 트레이드오프 파악.
- Clock Synchronization: 물리적 시간의 한계와 Logical Clock (Lamport, Vector Clock).
2. 데이터베이스 내부 (Database Internals)
- Storage Engines:
- B-Tree: Read에 유리한 전통적 구조 (MySQL InnoDB).
- LSM-Tree (Log Structured Merge): Write에 유리한 구조 (Cassandra, RocksDB).
- Transaction & WAL: Crash Recovery를 위한 Write Ahead Log의 역할.
3. 운영체제와 네트워크 심화 (OS & Network)
- I/O Models: Blocking, Non-blocking, Multiplexing (Epoll), BIO/NIO/AIO 비교.
- Zero Copy: Kafka가 빠른 이유 (sendfile 시스템 콜).
이 단계의 핵심 주제
- 분산 정합성/합의(Consistency, Consensus)
- DB 스토리지 엔진(B-Tree/LSM, WAL)
- OS/네트워크 실행 모델(I/O, Zero Copy)
미니 실습
- WAL 시뮬레이션: 장애 시 복구 흐름을 순서도로 정리
- CAP/PACELC 케이스 분석: 서비스 하나를 골라 트레이드오프 정리
- Zero Copy 추적: sendfile 흐름을 다이어그램으로 정리
완료 기준
- “왜 깨졌는지”를 1차 원리로 설명할 수 있다
- 스토리지 엔진 선택 기준을 말로 설명할 수 있다
- 합의/리더 선출의 핵심 개념을 정리할 수 있다
추천 학습 자료
- 책: Data-Intensive Applications (데이터 중심 애플리케이션 설계) - 팀장급 필독서
- 논문: Google Spanner, Amazon Dynamo, Raft Consensus