아카를 이용한 마이크로서비스 개발
도서명:아카를 이용한 마이크로서비스 개발
저자/출판사:크리스티앙,백스터/에이콘출판
쪽수:492쪽
출판일:2019-02-28
ISBN:9791161752747
목차
1장. 효과적인 반응형 애플리케이션 구축
__첫 예제 애플리케이션 이해
__예제 애플리케이션 작업
____도커 설정
____서점 애플리케이션의 Postgres 스키마 이해
____윈도우에서 bash 스크립트 실행
____예제 애플리케이션 실행
____예제 애플리케이션 엔드포인트와 상호작용
__예제 애플리케이션의 문제
____확장성의 이해
____스케일 큐브
____예제 애플리케이션 모놀리식 시스템의 확장 문제
____관계형 데이터베이스 사용 문제
____애플리케이션의 도메인 모델 평가
____잘못된 액터 인지
____HTTP 라이브러리 교체
__요약
2장. 액터를 이용한 동시성 프로그래밍 단순화
__액터 모델 등장 배경 이해
__동시성과 병렬화 차이
____컴퓨팅에서 동시성의 정의
____병렬성의 정의
____동시성 프로그래밍의 위험
__안전한 동시성을 위한 아카 액터 사용
____액터와 동시성 프로그래밍
____아카 액터와 라우터를 이용한 병렬성
__아카의 디스패처에 대해
____디스패처 및 실행자
____아카의 디스패처 유형
____액터의 디스패처 구성
__아카 메일박스 유형
____Unbounded 메일박스
____Bounded 메일박스
____액터 메일박스 구성
__상태머신(FSM)을 통한 액터 리팩토링
____새로운 프로세스 흐름 모델링
____새로운 주문 프로세스 코딩
__아카 액터 테스트
____테스트 피라미드 이해
____아카 액터 단위 테스트
____SalesOrderProcessor 액터 테스트
__테스트 과제
__요약
3장. 도메인 주도 설계를 통한 빈약한 모델 개선
__도메인 주도 설계 개념
____도메인 계층 파악
____전략적 도메인 주도 설계의 이해
____전략적 도메인 주도 설계의 의사소통 패턴
____도메인 주도 설계의 빌딩 블록
__빈약한 모델 및 풍성한 모델 식별
__도메인 주도 설계 리팩토링 설계
____서점 컨택스트 맵
____액터를 이용한 도메인 주도 설계 모델링
____사용자 관리 컨텍스트 리모델링
____재고 관리 컨텍스트 리모델링
____신용카드 처리 컨텍스트 리모델링
____판매 주문 처리 컨텍스트 리모델링
__리팩토링된 서점 애플리케이션 코드 이해
____EntityActor 추상 클래스
____EntityAggregate 추상 클래스
____Book과 InventoryClerk 액터
__주문 생성 처리에서 트랜잭션 해결
__리팩토링 개선 항목
__리팩토링 과제
__요약
4장. 이벤트 소싱을 통한 히스토리 생성
__이벤트 소싱 기본
____이벤트 소싱의 장점
____이벤트 소싱의 단점
____서점 애플리케이션의 이벤트 소싱 예
__이벤트 소싱을 위한 아카 퍼시스턴스
____PersistentActor trait
____AsyncWriteJournal
____SnapshotStore
__지속적 저장소를 위한 카산드라 사용
____카산드라 설치
____카산드라 사용을 위한 아카 퍼시스턴스 구성
__재고 관리 모듈 리팩토링
____PersistentEntity 추상 클래스
____Aggregate 추상 클래스
____JsonSerializer 클래스
____Book 엔티티 이벤트 소싱
____InventoryClerk 액터 리팩토링
____새로운 Book 엔티티 시도
____도서 스냅샷 추가
____진화하는 스키마 처리
__리팩토링된 판매 주문 처리 모듈
__리팩토링 과제
__요약
5장. CQRS를 통한 관심사 분리
__CQRS의 역사
__이벤트 소싱 관점에서의 CQRS
__읽기 모델 구현을 위한 설계
____읽기 모델을 위한 데이터 저장소 선택
____읽기 모델에 대한 이벤트 적용
____퍼시스턴스 쿼리를 이용한 뷰 작성
__Book 읽기 모델 구축
____ProtobufDatamodelAdapter 태그 지원
____일래스틱서치 지원 trait
____뷰 빌더 trait
____Book 뷰 빌더 구현
____Book 뷰 구현
____재시작 가능한 프로젝션 구현
__판매 주문 처리 리팩토링
____SalesOrder 읽기 모델 비정규화
____재고 할당을 위한 퍼시스턴스 쿼리 사용
__새로운 애플리케이션 실행
__리팩토링 과제
__마무리 의견
__요약
6장. 아카 스트림을 통한 흐름
__리액티브 스트림 API 이해
____백 프레셔 동작
__아카 스트림 API
____아카 스트림의 빌딩 블록
____스트림 구축의 기본 학습
____스트림 실체화 이해
____스트림 내의 연산자 결합
____버퍼를 이용한 속도 제어
____흐름 내의 변경 속도
____그래프 빌더 DSL을 이용한 처리 그래프 구축
____스트리밍 I/O 처리
__뷰 빌더 코드 리팩토링
__리팩토링 과제
__요약
7장. 아카 HTTP를 이용한 REST 구축
__RESTful HTTP 인터페이스 생성
__아카 HTTP와 스프레이 비교
____아카 스트림과 백 프레셔
____그 외의 차이점
__아카 HTTP를 이용한 RESTful 인터페이스 생성
____저수준 서버 API 사용
____고수준 서버 API 사용
__아카 HTTP를 이용한 RESTful API 호출
____클라이언트 측 아카 HTTP 및 스트림
____아웃바운드 연결 모델 이해
__리팩토링 과제
____인바운드 HTTP 변경
____아웃바운드 HTTP 변경
__요약
8장. 아카 리모팅/클러스터를 이용한 스케일 아웃
__아카 리모팅 사용
____아카 리모팅 활성화
____원격 액터와 상호작용
____아카 리모팅 및 직렬화
__아카 클러스터링 사용
____클러스터링의 핵심 아키텍처 원칙
____클러스터링 활성화
____클러스터링을 위한 원격 워커 예제 리팩토링
__서점 애플리케이션에 클러스터링 적용
____서점 애플리케이션에 클러스터 샤딩 적용
____서점 애플리케이션에 클러스터 싱글톤 적용
____클러스터 서점 애플리케이션 실행
__요약
9장. ConductR을 이용한 배포 관리
__ConductR 개요
__ConductR 로컬 설치와 설정
____ConductR CLI 샌드 박스 설치
____ConductR 샌드 박스 설정
____sbt-conductr 플러그인 설정
____샌드 박스 내의 도커 사용 안내
__ConductR CLI 사용
____ConductR 버전 정보 확인
____배포된 번들 정보 확인
____번들 서비스 정보 확인
____번들 서비스 접근 제어 목록 확인
____ConductR로 번들 로드
____ConductR 내에 번들 시작
____ConductR 내의 번들 종료
____ConductR에서 번들 제거
____ConductR 내에서 번들 관련 이벤트 확인
____번들 로그 확인
__ConductR을 통한 서비스 준비
____배포를 위한 번들 생성
____ConductR로 배포를 위한 코드 요구 사항
____ConductR을 이용한 서점 애플리케이션 리팩토링
____서점 애플리케이션 분리
____ConductR 지원을 위한 일반적인 수정
____서비스 모듈의 ConductR 번들 전환
____판매 주문 처리 리팩토링
____재고 관리 모듈 리팩토링
__서점 번들 빌드 및 배포
__ConductR 내의 서점 애플리케이션 모듈 테스트
__요약
10장. 문제 해결 및 모범 사례
__리팩토링 회고
____더 나은 액터 구현
____도메인 주도 설계 사용
____아카 퍼시스턴스 및 이벤트 소싱
____아카 퍼시스턴스 쿼리 및 CQRS
____아카 스트림
____아카 HTTP
____아카 리모팅 및 아카 클러스터링
____ConductR을 통한 모듈 분리
__액터 문제 해결 및 모범 사례
____퓨처 사용 시 가변 상태 피하기
____ActorSelection 사용 최소화
____ask 대신 tell 사용하기
____많은 최상위 액터 생성 피하기
__아카 HTTP모범 사례 및 문제 해결
____~ 연산자 관련 문제
____인바운드 HTTP 요청 로그 구축
____아웃바운드 HTTP 요청 로그 구축
__아카 클러스터링 및 아카 리모팅 문제 해결 및 모범 사례
____구성 요소 설정 시, 호스트 이름 대신 IP 주소 사용 선호하기
____2개 이상의 시드 노드 구성
____로그의 Disassociated 예외는 정상일 수 있음
__추가 자료
____Lagom
____아카 스트림 쿡북
____일반적인 패턴
____아카 퍼시스턴스 스키마 변경
____아카 관련 권장 도서
____에릭 에반스의 도메인 주도 설계
____마틴 파울러의 이벤트 소싱
__요약