HOME > 상세정보

상세정보

클라우드 네이티브 스프링 : 클라우드 플랫폼을 위한 자바 마이크로서비스

클라우드 네이티브 스프링 : 클라우드 플랫폼을 위한 자바 마이크로서비스

자료유형
단행본
개인저자
Mahajan, Ajay Kumar Gupta, Munish, 저 Sundar, Shyam, 저 박규태, 역
서명 / 저자사항
클라우드 네이티브 스프링 : 클라우드 플랫폼을 위한 자바 마이크로서비스 / 아제이 마하잔, 무니쉬 쿠마르 굽타, 시암 순다르 지음 ; 박규태 옮김
발행사항
서울 :   에이콘,   2019  
형태사항
462 p. : 삽화 ; 24 cm
원표제
Cloud-native applications in Java : build microservice-based cloud-native applications that dynamically scale
ISBN
9791161752457
000 00000cam c2200205 c 4500
001 000045973472
005 20190812153630
007 ta
008 190228s2019 ulka 000c kor
020 ▼a 9791161752457 ▼g 94000
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 004.678 ▼2 23
085 ▼a 004.678 ▼2 DDCK
090 ▼a 004.678 ▼b 2019
100 1 ▼a Mahajan, Ajay
245 1 0 ▼a 클라우드 네이티브 스프링 : ▼b 클라우드 플랫폼을 위한 자바 마이크로서비스 / ▼d 아제이 마하잔, ▼e 무니쉬 쿠마르 굽타, ▼e 시암 순다르 지음 ; ▼e 박규태 옮김
246 1 9 ▼a Cloud-native applications in Java : ▼b build microservice-based cloud-native applications that dynamically scale
260 ▼a 서울 : ▼b 에이콘, ▼c 2019
300 ▼a 462 p. : ▼b 삽화 ; ▼c 24 cm
546 ▼a 영어로 된 원저작을 한국어로 번역
700 1 ▼a Kumar Gupta, Munish, ▼e
700 1 ▼a Sundar, Shyam, ▼e
700 1 ▼a 박규태, ▼e
900 1 0 ▼a 마하잔, 아제이, ▼e
900 1 0 ▼a 쿠마르 굽타, 무니쉬, ▼e
900 1 0 ▼a 순다르, 시암, ▼e

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 004.678 2019 등록번호 151344940 도서상태 대출가능 반납예정일 예약 서비스 C

컨텐츠정보

책소개

클라우드 네이티브 애플리케이션 개발은 쉽지 않다. 단순한 애플리케이션 하나라도 클라우드의 장점을 십분 활용할 수 있게 만들고 배포하려면 많은 배경지식과 기술이 필요하다. 이 책은 실용적인 예제를 점진적으로 발전시켜 나가면서 클라우드 네이티브 애플리케이션을 설계하고 구축하는 데 필요한 여러 가지 기술과 해법을 설명한다. AWS, Azure 등의 클라우드 플랫폼 활용법, API 디자인, 일체형 애플리케이션을 마이크로서비스로 분할하는 방법 등을 배울 수 있다.

★ 이 책에서 다루는 내용 ★

■ 가변성, 프로비저닝, 도구 지원 측면에서 클라우드 환경의 장점
■ 클라우드에서 개발할 때 필요한 아키텍처 패턴 및 고려할 사항
■ 요청 라우팅, RESTful 서비스 생성, 이벤트 소싱 등의 클라우드 네이티브 기술/패턴 사용법
■ 마이크로서비스를 위한 도커 컨테이너 생성과 젠킨스를 이용한 지속적인 통합 환경 설정
■ 컨테이너화를 위해 도커와 쿠버네티스 등의 도구 검토
■ AWS와 Azure 전용 도구를 사용한 애플리케이션 설계, 개발, 배포, 관리 방법

★ 이 책의 대상 독자 ★

클라우드 기반 환경에 배포하기 위한 복원력 있고 견고하며, 확장성 있는 애플리케이션을 구축하려는 자바 개발자에게 유용하다. 자바, 스프링, 웹 프로그래밍, AWS 및 Azure 같은 공개 클라우드 플랫폼을 경험해봤다면 이 책을 충분히 이해할 수 있다.

★ 이 책의 구성 ★

1장. '클라우드 네이티브 소개'에서는 클라우드 네이티브 애플리케이션이 필요한 이유를 설명한다. 클라우드 플랫폼으로 이동하는 이유는 무엇인가? 클라우드 개발 및 배포가 일반 애플리케이션과 다른 이유는 무엇인가? 클라우드 애플리케이션의 12가지 요소는 무엇인가?
2장. '첫 번째 클라우드 네이티브 애플리케이션'에서는 애플리케이션을 마이크로서비스 방식으로 설계할 때의 핵심 개념을 설명한 후 이 책을 진행하면서 점점 살을 붙여 나갈 예제 프로젝트를 소개한다. 또한 마이크로서비스 애플리케이션 개발을 위해 스프링 부트를 사용하는 방법과 클라우드 네이티브 애플리케이션을 개발할 때 사용하는 마이크로서비스 원칙을 알아본다.
3장. '클라우드 네이티브 애플리케이션 설계'에서는 클라우드 네이티브 애플리케이션을 설계할 때 고려할 몇 가지 고급 아키텍처 문제를 다룬다. 여기에는 이벤트 기반 아키텍처, 코레오그래피를 이용한 디커플링, 경계가 있는 컨텍스트와 같은 도메인 주도 설계(DDD) 개념 등이 포함된다. 시스템 중심의 서비스 정의 대신, 클라우드에서 개발하고 고객 중심 API를 제공하는 데 필요한 아키텍처 패턴과 고려할 사항을 알아본다.
4장. '클라우드 네이티브 애플리케이션 확장'에서는 다양한 스택, 원칙, 지원 컴포넌트를 사용해 애플리케이션을 만드는 방법을 자세히 알아본다. 서비스 구현에 필요한 패턴을 다루며, 클라우드 개발에 상당한 영향을 미치는 오류 처리, CQRS, 캐싱 등의 다양한 측면을 설명한다.
5장. '클라우드 네이티브 애플리케이션 테스트'에서는 마이크로서비스를 테스트하는 방법과 행위 주도 개발에서의 테스트 작성 방법을 알아본다.
6장. '클라우드 네이티브 애플리케이션 배포'에서는 도커 컨테이너 배포를 위한 애플리케이션 패키징 방법, CI/CD 파이프라인을 설정하는 방법을 비롯한 마이크로서비스 배포 모델을 자세히 살펴본다.
7장. '클라우드 네이티브 애플리케이션 런타임'에서는 서비스 런타임을 다룬다. 구성 서버를 이용해 구성을 외부화하는 방법과 주울을 프론트엔드로 배치하는 방법을 알아보며, 피보탈 클라우드 파운드리에 관해 설명하고, PCF Dev에 서비스를 배포하는 방법을 알아본다. 컨테이너 오케스트레이션 또한 다룬다.
8장. 'AWS 플랫폼에 배포'에서는 AWS 환경을 설명하고, 이전 장에서 설명한 개념(레지스트리, 구성, 로그 집계, 비동기 메시징)을 바탕으로 클라우드 개발을 하기 위한 AWS 고유의 도구를 설명한다.
9장. 'Azure 플랫폼에 배포'에서는 Azure 환경을 설명하고, 클라우드 개발을 하기 위한 Service Fabric, Azure Functions 등의 Azure 고유의 도구를 설명한다.
10장. '서비스 통합'에서는 IaaS, PaaS, iPaaS, DBaaS를 비롯한 다양한 유형의 XaaS를 설명하고, 인프라 요소를 서비스로 노출하는 방법을 알아본다. 클라우드 네이티브 모드에서는 애플리케이션을 소셜 미디어 API나 PaaS API와 통합하거나 다른 애플리케이션에서 사용할 서비스를 호스팅할 수 있다. 또한 다른 외부 서비스를 연결해서 사용하거나 직접 서비스를 제공하는 방법을 설명한다.
11장. 'API 디자인 모범 사례에서는 기능 지향적이고 세분화된 사용자 중심의 API를 설계하는 방법을 설명한다. 또한 API 수준 또는 서비스에서의 오케스트레이션 수행 여부, 무료 API 모델을 만드는 방법, 서비스가 채널에 구애받지 않도록 API 계층에서 채널과 관련된 문제를 해결하는 방법, 보안을 고려한 API 설계 등 API 설계에 대한 다양한 모범 사례를 설명한다.
12장. '디지털 트랜스포메이션'에서는 클라우드 개발이 기존 기업 환경에 미치는 영향과 클라우드를 이용해 디지털 엔터프라이즈로 성공적으로 전환하는 방법을 설명한다.


정보제공 : Aladin

저자소개

아제이 마하잔(지은이)

위프로 테크놀로지의 특별 기술 위원(Distinguished Member of Technical Staff)이며, 현재 소매 부문 수석 기술자로 활동 중이다. 최근에는 고객이 차세대 소매 애플리케이션을 위해 클라우드 네이티브와 디지털 아키텍처를 도입할 수 있게 지원하는 일을 하고 있다. 유럽과 미국의 소매 및 금융 분야 고객들과 대규모 미션 크리티컬 시스템에서 일했으며, 19년간 자바 플랫폼을 사용하면서 넷스케이프 애플리케이션 서버부터 서블릿/JSP, JEE, 스프링, 최근의 클라우드 마이크로서비스에 이르기까지 엔터프라이즈 자바의 발전상을 지켜봤다.

무니쉬 쿠마르 굽타(지은이)

비자(Visa)의 수석 시스템 설계자다. 인도 벵갈루루에서 살며, 일상 업무는 엄격한 비기능 요구 사항이 있는 애플리케이션을 위한 솔루션 아키텍처 설계, 성능 엔지니어링, 애플리케이션 인프라 관리, 엔터프라이즈에 도입하기 위한 최신 오픈소스 기술을 조사하는 것이다. 『Akka Essentials』(Packt, 2012)의 저자며, 소프트웨어 프로그래밍과 장인 정신에 매우 열정적이다. 기술 동향, 애플리케이션 성능 엔지니어링, Akka에 대한 블로그를 운영 중이다.

시암 순다르(지은이)

벵갈루루에 있는 위프로 테크놀로지의 수석 아키텍트로, 위프로의 이머징 테크놀로지 아키텍처(Emerging Technologies Architecture) 그룹에 속해 있다. 팀이 프로젝트에 새로운 기술을 도입할 수 있게 돕는 일을 한다. 주로 클라이언트 측과 클라우드 기술에 중점을 두며, 소프트웨어 장인 정신에 깊은 관심을 가진 평생 학습자다. 더 나은 개발 경험을 위해 끊임없이 새로운 도구와 기술을 실험하고 있다.

박규태(옮긴이)

엔터프라이즈 자바 환경에서 오랫동안 일했다. 콘텐츠 관리 시스템, 웹 오피스, 스마트 TV용 앱, 소셜 미디어 플랫폼을 개발했으며, 최근 몇 년간은 클라우드 솔루션과 GPU 관리 플랫폼을 개발 중이다. 많은 부분을 코드로 자동화할 수 있어서 클라우드 환경을 무척 좋아한다. 자바월드(javaworld.co.kr)라는 블로그를 운영 중이다.

정보제공 : Aladin

목차

1장. 클라우드 네이티브 소개
__클라우드 네이티브가 필요한 이유
__클라우드 네이티브란?
____클라우드 플랫폼으로 이동
____클라우드 네이티브로 이동
____서버 리스로 이동
__클라우드 네이티브와 마이크로서비스
__클라우드 애플리케이션의 12가지 요소
____마이크로서비스 실행을 위한 서비스 생태계
__마이크로서비스 도입
____일체형 애플리케이션 변환
요약


2장. 첫 번째 클라우드 네이티브 애플리케이션
__개발 도구 설정
____IDE 선택
____인터넷 연결 설정
__개발 생명주기의 이해
____요구 사항/사용자 스토리
____아키텍처
____설계
____테스트와 개발
____구축과 배포
__프레임워크 선택
____드롭위자드
____버텍스
____스프링 부트
__product 서비스 작성
____메이븐 프로젝트 생성
____스프링 부트 애플리케이션 클래스 작성
____서비스 및 도메인 객체 작성
____서비스 실행
____브라우저에서의 서비스 테스트
____배포본 생성
__기본적인 클라우드 네이티브 기능 추가
____구성 외부화
____서비스 미터링(metering)
____서비스 등록과 검색
__요약



3장. 클라우드 네이티브 애플리케이션 설계
__트리오: REST, HTTP, JSON
__API의 발달과 유행
__API 게이트웨이의 역할
____API 게이트웨이의 장점
__애플리케이션 분리
____경계가 있는 컨텍스트/도메인 주도 설계
____업스트림 및 다운스트림 서비스 분류
____비즈니스 이벤트
__마이크로서비스 식별
____마이크로서비스와 서비스지향 아키텍처의 차이점
____서비스 분류
__마이크로서비스 설계 지침
__디자인 및 배포 패턴
__마이크로서비스를 위한 데이터 아키텍처
____명령 조회 책임 분리
____데이터 복제
____목적에 맞춘 선택
__서비스 보안
__요약


4장. 클라우드 네이티브 애플리케이션 확장
__제품 조회 서비스 구현
____간단한 제품 테이블
____캐싱
____분산 캐시
____데이터 모델과 서비스를 분리하기 위해 CQRS 적용
__데이터 업데이트 서비스
____REST 규약
____유효성 검사와 오류 메시지
____CQRS 패턴의 데이터 업데이트 구현
____비동기 메시징
____골든 소스 업데이트
____데이터 업데이트 시 이벤트 발생
____쿼리 모델 업데이트
__요약


5장. 클라우드 네이티브 애플리케이션 테스트
__개발 전에 테스트 케이스 작성
____TDD
____BDD
__테스트 패턴
____A/B 테스트
____테스트 더블
__테스트 유형
____단위 테스트
____통합 테스트
____부하 테스트
____회귀 테스트
____코드 리뷰와 커버리지
__제품 서비스 테스트
____큐컴버를 이용한 BDD
____스프링 부트 테스트
____JaCoCo를 이용한 코드 커버리지
__요약


6장. 클라우드 네이티브 애플리케이션 배포
__배포 모델
____가상화
____PaaS
____Containers
____도커 이미지 빌드
__배포 패턴
____블루/그린 배포
____카나리아 배포
____은밀한 개시
____자동화를 위한 CI/CD 적용
요약
__
7장. 클라우드 네이티브 애플리케이션 런타임
__런타임의 필요성
__참조 런타임 아키텍처 구현
____서비스 레지스트리
____컨피그 서버
____마이크로서비스의 프론트엔드
__쿠버네티스: 컨테이너 오케스트레이션
____쿠버네티스 아키텍처와 서비스
____Minikube
____쿠버네티스에서 product 서비스 실행
__서비스로서의 플랫폼
____PaaS의 사례
____클라우드 파운드리
____피보탈 클라우드 파운드리
__요약


8장. AWS 플랫폼에 배포
__AWS 플랫폼
__AWS 플랫폼의 배포 옵션
____Beanstalk에 스프링 부트 API 배포
____Amazon Elastic Container Registry에 컨테이너 이미지 푸시
____ECS에 스프링 부트 애플리케이션 배포
____AWS Lambda에 배포
__요약


9장. Azure 플랫폼에 배포
__Azure 플랫폼
__Azure 플랫폼의 배포 옵션
____Azure App Service에 스프링 부트 API 배포
____Azure Container Service에 도커 컨테이너 배포
____Azure Service Fabric에 스프링 부트 API 배포
____Azure Function
__요약


10장. 서비스 통합
__XaaS
__XaaS 구축 시의 주요 설계 고려 사항
__서드파티 API와의 통합
__요약


11장. API 디자인 모범 사례
__API 디자인
____API 리소스 식별
____API 설계 지침
__API 모델링
____Open API
____RESTful API 모델링 언어(RAML)
__API 게이트웨이 배포 모델
__요약


12장. 디지털 트랜스포메이션
__애플리케이션 포트폴리오
____포트폴리오 분석: 비즈니스 및 기술 요소
__일체형 애플리케이션을 분산형 클라우드 네이티브 애플리케이션으로 변경
____일체형 애플리케이션을 분산형 애플리케이션으로 변환
____고객 여정을 도메인 주도 디자인으로 매핑
____아키텍처 런웨이 정의
____개발자 빌드
____일체형 애플리케이션 분해
____변환 과정 정리
__자체 플랫폼 서비스 구축(제어 혹은 위임)
__요약


정보제공 : Aladin

관련분야 신착자료

김자미 (2021)