이미 소장하고 있다면 판매해 보세요.
|
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 ____아카 스트림 쿡북 ____일반적인 패턴 ____아카 퍼시스턴스 스키마 변경 ____아카 관련 권장 도서 ____에릭 에반스의 도메인 주도 설계 ____마틴 파울러의 이벤트 소싱 __요약 |
Christian Baxter
|
★ 이 책에서 다루는 내용 ★
- 아카 액터 사용 방법 - 도메인 주도 설계를 적용한 구축 방법 - 엔티티 지속성을 위한 아카 퍼시스턴스, 프로토콜 버퍼, 카산드라 활용 방법 - 그래프 빌더 DSL 활용 방법 - 아카 스트림을 이용한 백 프레셔 처리 방법 - 아카 HTTP를 이용한 요청/응답 처리 방법 - 고가용성을 위한 ConductR 활용 방법 ★ 이 책의 대상 독자 ★ 라이트밴드(Lightbend) 플랫폼을 이용해 고성능의 반응형 애플리케이션을 구축하고 싶다면 이 책을 읽자. 또한, 아카의 새로운 기능을 현재 혹은 앞으로의 프로젝트에 적용할 계획이 있는 스칼라 개발자에게도 도움이 될 것이다. 동시성, 확장성, 반응형 애플리케이션을 고민하는 자바 개발자에게도 도움이 될 것이다. ★ 이 책의 구성 ★ 1장, ‘효과적인 반응형 애플리케이션 구축’에서는 초기 예제 애플리케이션을 소개하고 앞으로 개선할 내용을 정리한다. 2장, ‘액터를 이용한 동시성 프로그래밍 단순화’에서는 액터를 자세히 소개하고 아카 FSM을 이용해 리팩토링한다. 3장, ‘도메인 주도 설계를 통한 빈약한 모델 개선’에서는 도메인 주도 설계의 개념과 적용 방법을 설명한다. 4장, ‘이벤트 소싱을 통한 히스토리 생성’에서는 이벤트 기반 엔티티의 이벤트 소싱(Event Sourcing)을 소개한다. 5장, ‘CQRS를 통한 관심사 분리’에서는 CQRS를 통해 모델을 분리하고 작성하는 방법을 알아본다. 6장, ‘아카 스트림을 통한 흐름’에서는 백 프레셔와 스트림 기반 처리를 위한 아카 스트림(Akka Streams)을 설명한다. 7장, ‘아카 HTTP를 이용한 REST 구축’에서는 RESTful 인터페이스 구축을 위한 아카 HTTP의 활용 방법을 설명한다. 8장, ‘아카 리모팅/클러스터를 이용한 스케일 아웃’에서는 수평적 확장 및 고가용성을 위해 아카 리모팅/클러스터(Akka Remoting/Cluster)를 활용하는 방법을 알아본다. 9장, ‘ConductR을 이용한 배포 관리’에서는 ConductR을 이용해 마이크로서비스를 구축 및 배포하는 방법을 설명한다. 10장, ‘문제 해결과 모범 사례’에서는 아카 사용에 대한 모범 사례를 제공한다. ★ 지은이의 말 ★ 아카 라이브러리는 스칼라 세계에서는 반응형 애플리케이션 구축을 위해 잘 알려진 도구다. 아카의 핵심 빌딩 블록은 비동기, 이벤트 기반, 장애 허용, 분산 시스템을 가능하도록 동시성을 지원하는 액터다. 반응형 애플리케이션 구축하는 데 있어 액터는 좋은 시작이지만, 아카 플랫폼 내에는 고려해야 할 요소가 더 많이 있다. 이 책은 아카 플랫폼 내에 몇 가지 모듈을 추가해 애플리케이션을 구축한다. 초기 모놀리식 아카 애플리케이션을 리팩토링해 나가면서 느슨하게 결합된 마이크로서비스로 개선해 나간다. 아카 퍼시스턴스(Akka Persistence)를 통한 이벤트 소싱(Event Sourcing) 같은 새로운 기능을 배우게 될 것이다. 이 책을 다 읽으면 아카 플랫폼을 깊이 이해하게 돼 애플리케이션 구축에 도움을 얻을 수 있을 것이다. 각 챕터별 리팩토링을 통해 아카 내의 새로운 개념 및 라이브러리를 접할 수 있다. 새로운 기능들의 개념과 서비스를 느슨하게 결합시키는 방법을 자세히 설명한다. 뿐만 아니라, 각 장마다 독자가 수행해야 하는 과제가 있다. 직접 과제를 수행함으로써 아카의 기능과 새로운 개념을 실제 환경에 적용할 수 있을 만큼 더 깊이 이해할 수 있다. ★ 옮긴이의 말 ★ 스칼라와 아카를 위한 개념서는 더러 존재하지만, 실무에 적용하기 위한 가이드 역할을 해주는 책은 거의 없다. 이 책을 통해 장이 진행됨에 따라 하나의 애플리케이션을 직접 개선해 나가며 최종적으로 분산 시스템을 구축하는 즐거운 경험을 함께하기를 바란다. 각 장별 과제도 직접 수행하고, 저자의 코드와 비교하다 보면 장에서 이야기하고자 하는 개념을 더 깊이 이해할 수 있을 것이다. 많은 개발자가 스칼라와 아카 각각의 개념은 자주 접했을 수 있지만, 이 책은 스칼라 및 아카와 함께 동시성 프로그래밍, 도메인 주도 설계, 이벤트 소싱, CQRS 등 분산 시스템 구축을 위해 고려할 수 있는 다양한 개념들을 함께 이해할 수 있다. 단순히 개념을 이해하는 수준이 아니라, 개념을 녹여낸 실제 애플리케이션을 구축해나가는 과정을 실습하다 보면 실무에 적용하기 위한 방향성에 대해 인사이트를 얻을 수 있을 것이다. 이 책에서 제안하는 다양한 라이브러리를 활용해 분산 시스템을 위한 당신의 여정이 성공하기를 바란다. |