프로젝트 소개

이 저장소는 시스템 설계와 시스템 설계 인터뷰 준비를 위한 정성껏 모은 링크 컬렉션입니다. 원본 소프트웨어는 포함되어 있지 않으며, 무료 기사, 비디오, 강의, 책, 뉴스레터, 엔지니어링 블로그 포스트 및 분산 시스템 논문을 정리한 것입니다. 주요 섹션에는 다음과 같은 내용이 포함됩니다: - 핵심 개념: 확장성, 가용성, 신뢰성, SPOF, 지연 시간 vs 처리량 vs 대역폭, 일관성 있는 해시, CAP 정리, 장애 전환, 장애 저항성. - 네트워킹 기초: OSI 모델, IP 주소, DNS, 프록시 vs 역방향 프록시, HTTP/HTTPS, TCP vs UDP, 로드 밸런싱, 체크섬. - API 기초: API, API 게이트웨이, REST vs GraphQL, WebSockets, 웹훅, 일관성, 요청 제한, API 설계. - 데이터베이스 기초: ACID 트랜잭션, SQL vs NoSQL, 인덱스, 분할, 복제, 확장, 데이터베이스 유형, 블룸 필터, 아키텍처. - 캐싱 기초: 캐싱 기본 사항, 전략, 제거 정책, 분산 캐싱, CDN. - 비동기 통신: 발행/구독, 메시지 큐, 변경 데이터 캡처. - 분산 시스템 및 마이크로서비스: 하트비트, 서비스 탐지, 합의 알고리즘, 분산 락, 가십 프로토콜, 회로 차단기, 재해 복구, 분산 추적. - 아키텍처 패턴: 클라이언트-서버, 마이크로서비스, 서버리스, 이벤트 기반, 피어 투 피어. - 시스템 설계 트레이드오프: 수직 확장 vs 수평 확장, 동시성 vs 병렬 처리, 장기 폴링 vs WebSockets, 배치 처리 vs 스트림 처리, 상태 유지 vs 상태 없는, 일관성 모델, 캐시 전략, 푸시 vs 풀, REST vs RPC, 동기 vs 비동기, 지연 시간 vs 처리량. - 인터뷰 준비: 시스템 설계 인터뷰 문제에 답변하는 프레임워크, 그리고 URL 단축기, 왓츠앱, 인스타그램, 우버, 구글 문서, 드롭박스, 분산 저장소와 같은 분류된 연습 문제(쉬움, 중간, 어려움) 포함. - 추가 자료: 강의, 뉴스레터, 책, 유튜브 채널, 필수 엔지니어링 기사, 전통적인 분산 시스템 논문(Paxos, MapReduce, GFS, Dynamo, Kafka, Spanner, Bigtable, ZooKeeper, LSM-Tree, Chubby) 포함. 이 저장소는 시스템 설계 인터뷰 준비나 대규모 분산 시스템 개념을 이해하려는 소프트웨어 엔지니어에게 학습 로드맵과 참고 자료로 유용합니다.