1장. 분산 컴퓨팅 아키텍처 환경
__시스템 아키텍처
____메인프레임 아키텍처
____클라이언트-서버 아키텍처
____3계층 아키텍처
____N계층 아키텍처
__네트워크 아키텍처
____지점 간
____허브와 스포크
____엔터프라이즈 메시지 버스
____엔터프라이즈 서비스 버스
__소프트웨어 아키텍처
____애플리케이션 계층
____애플리케이션 레이어
__애플리케이션 아키텍처 환경
____일반적인 애플리케이션 아키텍처
____일반적인 배포 아키텍처
__확장성 딜레마
____애플리케이션 상태
____의존성의 어려움
____모놀리스 애플리케이션
__확장 가능한 아키텍처
____상태 비저장 설계
____분할과 정복
__요약
2장. 마이크로서비스 소개
__모듈식 모놀리스
____모듈식 조직
____모놀리스 애플리케이션
____모놀리스 애플리케이션 경계
____모놀리스 모듈 간 의존성
____확장성 딜레마
____모놀리스 기술 제약
__마이크로서비스 소개
____독립 모듈
____모듈 간 통신
____마이크로서비스
__요약
3장. 심층 마이크로서비스
__마이크로서비스의 겉모습
____전자상거래 마이크로서비스
____무계층, 분산형
____마이크로모놀리스
____자체 포함 마이크로서비스
____마이크로서비스와 SOA의 유사성
____메시지 기반 마이크로서비스
__고급 마이크로서비스 기능
____마이크로서비스 안전장치
____마이크로서비스 확장성
____마이크로서비스 가변성
__요약
4장. 마이크로서비스 아키텍처
__디지털 비즈니스를 위한 아키텍처
____디지털 시대
____디지털 앱
____메시 앱과 서비스 아키텍처
__마이크로서비스에 대한 컨텍스트
____서비스의 세분성
____게이트웨이
____도메인 중심 파티션
____클라우드 네이티브 전환
____웹 스케일 컴퓨팅
__없어서는 안 될 클라우드
____클라우드 아키텍처 모델
____클라
◈ 이 책에서 다루는 내용 ◈
◆ 모놀리스 아키텍처에서 마이크로서비스로 전환
◆ ACID 호환 데이터베이스 없이 견고한 아키텍처 구축
◆ 분산 트랜잭션 시스템 작업
◆ 마이크로서비스의 고가용성 원칙
◈ 이 책의 대상 독자 ◈
마이크로서비스를 설계할 때 다룰 많은 아키텍처 복잡성을 드러내며, 까다로운 시나리오를 해결하는 데 코드 예제를 사용하는 책이다. 아키텍트를 위한 책이지만 개발자와 기술 관리자도 활용할 수 있다. 일반적으로 심각한 분산 서버 측 애플리케이션, 특히 마이크로서비스를 구축하려는 자바 설계자를 염두에 두고 작성했다. 이벤트 기반 시스템, 트랜잭션 무결성, 데이터 일관성 등과 같은 측면에서 설계자가 알아야 할 사항에 중점을 뒀다. 개발자들도 일상적인 작업에 유용한 완전한 코드를 찾을 수 있다. 예제를 빠르게 시작하고 실행하려면 자바, 스프링, 약간의 HTTP에 대한 실무 지식이 필요할 것으로 가정한다. 자바와 스프링에 대한 배경 지식이 없는 경우에도 유틸리티 구축 스크립트와 단계별 지침이 도움이 될 것이다. 또한 예제가 자바로 돼 있더라도 모든 아키텍처 측면과 많은 장이 자바에 국한되지 않으므로 분산 시스템을 다루는 기술 배경이 있는 설계자는 이 책이 도움이 될 것이다.
◈ 이 책의 구성 ◈
우리는 약 20년 동안 분산 애플리케이션을 개발하고 배포해 왔다. 마이크로서비스는 분산 애플리케이션을 개발, 배포, 유지 관리하는 데 있어 많은 부족한 점을 이용해 아키텍처 원칙과 패턴을 제시한다. 마이크로서비스 아키텍처라고도 하는 마이크로서비스(Microservice는 유지 관리와 테스트가 가능하며 비즈니스 기능을 중심으로 구성되는, 느슨하게 결합되고 독립적으로 배포 가능한 서비스 모음으로 애플리케이션을 구조화하는 아키텍처 방식이다. 이 책은 스프링 부트, 스프링 클라우드, Axon과 같은 가볍고 일반적인 기술을 사용해, 자바로 마이크로서비스를 작성하는 실용적인 방법을 소개한다. 또한, 학습한 내용을 바로 사용할 수 있는 형태