이미 소장하고 있다면 판매해 보세요.
[1부]
▣ 01장: 시스템 설계 개념 둘러보기 __1.1 트레이드오프 논의 __1.2 이 책을 어떻게 읽어야 할까? __1.3 이 책의 개요 __1.4 시스템의 다양한 서비스 확장 방식 __요약 ▣ 02장: 일반적인 시스템 설계 면접 흐름 __2.1 요구사항 명확화와 트레이드오프 논의 __2.2 API 명세 초안 작성 __2.3 사용자와 데이터 간의 연결과 처리 __2.4 데이터 모델 설계 __2.5 로깅, 모니터링, 경보 __2.6 검색창 __2.7 기타 논의 가능한 주제 __2.8 면접 후 회고와 평가 __2.9 회사 면접하기 __요약 ▣ 03장: 비기능적 요구사항 __3.1 확장성 __3.2 가용성 __3.3 내결함성 __3.4 성능/지연 시간과 처리량 __3.5 일관성 __3.6 정확성 __3.7 복잡성과 유지보수성 __3.8 비용 __3.9 보안 __3.10 프라이버시 __3.11 클라우드 네이티브 __3.12 추가 자료 __요약 ▣ 04장: 데이터베이스 확장 __4.1 저장 서비스의 이해 __4.2 데이터베이스 사용 결정 __4.3 복제 __4.4 샤딩된 데이터베이스로 저장 용량 확장하기 __4.5 이벤트 집계하기 __4.6 배치와 스트리밍 ETL __4.7 비정규화 __4.8 캐싱 __4.9 독립 서비스로서의 캐싱 __4.10 캐시할 수 있는 다양한 종류의 데이터와 캐싱 방법 예시 __4.11 캐시 무효화 __4.12 캐시 워밍 __4.13 추가 자료 __요약 ▣ 05장: 분산 트랜잭션 __5.1 이벤트 기반 아키텍처(EDA) __5.2 이벤트 소싱 __5.3 변경 데이터 캡처 __5.4 이벤트 소싱과 CDC 비교 __5.5 트랜잭션 감독자 __5.6 사가 패턴 __5.7 다른 트랜잭션 유형 __5.8 추가 자료 __요약 ▣ 06장: 기능적 분할을 위한 공통 서비스 __6.1 다양한 서비스의 공통 기능 __6.2 서비스 메시/사이드카 패턴 __6.3 메타데이터 서비스 __6.4 서비스 디스커버리 __6.5 기능적 분할과 다양한 프레임워크 __6.6 라이브러리와 서비스 __6.7 일반적인 API 패러다임 __요약 [2부] ▣ 07장: 크레이그리스트 설계 __7.1 사용자 스토리와 요구사항 __7.2 API __7.3 SQL 데이터베이스 스키마 __7.4 초기 고수준 아키텍처 __7.5 모놀리스 아키텍처 __7.6 SQL 데이터베이스와 객체 스토리지 사용 __7.7 마이그레이션은 번거롭다 __7.8 게시물 작성과 읽기 __7.9 기능적 분할 __7.10 캐싱 __7.11 CDN __7.12 SQL 클러스터로 읽기 확장 __7.13 쓰기 처리량 확장 __7.14 이메일 서비스 __7.15 검색 __7.16 오래된 게시물 제거 __7.17 모니터링과 알림 __7.18 아키텍처 논의 내용 요약 __7.19 기타 논의 가능한 주제 __요약 ▣ 08장: 속도 제한 서비스 설계 __8.1 속도 제한 서비스의 대안과 그것이 실현 불가능한 이유 __8.2 속도 제한을 하지 말아야 할 때 __8.3 기능적 요구사항 __8.4 비기능적 요구사항 __8.5 사용자 스토리와 필요한 서비스 구성 요소 __8.6 고수준 아키텍처 __8.7 상태 저장 접근 방식/샤딩 __8.8 모든 호스트에 모든 카운트 저장 __8.9 속도 제한 알고리즘 __8.10 사이드카 패턴 적용 __8.11 로깅, 모니터링, 경보 __8.12 클라이언트 라이브러리로 기능 제공 __8.13 추가 읽을거리 __요약 ▣ 09장: 알림/경보 서비스 설계 __9.1 기능 요구사항 __9.2 비기능적 요구사항 __9.3 초기 고수준 아키텍처 __9.4 객체 스토리지: 알림 구성과 전송 __9.5 알림 템플릿 __9.6 예약된 알림 __9.7 알림 수신자 그룹 __9.8 구독 취소 요청 __9.9 실패한 전달 처리 __9.10 중복 알림에 관한 클라이언트 사이드 고려사항 __9.11 우선순위 __9.12 검색 __9.13 모니터링과 경보 __9.14 알림/경보 서비스의 가용성 모니터링과 경보 __9.15 기타 논의 가능한 주제 __9.16 최종 참고사항 __요약 ▣ 10장: 데이터베이스 배치 감사 서비스 설계 __10.1 감사는 왜 필요한가? __10.2 SQL 쿼리 결과에 대한 조건문으로 유효성 검사 정의 __10.3 간단한 SQL 배치 감사 서비스 __10.4 요구사항 __10.5 고수준 아키텍처 __10.6 데이터베이스 쿼리 제약 __10.7 과도한 동시 쿼리 방지 __10.8 데이터베이스 스키마 메타데이터의 사용자 __10.9 데이터 파이프라인 감사 __10.10 로깅, 모니터링, 경보 __10.11 기타 감사 가능 유형 __10.12 기타 논의 가능한 주제 __10.13 참고 문헌 __요약 ▣ 11장: 자동 완성/타입어헤드 __11.1 자동 완성의 가능한 사용 사례 __11.2 검색 vs. 자동 완성 __11.3 기능 요구사항 __11.4 비기능적 요구사항 __11.5 상위 수준 아키텍처 계획 __11.6 가중치 트라이(Trie) 접근법과 초기 고수준 아키텍처 __11.7 상세 구현 __11.8 샘플링 접근 방식 __11.9 저장소 요구사항 처리하기 __11.10 단일 단어 대신 구문 처리하기 __11.11 로깅, 모니터링과 경보 __11.12 기타 논의 가능한 주제 __요약 ▣ 12장: 플리커 설계 __12.1 사용자 스토리와 기능 요구사항 __12.2 비기능적 요구사항 __12.3 고수준 아키텍처 __12.4 SQL 스키마 __12.5 CDN에서 디렉터리와 파일 구성하기 __12.6 사진 업로드하기 __12.7 이미지와 데이터 다운로드하기 __12.8 모니터링과 경보 __12.9 기타 서비스 __12.10 기타 논의 가능한 주제 __요약 ▣ 13장: 콘텐츠 배포 네트워크 설계하기 __13.1 CDN의 장단점 __13.2 요구사항 __13.3 CDN 인증과 권한 부여 __13.4 상위 수준 아키텍처 __13.5 저장소 서비스 __13.6 일반적인 작업 __13.7 캐시 무효화 __13.8 로깅, 모니터링, 경보 __13.9 미디어 파일 다운로드에 대한 기타 가능한 논의 __요약 ▣ 14장: 문자 메시징 앱 설계 __14.1 요구사항 __14.2 초기 구상 __14.3 초기 고수준 설계 __14.4 연결 서비스 __14.5 발신자 서비스 __14.6 메시지 서비스 __14.7 메시지 전송 서비스 __14.8 검색 __14.9 로깅, 모니터링, 경보 __14.10 기타 논의 가능한 주제 __요약 ▣ 15장: 에어비앤비 설계 __15.1 요구사항 __15.2 설계 결정 __15.3 고수준 아키텍처 __15.4 기능적 분할 __15.5 목록 생성 또는 업데이트 __15.6 승인 서비스 __15.7 예약 서비스 __15.8 가용성 서비스 __15.9 로깅, 모니터링, 경보 __15.10 기타 논의 가능한 주제 __요약 ▣ 16장: 뉴스 피드 설계 __16.1 요구사항 __16.2 상위 수준 아키텍처 __16.3 사전에 피드 준비하기 __16.4 검증과 콘텐츠 조정 __16.5 로깅, 모니터링, 경보 __16.6 기타 논의 가능한 주제 __요약 ▣ 17장: 판매량 기준 아마존 상위 10개 제품 대시보드 설계 __17.1 요구사항 __17.2 초기 구상 __17.3 초기 고수준 아키텍처 __17.4 집계 서비스 __17.5 배치 파이프라인 __17.6 스트리밍 파이프라인 __17.7 근사 __17.8 람다 아키텍처를 사용한 대시보드 __17.9 카파 아키텍처 접근 방식 __17.10 로깅, 모니터링, 경보 __17.11 기타 논의 가능한 주제 __17.12 참고 문헌 __요약 [부록] ▣ 부록A: 모놀리스 vs. 마이크로서비스 __A.1 모놀리스의 장점 __A.2 모놀리스의 단점 __A.3 서비스의 장점 __A.4 서비스의 단점 __A.5 참고 문헌 ▣ 부록B: OAuth 2.0 인가와 OpenID Connect 인증 __B.1 인가 vs. 인증 __B.2 개요: 간단한 로그인, 쿠키 기반 인증 __B.3 단일 로그인 __B.4 단순 로그인의 단점 __B.5 OAuth 2.0 흐름 __B.6 다른 OAuth 2.0 흐름 __B.7 OpenID Connect 인증 ▣ 부록C: C4 모델 ▣ 부록D: 2단계 커밋(2PC) |
Zhiyong Tan
★ 이 책에서 다루는 내용 ★
◎ 대규모 트래픽을 지원하기 위한 애플리케이션 확장 ◎ 데이터 일관성을 보장하기 위한 분산 트랜잭션 기법 ◎ API 게이트웨이 및 서비스 메시와 같은 기능 분할을 위한 서비스 ◎ REST, RPC, GraphQL 등 일반적인 API 패러다임 ◎ 트레이드오프가 있는 캐싱 전략 ◎ 모든 시스템 디자인에 중요한 로깅, 모니터링, 알림 개념 ◎ 엔지니어로서의 성숙함을 보여주는 커뮤니케이션 기술 |