장바구니 담기 close

장바구니에 상품을 담았습니다.

아카를 이용한 마이크로서비스 개발

아카를 이용한 마이크로서비스 개발

  • 크리스티앙백스터
  • |
  • 에이콘출판
  • |
  • 2019-02-28 출간
  • |
  • 492페이지
  • |
  • 188 X 235 X 28 mm
  • |
  • ISBN 9791161752747
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ 아카 액터 사용 방법
■ 도메인 주도 설계를 적용한 구축 방법
■ 엔티티 지속성을 위한 아카 퍼시스턴스, 프로토콜 버퍼, 카산드라 활용 방법
■ 그래프 빌더 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장, ‘문제 해결과 모범 사례’에서는 아카 사용에 대한 모범 사례를 제공한다.

★ 옮긴이의 말 ★

스칼라와 아카를 위한 개념서는 더러 존재하지만, 실무에 적용하기 위한 가이드 역할을 해주는 책은 거의 없다. 이 책을 통해 장이 진행됨에 따라 하나의 애플리케이션을 직접 개선해 나가며 최종적으로 분산 시스템을 구축하는 즐거운 경험을 함께하기를 바란다. 각 장별 과제도 직접 수행하고, 저자의 코드와 비교하다 보면 장에서 이야기하고자 하는 개념을 더 깊이 이해할 수 있을 것이다.
많은 개발자가 스칼라와 아카 각각의 개념은 자주 접했을 수 있지만, 이 책은 스칼라 및 아카와 함께 동시성 프로그래밍, 도메인 주도 설계, 이벤트 소싱, CQRS 등 분산 시스템 구축을 위해 고려할 수 있는 다양한 개념들을 함께 이해할 수 있다. 단순히 개념을 이해하는 수준이 아니라, 개념을 녹여낸 실제 애플리케이션을 구축해나가는 과정을 실습하다 보면 실무에 적용하기 위한 방향성에 대해 인사이트를 얻을 수 있을 것이다. 이 책에서 제안하는 다양한 라이브러리를 활용해 분산 시스템을 위한 당신의 여정이 성공하기를 바란다.


목차


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
____아카 스트림 쿡북
____일반적인 패턴
____아카 퍼시스턴스 스키마 변경
____아카 관련 권장 도서
____에릭 에반스의 도메인 주도 설계
____마틴 파울러의 이벤트 소싱
__요약

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 : 070-4821-5101
교환/반품주소
  • 부산광역시 부산진구 중앙대로 856 303호 / (주)스터디채널 / 전화 : 070-4821-5101
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.