2025/08 24

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 12. 채팅 시스템 설계

알렉스 쉬 님의 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책을 정리한 포스팅 입니다. 1. 요구 사항핵심 기능항목설명1:1 채팅빠른 메시지 송수신그룹 채팅최대 100명사용자 접속 상태 표시상태 표시 (온라인 여부 등)다양한 단말 지원하나의 계정으로 여러 기기 동시 접속 가능푸시 알림실시간 알림 지원메시지 형태텍스트 메시지만 지원메시지 최대 길이최대 100,000자채팅 이력 보존영구 보관종단 간 암호화 (E2EE)불필요 (시간 여유 시 고려 가능) 플랫폼 및 접근 방식항목설명플랫폼모바일 및 웹 모두 지원접속 유형하나의 계정으로 여러 단말에서 동시 접속 허용 시스템 규모 및 성능 요건항목설명일일 능동 사용자 수 (DAU)약 5천만 명응답 지연 (latency)낮아야 함 (실시간 응답 수준 추정)..

Code 2025.08.03

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 10. 알림 시스템 설계

알렉스 쉬 님의 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책을 정리한 포스팅 입니다. 1. 요구 사항항목내용알림 종류모바일 푸시, SMS, 이메일전송 대상 기기iOS, Android, PC/Laptop전송 타이밍- 실시간 (Soft real-time)- 지연 허용: 수 초~수십 초알림 생성 주체클라이언트 앱 or 서버 스케줄러Opt-out 지원개별 사용자 알림 수신 설정 가능일일 전송량 규모 - Push: 1천만 - SMS: 100만 - Email: 500만 확장성 수준고부하 지원 필요 (스케일 아웃 가능 구조 요구됨) 2. 개략적 설계안알림 유형별 지원 방안알림 유형주요 구성 요소동작 과정 / 설명iOS 푸시 알림- 알림 제공자- APNS (Apple Push Notification Se..

Code 2025.08.02

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 6. 키-값 저장소 설계

알렉스 쉬 님의 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책을 정리한 포스팅 입니다. 1. 문제 이해요구 조건항목요구 사항 내용값 크기 제한1쌍(Key-Value) ≤ 10KBHigh Availability장애 상황에서도 빠르게 응답해야 함Low Latency빠른 응답 속도 보장 필요Scalability트래픽 변화에 따라 서버 자동 증설/축소 가능Consistency 조정 가능사용자가 요구하는 대로 일관성 수준 선택 가능 2. 분산 키-값 저장소키-값 쌍을 여러 서버에 분산시킴 CAP 정리분산 시스템에서는 Consistency - Availability - Patition Tolerance 모두를 만족하지 못함개념설명Consistency (일관성)모든 노드에서 항상 같은 데이터를 반환해야 함..

Code 2025.08.02

[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 2. 개략적인 규모 추정

알렉스 쉬 님의 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책을 정리한 포스팅 입니다. 0. 개략적인 규모 추정설계가 요구사항에 대략적으로 부합하는지 판단시스템 설계자는 추정 능력 및 단위 감각이 필수 1. 2의 제곱수축약형지수 (2^x)설명1KB2¹⁰1,024 바이트1MB2²⁰1,024KB = 약 10⁶ 바이트 (100만)1GB2³⁰1,024MB = 약 10⁹ 바이트 (10억)1TB2⁴⁰1,024GB = 약 10¹² 바이트 (1조)1PB2⁵⁰1,024TB = 약 10¹⁵ 바이트 (1000조)1바이트: 일반적으로 ASCII 문자 하나를 저장할 수 있음 2. 응답지연 값연산 항목설명응답 지연 시간L1 캐시 참조CPU에 매우 가까운 저장소0.5ns분기 예측 오류 (Branch Mispredict)..

Code 2025.08.01