HOME / CATALOG / 시스템 & 네트워크
시스템 & 네트워크

시스템 설계 면접 완벽 가이드

노련한 소프트웨어 엔지니어가 되기 위한 시스템 설계의 모든 것
지은이 지용 탄
옮긴이 나정호
도서 정보
출간일
2025년 5월 15일
쪽수
508쪽
판형
188*240*21mm
ISBN
9791158395902
시리즈
시스템 & 네트워크 시리즈_017
정가
35,000원
난이도
도서 소개
저자 소개
역자 소개
목차
예제 코드

도서 소개

시스템 설계 면접 인터뷰는 소프트웨어 엔지니어링 채용 과정에서 마주하게 될 가장 어려운 도전 중 하나이다. 《시스템 설계 면접 완벽 가이드》는 자신 있게 인터뷰를 성공적으로 이끌어 나가는 방법을 배울 수 있는 좋은 참고서이다. 쉽게 기억할 수 있는 인터뷰 기법들을 따라가며, 질문을 신속하게 평가하고 유리한 접근법을 파악한 후, 인터뷰어에게 명확하게 아이디어를 전달하는 방법을 배울 수 있다.

이 책을 통해 성공적인 인터뷰 스킬뿐 아니라, 뛰어난 시스템 디자인을 실제로 구현할 수 있는 능력도 함께 얻을 것이다. 아마존, 애플, 바이트댄스, 페이팔, 그리고 우버 등에서 개발자들이 취업 제안을 받을 수 있도록 도와준 실제적인 인터뷰 기법과 시스템 디자인에 대한 인터뷰 기술을 공개한다.

★ 이 책에서 다루는 내용 ★

  • 대규모 트래픽을 지원하기 위한 애플리케이션 확장
  • 데이터 일관성을 보장하기 위한 분산 트랜잭션 기법
  • API 게이트웨이 및 서비스 메시와 같은 기능 분할을 위한 서비스
  • REST, RPC, GraphQL 등 일반적인 API 패러다임
  • 트레이드오프가 있는 캐싱 전략
  • 모든 시스템 디자인에 중요한 로깅, 모니터링, 알림 개념
  • 엔지니어로서의 성숙함을 보여주는 커뮤니케이션 기술

 

도서 소개

저자 소개

지용 탄 (Zhiyong Tan)

페이팔의 매니저다. 이전에는 우버의 시니어 풀스택 엔지니어, 테라데이터의 소프트웨어 엔지니어, 여러 스타트업의 데이터 엔지니어로 일했다. 수년간 수많은 시스템 설계 면접에서 면접관과 지원자 양쪽 입장을 경험했다. 또한 아마존, 애플, 바이트댄스/틱톡 같은 유명 기업에서 귀중한 입사 제안을 받기도 했다.

역자 소개

나정호

클라우드 아키텍처 및 대규모 시스템 설계 분야에서 10년 이상의 경험을 보유하고 있다. 금융, 제조, IT 서비스 등 다양한 산업에서 클라우드 전환, 시스템 아키텍처 설계, DevOps 및 CI/CD 자동화 환경 구축을 통해 대규모 시스템의 확장성과 안정성을 최적화하는 데 주력해 왔다. 특히, 금융 및 핀테크 분야에서는 클라우드 기반 금융 시스템 운영과 마이크로서비스 아키텍처(MSA) 설계를 통해 안정적이고 확장 가능한 인프라를 구축하였으며, 제조 분야에서는 디지털 전환(DT) 플랫폼 구축과 Vision AI/MLOps 환경 최적화를 주도했다. 이와 같은 실무 경험을 바탕으로 《시스템 설계 면접 완벽 가이드》 번역을 진행하였으며, 이 책을 통해 국내 개발자들이 시스템 디자인 인터뷰를 효과적으로 준비하고 실무에서 활용할 수 있는 인사이트를 얻기를 기대한다.

목차

  • [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)

예제 코드

WHERE TO BUY · 정가 35,000원
WHERE TO BUY · 정가 35,000원