PART 1 기초CHAPTER 1 마이크로서비스란?_1.1 마이크로서비스 살펴보기_1.2 마이크로서비스의 핵심 개념 _1.3 모놀리스_1.4 활성화 기술_1.5 마이크로서비스의 장점_1.6 마이크로서비스의 고충_1.7 마이크로서비스를 사용해야 하는가? 요약CHAPTER 2 마이크로서비스 모델링 방법_2.1 뮤직코프 소개 _2.2 올바른 마이크로서비스 경계를 만드는 것은 무엇인가? _2.3 결합 유형 _2.4 딱 도메인 주도 설계만큼 _2.5 마이크로서비스를 위한 도메인 주도 설계 사례_2.6 비즈니스 도메인 경계에 대한 대안 _2.7 혼합 모델과 예외요약CHAPTER 3 모놀리스 분해_3.1 목표를 가져라_3.2 점진적 마이그레이션 _3.3 모놀리스가 적인 경우는 드물다_3.4 무엇을 먼저 나눌까? _3.5 계층별 분해_3.6 유용한 분해 패턴 _3.7 데이터 분해에 대한 우려 요약CHAPTER 4 마이크로서비스 통신 방식_4.1 프로세스 내부에서 프로세스 사이로 _4.2 프로세스 간 통신을 위한 기술: 다양한 선택 _4.3 마이크로서비스 통신 방식_4.4 패턴: 동기식 블로킹 _4.5 패턴: 비동기식 논블로킹_4.6 패턴: 공통 데이터를 통한 통신_4.7 패턴: 요청 및 응답 통신 _4.8 패턴: 이벤트 기반 통신_4.9 조심해서 진행하라 요약PART 2 구현CHAPTER 5 마이크로서비스 통신 구현_5.1 이상적인 기술을 찾아서_5.2 기술 선택 _5.3 직렬화 포맷_5.4 스키마_5.5 마이크로서비스 간의 변경 처리_5.6 중단 변경 피하기_5.7 중단 변경 관리하기 _5.8 마이크로서비스 세계에서 DRY와 코드 재사용의 위험_5.9 서비스 디스커버리 _5.10 서비스 메시와 API 게이트웨이 _5.11 서비스 문서화요약CHAPTER 6 워크플로_6.1 데이터베이스 트랜잭션_6.2 분산 트랜잭션 - 2단계 커밋_6.3 분산 트랜잭션 - 그냥 안 된다고 하라_6.4 사가 패턴요약CHAPTER 7 빌드_7.1 지속적 통합에 대한 간략한 소개 _7.2 빌드 파이프라인과 지속적 제공_7.3 소스 코드와 빌드를 마이크로서비스에 매핑하기요약CHAPTER 8 배포_8.1 논리적에서 물리적으로_8.2 마이크로서비스 배포의 원칙_8.3 배포 방법 _8.4 어떤 배포가 적합할까?_8.5 쿠버네티스와 컨테이너 오케스트레이션 _8.6 점진적 제공요약CHAPTER 9 테스트_9.1 테스트 유형_9.2 테스트 범위_9.3 서비스 테스트의 구현_9.4 까다로운 엔드투엔드 테스트의 구현 _9.5 엔드투엔드 테스트를 피해야 할까? _9.6 개발자 경험_9.7 운영 환경 전 테스트에서 운영 환경 내 테스트로_9.8 교차 기능 테스트요약 CHAPTER 10 모니터링에서 관찰가능성으로_10.1 분열, 공황 그리고 혼란 _10.2 단일 마이크로서비스, 단일 서버 _10.3 단일 마이크로서비스, 다수 서버 _10.4 다수 마이크로서비스, 다수 서버_10.5 관찰가능성 대 모니터링_10.6 관찰가능성의 구성 요소_10.7 표준화 _10.8 도구 선택_10.9 기계화된 전문가 _10.10 시작하기요약 CHAPTER 11 보안_11.1 핵심 원칙_11.2 사이버 보안의 다섯 가지 기능_11.3 애플리케이션 보안의 기초_11.4 암묵적 신뢰 대 제로 트러스트 _11.5 데이터 보안_11.6 인증과 권한 부여CHAPTER 12 회복 탄력성_12.1 회복 탄력성이란?_12.2 장애는 어디에서나 발생한다_12.3 얼마나 많아야 너무 많은 건가?_12.4 기능 저하_12.5 안정성 패턴_12.6 위험 분산_12.7 CAP 정리 _12.8 카오스 엔지니어링_12.9 비난 요약 CHAPTER 13 확장_13.1 확장의 네 가지 축_13.2 결합 모델_13.3 작게 시작하라 _13.4 캐싱 _13.5 자동 확장_13.6 다시 시작하기요약 PART 3 사람CHAPTER 14 사용자 인터페이스_14.1 디지털을 향해 _14.2 소유권 모델_14.3 스트림 정렬 팀을 향해 _14.4 패턴: 모놀리식 프론트엔드 _14.5 패턴: 마이크로 프론트엔드_14.6 패턴: 페이지 기반 분해_14.7 패턴: 위젯 기반 분해_14.8 제약 _14.9 패턴: 중앙 집계 게이트웨이_14.10 패턴: 프론트엔드를 위한 백엔드(BFF)_14.11 그래프QL _14.12 하이브리드 방식요약 CHAPTER 15 조직 구조_15.1 느슨하게 결합된 조직 _15.2 콘웨이의 법칙_15.3 팀 규모 _15.4 콘웨이의 법칙 이해_15.5 소규모 팀, 대규모 조직 _15.6 자율성에 관해 _15.7 강력한 소유권 대 집단 소유권 _15.8 활성화 팀_15.9 공유 마이크로서비스_15.10 내부 오픈 소스_15.11 플러그 가능한 모듈식 마이크로서비스 _15.12 고아 서비스 _15.13 사례 연구: realestate.com.au_15.14 지리적 분포_15.15 콘웨이의 역법칙_15.16 사람들요약 CHAPTER 16 진화하는 아키텍트_16.1 이름에 내포된 것은?_16.2 소프트웨어 아키텍트란? _16.3 변화를 가능하게 _16.4 아키텍처에 대한 진화적 비전 _16.5 시스템 경계 정의_16.6 사회적 구조물 _16.7 거주 가능성_16.8 원칙적 접근법 _16.9 진화적 아키텍처 가이드 _16.10 스트림 정렬 조직의 아키텍처 _16.11 팀 구축_16.12 필수 기준 _16.13 거버넌스와 포장된 길 _16.14 기술 부채 _16.15 예외 처리 요약 종합정리: 조언부터 향후 전망까지 핵심 용어집