참고 : https://designgurus.substack.com/p/30-system-design-interview-questions
초급 단계: 1~10번 문제
이 질문들은 분산 시스템에 대한 기본적인 사고력을 평가합니다. 범위가 명확하고 구성 요소가 제한적이며, 초급에서 중급 수준(L3~L4)의 지원자에게 적합합니다.
대부분은 심도 있는 인프라 전문 지식 없이도 35분간의 인터뷰를 통해 합리적으로 설계할 수 있습니다.
1. TinyURL이나 Bit.ly와 같은 URL 단축 서비스를 설계하세요.
이 문제가 어려운 이유: 이 문제는 시스템 설계에서 가장 보편적인 질문입니다. 거의 모든 주요 준비 자료에 등장하며, Google, Amazon, Meta를 비롯한 수십 개의 회사에서 출제된 것으로 알려져 있습니다. 범위가 작고 입력과 출력이 명확하여 시스템 설계의 “Hello World”와 같은 형태입니다.
테스트된 주요 개념: Base62/Base64 인코딩, 해싱 및 충돌 처리, 키-값 저장소 설계, 301 및 302 리디렉션, 읽기 작업이 많은 워크로드에서의 캐싱, 데이터베이스 파티셔닝, 분석 추적 및 용량 예측.
2. 속도 제한기 설계

이 문제가 어려운 이유: 명확한 목표 하나만 있는 좁은 범위. 아마존, 구글, 우버, 스트라이프, 마이크로소프트, 아틀라시안, 핀터레스트 등 여러 기업에서 보고되었으며, 다양한 기업에서 공통적으로 출제되는 질문 중 하나입니다. 복잡한 멀티 서비스 아키텍처를 요구하지 않고 API 인프라에 대한 이해도를 평가합니다.
테스트에 사용된 주요 개념: 토큰 버킷, 리키 버킷, 슬라이딩 윈도우, 고정 윈도우 카운터 알고리즘; 분산 상태 관리를 위한 Redis; HTTP 429 응답; 다양한 계층(클라이언트, API 게이트웨이, 애플리케이션)에서의 속도 제한; 분산 환경에서의 경쟁 조건.
3. 분산 캐시 설계
이 문제가 어려운 이유: 명확한 장단점이 있는 집중적인 인프라 문제입니다. 더 큰 시스템 설계를 시작하기 전에 캐싱 기본 사항에 대한 이해도를 평가하기 위한 기초 질문으로 자주 출제됩니다.
테스트된 주요 개념: 키 배포를 위한 일관성 해싱, 캐시 제거 정책(LRU, LFU, TTL), 캐시 사이드 vs. 쓰기 스루 vs. 쓰기 백 전략, Redis 및 Memcached 아키텍처, 캐시 스탬피드 방지, 핫 키 처리.
4. 디자인 페이스트빈
이러한 어려움이 발생하는 이유: URL 단축 서비스와 유사하지만 저장 공간에 대한 추가적인 고려 사항이 있습니다.
제한된 기능 범위로 복잡성을 관리할 수 있습니다.
테스트된 주요 개념: 텍스트 콘텐츠를 위한 객체/블롭 스토리지, 고유 URL 생성, 만료 및 정리 정책, 읽기 중심 작업 최적화, 접근 제어 및 콘텐츠 크기 제한.
5. 분산 시스템을 위한 고유 ID 생성기 설계
난이도가 높은 이유: 범위가 제한된 순수 인프라 관련 문제입니다. 전체 시스템 아키텍처를 요구하지 않고 분산 조정에 대한 이해도를 평가합니다.
테스트 대상 주요 개념: 트위터 스노우플레이크 ID 아키텍처, UUID 장단점, 데이터베이스 자동 증가 제한 사항, 시계 동기화 및 NTP 드리프트, 순서 보장, 타임스탬프가 포함된 ID.
6. 알림 시스템 설계
난이도가 높은 이유: 범위는 중간 정도이지만 각 구성 요소는 간단합니다. Google, Amazon, Airbnb, Pinterest, Uber, Instacart 에서 보고되었습니다 .
알고리즘의 복잡성을 크게 고려하지 않고도 다채널 사고 능력을 테스트합니다.
테스트된 주요 개념: 푸시 알림 서비스(APN, FCM), SMS 및 이메일 전송, 메시지 큐 아키텍처, 재시도 및 오류 처리, 사용자 환경 설정 관리, 알림 전송 속도 제한, 템플릿 시스템.
7. 웹 크롤러를 설계하세요
이 문제가 어려운 이유: 4대 주요 입시 플랫폼 모두에서 공통적으로 등장하는 고전적인 문제입니다.
핵심 알고리즘(BFS)은 간단하지만, 분산 버전은 상당한 복잡성을 도입합니다.
테스트된 주요 개념: BFS/DFS 탐색 전략, URL 경계 및 우선순위 지정, 예의 정책 및 robots.txt, URL 중복 제거(블룸 필터, 체크섬), 분산 크롤링 조정, DNS 해상도 캐싱, 그리고 함정 처리(무한 루프, 스파이더 함정).
8. 콘텐츠 전송 네트워크(CDN)를 설계합니다.
난이도가 높은 이유: 이는 명확한 아키텍처 구성 요소를 가진, 잘 알려진 인프라 패턴입니다. 거의 모든 대규모 시스템에서 사용되는 핵심 구성 요소에 대한 지식을 테스트합니다.
테스트된 주요 개념: 엣지 서버 배치, 캐시 무효화 전략(TTL, 삭제, 버전 관리), 오리진 서버 풀 방식 vs. 푸시 방식, DNS 기반 지리적 라우팅, 로드 밸런싱, TLS 종료 및 비용 최적화.
9. 키-값 저장소 설계
왜 이렇게 어려운가: 기본 버전은 간단하지만, 이 질문은 면접관이 얼마나 깊이 파고드는지에 따라 난이도가 달라진다.
초급 단계에서는 기본적인 저장 및 검색 개념을 테스트합니다.
테스트된 주요 개념: CAP 정리의 장단점, 파티셔닝을 위한 일관성 해싱, 데이터 복제 전략, 장애 감지를 위한 가십 프로토콜, 일관성 검사를 위한 머클 트리, 읽기/쓰기 경로, 조정 가능한 일관성(쿼럼 읽기/쓰기).
10. Kafka와 같은 발행/구독 메시징 시스템을 설계하세요.
이러한 어려움이 발생하는 이유: 핵심 추상화 개념(게시자, 주제, 구독자)은 직관적입니다. 복잡성은 전달 보장 및 확장성에서 발생하지만, 상위 수준 설계는 기본적인 분산 시스템 지식을 가진 지원자라면 쉽게 접근할 수 있습니다.
테스트된 주요 개념: 토픽 및 파티션, 브로커 및 복제, 소비자 그룹 및 오프셋 관리, 전달 의미론(최대 한 번, 최소 한 번, 정확히 한 번), 메시지 순서 보장 및 역압 처리.
중급 단계: 11~20번 문제
이러한 질문들은 의미 있는 절충안을 고려한 다중 구성 요소 시스템 설계를 요구합니다. 이는 모호성을 헤쳐나가고, 팬아웃 전략에 대해 추론하고, 실시간 요구 사항을 처리하고, 제약 조건 하에서 아키텍처 결정을 내리는 능력을 시험합니다.
중급에서 고급 수준의 지원자(L4~L5)에게 적합합니다.
11. WhatsApp이나 Facebook Messenger와 같은 채팅 시스템을 설계하세요.
이러한 어려움이 발생하는 이유: 주요 소스 모두에서 나타나며 Meta, Google 및 여러 FAANG 기업 에서 보고되었습니다 . 실시간 전달 요구 사항, 온라인/오프라인 상태 관리 및 그룹 채팅 메커니즘으로 인해 난이도가 중급 수준으로 높아집니다. 여러 통신 프로토콜을 평가해야 합니다.
테스트된 주요 개념: WebSocket 연결 및 장기 폴링, 비동기 전달을 위한 메시지 큐, 온라인 상태 및 하트비트 시스템, 종단 간 암호화, 메시지 순서 지정 및 전달 확인, 그룹 채팅 분산, 푸시 알림 대체 기능, 미디어 메시지 처리.
12. 페이스북이나 트위터 타임라인과 같은 뉴스피드 시스템을 설계하세요
이러한 어려움이 발생하는 이유: 핵심 과제는 팬아웃 문제, 즉 수백만 명의 팔로워를 보유한 사용자가 콘텐츠를 게시하는 “유명인 문제”입니다. 이는 확장성 측면에서 매우 어려운 결정으로 이어집니다. 피드 아키텍처를 이해하는 데 있어 가장 중요한 질문이기도 합니다.
테스트된 주요 개념: 쓰기 시 팬아웃과 읽기 시 팬아웃 (핵심적인 절충점), 유명인 계정을 위한 하이브리드 접근 방식, 피드 순위 알고리즘, 사전 계산된 피드 캐싱, 소셜 그래프 탐색, 콘텐츠 중복 제거 및 실시간 피드 업데이트.
13. 검색 자동 완성/입력 예측 시스템 설계
이러한 어려움이 발생하는 이유: Google, Meta, Netflix 등에서 보고되었습니다 . 특수한 데이터 구조(트라이)와 실시간 성능 요구 사항에 대한 이해가 필요합니다.
분산 캐싱 계층과 순위 알고리즘은 단순 접두사 일치 이상의 의미 있는 복잡성을 추가합니다.
테스트된 주요 개념: 트라이 데이터 구조 및 접두사 매칭, 빈도 기반 순위 지정, 상위 제안의 분산 캐싱, 실시간 업데이트 대 오프라인 계산, 개인화, 다국어 지원 및 지연 시간 요구 사항( <100ms 응답 시간).
14. 유튜브 디자인
이러한 어려움이 발생하는 이유: 비디오 트랜스코딩 파이프라인, 적응형 비트레이트 스트리밍 및 글로벌 콘텐츠 전송은 저장, 처리 및 전송 전반에 걸친 폭넓은 지식을 요구하는 다층적인 문제를 만들어냅니다.
테스트된 주요 개념: 비디오 업로드 및 트랜스코딩 파이프라인(DAG 기반), 적응형 비트레이트 스트리밍(HLS/DASH), 비디오 전송을 위한 CDN 아키텍처, 비디오 파일용 블롭 스토리지, 메타데이터 데이터베이스 설계, 썸네일 생성, 추천 엔진 통합 및 저작권 감지.
15. Google Drive 또는 Dropbox 디자인하기
이러한 어려움이 발생하는 이유: 구글, 메타, 아마존, 마이크로소프트, 그리고 드롭박스 자체 에서도 보고된 문제입니다 . 여러 기기에서 일관성을 유지하고 충돌을 해결하는 파일 동기화 문제는 단순한 파일 저장보다 훨씬 더 복잡합니다.
테스트된 주요 개념: 파일 분할 및 중복 제거, 동기화 에이전트 및 충돌 해결(마지막 작성자 우선 vs. 병합), 블록 수준 저장소, 메타데이터 서비스, 업로드/다운로드용 사전 서명된 URL, 변경 알림 서비스, 버전 관리 및 오프라인 편집 지원.
16. 인스타그램 디자인
난이도가 높은 이유: IGotAnOffer가 Glassdoor에 올라온 100건 이상의 보고서를 분석한 결과 , Meta에서 가장 많이 보고된 시스템 설계 질문입니다 . 사진/비디오 저장, 피드 생성, 소셜 기능을 모두 포함하며, 페이스북 전체를 설계하는 것보다 제약 조건이 적어 적절한 중간 난이도 과제입니다.
테스트된 주요 개념: 사진 및 짧은 동영상 저장 파이프라인, 미디어 전송용 CDN, 뉴스 피드 생성(팬아웃 전략), 팔로워/팔로잉 그래프, 스토리 기능(시간 제한이 있는 임시 콘텐츠), 탐색/발견 페이지, 좋아요 및 댓글 시스템, 콘텐츠 검토.
17. 우버 또는 리프트 디자인하기
이러한 어려움이 발생하는 이유: 우버, 메타, 그리고 여러 FAANG 기업 에서 보고되고 있는 문제입니다 . 실시간 위치 추적, 운전자-승객 매칭, 그리고 예상 도착 시간 계산은 엄격한 지연 시간 요구 사항을 충족해야 하는 복잡한 다중 서비스 시스템을 구성합니다.
테스트된 주요 개념: 지리공간 인덱싱 (지오해싱, H3 헥사곤, 쿼드트리), 웹소켓을 통한 실시간 위치 추적, 운전자-탑승자 매칭 알고리즘, 그래프 알고리즘을 이용한 예상 도착 시간(ETA) 계산, 할증 요금 메커니즘, 여정 상태 머신, 결제 시스템 통합 및 배차 서비스 설계.
18. Yelp와 같은 근접/위치 기반 서비스를 설계하세요
난이도가 높은 이유: 우버보다 (실시간 추적 기능이 없는 등) 더 집중적인 문제이지만, 지리 공간 데이터 쿼리 문제는 결코 간단하지 않습니다. 많은 응시자들이 접해보지 못한 공간 데이터 구조에 대한 전문 지식을 요구합니다.
테스트된 주요 개념: 지오해싱 및 정밀도 수준, 쿼드트리 구성 및 쿼리, 데이터베이스의 공간 인덱싱(PostGIS, Elasticsearch), 읽기 중심 최적화, 비즈니스 프로필 저장, 검색 반경 처리, 관련성 및 거리에 따른 결과 순위 지정.
19. 틱톡 디자인
이러한 어려움이 발생하는 이유: FAANG 기업들에서 점점 더 많이 제기되는 현대적인 질문 (2024~2026년). 유튜브와 유사한 비디오 처리 문제와 소셜 그래프보다 콘텐츠 검색을 우선시하는 추천 중심 아키텍처를 결합한 문제입니다.
테스트 대상 주요 개념: 단편 비디오 업로드 및 처리 파이프라인, 핵심 제품으로서의 추천 엔진 (단순 기능이 아닌), 대규모 콘텐츠 검열, 비디오 전송용 CDN, 크리에이터 도구 및 분석, 비디오 합성이 필요한 듀엣/붙이기 기능, 그리고 바이럴 마케팅 메커니즘.
20. 호텔 예약 시스템을 설계하세요
이러한 어려움이 발생하는 이유: 아마존, Booking.com, Square 등에서 보고된 바 있습니다 . 핵심 과제는 중복 예약 방지입니다. 이는 높은 경쟁 환경에서 동시성 제어, 분산 트랜잭션 및 재고 관리에 대한 이해도를 시험하는 문제입니다.
테스트 대상 주요 개념: 재고 관리 및 예약 가능 일정, 중복 예약 방지 (낙관적 예약 vs. 비관적 예약 잠금), 예약 관련 ACID 거래, 위치/날짜/가격 검색, 초과 예약 전략, 결제 보류 및 확인 절차, 취소 정책.
고급 단계: 21~30번 문제
이러한 질문들은 분산 시스템, 합의 프로토콜, 저지연 아키텍처 또는 복잡한 다자간 조정에 대한 심도 있는 전문 지식을 요구합니다. 요구사항이 모호하고, 여러 가지 어려운 선택 사항들을 동시에 해결해야 하므로, 시니어 엔지니어부터 스태프 엔지니어(레벨 5~6 이상)에게 적합합니다.
면접관들은 지원자들이 실패 원인, 규제 제약, 혁신적인 접근 방식에 대해 논의할 것을 기대합니다.
21. 구글 지도 디자인
이러한 어려움이 발생하는 이유: 구글과 우버 에서 보고된 바 있습니다 .
그래프 알고리즘, 지리 공간 데이터 관리, 실시간 교통 정보 통합 및 대규모 지도 타일 제공을 결합하여 가장 광범위한 시스템 설계 문제 중 하나를 해결합니다.
경로 설정 엔진(수십억 개의 도로 구간에 대한 다익스트라/A* 알고리즘) 자체만으로도 상당한 하위 문제입니다.
테스트된 주요 개념: 경로 설정을 위한 그래프 알고리즘(다익스트라 알고리즘, A* 알고리즘, 축소 계층 구조), 다양한 확대/축소 수준에서의 지도 타일 렌더링 및 제공, 지오코딩 및 역지오코딩, 실시간 교통 데이터 통합, 실시간 교통 정보를 활용한 예상 도착 시간(ETA), 단계별 내비게이션, 오프라인 지도, 경로 설정을 위한 사전 계산 전략.
22. Google Docs와 같은 공동 편집 서비스를 설계하세요
이러한 어려움이 발생하는 이유: Meta와 Google 에서 보고된 바와 같이 , 실시간 충돌 해결 문제는 실제로 매우 어렵습니다.
지원자는 연구 수준의 주제인 운영 변환(OT) 또는 충돌 없는 복제 데이터 유형(CRDT) 중 하나를 반드시 이해해야 합니다. 이는 시니어 엔지니어와 중간급 엔지니어를 구분하는 기준이 됩니다.
테스트된 주요 개념: 충돌 해결을 위한 운영 변환(OT) 또는 CRDT , 실시간 동기화를 위한 WebSocket 연결, 문서 버전 관리 및 기록, 커서 위치 공유, 권한 모델, 오프라인 편집 및 최종 동기화, 서식 있는 텍스트 서식 일관성 등이 포함됩니다.
23. Stripe와 같은 결제 시스템을 설계하세요
이러한 어려움이 발생하는 이유: Stripe, Amazon, PayPal, Capital One 등에서 보고된 바 있습니다 . 재무 정확성 요건(자금이 절대 분실되거나 중복될 수 없음), 외부 결제 처리 업체 통합, 그리고 규정 준수라는 여러 요소가 결합되어 매우 어려운 과제가 되고 있습니다.
테스트된 주요 개념: 결제 재시도에 대한 멱등성 , 복식부기/원장 설계, 결제 상태 머신(대기 중 → 승인됨 → 처리됨 → 완료됨), 조정 프로세스, PCI DSS 준수, 사기 탐지 통합, 다중 통화 지원 및 웹훅 기반 비동기 알림.
24. 증권 거래소를 설계하세요
이러한 어려움이 발생하는 이유: 극도로 낮은 지연 시간 요구 사항( 주문 일치에 마이크로초 수준 )으로 인해 아키텍처가 근본적으로 바뀌기 때문입니다. 기존의 데이터베이스로는 핵심 경로를 처리할 수 없습니다.
응시자가 초저지연 시스템에 대해 추론할 수 있는지 여부를 테스트합니다.
테스트된 주요 개념: 주문 매칭 엔진 (가격-시간 우선순위), 주문장 데이터 구조(가격 수준별 정렬), 시장 데이터 배포(멀티캐스트), 저지연 아키텍처(커널 바이패스, FPGA), 위험 검사, 시장가 주문 대 지정가 주문, 그리고 결정론적 재생을 위한 시퀀서.
25. Kafka와 같은 분산 메시지 큐를 설계하세요.

이러한 어려움이 발생하는 이유: 발행/구독 개념 자체는 간단하지만(질문 10), 브로커 클러스터 전체에 걸쳐 지속성, 순서 보장 및 정확한 한 번 전달을 보장하는 분산 인프라를 설계하는 것은 어려운 분산 시스템 문제입니다.
테스트된 주요 개념: 브로커 클러스터 관리, ISR(동기화 복제본)을 사용한 파티션 복제, 파티션 리더 선출, 소비자 그룹 재균형 조정, 정확히 한 번 전달 의미 체계 , 로그 압축, 메시지 보존 정책 및 부하 시 역압 처리.
26. Zoom과 같은 화상 회의 시스템을 설계하세요.
이러한 어려움이 발생하는 이유: 여러 참가자가 참여하는 실시간 오디오/비디오는 엄격한 지연 시간 제약( 종단 간 150ms 미만 )을 발생시킵니다.
SFU와 MCU 중 어떤 아키텍처를 선택할지는 품질, 비용 및 확장성에 중대한 영향을 미칩니다.
테스트된 주요 개념: WebRTC 프로토콜 스택, 선택적 전달 장치(SFU)와 다중 지점 제어 장치(MCU) 비교, 비디오용 적응형 비트 전송률, 시뮬캐스트(다중 품질 계층 전송), 화면 공유, 암호화를 위한 SRTP, NAT 트래버스를 위한 TURN/STUN, 녹화 및 전사, 네트워크 지터 처리.
27. S3와 유사한 객체 저장소 설계
이러한 어려움이 발생하는 이유: 99.999999999%(11개의 나인)의 내구성을 달성하는 스토리지를 설계하려면 소거 코딩, 데이터 배치 및 장애 영역에 대한 심층적인 지식이 필요합니다. 이는 순수한 분산 시스템 엔지니어링 분야입니다.
테스트된 주요 개념: 내구성 확보를 위한 이레이저 코딩, 장애 영역 전반에 걸친 데이터 배치(랙 인식, 가용 영역 인식), 메타데이터 서비스 설계, 객체 분산을 위한 일관된 해싱, 가비지 컬렉션, 버전 관리, 수명 주기 정책, 대용량 객체에 대한 멀티파트 업로드.
28. DoorDash나 Uber Eats와 같은 음식 배달 서비스를 디자인하세요.
이러한 어려움이 발생하는 이유는 무엇일까요? 고객, 레스토랑, 배달원이 참여하는 3자 시장이며, 실시간 조정이 필요하고, 복잡한 상태 머신과 여러 개의 동시 작업 흐름이 존재하기 때문입니다.
레스토랑 준비 시간이라는 변수 때문에 우버보다 더 복잡합니다.
테스트된 주요 개념: 3자 시장 조정, 주문 상태 머신(주문 → 승인 → 준비 → 완료 → 픽업 → 배송), 배송 및 일괄 처리 최적화 , 실시간 운전자 추적, 레스토랑 통합 및 메뉴 관리, 배송 시간 예측(주방 준비 + 이동 시간), 수요 급증/동적 가격 책정.
29. 코드 배포 시스템 설계
난이도가 높은 이유: 이 문제는 많은 응시자들이 부족한 운영 시스템 지식을 테스트합니다. CI/CD 파이프라인, 롤백 전략, 점진적 배포는 일반적인 교과서 주제가 아닙니다.
테스트된 주요 개념: 빌드 서비스 및 아티팩트 저장소, 카나리 배포 및 점진적 롤아웃 , 블루-그린 배포 전략, 롤백 메커니즘, 상태 점검 및 자동 롤백 트리거, 종속성 관리, 다중 지역 배포 조정, 기능 플래그.
30. 구글의 Chubby와 같은 분산 잠금 서비스를 설계하세요.
난이도가 높은 이유: 이 문제는 분산 시스템에서 가장 어려운 개념 중 하나인 합의 프로토콜(Paxos 또는 Raft) 에 대한 이해를 요구합니다 . 응시자는 스플릿 브레인 시나리오, 네트워크 분할, 장애 발생 시의 정확성 유지 등에 대해 논리적으로 추론할 수 있어야 합니다.
테스트된 주요 개념: Paxos 또는 Raft 합의 프로토콜 , 리더 선출, TTL을 사용한 임대 기반 잠금, 오래된 잠금을 방지하기 위한 펜싱 토큰, 하트비트를 사용한 세션 관리, 네트워크 분할 및 스플릿 브레인 처리, 읽기/쓰기 쿼럼, 선형화 가능/순차적 일관성.
이 목록을 전략적으로 활용하는 방법
난이도 단계는 경력 수준에 따라 결정됩니다. 초급 질문은 L3~L4 면접에, 중급 질문은 L4~L5에, 고급 질문은 L5~L6 이상에 해당합니다 .
30개 질문 전체에서 세 가지 구조적 패턴이 나타난다.
첫째, 모든 문제는 상충 관계 추론 능력을 평가합니다.
정답은 하나가 아니며, 면접관은 지원자가 상충하는 제약 조건(일관성 대 가용성, 지연 시간 대 처리량, 비용 대 신뢰성)을 어떻게 조율하는지 평가합니다.
둘째, 질문에서 실시간 시스템 설계를 묻는 경우가 점점 늘어나고 있습니다. 30개 질문 중 18개가 실시간 데이터 흐름(웹소켓, 스트리밍, 실시간 업데이트)과 관련된 내용입니다.
셋째, 현대의 추세는 멀티 서비스 시스템으로 향하고 있습니다. TikTok, DoorDash, Uber와 같은 문제는 5~10개의 서비스를 동시에 조율해야 하므로 난이도가 더 높습니다.
준비 과정으로, 응시자들은 중급 단계로 넘어가기 전에 초급 단계를 완전히 숙달해야 합니다.
1번부터 10번까지의 질문에서 다룬 인프라 패턴(캐싱, 속도 제한, 메시지 큐, 일관성 해싱)은 거의 모든 중급 및 고급 질문에서 구성 요소로 나타납니다.
가장 효율적인 학습 순서는 각 단계가 이전 단계의 개념을 바탕으로 하기 때문에 문제를 순차적으로 풀어보는 것입니다.