시스템 디자인
기초 개념 / 문제 풀이 프레임워크
학습 로드맵

시스템 디자인
문제 풀이 프레임워크

바로 박스를 그리면 진행은 빨라 보이지만, 빠진 요구사항이 뒤에서 전체 구조를 바꿉니다. 질문·수치·정본·실패 순서를 고정해 필요한 구성 요소만 남기는 설계 방법입니다.

개념 이해면접 답변운영 관점진도 저장
30초 핵심 요약

프레임워크는 정답 그림이 아니라 판단 순서를 지키는 장치입니다. 요구사항·SLO·규모·데이터 정본을 먼저 확인하고, 실제로 드러난 병목과 복구 목표가 있을 때만 캐시·큐·복제를 추가합니다.

첫 질문누가 무엇을 약속받나?
첫 그림동기·비동기 데이터 흐름
첫 검증장애 중 SLO를 지키는가?
DESIGN DECISION · 설계 판단

구성 요소보다 먼저 어떤 질문 순서를 고정할 것인가?

예시 DAU 100만 명 설계 가정
예시 읽기 피크 약 2,780 QPS 계산 결과
예시 객체 크기 p95 4KB 설계 가정
최종 선택

요구사항 → 규모 → 정본·흐름 → 병목 → 장애 검증

특정 피드 아키텍처를 정답으로 외우지 않습니다. 사용자 약속과 SLO를 고정하고 최소 흐름을 그린 뒤, 확인된 병목과 복구 목표에만 캐시·큐·복제를 붙입니다.

선택 이유

  • 피드·결제·크롤러가 달라도 같은 질문 순서를 재사용할 수 있습니다.
  • 각 구성 요소가 어떤 요구 때문에 존재하는지 추적할 수 있습니다.
  • 대안·깨지는 신호·롤백 조건이 남아 설계 리뷰와 운영 검증을 연결합니다.
포기한 대안

처음부터 캐시·큐·샤딩을 모두 배치

익숙한 그림은 빨리 나오지만 사용자 약속과 첫 병목이 빠져 과설계와 복구 누락을 동시에 만듭니다.

감수한 단점

  • 질문과 가정을 확인하는 시간이 먼저 필요합니다.
  • 불확실한 요구는 미확정 상태와 검증 책임으로 남겨야 합니다.
  • 같은 순서를 써도 주제별 핵심 정본과 실패 경계는 달라집니다.
01 · REQUIREMENTS

답보다 질문을 먼저 고정한다

# 요구사항

“빠르게”, “실시간”, “확장 가능”은 설계 조건이 아닙니다. 핵심 사용자 여정, 정확해야 하는 데이터, 지연·가용성·비용의 우선순위를 질문으로 좁혀야 합니다.

Q1핵심 여정

조회·작성·삭제 중 무엇이 성공해야 제품 가치가 유지되는지 적습니다.

Q2약속의 수치화

p95 지연, 성공률, 반영 지연처럼 관찰 가능한 목표로 바꿉니다.

Q3데이터 경계

접근 권한, 삭제, 보관, 감사가 필요한 필드를 구분합니다.

Q4가정의 등록

확인하지 못한 사실은 출처·검증일·대체 시나리오와 함께 남깁니다.

설계 가정 · 이 예시는 읽기가 쓰기보다 많은 공개 콘텐츠 서비스입니다. 실제 제품의 규정·사용자 행동·목표 수치는 운영 데이터로 대체해야 합니다.
02 · DESIGN LOOP

요구사항을 병목 검증으로 연결한다

# 아키텍처

각 상자는 특정 제품이나 클라우드 서비스를 뜻하지 않습니다. 요구사항이 데이터 경로와 검증 항목으로 바뀌는 순서를 보여 주는 독립적인 설계 지도입니다.

문제 풀이 흐름 SVG DIAGRAM · 가정은 측정으로 교체
요구사항부터 트레이드오프까지 이어지는 시스템 디자인 프레임워크요구사항, 규모 추정, 고수준 아키텍처, 병목 검증, 트레이드오프와 운영 준비가 순서대로 연결되어 있다.요구사항여정 · SLO · 데이터 경계규모 추정QPS · 크기 · 피크 · 여유고수준 아키텍처동기 경로 · 비동기 경로병목·실패포화 · 재시도 · 복구 시간트레이드오프·운영보안 · 관측 · 비용 · 롤백요구사항이 선택의 이유를 만든다실측과 장애 훈련 결과를 다음 가정에 반영
사실과 가정의 분리 · SLO와 오류 예산은 운영 목표를 논의하는 방식입니다. 반면 “피크 12배”나 “5초 내 반영”은 이 서비스의 설계 가정이므로 부하 시험·실측으로 검증합니다.
03 · DATA FLOW

최소 흐름을 먼저 설명한다

# 처리 흐름

예시 콘텐츠 서비스의 쓰기는 인증·검증 후 원본과 이벤트를 기록하고, 비동기 작업자가 후보 목록과 검색 인덱스를 갱신합니다. 읽기는 캐시에서 후보를 가져오고 부족분만 원본으로 보충합니다.

1입력 보호

인증, 권한, 크기, 속도 제한을 엣지와 서비스 경계에서 확인합니다.

2내구성 기록

원본과 전달할 이벤트의 원자성 경계를 명시해 유실을 막습니다.

3비동기 파생

중복 이벤트도 버전·멱등 키로 합쳐 목록과 인덱스를 갱신합니다.

4읽기 보정

캐시 미스 폭주를 제어하고 표시 직전 삭제·권한을 재확인합니다.

04 · TRADEOFFS

무엇을 얻고 무엇을 감수하는가

# 트레이드오프

질문을 줄이면 아키텍처를 빨리 말할 수 있지만 틀린 문제를 잘 설계할 수 있습니다. 이 문서에서는 초반 확인에 시간을 쓰고, 뒤의 구성 요소를 줄이는 쪽을 선택합니다.

선택
강점
대가
결정 신호
동기 fan-out
목록 읽기가 단순
인기 작성자 쓰기 폭발
최신성과 작은 팔로워 집합이 핵심일 때
읽기 시 조합
쓰기 부하가 평탄
읽기 지연과 캐시 복잡도
쓰기 변동이 크고 약간의 지연을 허용할 때
강한 동기 복제
최신 읽기 보장 강화
지연과 가용성 감소 가능
오래된 값이 금전·재고 위험을 만들 때
비동기 복제
경로 격리·낮은 지연
일시적 오래된 결과
피드·검색처럼 보정 가능한 화면일 때
05 · FAILURE MODES

복구가 아니라 검증까지 설계한다

# 장애 대응
!캐시 stampede

만료된 인기 키로 인해 같은 원본 읽기가 동시에 몰리고 p99가 급증합니다.

대응 · single-flight, TTL jitter, 음성 캐시, 원본 요청 상한을 두고 미스 폭주 부하 시험을 합니다.
이벤트 작업자 지연

새 게시물, 검색, 삭제 전파가 늦어져 파생 데이터가 원본과 벌어집니다.

대응 · oldest event age 경보, 재처리, 멱등 적용, 읽기 시 원본 보정으로 보호합니다.
저장소 failover

리더 장애와 재선출 동안 읽기 오류·복제 지연이 증가할 수 있습니다.

대응 · 실패 전환 훈련, 제한된 캐시 응답, 데이터 최신성 확인 후 트래픽 복귀를 실행합니다.
핫 파티션

특정 사용자나 키 하나가 균등한 전체 평균을 무력화하고 한 샤드만 포화시킵니다.

대응 · 키별 QPS 관측, 요청 병합, 키 분할, 일부 사용자 저하 응답을 준비합니다.
06 · OPERATIONS

운영 조건까지 문서에 남긴다

# 운영
영역
관찰할 신호
운영 결정
놓치기 쉬운 제약
보안·개인정보
권한 거부, 삭제 전파, 접근 감사
최소 권한·비밀 회전·데이터 분류
본문·토큰을 로그·추적 속성에 넣지 않음
관측 가능성
성공률, p95/p99, lag, cache miss
증상 중심 경보와 runbook
평균·CPU 하나로 SLO 판단 금지
비용
egress, 복제, 로그 보관, 유휴 용량
요청·바이트·보관 기간 단위 모델
저비용 선택이 복구 목표를 깨면 총비용 증가
변경·복구
배포 오류, rollback 시간, 오류 예산
점진 배포·중단 기준·복구 훈련
자동화도 권한과 되돌림 경계를 가져야 함
공식 관점 · Google SRE의 SLO 가이드와 AWS Well-Architected의 Reliability·Cost Optimization 자료는 목표, 복구, 비용을 반복적으로 측정하고 개선하는 운영 원칙을 제공합니다.
면접 모드 · 추가 질문05:00
“읽기 중심 피드 서비스에서 게시 후 수 초 내 반영을 약속해야 합니다. 어떤 요구사항을 확인하고, 어떤 경로를 동기·비동기로 나누며, 캐시 미스 폭주와 작업자 지연을 어떻게 감지·완화·검증하겠습니까?”
요구사항과 SLO단순 흐름과 병목장애·운영 검증
답변 구조 보기

면접 답변은 5~7분 안에 사고 순서를 보여 주는 것이 목표입니다. 첫 1분에는 핵심 기능과 한두 개의 비기능 목표를 확인합니다. 다음 1분에는 읽기·쓰기 비율과 피크를 가정하고, 가정임을 명시합니다. 그 뒤 클라이언트에서 저장소까지의 최소 흐름을 그리고, 가장 먼저 포화될 지점을 하나 골라 깊게 설명합니다.

이후에는 데이터 모델, API의 멱등성, 캐시·큐·복제의 역할을 흐름에 붙입니다. 마지막에는 장애 시나리오 하나, 관측 지표, 보안 또는 비용의 제약, 대안 하나를 짧게 정리합니다. 면접관이 “왜 큐가 필요한가”를 물으면 유행하는 구성 요소 목록 대신 “쓰기 경로의 응답 시간을 짧게 유지하고, 작업 지연을 관측·재처리하기 위해”라고 원인과 검증 방법으로 답합니다.

답변 뼈대는 다음처럼 기억할 수 있습니다. “요구사항을 이렇게 해석했습니다. 이 규모에서는 이 단순 구조가 충분합니다. 이 경로의 병목은 이것이므로 이 보호 장치를 둡니다. 이 선택은 이 일관성/비용을 포기합니다. 이 지표와 장애 훈련으로 가정을 검증하겠습니다.”

이번 선택: 요구사항 → 규모 → 정본과 흐름 → 첫 병목 → 장애 검증 순으로 답한다. 깨지는 신호: 구성 요소 이름은 많은데 사용자 약속과 실패 시 행동을 설명하지 못한다. 다음 검증: 같은 순서를 결제·크롤러 문제에 다시 적용해 피드 전용 답이 섞이지 않는지 확인한다.

INTERVIEW ↔ PRACTICE · 면접과 실무의 차이

프레임워크와 피드 예시를 분리해 다른 문제에 재사용하기

INTERVIEW · 면접

부품 목록이 아니라 질문과 결정의 인과를 보여 줍니다.

  • 핵심 사용자 여정과 SLO를 먼저 확인합니다.
  • 정본과 최소 읽기·쓰기 흐름을 그립니다.
  • 첫 병목 하나와 장애 검증 기준을 깊게 설명합니다.
PRACTICE · 실무

같은 순서를 결제와 크롤러에도 적용해 편향을 찾습니다.

  • 요구와 연결되지 않은 상자를 제거합니다.
  • 가정마다 날짜·소유자·검증 방법을 남깁니다.
  • 결정마다 깨지는 신호와 롤백 조건을 기록합니다.
NEXT FOUNDATION0에서 수백만 사용자까지 확장
EDITORIAL NOTES

작성·검토·참고 자료

콘텐츠 원칙
이 문서는 독립적으로 재작성한 한국어 학습 자료입니다. 사실과 학습용 설계 가정을 구분합니다.
작성·기술 검수
프로젝트 운영자가 직접 작성·기술 검토했습니다. 주제별 공식·1차 자료와 명시적인 설계 가정을 확인하며, 독립적인 제3자 검수가 아닙니다. 경력 범위와 검수 원칙 보기
최종 검토
예상 학습 시간
20분

참고 자료

  • Google SRE, Service Level Objectives — SLO와 오류 예산을 설계·운영 목표로 다루는 공식 가이드입니다.
  • Google SRE, Monitoring Distributed Systems — 증상 중심 모니터링과 운영 지표를 다루는 1차 자료입니다.
  • AWS, AWS Well-Architected Reliability Pillar — 장애 복구, 변경 관리, 수요 관리에 관한 공식 프레임워크입니다.
  • AWS, AWS Well-Architected Cost Optimization Pillar — 비용을 지속적으로 측정·개선하는 공식 가이드입니다. 이 원고의 일반 원칙은 위 공식 자료를 참고해 독립적으로 재구성했습니다. 제품 규모, 수치, SLO, 보존 기간, 컴포넌트 선택은 별도로 표시한 설계 가정이며 공급자 보장이나 법률 자문이 아닙니다.

사실 오류·출처 정정은 문의·정정 페이지로 알려 주세요.