1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

클라우드 네이티브 자바 - 스프링 마이크로서비스 아키텍처와 데브옵스를 실천하는 클라우드 기반 서비스의 모든 것
저자 : 조쉬 롱, 케니 바스타니 ㅣ 출판사 : 책만 ㅣ 역자 : 정윤진, 오명운, 장현희

2018.06.29 ㅣ 784p ㅣ ISBN-13 : 9791196203733

정가38,000
판매가34,200(10% 할인)
적립금 1,900원 (5%)
배송일정 05월 08일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 컴퓨터언어 > 기타언어/언어일반/...
풀 사이클 개발자로 진화하고 싶은 엔터프라이즈 자바 개발자가 꼭 읽어야 할 클라우드 시대의 생존 지침서!

스프링 부트, 스프링 클라우드, 클라우드 파운드리를 이용한 다양한 예제를 통해 확장성 높은 마이크로서비스 아키텍처 설계와 데브옵스(DevOps), 애자일 개발의 진정한 실천 방법을 알려준다.

"자바 생태계에서 클라우드 네이티브 애플리케이션을 만드는 개발자라면 꼭 읽어야 할 필독서다. 회복력 있는(resilient) 서비스 제작, REST와 비동기 이벤트로 들어오는 데이터 흐름 관리, 테스트, 배포, 관측성(observability)과 관련된 핵심 작업까지 모든 것을 다루는 책이다."
- 대니얼 브라이언트 / 스펙토랩스(SpectoLabs) CTO

"클라우드 네이티브로의 여행을 떠나는 모든 이가 이 책에 담긴 정제된 통찰과 경험을 통해 많은 것을 배울 수 있다."
- 데이브 사이어 박사 / 스프링 프레임워크 기여자, 스프링 부트와 스프링 클라우드의 공동 설립자

아마존, 넷플릭스, 엣시 같은 회사는 전통적인 대기업과 비교해 어떤 차이가 있을까? 아마존과 넷플릭스는 클라우드 네이티브 방식으로 서비스를 만들고 운영하면서 경쟁력을 유지하고 앞서갈 수 있었다. 이 책은 자바 개발자가 스프링 부트, 스프링 클라우드, 클라우드 파운드리를 이용해서 더 나은 소프트웨어를 더 빨리 개발할 수 있는 실용적인 가이드를 제공한다. 많은 기업이 이미 클라우드 컴퓨팅, 테스트 주도 개발, 마이크로서비스, 지속적 통합 및 전달로 소프트웨어 개발 방식을 전향하고 있다. 이 책을 읽다 보면 레거시 애플리케이션을 클라우드 네이티브 애플리케이션으로 전환하는 데 도움을 주는 도구와 방법론에 자연스럽게 흠뻑 빠져들게 된다.

* 기본: 클라우드 네이티브 사고 방식의 장점을 알아본다. 스프링 부트 애플리케이션을 설정하고 테스트하는 방법과 레거시 애플리케이션을 클라우드로 옮기는 방법을 설명한다.
* 마이크로서비스: 스프링을 활용해서 HTTP 기반 RESTful 서비스를 만들어본다. 요청을 분산 시스템에 적절히 라우팅하는 방법을 알아보고 관문 역할을 하는 엣지 서비스를 구축한다.
* 데이터 통합: 스프링 데이터 프레임워크를 활용해서 데이터를 관리하는 방법과, 이벤트 주도, 메시징 중심 아키텍처를 지원하는 스프링을 사용해서 분산 서비스를 통합하는 방법을 알아본다.
* 배포 및 운영: 관찰 가능한 시스템을 만드는 방법을 알아본다. 서비스 브로커를 이용해서 상태 유지 서비스와 연결해보고, 지속적 전달에 담긴 진정한 의미를 이해한다.

예제 코드, 연습 등 보충 자료는 http://github.com/Cloud-Native-Java에서 내려받을 수 있다.
펼쳐보기

[목 차]

[1부 기초]
1장 클라우드 네이티브 애플리케이션
아마존 사례
플랫폼의 약속
패턴
확장성
신뢰도
애자일성
넷플릭스 사례
__마이크로서비스
__일체형 쪼개기
__넷플릭스 OSS
__클라우드 네이티브 자바
12요소 방법론
__코드베이스
__의존 관계
__설정__지원 서비스
__빌드, 릴리스, 실행
__프로세스
__포트 바인딩
__동시성
__처분성
__개발/운영 짝맞춤
__로그
__관리 프로세스
정리

2장 부트캠프: 스프링 부트와 클라우드 파운드리 소개
스프링 부트
스프링 이니셜라이저
스프링 툴 스위트 시작하기
__스프링 툴 스위트 설치
__스프링 이니셜라이저로 새 프로젝트 생성
스프링 가이드
__STS에서 스프링 가이드 따라하기
설정
클라우드 파운드리
정리

3장 12요소 애플리케이션 설정
혼동스러운 설정
스프링 프레임워크의 설정 지원
__설정 정보 이해를 위한 PropertyPlaceholderConfigurer 클래스
__Environment 추상화와 @Value
__프로파일
스프링 부트 방식의 설정
스프링 클라우드 설정 서버로 중앙 집중형 설정 사용하기
__스프링 클라우드 설정 서버
__스프링 클라우드 설정 클라이언트
__보안
새로고침 가능한 설정
정리

4장 테스트
테스트의 구성
스프링 부트 애플리케이션 테스트
통합 테스트
__테스트 슬라이스
__모의 기법 활용
__@SpringBootTest로 서블릿 컨테이너 설정
__슬라이스
전 구간 테스트
__분산 시스템 테스트
__컨슈머 주도 계약 테스트
__스프링 클라우드 컨트랙트
정리

5장 애플리케이션 마이그레이션
계약
애플리케이션 환경 마이그레이션
__바로 가져다 쓰는 빌드팩
__커스텀 빌드팩
__컨테이너화된 애플리케이션
애플리케이션을 클라우드로 옮기기 위한 가벼운 리팩토링
__지원 서비스 연동
__스프링을 이용한 서비스 짝맞춤
정리

[2부 웹 서비스]
6장 REST API
레너드 리차드슨의 성숙도 모델
스프링 MVC를 이용한 간단한 REST API
컨텐트 협상
__바이너리 데이터 읽고 쓰기
__구글 프로토콜 버퍼
에러 처리
하이퍼미디어
__미디어 타입과 스키마
API 버저닝
REST API 문서화
클라이언트
__편리한 REST 클라이언트 제품
__RestTemplate
정리

7장 라우팅
DiscoveryClient 추상화
클라우드 파운드리 라우트 서비스
정리

8장 엣지 서비스
Greetings 서비스
간단한 엣지 서비스
넷플릭스 페인
넷플릭스 주울을 통한 필터링과 프록시
__커스텀 주울 필터
엣지 서비스의 보안
OAuth
__서비스 쪽 애플리케이션
__HTML5와 자바스크립트 단일 페이지 애플리케이션
__사용자 없는 애플리케이션
__신뢰할 수 있는 클라이언트
스프링 시큐리티
스프링 클라우드 시큐리티
__스프링 시큐리티 OAuth 인가 서버
__Greetings 자원 서버 보안 조치
__OAuth 보안이 적용된 단일 페이지 애플리케이션 만들기
정리

[3부 데이터 통합]
9장 데이터 관리
데이터 모델링
__관계형 데이터베이스 관리 시스템
__NoSQL
스프링 데이터
__스프링 데이터 애플리케이션의 구조
__도메인 클래스
__리포지토리
__도메인 데이터를 위한 자바 패키지 구성
JDBC를 사용한 RDBMS 접근 시작해보기
스프링의 JDBC 지원
스프링 데이터 예제
스프링 데이터 JPA
__계정 서비스
__통합 테스트
스프링 데이터 몽고디비
__주문 서비스
__통합 테스트
스프링 데이터 네오포제이
__재고 서비스
__통합 테스트
스프링 데이터 레디스
__캐싱
정리

10장 메시징
스프링 인티그레이션을 사용한 이벤트 주도 아키텍처
__메시징 종단점
__간단한 컴포넌트에서 복잡한 시스템으로
메시지 브로커, 브릿지, 경쟁적 컨슈머 패턴, 이벤트 소싱
__발행-구독
__점대점
스프링 클라우드 스트림
__스트림 프로듀서
__스트림 컨슈머
정리

11장 배치 처리와 태스크
배치 작업
스프링 배치
__첫 번째 배치 작업
스케줄링
메시징을 사용한 스프링 배치 작업의 원격 파티셔닝
태스크 관리
프로세스 중심의 워크플로우 통합
메시징을 사용한 분산
정리

12장 데이터 통합
분산 트랜잭션
장애의 격리와 단계적 성능 저하
사가 패턴
CQRS
__불만 접수 API
__불만 접수 통계 API
스프링 클라우드 데이터 플로우
__스트림
__태스크
__REST API
__데이터 플로우 클라이언트
정리

[4부 운영 환경]
13장 관측 가능한 시스템
만들면 운영까지
마이크로서비스 살인 미스테리
12요소 운영
새로운 계약
관측성
푸시와 풀 기반의 관측성 차이와 분석
스프링 부트 액추에이터를 사용한 애플리케이션 현재 상태 수집하기
메트릭
/info 종단점을 사용해서 서비스 분별하기
정상동작 상태 확인
감사 이벤트
애플리케이션 로깅
__로그 출력의 지정
__로그 수준의 지정
분산 추적
__스프링 클라우드 슬루스로 실마리 찾기
__어느 정도의 데이터라야 충분할까
__오픈 집킨: 수천 개의 추적만큼 가치 있는 한 장의 사진
__그 밖의 플랫폼과 기술
대시보드
__히스트릭스 대시보드를 사용한 서비스 모니터링
__코드센트릭 스프링 부트 어드민
__오디나 마이크로서비스 대시보드
__피보탈 클라우드 파운드리의 앱스매니저
치유
정리

14장 서비스 브로커
지원 서비스의 수명 주기
플랫폼으로서의 관점
스프링 클라우드 클라우드 파운드리 서비스 브로커로 사용자 정의 서비스 브로커 구현하기
__간단한 아마존 S3 서비스 브로커
__서비스 카탈로그
__서비스 인스턴스의 관리
__서비스 바인딩
__서비스 브로커의 보호
배포
__보쉬를 이용한 릴리스
__클라우드 파운드리를 활용한 릴리스
아마존 S3 서비스 브로커 등록하기
아마존 S3 서비스 인스턴스 생성하기
__서비스 인스턴스 활용하기
S3 클라이언트 애플리케이션
전체적인 동작 확인하기
정리

15장 지속적 전달
지속적 통합을 넘어서
__플리커와 엣시의 존 알스포
__넷플릭스의 에이드리안 코크로프트
__아마존의 지속적 전달
파이프라인
테스트
마이크로서비스 환경에서의 지속적 전달
도구
__컨코스
__컨테이너
마이크로서비스의 지속적 전달
__컨코스 설치
__기본적인 파이프라인 디자인
__지속적 통합
컨슈머 주도 계약 테스트
__사용자 마이크로서비스의 파이프라인
데이터
운영 환경으로!

[5부 부록]
부록 A 자바 EE와 스프링 부트
부록 B [한국어판 특별부록] 클라우드 파운드리 환경의 준비와 활용
펼쳐보기
[이 책의 구성]
1부 '기초'
1장 '클라우드 네이티브 애플리케이션'과 2장 '부트캠프: 스프링 부트와 클라우드 파운드리 소개'에서는 클라우드 네이티브 사고(thinking)의 필요성에 대해 살펴보고 스프링 부트와 클라우드 파운드리를 소개한다.
3장 '12요소 애플리케이션 설정'에서는 스프링 부트 애플리케이션을 설정하는 방법을 알아본다. 이 내용은 책 전반에 걸쳐 계속 나온다.
4장 '테스트'에서는 가장 단순한 컴포넌트에서 분산 시스템에 이르기까지 스프링 애플리케이션을 테스트하는 방법에 대해 알아본다.
5장 '애플리케이션 마이그레이션'에서는 일반적인 보통의 애플리케이션을 클라우드 파운드리와 같은 클라우드 플랫폼으로 이전하는 데 필요한 리팩토링을 가볍게 살펴보고, 여러분이 클라우드 플랫폼으로부터 필요한 가치를 얻을 수 있도록 도와줄 것이다.

2부 '웹 서비스'
6장 'REST API'에서는 스프링으로 RESTful HTTP 서비스를 만들어본다. 이 장에서 다루는 내용은 API 개발과 도메인 주도 개발에서 많이 사용된다.
7장 '라우팅'에서는 분산 시스템에서 요청(request)의 출입을 제어하는 일반적인 방법을 알아본다.
8장 '엣지 서비스'에서는 외부로부터의 요청을 받아들이는 첫 번째 관문 역할을 하는 서비스를 만드는 방법을 알아본다.

3부 '데이터 통합'
9장 '데이터 관리'에서는 스프링 데이터를 사용해서 스프링 애플리케이션에서 데이터를 관리하는 방법을 알아본다. 여기에서 다루는 내용은 도메인 주도 사고의 기초가 된다.
10장 '메시징'에서는 스프링의 이벤트 주도, 메시징 중심 아키텍처를 이용해서 분산 서비스와 데이터를 통합하는 방법을 알아본다.
11장 '배치 프로세스와 태스크'에서는 클라우드 파운드리 같은 클라우드 플랫폼의 확장성을 이용해서 오래 지속되는 작업부하를 처리하는 방법을 알아본다.
12장 '데이터 통합'에서는 분산 시스템에서 상태를 관리하는 몇 가지 방법을 알아본다.

4부 '운영 환경'
13장 '관측 가능한 시스템'에서는 관측성(observability)과 운영을 지원하는 시스템을 만드는 방법을 알아본다.
14장 '서비스 브로커'에서는 클라우드 파운드리 같은 플랫폼을 지원하는 서비스 브로커를 만드는 방법을 알아본다. 서비스 브로커는 메시지 큐, 데이터베이스, 캐시처럼 상태를 가진 서비스를 클라우드 플랫폼에 연결해준다.
15장 '지속적 전달'에서는 지속적 전달 뒤에 숨어있는 중요한 개념을 살펴본다. 이 책에서는 마지막 장에 해당하지만, 클라우드 네이티브를 향한 여러분의 여정에서는 출발점에 해당한다.

5부 '부록'
부록 A '자바 EE와 스프링 부트'에서는 스프링 부트 애플리케이션을 자바 EE 환경에 통합하는 방법을 살펴본다.
마지막으로, 한국어판 특별 부록 B '클라우드 파운드리 환경의 준비와 활용'에서는 클라우드 파운드리를 준비하고 애플리케이션을 배포하며 서비스를 준비하는 방법에 대해 알아본다.

[이 책의 독자 대상]
이 책은 스프링 부트, 스프링 클라우드와 클라우드 파운드리를 이용해서 더 나은 소프트웨어를 더 빠르게 만들고 싶어하는 자바/JVM 개발자를 주요 대상으로 한다. 마이크로서비스라는 용어에 대해 들어본 적이 있고, 하늘 높이 치솟는 스프링 부트의 인기를 느끼고 있으며, 오늘날 대부분의 기업들이 왜 클라우드 파운드리를 사용하는지 궁금하다면, 이 책은 바로 여러분을 위한 책이다.

[머리말]
우리는 소프트웨어 업계의 역사에서 가장 멀리까지 영향을 미칠 수 있는 큰 전환의 한가운데에 있습니다. 그 변화는 바로 레거시 아키텍처에서 클라우드로의 전환, 개발과 운영의 전통적인 분리에서 통합을 지향하는 데브옵스로의 전환입니다. 이 책은 이런 전환에 정면으로 맞서서 클라우드 네이티브 애플리케이션을 작성하는 방법을 설명하고, 성공적인 전환을 이끌어낼 수 있는 명확한 가이드를 제공해줍니다.
전환은 하루아침에 이루어지지 않습니다. 이 책의 가장 뛰어난 장점 중 하나는 여러분이 지금 처한 환경에서, 각자의 경험을 잘 활용해서 클라우드로 전환하는 데 중점을 두었다는 점입니다. 특히 5장의 '스프링을 이용한 서비스 짝맞춤' 절에는 기업 시스템의 레거시 관습에서 클라우드 친화적인 관습으로 전환할 수 있게 해주는 탁월한 자료들이 포함되어 있습니다.
이 책은 현대적인 애플리케이션의 아키텍처 원칙과 입증된 효율적인 구현 방법을 모두 설명하면서 이론과 실무의 균형을 아주 적절하게 잘 맞추고 있습니다. 현대적인 애플리케이션은 항상 문제에 대한 포괄적인 해답을 담고 있는 입증된 오픈소스 위에 만들어지기 때문에, 단순히 프로그래밍 언어에 대한 선택뿐 아니라 주로 사용할 오픈소스 프레임워크에 대한 선택이 실무 사례에 반드시 필요합니다. 자바를 주요 언어로 사용한다면, 또는 특정 언어에 구속받지 않고 열려 있는 분이라면, 이 책은 바로 당신을 위한 책입니다.
“내 사망 보도는 상당히 과장되어 있다.” - 마크 트웨인
몇 년 전에 자바의 종말론이 널리 퍼진 적이 있습니다. 자바는 오늘날에도 여전히 번창하고 있고, 이 책에는 그 이유가 담겨 있습니다. 자바는 넷플릭스의 오픈소스 프로젝트와 스프링이라는 두 가지 핵심 성공 요소를 바탕으로 현대적인 클라우드 방식의 애플리케이션 개발을 이끌어오면서 새롭게 생명력을 이어가고 있습니다. 이 책에서는 그 두 가지 핵심 성공 요소를 이해하기 쉽게 잘 풀어내고 있습니다.
스프링은 처음에는 과거 자바 EE의 복잡성을 단순화하기 위해 탄생했지만, 그 핵심 아이디어는 오랜 시간 동안 굳건히 유지되면서 클라우드 애플리케이션 개발에 있어서도 탄탄하고 완벽한 기초를 제공해주고 있습니다. 십 년이 넘도록 우리는 의존관계 주입(Dependency Injection), 이식 가능한 서비스 추상화(Portable Service Abstration)와 관점 지향 프로그래밍(AOP)이라는 '스프링 삼각형'에 대해 이야기해오고 있습니다. 이 세 가지는 비즈니스 로직과 그를 둘러싼 환경의 명확한 분리가 그 어느 때보다 중요한 오늘날에도 여전히 필요합니다.
이 책의 중심부에서는 스프링 부트를 다룹니다. 스프링 부트는 마이크로서비스 시대에 스프링을 사용하는 새로운 방식으로서, 개발 현장에 도입되는 사례가 급증하고 있습니다. 또한, 다양한 규모와 형태의 스프링 서비스를 쉽게 만들며, 컨테이너화된 현대적인 환경에 쉽게 배포할 수 있게 해줍니다. 전통적인 '엔터프라이즈' 자바 애플리케이션은 여전히 하나의 거대한 애플리케이션 서버에서 일체형 방식으로 구동되고 있지만, 스프링 부트는 그와 반대로 단순함과 효율성을 위해 잘게 나눌 수 있게 해줍니다. 서비스는 하나의 단위 업무에 집중할 수 있는 크기로 구성되어, 딱 그만큼의 서비스에 알맞는 적당한 규모의 서버에 배포되어 구동됩니다.
이 책에는 넷플릭스 오픈소스 프로젝트와의 통합과 관련한 고도화된 내용뿐 아니라 스프링 클라우드 스트림과 통합 테스트 지원 개선 등 스프링 개발 팀에서 작성한 최신 작업에 대한 따끈따끈한 사례가 포함되어 있습니다.
저는 스프링의 창시자로서, 스프링이 개발자들의 일을 간단하게 만들어 줄 수 있도록 혁신과 집중을 계속 이어나가는 것을 볼 수 있어서 기쁩니다. 최근 5년 동안은 오로지 사용자의 입장에서 스프링과 교류해오고 있지만, 스프링이 번영을 이루고, 새로운 복잡성들을 계속 정복해나가는 것을 보게 되어 정말로 즐겁습니다. 저는 예전에 스프링이 자바 애플리케이션을 위해 했던 일들을 개발자들과 개발 프로세스를 위해서 수행하고 있는 아토미스트(Atomist) 사에서, 중요한 모든 것들을 자동화할 수 있는 기능을 제공하면서 단순화라는 미션을 수행하고 있습니다. 스프링은 자바 개발자들이 신경써야 하는 모든 작업에 대해 단순하고 생산적인 구조와 추상층을 제공합니다. 마찬가지로 아토미스트도 프로젝트 소스 코드, 빌드 시스템, 이슈 트래커, 배포 환경 등에 대해 단순하고 생산적인 구조와 추상층을 제공해서, 새 프로젝트 생성에서부터 슬랙과 배포 이벤트 모니터링을 포함하는 팀 협업까지를 아우르는 강력한 배포 자동화를 가능하게 합니다.
자동화의 기초가 되는 기본 구성 요소는 테스트입니다. 이 책에서 줄곧 다루는 테스트 주제에 대해, 마이크로서비스를 테스트할 때 마주치게 되는 쉽지 않은 이슈와 해결 방법을 다루는 점이 특히 마음에 들었습니다. 그리고 다양한 예제 코드와 저자들이 적절하게 추가한 오라일리 출판사 특유의 빈틈없고 풍부한 주석도 아주 마음에 들었습니다.
내가 사랑하는 기술을 주제로 친구들이 집필한 책에 추천사를 쓰게 되어 정말 기쁩니다. 조쉬의 강연을 들을 수 있는 행운을 누렸던 많은 사람이 얘기하는 것처럼, 조쉬는 의사소통에 아주 탁월한 재능을 지닌 사람입니다. 조쉬는 라이브 코딩에서의 능숙함을 책에도 잘 녹여냈습니다. 조쉬와 케니는 열정적이고 호기심이 많으며 박식합니다. 그들과 함께 떠난 클라우드 네이티브로의 여행에서 저도 많은 것을 배웠으며 특별한 재미를 맛볼 수 있었습니다. 이제 여러분이 그 재미를 누릴 차례입니다.
- 로드 존슨(Rod Johnson) / 스프링 프레임워크 창시자, 아토미스트 CEO

[지은이의 말]
소프트웨어는 모두를 평등하게 한다. 소프트웨어는 코드를 통해 사람들에게 새로운 길을 제시하기도 한다. 소프트웨어는 고객에게 가치를 전달할 수 있으며, 사람들의 삶을 송두리째 바꾸기도 한다. 우리 책 『클라우드 네이티브 자바』의 한국어판이 출간된다니 영광이다. 더 많은 사람에게 수많은 길을 터주고 때로는 사람들의 삶을 바꾸는 소프트웨어를 만드는 데 이 책이 조금이라도 기여하기를 바란다. 이 책을 통해 여러분의 코드를 실 서비스로 배포하는 여행을 즐기기를!
- 조쉬 롱(Josh Long) / 『클라우드 네이티브 자바』 저자, 스프링 개발자 애드버킷

우리의 책 『클라우드 네이티브 자바』가 한국어로 번역되다니! 윤진과 명운 님, 현희 님, 한국의 번역팀에 감사한다. 클라우드 애플리케이션에서 사용되는 패턴은 이전과 유사한 것도 있고, 새로운 것들도 존재한다. 자바 스프링 개발자들이 클라우드 기반의 애플리케이션을 구현하는 데 어떤 점들을 살펴야 하는지 이 책에 담기 위해 노력했다. 확장성이란 단순히 서버의 숫자를 늘려갈 수 있음을 의미하는 것이 아니다. 더 많은 요청과 워크로드를 처리하기 위해 그에 적합한 기법들을 사용해야 한다. 이런 방법은 애플리케이션의 규모가 크건 작건 언제나 적용될 수 있어야 하며, 이를 통해 각자의 기능을 하는 신축성 있는 애플리케이션을 모아서 하나의 거대한 서비스를 이룰 수 있다. 지난 2016년 한국 방문에서 발표했던 책을 한글로 공개할 수 있게 되어 매우 기쁘며, 많은 스프링 사용자에게 도움이 되기를 바란다.
- 케니 바스타니(Kenny Bastani) / 『클라우드 네이티브 자바』 저자, 스프링 개발자 애드버킷

[옮긴이의 말]
90년대 후반, 2000년대 초반을 지나 개인 컴퓨터와 인터넷의 발달은 동시에 서버 시장과 서버 애플리케이션의 확산을 불러왔다. 이후 모바일 폭발로 불리는 현상이 스마트폰의 등장과 함께 발생하며, 폭발적으로 성장한 클라이언트 요청 규모를 처리가 가능한 클라우드가 등장했다. 이 새로운 환경에 적합한 애플리케이션을 만들면, 이 거대한 클라이언트 요청에 부합하여 전례없는 규모의 확장과 빠른 배포가 가능하다. 이 책은 자바 스프링 개발자들에게 이러한 확장과, 더 빠른 배포에 적합한 '클라우드 네이티브' 애플리케이션을 만드는 데 필요한 기술을 담고 있다. 클라우드에 관심 있는 엔터프라이즈 자바 개발자 분들에게 꼭 필요한 책이다.
- 정윤진

마이크로서비스라는 말을 들어본 지 5년이 넘은 것 같습니다. 작게 나누어 빨리 만들고 빨리 실패하고 빨리 진화시키는 일이 말처럼 쉬운 일은 아니지만 분명한 장점이 있기 때문에 많은 시행 착오에도 불구하고 꾸준히 시도되고 있습니다. 이제는 여기에서 한걸음 더 나아가 배포 환경을 클라우드로 가져가면서 데브옵스로의 전환이 시작되고 있습니다. 이 책은 클라우드 네이티브 개발의 A to Z와 같은 책으로서 개념 정리 및 상세한 예제를 통해 여러분을 클라우드 네이티브 개발의 세계로 이끌어 줄 것입니다.
- 오명운

마이크로서비스 아키텍처는 이제 클라우드 기반의 분산 환경을 기반으로 하는 애플리케이션 개발 분야에서 주류 아키텍처로 자리매김하고 있지만, 제대로 된 마이크로서비스 아키텍처를 구축하고 이를 기반으로 확장성 있는 애플리케이션을 개발하는 것은 결코 쉬운 일이 아닙니다. 저는 지금 약 5년째 마이크로서비스 기반의 애플리케이션을 C#으로 개발 중이지만, 이 책을 번역하면서 자바 개발자들에 대한 부러움에 몸서리를 칠 수밖에 없었습니다. 마이크로서비스를 구현하기 위해 필요한 모든 플랫폼이 준비된 환경이 제게도 허락되었다면 저의 지난 5년이 이처럼 어렵고 힘들지는 않았을 테지요. 이 책은 클라우드 네이티브 애플리케이션을 마이크로서비스 아키텍처를 기반으로 개발하고 운영하기 위해 필요한 정보를 폭넓게 다루는 효과적인 입문서입니다. 단순히 클라우드 파운드리라는 플랫폼의 소개를 넘어, 효율적이고 확장가능하며, 신뢰할 수 있고 스스로 회복할 수 있는 분산 애플리케이션 개발에 대한 기법과 노하우가 고스란히 담겨있는 이 책은, 마이크로서비스라는 바다를 항해하는 데 꼭 필요한 길잡이가 되어 줄 것입니다. 클라우드 및 분산 환경에 대한 저자들의 폭넓은 노하우와 전문성, 그리고 이에 뒤지지 않는 경험과 역량을 보유하신 역자분들의 노력이 결집된 이 책을 통해 마이크로서비스 아키텍처로의 첫 발을 자신있게 내딛으시기를 바랍니다.
- 장현희

추천사
스프링이 등장해서 폭발적인 인기를 끌기 시작하던 즈음에 오픈소스 네이티브 자바의 시대가 열렸다. 오픈소스 기술은 자바 개발에 빠질 수 없는 핵심이 되었고 다양한 형태의 기술로 매우 빠르게 발전해왔다. 이런 변화에 자연스럽게 적응하고 함께 발전해온 대표적인 기술이 스프링이다. 오픈소스 네이티브 자바의 주력이었던 스프링이지만 새롭게 다가오는 클라우드 네이티브 시대에서도 과연 그 위치를 지킬 수 있을까.
『클라우드 네이티브 자바』는 그런 의문에 대해 명쾌하게 대답을 해주는 책이다. 혜성처럼 등장해서 스프링으로도 최신 기술 흐름에 뒤처지지 않는 기민한 개발이 가능하다는 것을 보여준 스프링 부트가 클라우드 환경에서도 빛을 발한다는 사실을 이 책에 나온 간결한 예제를 따라해보는 것만으로도 충분히 느낄 수 있을 것이다.
이 책은 유명 IT 기업에서 개발자들이 함께 작성하고 공유한다는 사내 기술 위키 같은 책이다. 실제 개발 프로젝트를 거치며 축적된 각종 기술의 핵심 개념, 활용법, 적용 전략, 주의사항, 팁 그리고 빠르게 가져다 써볼 수 있는 깔끔한 예제들이 정리되어 있는, 경쟁사 개발자들에게는 절대 보여주고 싶지 않은, 우리만의 보물 같은 농축된 자료를 보는 듯하다. 이렇게 잘 정리된 책의 도움 없이 스프링 부트와 각 장에서 다루는 기술의 자료를 찾아 개념을 잡고 동작하는 코드를 직접 만들어보려면 꽤나 오랜 시간이 필요할 것이다. 변화의 속도에 뒤처지지 않고 빠르게 개발할 수 있게 해주는 클라우드 기술처럼 이 책도 독자들의 시간을 절약해주고 민첩하게 새로운 시대에 대응할 자신감을 갖게 해줄 것이라고 믿는다.
- 이일민 / 이프릴 대표, 『토비의 스프링 3.1』 저자

수년간 버즈워드로 떠도는 사이트 신뢰성 엔지니어링(SRE), 데브옵스, 마이크로서비스 아키텍처(MSA)가 누군가에게는 단순한 흥미로운 기술 조류이거나 선택의 문제일지 모르지만, 내가 일하는 우아한형제들에서는 '배달의 민족'이라는 O2O 서비스를 운영하는 데 있어 생존이 달린 문제다. 서비스는 급변하는 트래픽에 탄력적으로 대응해야 한다. 장애가 일어나면 소비자는 즐거운 식사시간을 망치고 사장님들은 큰 손실을 입는다. 예전에는 미처 예상하지 못한 다양한 요구에 대응하려면 하루에도 몇 번씩 서비스를 배포해야 하며, 사용자 수는 끝을 알 수 없을 정도로 계속 늘어난다. 이런 가운데 SRE, 데브옵스, MSA를 둘러싸고 진행되는 논의를 보면 애플리케이션 개발자 관점이 종종 소외된다는 생각이 든다. 코드를 통한 인프라 자동화, 지속적 배포 체계, 중앙 로그 수집 시스템, 가관측성 같은 인프라/플랫폼 중심의 논의는 많지만 애플리케이션 개발자들에게는 먼 이야기로 들린다. 클라우드의 장점을 잘 활용한 애플리케이션의 특징을 허로쿠(Heroku)에서 정리해 '12요소 애플리케이션'이라는 이름으로 발표했음에도 이를 구현하는 것은 여전히 개발자 개인의 문제로 남는다.
『클라우드 네이티브 자바』는 이런 갈증을 풀어주는 오아시스 같은 책이다. 스프링 프레임워크가 여기저기 흩어져 있는 자바 EE 기술을 엮어서 일관된 플랫폼이 되어 주었다면, 스프링 클라우드는 여러 클라우드 관련 기술을 엮어서 클라우드 네이티브 애플리케이션이 동작하는 환경을 제공한다. 스프링 부트는 우리가 만드는 애플리케이션을 스프링 클라우드가 제공하는 환경에 잘 접목시켜 준다.
소프트웨어가 중요한 시대라고 한다. 소프트웨어 개발자가 마냥 대접받는 시대라기보다는, 소프트웨어가 풀어야 할 문제가 많아지고 책임이 커졌다는 의미다. 예전과 같은 방식으로 개발해서는 새로운 플랫폼의 장점을 살릴 수 없다. 이미 스프링을 사용하고 있다면, 그리고 성숙한 클라우드 네이티브 기술을 활용해서 하루 빨리 가치를 시장에 전달하고 싶은 이라면 이 책이 큰 도움이 될 것이다.
- 박성철 / 우아한형제들 인프라서비스실장

언제부터인가 서비스 개발이라고 하면 클라우드라는 용어가 빠지지 않고 등장한다. 클라우드 네이티브란 대형 서비스를 개발하는 회사들에서 내부적으로 사용하던 분산 아키텍처링 방법을 클라우드에 접목해 대규모 서비스를 안정적으로 처리할 수 있는 방법을 정의한 것이다. 특히, 넷플릭스는 AWS 위에서 돌리던 서비스 아키텍처와 자사 솔루션을 오픈소스로 공개한 뒤, 피보탈과 협업해 스프링 클라우드라는 클라우드 네이티브를 위한 기능들을 스프링에 추가했다. 경험 많은 개발자의 노하우가 필요하던 부분이 클라우드 네이티브 도입으로 훨씬 더 대규모의 서비스를 구축하기 쉬워졌다.
이 책은 원래 대규모 서비스에서 사용하던 개념들을 스프링 클라우드로 가져온 것에 대한 설명이 대다수이며 상당히 많은 분야를 두루 다루기 때문에 읽기 쉽지는 않지만, 실제로 대규모 서비스에 어떤 기술들이 필요한지에 대한 최신 트렌드를 따라갈 수 있다. 시스템을 확장 가능하게 만들기 위해서 넷플릭스의 솔루션인 유레카, 주울, 페인, 리본 등을 스프링 클라우드에서 어떻게 쉽게 사용할 수 있게 했는지 확인해보시기 바란다. 특히, 이 책을 쓴 원서의 두 저자 중 특히 조쉬 롱은 스프링에 가장 많은 버그를 만들었다는 것을 농담삼아 자랑하기도 한다(버그를 많이 만들었다는 것은 코드를 많이 만들어 기여했다라는 사실과 거의 일치한다). 경험과 식견을 녹여 만든 저자들의 뛰어난 지식을 이 책에서 배워가길 바란다.
- 강대명 / 유데미(Udemy) 데이터 엔지니어

스프링 클라우드를 활용해서 클라우드 네이티브 애플리케이션을 만드는 방법에 대한 아주 구체적인 방법들을 알려주는 책이다. 그동안의 모호했던 개념들을 실제로 개발하고 적용할 수 있는 실용 예제들과 함께 설명하므로, 클라우드 전환을 생각하는 엔지니어 또는 조직에게 큰 도움이 될 것이다. 특히 클라우드를 사용해서 개발해보고자 하는 초급 개발자, 기존에 스프링 프레임워크를 사용하고 있었지만, 클라우드로 전환하고자 하는 중급 또는 고급 개발자, 스프링 클라우드를 효과적으로 사용하고자 하는 개발자, 클라우드로 이전해 운영 부담을 줄이고자 하는 엔지니어/조직에게 선물과도 같은 책이 될 것이다.
- 공용준 / 카카오 클라우드 파트장, 『카프카, 데이터 플랫폼의 최강자』 저자

신뢰성 있는 소프트웨어를 개발하는 것은 많은 부분에서 잘 진행되어 왔다고 말하기 힘들다. 검증된 클라우드 네이티브 패턴을 사용함으로써 개발자들은 애플리케이션 로직에 더 집중할 수 있고, 운영자들은 예측 가능한 서비스 확장과 함께 알 수 없는 장애로부터 시스템을 보호할 수 있다. 이 책에 나온 실전 예제 코드와 이해하기 쉬운 설명을 통해 자바 개발자들은 각종 패턴과 방법을 알게 될 것이다. 우리 팀 멤버인 케니와 조쉬가 저술한 책이 역시 우리 팀의 멤버인 윤진을 통해 한글화되어 출간됨을 매우 기쁘게 생각한다. 이 책이 한국의 많은 스프링 개발자와 데브옵스들에게 더 나은 서비스를 구현하는 데 도움이 되리라 믿는다.
- 앤드류 클레이 쉐이퍼(Andrew Clay Shafer) / 데브옵스의 개척자이자 퍼펫 랩스(Puppet Labs)의 창시자

2015년 이래, 스프링 클라우드와 피보탈 클라우드 파운드리를 사용하는 새로운 방식으로 전환한 후에 개발 속도는 적어도 50% 상승했고, 시스템 다운 시간은 절반 이하로 줄어들었으며, 더 작은 플랫폼 전담팀으로도 수만 개의 JVM을 운영할 수 있게 되었다는 사례 데이터가 쌓이고 있습니다. 가장 중요한 점은 클라우드 네이티브 자바를 도입한 조직은 개발과 운영 복잡도에 대해 고민하는 시간을 큰 폭으로 줄이고, 고객과 시장을 바라보는 데 투자할 수 있는 시간을 획기적으로 늘릴 수 있었다는 것입니다.
이 책의 한 장 한 장에는 현대적인 엔터프라이즈 소프트웨어 설계에 있어 가장 중요한 여러 패턴에 대해 상세한 설명이 담겨 있습니다. 조쉬와 케니가 세계 최고의 기업들과 현장에서 함께 일하면서 힘겹게 익혀온 값진 경험들은 이 책 안에서 다양한 사례들과 함께 빛을 발할 것입니다. 모든 개발자와 IT 리더들이 이 책을 읽고 조직 안에서 적응성(adaptability)과 회복성(resilience)의 진정한 힘을 최대한 잘 이용할 수 있게 되기를 바랍니다.
- 제임스 워터스(James Waters) / 피보탈 클라우드 파운드리 수석부사장
펼쳐보기
조쉬 롱
스프링 개발 애드버킷(Advocate)이자 <인포큐닷컴InfoQ.com>의 자바 큐 편집자이며, 『스프링 레시피 2판』(에이프레스)을 비롯한 여러 권의 책을 저술했다. 그는 더서버사이드 자바 심포지움(TheServerSide Java Symposium), 스프링원(SpringOne), 오스콘(OSCON), 자바존(JavaZone), 데복스(Devoxx), 자바투데이즈(Java2Days) 등 국제적인 여러 컨퍼런스에 발표자로 참여했다. 스프링 소스 코드 작업을 하지 않을 때는 지역 자바 사용자 그룹이나 커피 숍에 주로 머무른다. 기술의 한계를 극복할 수 있는 솔루션을 좋아하며, 관심 분야는 확장성, BPM(Business Process Management), 그리드 처리, 모바일 컴퓨팅, '스마트'라는 수식어를 달고 있는 다양한 시스템이다. 스프링 소스 블로그(blog.springsource.org)에 글을 쓰며, 개인 블로그(joshlong.com)도 운영 중이다.

케니 바스타니
피보탈의 스프링 개발자 애드버킷이다. 오픈소스 기여자이자 블로거로서 그래프 데이터베이스에서 마이크로서비스까지 다양한 주제로 열정적인 개발자 커뮤니티에서 활동 중이며, 오스콘, 스프링원 플랫폼, GOTO와 같은 여러 컨퍼런스에 발표자로 정기적으로 참여한다. 개인 블로그(kennybastani.com)에서 소프트웨어 아키텍처에 대한 강좌와 이벤트 주도 마이크로서비스와 서버리스 아키텍처를 만드는 오픈 소스 예제를 볼 수 있다.

옮긴이 정윤진
커널 및 드라이버 엔지니어로 경력을 시작해서 시스템 엔지니어를 지나 데브옵스를 거쳐 현재는 테크놀로지스트라는 생소한 일을 하고 있다. 카페24 연구소 초기 멤버로 각종 호스팅 서비스의 개발에 참여, 장단기 장애 해결과 일일 단위 문제 해결 등을 수행하다가, 알서포트에서 베어메탈과 AWS 기반의 글로벌 시스템을 한국, 일본, 미국과 유럽 등지에 구현했다. 이후 스파크 앤 어소시에이트에서 클라우드 스케일링 팀과 함께 애자일 기반으로 KT 클라우드 개발 및 국내 제조 회사의 사설 클라우드 개발에 참여했으며, 이후 아마존 웹 서비스의 솔루션 아키텍트로 활동하며 크고 작은 회사의 서비스의 클라우드 마이그레이션을 돕다가, 지금은 피보탈에서 일하고 있다.

옮긴이 오명운
백발 개발자를 꿈꾸며 언제나 버그와 씨름하는 개발자다. 번역을 통해 개발자 생태계에 조금이라도 기여하고자 노력한다. 옮긴 책으로는 『스프링 5.0 마이크로서비스 2/e』, 『D3.js 실시간 데이터 시각화』(에이콘출판) 등이 있다. http://homoefficio.github.io/에서 개발 관련 지식을 나누고 있으며, 최근에는 분산 원장 기술에 관심을 가지고 공부 중이다.

옮긴이 장현희
19년째 개발자의 길을 걷고 있는 옮긴이는 지난 17년간 『사이트 신뢰성 엔지니어링』(제이펍)을 비롯한 20여 종의 개발 관련서를 집필하거나 번역했다. 현재는 호주 시드니에 있는 ROKT에서 테크니컬 스페셜리스트로 근무 중이며, 국내 개발자들에게 조금이라도 도움되는 번역서를 만들기 위해 틈틈이 노력 중이다. 앞으로도 책이라는 매개체를 통해 멀리서나마 국내 개발자들과 계속해서 소통할 계획이다.

펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기