대규모 시스템 설계 기초 · 스터디
알렉스 쉬(Alex Xu)의 『가상 면접 사례로 배우는 대규모 시스템 설계 기초』 1권을 장별로 정리하는 개인 학습 노트입니다. 아래 카드나 좌측 사이드바에서 각 장을 선택해 시작하세요.
목차
- 01
사용자 수에 따른 규모 확장성
단일 서버에서 시작해 수백만 사용자를 지원하는 시스템으로 확장하는 과정. 수직/수평 확장, 로드 밸런서, DB 복제, 캐시, CDN, 무상태 계층, 데이터 센터, 메시지 큐, 로깅·모니터링 등을 단계별로 도입.
- 02
개략적인 규모 추정
back-of-the-envelope 계산 기법. 2의 제곱수, 응답 지연, 가용성 수치를 활용해 QPS, 저장 용량, 대역폭 등을 빠르게 추정.
- 03
시스템 설계 면접 공략법
4단계 접근법 — 문제 이해 및 설계 범위 확정, 개략적 설계안 제시 및 동의, 상세 설계, 마무리. 면접에서 해야 할 일과 하지 말아야 할 일.
- 04
처리율 제한 장치의 설계
Rate Limiter 알고리즘(토큰 버킷, 누출 버킷, 고정 윈도우, 이동 윈도우 로그/카운터)과 분산 환경에서의 동기화, Redis 활용.
- 05
안정 해시 설계
서버 추가/제거 시 재배치를 최소화하는 해시 기법. 해시 링, 가상 노드, 데이터 분산 불균형 해결.
- 06
키-값 저장소 설계
분산 KV 저장소 설계. CAP 정리, 데이터 분할, 복제, 정합성(일관성 모델), 장애 감지, Merkle 트리, 데이터 센터 간 복제.
- 07
분산 시스템을 위한 유일 ID 생성기
다중 마스터 복제, UUID, 티켓 서버, 트위터 Snowflake 방식 비교. 시간·서버 ID·일련번호 비트 배치.
- 08
URL 단축기 설계
bit.ly 같은 단축 URL 서비스. 해시 vs base62 인코딩, 충돌 처리, 리다이렉트 방식(301/302), 캐시.
- 09
웹 크롤러 설계
검색 엔진 인덱싱용 크롤러. URL 프런티어, DNS 조회, robots.txt, 콘텐츠 파싱·저장, 중복 제거, 성능/확장성/안정성/예의성.
- 10
알림 시스템 설계
모바일 푸시(APNs/FCM), SMS, 이메일을 포함한 통합 알림. 이벤트 큐, 재시도, 알림 템플릿, 사용자 설정.
- 11
뉴스 피드 시스템 설계
페이스북 스타일 피드. 발행(write fan-out) vs 읽기(pull) vs 하이브리드, 캐시 계층, 핫 유저 처리.
- 12
채팅 시스템 설계
1:1 / 그룹 채팅, 접속 상태, 메시지 저장·동기화, 푸시 알림. WebSocket, 키-값 저장소, 시퀀스 ID.
- 13
검색어 자동완성 시스템
인기 검색어 자동 제안. 트라이(Trie) 자료구조, 캐싱, 데이터 수집·집계 파이프라인, 실시간 업데이트.
- 14
유튜브 설계
영상 업로드·스트리밍 시스템. 트랜스코딩 파이프라인, CDN, 적응형 비트레이트 스트리밍, 저장소 비용 최적화.
- 15
구글 드라이브 설계
파일 업로드·동기화·공유. 블록 저장소, 버전 관리, 델타 업로드, 알림 서비스, 중복 제거.
- 16
배움은 계속된다
마무리 장. 실제 시스템 아키텍처 사례 링크와 추가 학습 자료.