책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 소프트웨어 공학
· ISBN : 9791189909253
· 쪽수 : 308쪽
· 출판일 : 2021-01-20
책 소개
목차
[1장] 더도 덜도 아닌 딱 마이크로서비스
마이크로서비스란 무엇인가?
__독립적인 배포 가능성
__비즈니스 도메인을 중심으로 하는 모델링
__데이터 소유권 문제
__마이크로서비스의 장점
__마이크로서비스가 야기하는 문제점
__사용자 인터페이스
__기술
__규모
__소유권
모놀리스
__단일 프로세스 모놀리스
__분산 모놀리스
__외부 블랙박스 시스템
__모놀리스의 문제점
__모놀리스의 장점
결합도와 응집력
__응집력
__결합도
더도 덜도 아닌 딱 도메인 주도 설계
__집계
__경계 컨텍스트
__집계와 경계 컨텍스트를 마이크로서비스에 매핑
__더 읽을거리
정리
[2장] 마이그레이션 계획하기
목표 이해하기
__3가지 핵심 질문
왜 마이크로서비스를 선택하려 하는가?
__팀 자율성 향상
__시장 출시 시간 단축
__부하를 다루기 위한 비용 효율적인 확장
__견고성 향상
__개발자 수 늘리기
__신기술 수용
마이크로서비스는 어떤 경우에 나쁜 선택일까?
__불분명한 도메인
__스타트업
__고객 설치형 소프트웨어와 관리형 소프트웨어
__좋은 이유를 못 찾겠다!
균형 조정
사람들과 함께 여정을 떠나다
조직 변화 구현
__위기감 조성
__혁신 추진체 구성
__비전과 전략 수립
__변화 비전 전달
__광범위한 조치를 위한 직원의 자율권 강화
__단기적인 성과 창출
__이익 통합과 더 많은 변화 추구
__혁신 문화의 정립
점진적인 마이그레이션의 중요성
__운영 환경은 중요하다
변화에 드는 비용
__가역적 결정과 비가역적 결정
__실험을 시도해볼 만한 곳
우리가 시작해야 할 지점은?
도메인 주도 설계
__작업 범위를 얼마나 넓게 잡아야 할까?
__이벤트 스토밍
__우선순위 지정을 위한 도메인 모델 사용
결합된 모델
팀 재구성하기
__변화하는 구조
__만병통치약은 없다
__변화 일으키기
__전문 기술 변경하기
전환이 순조로운지 어떻게 확인할까?
__정기 점검 사항
__정량적인 측정
__정성적인 측정
__매몰 비용 오류 방지
__새로운 방식에 마음을 열자
정리
[3장] 모놀리스 분할
모놀리스를 그대로 둘 것인가, 바꿀 것인가?
__잘라 내기, 복사 또는 재구현?
__모놀리스 리팩터링
마이그레이션 패턴
패턴: 교살자 무화과 애플리케이션
__작동 원리
__적용 대상
__사례: HTTP 리버스 프록시
__데이터?
__프록시 옵션
__프로토콜 변경
__사례: FTP
__사례: 메시지 가로채기
__그 밖의 프로토콜
__교살자 무화과 패턴의 다른 예
기능을 마이그레이션하는 동안 동작 방식 변경하기
패턴: UI 컴포지션
__사례: 페이지 컴포지션
__사례: 위젯 컴포지션
__사례: 마이크로 프론트엔드
__적용 대상
패턴: 추상화에 의한 분기
__작동 원리
__대체 메커니즘을 위한 분기 검증
__적용 대상
패턴: 병행 실행
__사례: 신용파생 가격 비교
__사례: 홈게이트 목록
__검증 기법
__스파이 사용
__깃허브 사이언티스트
__어둠의 출시와 카나리아 릴리스
__적용 대상
패턴: 협업자 데코레이터
__사례: 멤버십 프로그램
__적용 대상
패턴: 변경 데이터 캡처
__사례: 멤버십 카드 발급
__변경 데이터 캡처 구현
__적용 대상
정리
[4장] 데이터베이스 분해
패턴: 공유 데이터베이스
__패턴 다루기
__적용 대상
그러나 수행할 수 없다!
패턴: 데이터베이스 뷰
__공개된 계약으로서 데이터베이스
__표현할 뷰
__한계
__소유권
__적용 대상
패턴: 데이터베이스 래핑 서비스
__적용 대상
패턴: 서비스로서 데이터베이스(DaaS) 인터페이스
__매핑 엔진 구현
__뷰와의 비교
__적용 대상
소유권 양도
__패턴: 집계를 외부에 공개하는 모놀리스
__패턴: 데이터 소유권 변경
데이터 동기화
패턴: 애플리케이션에서 데이터 동기화
__1단계: 데이터 대량 동기화
__2단계: 이전 스키마에서 읽고 쓰기를 동기화
__3단계: 새 스키마에서 읽고 쓰기를 동기화
__이 패턴을 사용하는 사례
__적용 대상
패턴: 예광탄 기록
__데이터 동기화
__사례: 스퀘어의 주문 처리
__적용 대상
데이터베이스 분리
__물리적 데이터베이스 분리 vs 논리적 데이터베이스 분리
데이터베이스를 먼저 분할할까, 아니면 코드를 먼저 분할할까?
__데이터베이스를 먼저 분할
__코드를 먼저 분할
__데이터베이스와 코드를 함께 분할
__그렇다면 무엇을 먼저 분할해야 할까?
스키마 분리 사례
패턴: 테이블 분할
__적용 대상
패턴: 외래 키 관계를 코드로 이동
__조인 이동
__데이터 일관성
__적용 대상
__사례: 공유 정적 데이터
트랜잭션
__ACID 트랜잭션
__여전히 ACID이지만 원자성이 부족한가?
__2단계 커밋
__분산 트랜잭션? 그냥 아니라고 말하자
사가 패턴
__사가 실패 모드
__사가 패턴 구현
__사가와 분산 트랜잭션의 비교
정리
[5장] 마이크로서비스 도입 과정에서 직면하는 문제와 해법
서비스가 늘어날수록 고충도 커지게 마련
규모에 맞는 소유권
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
기존 호환성을 깨뜨리는 파괴적 변경
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
리포팅
__문제가 드러나는 시점
__잠재적인 해법
모니터링과 트러블슈팅
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
로컬에서 개발하는 동안 겪는 개발자 경험
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
너무 많은 것들을 실행
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
전 구간 테스트
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
전역 최적화와 지역 최적화 비교
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
견고성과 회복탄력성
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
외톨이 서비스
__문제가 드러나는 방식
__문제가 드러나는 시점
__잠재적인 해법
정리
마치면서
부록 A 참고문헌
부록 B 패턴 목록
부록 C 한국어판 특별 부록: 기술의 진화로 짚어보는 마이크로서비스 도입의 허와 실