검색

북큐브서점

마이페이지

로그아웃
  • 북캐시

    0원

  • 적립금

    0원

  • 쿠폰/상품권

    0장

  • 무료이용권

    0장

자동완성 기능이 꺼져 있습니다.

자동완성 끄기

네이버 인증이 완료되었습니다.

이미 북큐브 회원인 경우북큐브 ID로 로그인하시면, SNS계정이 자동으로 연결됩니다.

SNS 계정으로 신규 가입하기SNS계정으로 로그인 시 해당 SNS 계정으로 북큐브에 자동 가입되며 간편하게 로그인이 가능합니다.

비밀번호 찾기

북큐브 고객센터 : 1588-1925

아이디 찾기

북큐브 고객센터 : 1588-1925

아이디 조회 결과

비밀번호 조회 결과

으로
비밀번호를 발송했습니다.

마이크로서비스 패턴

도서 이미지 - 마이크로서비스 패턴

크리스 리처드슨|이일웅

길벗 출판|2020.02.19

0.0(0명)

서평(0)

시리즈 가격정보
전자책 정가 30,400원
구매 30,400원+3% 적립
출간정보 2020.02.19|EPUB|34.90MB

10년소장 안내

10년소장은 장기대여 상품으로 구매 상품과는 달리 다양한 프로모션 및 폭넓은 할인 혜택 제공이 가능합니다.

프로모션이 없는 경우 구매 상품과 가격이 동일하지만 프로모션이 진행되게 되면 큰 폭의 할인 및 적립이 제공됩니다.

close

지원 단말기 : IOS 10.0 이상, Android 4.1 이상, PC Window 7 OS 이상 지원듣기(TTS) 지원(모바일에서만 이용 가능)

책 소개 이미지

책소개

모놀리식 애플리케이션을 마이크로서비스 아키텍처로 성공적으로 전환하는 방법!
마이크로서비스 아키텍처 기반의 애플리케이션을 성공적으로 구축하려면 새로운 아키텍처의 개념을 이해하는 것뿐만 아니라 사고방식의 전환이 필요하다. 단편적인 지식으로 모놀리스를 여러 서비스로 분해한다고 성능이 좋아지는 건 아니다. 이 책은 가상의 회사 FTGO의 온라인 음식 배달 서비스 애플리케이션(모놀리식)을 마이크로서비스 아키텍처로 단계별로 전환하면서 서비스 분해, 트랜잭션, CQRS, 테스트까지 핵심 패턴을 설명한다. 또한, 단순히 패턴을 나열하는 데 그치지 않고, 저자가 수십 년간 분산 시스템을 구축하면서 경험한 문제 해결 방법과 노하우도 포함해 유용한 경험 중심의 조언이 가득하다. 마이크로서비스 도입을 고민하거나 이미 도입했지만 여러 문제를 만난 분들에게 추천한다.

목차

[마이크로서비스 패턴]

1장 모놀리식 지옥에서 벗어나라
1.1 서서히 모놀리식 지옥에 빠져들다
1.1.1 FTGO 애플리케이션 아키텍처
1.1.2 모놀리식 아키텍처의 장점
1.1.3 모놀리식 지옥의 실상
1.2 이 책의 대상 독자
1.3 이 책의 학습 내용
1.4 마이크로서비스 아키텍처가 답이다
1.4.1 확장 큐브와 마이크로서비스
1.4.2 마이크로서비스는 모듈성을 갖고 있다
1.4.3 서비스마다 DB가 따로 있다
1.4.4 FTGO 마이크로서비스 아키텍처
1.4.5 마이크로서비스 아키텍처와 SOA
1.5 마이크로서비스 아키텍처의 장단점
1.5.1 마이크로서비스 아키텍처의 장점
1.5.2 마이크로서비스 아키텍처의 단점
1.6 마이크로서비스 아키텍처 패턴 언어
1.6.1 마이크로서비스 아키텍처도 만병통치약은 아니다
1.6.2 패턴 및 패턴 언어
1.6.3 마이크로서비스 아키텍처 패턴 언어 개요
1.7 마이크로서비스 너머: 프로세스와 조직
1.7.1 소프트웨어 개발/전달 조직
1.7.2 소프트웨어 개발/전달 프로세스
1.7.3 마이크로서비스를 받아들이는 인간적 요소
1.8 마치며

2장 분해 전략
2.1 마이크로서비스 아키텍처란 무엇인가?
2.1.1 소프트웨어 아키텍처의 정의와 중요성
2.1.2 아키텍처 스타일 개요
2.1.3 마이크로서비스 아키텍처는 일종의 아키텍처 스타일이다
2.2 마이크로서비스 아키텍처 정의
2.2.1 시스템 작업 식별
2.2.2 서비스 정의: 비즈니스 능력 패턴별 분해
2.2.3 서비스 정의: 하위 도메인 패턴별 분해
2.2.4 분해 지침
2.2.5 서비스 분해의 장애물
2.2.6 서비스 API 정의
2.3 마치며

3장 프로세스 간 통신
3.1 마이크로서비스 아키텍처 IPC 개요
3.1.1 상호 작용 스타일
3.1.2 마이크로서비스 API 정의
3.1.3 API 발전시키기
3.1.4 메시지 포맷
3.2 동기 RPI 패턴 응용 통신
3.2.1 동기 RPI 패턴: REST
3.2.2 동기 RPI 패턴: gRPC
3.2.3 부분 실패 처리: 회로 차단기 패턴
3.2.4 서비스 디스커버리
3.3 비동기 메시징 패턴 응용 통신
3.3.1 메시징 개요
3.3.2 메시징 상호 작용 스타일 구현
3.3.3 메시징 기반 서비스의 API 명세 작성
3.3.4 메시지 브로커
3.3.5 수신자 경합과 메시지 순서 유지
3.3.6 중복 메시지 처리
3.3.7 트랜잭셔널 메시징
3.3.8 메시징 라이브러리/프레임워크
3.4 비동기 메시징으로 가용성 개선
3.4.1 동기 통신으로 인한 가용성 저하
3.4.2 동기 상호 작용 제거
3.5 마치며

4장 트랜잭션 관리: 사가
4.1 마이크로서비스 아키텍처에서의 트랜잭션 관리
4.1.1 분산 트랜잭션의 필요성
4.1.2 분산 트랜잭션의 문제점
4.1.3 데이터 일관성 유지: 사가 패턴
4.2 사가 편성
4.2.1 코레오그래피 사가
4.2.2 오케스트레이션 사가
4.3 비격리 문제 처리
4.3.1 비정상 개요
4.3.2 비격리 대책
4.4 주문 서비스 및 주문 생성 사가 설계
4.4.1 OrderService 클래스
4.4.2 주문 생성 사가 구현
4.4.3 OrderCommandHandlers 클래스
4.4.4 OrderServiceConfiguration 클래스
4.5 마치며

5장 비즈니스 로직 설계
5.1 비즈니스 로직 구성 패턴
5.1.1 비즈니스 로직 설계: 트랜잭션 스크립트 패턴
5.1.2 비즈니스 로직 설계: 도메인 모델 패턴
5.1.3 도메인 주도 설계 개요
5.2 도메인 모델 설계: DDD 애그리거트 패턴
5.2.1 불분명한 경계 문제
5.2.2 애그리거트는 경계가 분명하다
5.2.3 애그리거트 규칙
5.2.4 애그리거트 입도4
5.2.5 비즈니스 로직 설계: 애그리거트
5.3 도메인 이벤트 발행
5.3.1 변경 이벤트를 발행하는 이유
5.3.2 도메인 이벤트란 무엇인가?
5.3.3 이벤트 강화
5.3.4 도메인 이벤트 식별
5.3.5 도메인 이벤트 생성 및 발행
5.3.6 도메인 이벤트 소비
5.4 주방 서비스 비즈니스 로직
5.4.1 Ticket 애그리거트
5.5 주문 서비스 비즈니스 로직
5.5.1 Order 애그리거트
5.5.2 OrderService 클래스
5.6 마치며

6장 비즈니스 로직 개발: 이벤트 소싱
6.1 이벤트 소싱 응용 비즈니스 로직 개발
6.1.1 기존 영속화의 문제점
6.1.2 이벤트 소싱 개요
6.1.3 동시 업데이트: 낙관적 잠금
6.1.4 이벤트 소싱과 이벤트 발행
6.1.5 스냅샷으로 성능 개선
6.1.6 멱등한 메시지 처리
6.1.7 도메인 이벤트 발전시키기
6.1.8 이벤트 소싱의 장점
6.1.9 이벤트 소싱의 단점
6.2 이벤트 저장소 구현
6.2.1 이벤추에이트 로컬 이벤트 저장소의 작동 원리
6.2.2 자바용 이벤추에이트 클라이언트 프레임워크
6.3 사가와 이벤트 소싱을 접목
6.3.1 코레오그래피 사가 구현: 이벤트 소싱
6.3.2 오케스트레이션 사가 생성
6.3.3 이벤트 소싱 기반의 사가 참여자 구현
6.3.4 사가 오케스트레이터 구현: 이벤트 소싱
6.4 마치며

7장 마이크로서비스 쿼리 구현
7.1 API 조합 패턴 응용 쿼리
7.1.1 findOrder( ) 쿼리
7.1.2 API 조합 패턴 개요
7.1.3 API를 조합 패턴으로 findOrder( ) 쿼리 구현
7.1.4 API 조합 설계 이슈
7.1.5 API 조합 패턴의 장단점
7.2 CQRS 패턴
7.2.1 CQRS의 필요성
7.2.2 CQRS 개요
7.2.3 CQRS의 장점
7.2.4 CQRS의 단점
7.3 CQRS 뷰 설계
7.3.1 뷰 DB 선택
7.3.2 데이터 접근 모듈 설계
7.3.3 CQRS 뷰 추가 및 업데이트
7.4 CQRS 뷰 구현: AWS DynamoDB 응용
7.4.1 OrderHistoryEventHandlers 모듈
7.4.2 DynamoDB 데이터 모델링 및 쿼리 설계
7.4.3 OrderHistoryDaoDynamoDb 클래스
7.5 마치며

8장 외부 API 패턴
8.1 외부 API 설계 이슈
8.1.1 API 설계 이슈: FTGO 모바일 클라이언트
8.1.2 API 설계 이슈: 다른 종류의 클라이언트
8.2 API 게이트웨이 패턴
8.2.1 API 게이트웨이 패턴 개요
8.2.2 API 게이트웨이의 장단점
8.2.3 API 게이트웨이 사례: 넷플릭스
8.2.4 API 게이트웨이 설계 이슈
8.3 API 게이트웨이 구현
8.3.1 기성 API 게이트웨이 제품/서비스 활용
8.3.2 API 게이트웨이 자체 개발
8.3.3 API 게이트웨이 구현: GraphQL
8.4 마치며

9장 마이크로서비스 테스트 1부
9.1 마이크로서비스 아키텍처 테스트 전략
9.1.1 테스트 개요
9.1.2 마이크로서비스 테스트
9.1.3 배포 파이프라인
9.2 서비스 단위 테스트 작성
9.2.1 단위 테스트 작성: 엔터티
9.2.2 단위 테스트 작성: 밸류 객체
9.2.3 단위 테스트 작성: 사가
9.2.4 단위 테스트 작성: 도메인 서비스
9.2.5 단위 테스트 작성: 컨트롤러
9.2.6 단위 테스트 작성: 이벤트/메시지 핸들러
9.3 마치며

10장 마이크로서비스 테스트 2부
10.1 통합 테스트 작성
10.1.1 통합 테스트: 영속화
10.1.2 통합 테스트: REST 요청/응답형 상호 작용
10.1.3 통합 테스트: 발행/구독 스타일 상호 작용
10.1.4 통합 계약 테스트: 비동기 요청/응답 상호 작용
10.2 컴포넌트 테스트 개발
10.2.1 인수 테스트 정의
10.2.2 인수 테스트 작성: 거킨
10.2.3 컴포넌트 테스트 설계
10.2.4 컴포넌트 테스트 작성: 주문 서비스
10.3 종단 간 테스트 작성
10.3.1 종단 간 테스트 설계
10.3.2 종단 간 테스트 작성
10.3.3 종단 간 테스트 실행
10.4 마치며

11장 프로덕션 레디 서비스 개발
11.1 보안 서비스 개발
11.1.1 기존 모놀리식 애플리케이션의 보안
11.1.2 마이크로서비스 아키텍처에서의 보안 구현
11.2 구성 가능한 서비스 설계
11.2.1 푸시 기반의 외부화 구성
11.2.2 풀 기반의 외부화 구성
11.3 관측 가능한 서비스 설계
11.3.1 헬스 체크 API 패턴
11.3.2 로그 수집 패턴
11.3.3 분산 추적 패턴
11.3.4 애플리케이션 지표 패턴
11.3.5 예외 추적 패턴
11.3.6 감사 로깅 패턴
11.4 서비스 개발: 마이크로서비스 섀시 패턴
11.4.1 마이크로서비스 섀시
11.4.2 이제는 서비스 메시로
11.5 마치며

12장 마이크로서비스 배포
12.1 서비스 배포: 언어에 특정한 패키징 포맷 패턴
12.1.1 언어에 특정한 패키징 포맷 패턴의 장점
12.1.2 언어에 특정한 패키징 포맷 패턴의 단점
12.2 서비스 배포: 가상 머신 패턴
12.2.1 가상 머신 패턴의 장점
12.2.2 가상 머신 패턴의 단점
12.3 서비스 배포: 컨테이너 패턴
12.3.1 서비스를 도커로 배포
12.3.2 컨테이너 패턴의 장점
12.3.3 컨테이너 패턴의 단점
12.4 FTGO 애플리케이션 배포: 쿠버네티스
12.4.1 쿠버네티스 개요
12.4.2 쿠버네티스 배포: 음식점 서비스
12.4.3 API 게이트웨이 배포
12.4.4 무중단 배포
12.4.5 배포와 릴리스 분리: 서비스 메시
12.5 서비스 배포: 서버리스 패턴
12.5.1 AWS 람다를 이용한 서버리스 배포
12.5.2 람다 함수 개발
12.5.3 람다 함수 호출
12.5.4 람다 함수의 장점
12.5.5 람다 함수의 단점
12.6 REST 서비스 배포: AWS 람다 및 AWS 게이트웨이
12.6.1 음식점 서비스를 AWS 람다 버전으로 설계
12.6.2 ZIP 파일로 서비스 패키징
12.6.3 서버리스 프레임워크로 람다 함수 배포
12.7 마치며

13장 마이크로서비스로 리팩터링
13.1 마이크로서비스 리팩터링 개요
13.1.1 모놀리스를 왜 리팩터링하는가?
13.1.2 모놀리스 옥죄기
13.2 모놀리스 → 마이크로서비스 리팩터링 전략
13.2.1 새 기능을 서비스로 구현한다
13.2.2 표현 계층과 백엔드를 분리한다
13.2.3 기능을 여러 서비스로 추출한다
13.3 서비스와 모놀리스 간 협동 설계
13.3.1 통합 글루 설계
13.3.2 서비스와 모놀리스에 걸쳐 데이터 일관성 유지
13.3.3 인증/인가 처리
13.4 새 기능을 서비스로 구현: 배달 실패한 주문 처리
13.4.1 배달 지연 서비스 설계
13.4.2 배달 지연 서비스를 위한 통합 글루 설계
13.5 모놀리스 분해: 배달 관리 추출
13.5.1 현행 배달 관리 기능
13.5.2 배달 서비스 개요
13.5.3 배달 서비스의 도메인 모델 설계
13.5.4 배달 서비스의 통합 글루 설계
13.5.5 배달 서비스와 상호 작용할 수 있게 모놀리스를 변경
13.6 마치며

한국어판 부록 A 실습 환경 구성
A.1 실습 준비
A.1.1 운영 체제: 윈도 10 Pro
A.1.2 하이퍼-V 가상화 지원
A.1.3 윈도 리눅스용 하위 시스템(WSL) 기능 활성화
A.2 WSL 설치
A.3 도커 설치 및 구성
A.4 소스 내려받아 빌드하기
A.5 컨테이너 실습
A.5.1 도커 컴포즈 실행
A.5.2 스웨거 접속
A.5.3 도커 컴포즈 종료
A.6 더 보기

저자소개

크리스 리처드슨 Chris Richardson
개발자이자 아키텍트다. 자바 챔피언(Java Champion), 자바원(JavaOne) 락 스타이며, 스프링, 하이버네이트 같은 프레임워크에서 엔터프라이즈 애플리케이션을 구축하는 방법을 설명한 『POJO in Action』(Manning, 2006)의 저자다. 또한, 아마존 EC2의 초기 자바 PaaS였던 CloudFoundry.com을 만들었다. 요즘은 마이크로서비스 부문을 선도하는 공인 전문가로서 국제 콘퍼런스에서 상임 연사로 활동 중이다. 마이크로서비스 패턴 언어인 Microservices.io의 원작자인 그는 전 세계를 누비며 마이크로서비스 아키텍처를 도입하려는 회사에서 컨설팅, 교육 서비스를 제공하고 있다. 지금은 트랜잭셔널 마이크로서비스 개발 플랫폼인 Eventuate.io를 3번째 스타트업으로 준비 중이다.

옮긴이 이일웅
15년 가까이 자바 프런트엔드/백엔드 개발자 및 AA로 활동하면서 다양한 엔터프라이즈 프로젝트 현장을 누벼 왔다. 집에서는 세 여인의 분에 넘치는 사랑을 받고 사는 행복한 딸 바보다. 2014년 이후로 십수 권의 IT 전문서를 번역하며 동료, 후배 개발자들과 지식, 경험을 나누는 일에도 힘쓰고 있다. 소질과 실력은 없지만 시간이 나면 클래식 피아노곡을 즐겨 연주한다.

서평(0)

별점으로 평가해주세요.

서평쓰기

스포일러가 포함되어 있습니다.

0.0

(0명)

ebook 이용안내

  • 구매 후 배송이 필요 없이 다운로드를 통해 이용 가능한 전자책 상품입니다.
  • 전자책 1회 구매로 PC, 스마트폰, 태블릿 PC에서 이용하실 수 있습니다.
    (도서 특성에 따라 이용 가능한 기기의 제한이 있을 수 있습니다.)
  • 책파일 내 판권정보 정가와 북큐브 사이트 정가 표시가 다를 수 있으며, 실제 정가는 사이트에 표시된 정가를 기준으로 합니다.
  • 적립금 지급은 적립금 및 북큐브 상품권으로 결제한 금액을 뺀 나머지가 적립금으로 지급됩니다.
    (적립금 유효기간은 마이페이지>북캐시/적립금/상품권>적립금 적립내역에서 확인 가능합니다.)
  • 저작권 보호를 위해 인쇄/출력 기능은 지원하지 않습니다.
  • 구매하신 전자책은 “마이페이지 > 구매목록” 또는 “북큐브 내서재 프로그램 > 구매목록”에서 다운로드할 수 있습니다.
  • 스마트폰, 태블릿PC의 경우 북큐브 어플리케이션을 설치하여 이용할 수 있습니다. (모바일 페이지 바로가기)
  • PC에서는 PC용 내서재 프로그램을 통해 도서를 이용하실 수 있습니다.
  • ID 계정 당 총 5대의 기기에서 횟수 제한 없이 이용하실 수 있습니다.
TOP