『소프트웨어 아키텍처 101』의 실무편에 해당하는 후속작이다. 분산 아키텍처를 구축할 때 서비스를 나눠야 하는 경우와 합쳐야 하는 경우를 각각 세분도(granularity) 분해인과 통합인이라는 두 가지 관점에서 바라보고, 어떻게 하면 아키텍트가 객관적으로 트레이드오프를 분석해서 올바른 의사 결정을 내릴 수 있는지 이야기한다. 전작이 소프트웨어 아키텍처의 중심 철학과 다양한 아키텍처의 세계를 빠르게 훑어보는 개론서였다면, 『소프트웨어 아키텍처 The Hard Parts』는 제목에 걸맞게 실무 아키텍처링을 할 때 가장 난해한, 그러나 한번 결정되면 바꾸기 어렵고 근본적인 영향을 미치는 부분(hard part)을 진지하게 살펴본다.
Contents
chapter 1 ‘베스트 프랙티스’가 없다면?
1.1 왜 ‘하드 파트’인가?
1.2 소프트웨어 아키텍처에 관한 영원불변의 조언
1.3 아키텍처에서 데이터의 중요성
1.4 아키텍처 결정 레코드
1.5 아키텍처 피트니스 함수
1.6 아키텍처 vs. 설계: 정의는 간단명료하게
1.7 한빛가이버 사가
chapter 3 아키텍처 모듈성
3.1 모듈화 동인
3.2 한빛가이버 사가: 비즈니스 케이스 만들기
chapter 4 아키텍처 분해
4.1 분해 가능한 코드베이스인가?
4.2 컴포넌트 기반 분해
4.3 전술적 분기
4.4 한빛가이버 사가: 어떤 방식으로 분해할 것인가?
chapter 5 컴포넌트 기반 분해 패턴
5.1 컴포넌트 식별 및 사이징 패턴
5.2 공통 도메인 컴포넌트 수집 패턴
5.3 컴포넌트 눌러 펴기 패턴
5.4 컴포넌트 디펜던시 결정 패턴
5.5 컴포넌트 도메인 생성 패턴
5.6 도메인 서비스 생성 패턴
5.7 정리하기
chapter 6 운영 데이터 분리
6.1 데이터 분해인
6.2 모놀리식 데이터 분해
_1단계 데이터베이스 분석과 데이터 도메인 생성
_2단계 데이터 도메인에 테이블 할당
_3단계 데이터 도메인에 접속하는 데이터베이스 커넥션 분리
_4단계 개별 데이터베이스 서버로 스키마 이전
_5단계 독립적 데이터베이스 서버로 전환
6.3 데이터베이스 타입 선택
6.4 한빛가이버 사가: 폴리글랏 데이터베이스
chapter 7 서비스 세분도
7.1 세분도 분해인
7.2 세분도 통합인
7.3 적정 균형점 찾기
7.4 한빛가이버 사가: 티켓 배정 세분도
7.5 한빛가이버 사가: 고객 등록 세분도
PART 2 다시 합치기
chapter 8 재사용 패턴
8.1 코드 복제
8.2 공유 라이브러리
8.3 공유 서비스
8.4 사이드카와 서비스 메시
8.5 한빛가이버 사가: 공통 인프라 로직
8.6 코드 재사용: 어떤 경우에 가치 있는가?
8.7 한빛가이버 사가: 공유 도메인 기능
chapter 9 데이터 오너십과 분산 트랜잭션
9.1 데이터 오너십 할당
9.2 단독 오너십
9.3 공통 오너십
9.4 공동 오너십
9.5 서비스 통합 기법
9.6 데이터 오너십 요약
9.7 분산 트랜잭션
9.8 최종 일관성 패턴
9.9 한빛가이버 사가: 티켓 처리 관련 데이터 오너십
chapter 10 분산 데이터 액세스
10.1 서비스 간 통신 패턴
10.2 컬럼 스키마 복제 패턴
10.3 복제 캐싱 패턴
10.4 데이터 도메인 패턴
10.5 한빛가이버 사가: 티켓 배정 관련 데이터 액세스
chapter 11 분산 워크플로 관리
11.1 오케스트레이션 통신 스타일
11.2 코레오그래피 통신 스타일
11.3 오케스트레이션과 코레오그래피의 트레이드오프
11.4 한빛가이버 사가: 워크플로 관리
chapter 12 트랜잭셔널 사가
12.1 트랜잭셔널 사가 패턴
12.2 상태 관리와 최종 일관성
12.3 사가 관리 기법
12.4 한빛가이버 사가: 원자적 트랜잭션과 보상 업데이트
chapter 13 계약
13.1 엄격한 계약 vs. 느슨한 계약
13.2 스탬프 커플링
13.3 한빛가이버 사가: 티켓 계약 관리
chapter 14 분석 데이터 관리
14.1 예전 접근 방법
14.2 데이터 메시
14.3 한빛가이버 사가: 데이터 메시
chapter 15 자신만의 트레이드오프 분석
15.1 서로 연관된 차원 확인
15.2 트레이드오프 기법
15.3 한빛가이버 사가: 에필로그
부록 A 중요 개념과 용어 색인
부록 B 아키텍처 결정 레코드 색인
부록 C 트레이드오프 색인
부록 D 미주
Author
닐 포드,마크 리처즈,프라모드 세달라지,세막 데그하니,이일웅
종단간 소프트웨어 개발과 인도를 전문으로 하는 글로벌 IT 컨설팅 회사, 쏘우트웍스(ThoughtWorks) 의 이사이자 소프트웨어 아키텍트, 밈 랭글러(meme wrangler). 이 회사에 입사하기 전에는 미국에서 유명한 교육/훈련 개발 회사인 DSW Group에서 최고 기술 책임자(CTO)를 역임했다.
종단간 소프트웨어 개발과 인도를 전문으로 하는 글로벌 IT 컨설팅 회사, 쏘우트웍스(ThoughtWorks) 의 이사이자 소프트웨어 아키텍트, 밈 랭글러(meme wrangler). 이 회사에 입사하기 전에는 미국에서 유명한 교육/훈련 개발 회사인 DSW Group에서 최고 기술 책임자(CTO)를 역임했다.