간편결제, 신용카드 청구할인
네이버페이 1%
(네이버페이 결제 시 적립)
북피니언 롯데카드 30% (20,790원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (23,760원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (26,730원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (27,630원)
(최대할인 3만원 / 3만원 이상 결제)
Close

코틀린 마이크로서비스 개발 : 스프링 5와 스프링 부트 2.0을 활용해 코틀린으로 구축하는 리액티브 마이크로서비스

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 909
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

33,000원

  • 29,700 (10%할인)

    1,650P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서

  • 사은품(9)

출판사 서평

어느새 자바 생태계의 주류 언어로 자리매김한 코틀린 언어를 바탕으로 마이크로서비스와 리액티브에 대해 알아본다. 기본 개념, 작동 원리와 장점을 살펴보는 것을 시작으로 스프링 부트 기반으로 마이크로서비스를 쉽게 만들어보고, 스프링 웹플럭스(WebFlux)를 사용해 넌블로킹 리액티브 마이크로서비스를 구축하는 방법을 알아본다. 이를 컨테이너 기반으로 운용하기 위한 개발, 테스트 모니터링과 배포까지 전 영역을 다룬다. 기본 개념 이해를 바탕으로 직접 만들어 보면서 새로운 개념과 기술을 체험할 수 있도록 구성돼 있다.

이 책에서 다루는 내용

■마이크로서비스 아키텍처 및 원리 이해
■스프링 부트 2.0 과 스프링 프레임워크 5.0을 사용해 코틀린으로 마이크로서비스 구축
■스프링 웹플럭스로 넌블로킹(non-blocking) 작업을 수행하는 리액티브 마이크로서비스 생성
■스프링 데이터를 사용해 몽고DB(MongoDB)에서 리액티브하게 데이터 가져오기
■JUnit과 코틀린으로 하는 효과적인 테스트
■스프링 클라우드로 클라우드 네이티브 마이크로서비스 생성
■마이크로서비스의 도커 이미지 빌드 및 게시
■도커 스웜(Docker Swarm)을 활용한 마이크로서비스 확장
■JMX를 활용한 마이크로서비스 모니터링
■오픈시프트 온라인(OpenShift Online)에서 마이크로 서비스 배포

이 책의 대상 독자

마이크로서비스 아키텍처에 대한 기본 지식이 있고 현재 엔터프라이즈급 웹 애플리케이션에서 서비스를 효과적으로 구현하고자 하는 코틀린 개발자라면, 이 책은 당신을 위한 것이다.

이 책의 구성

1장, '마이크로서비스 이해'에서는 마이크로서비스와 그 원리를 소개한다. 도메인 주도 설계(Domain-Driven Design), 클라우드 네이티브 마이크로서비스와 리액티브 아키텍처를 알아본다.
2장, '스프링 부트 2.0 시작하기'에서는 코틀린에서 처음 마이크로서비스를 개발하는 데 스프링 부트 2.0을 사용해 도움을 준다. 스프링 부트를 심도 깊게 알아볼 것이고 인텔리제이(IntelliJ) IDEA를 사용해 마이크로서비스를 구축하는 방법을 살펴본다.
3장, 'RESTful 서비스 만들기'에서는 클라우드 네이티브 마이크로서비스를 RESTful API로 확장해 다양한 스프링 구성 요소를 소개한다.
4장, '리액티브 마이크로서비스 만들기'에서는 넌블로킹 리액티브 마이크로서비스를 생성한다. 스프링 웹플럭스(WebFlux)와 리액터(Reactor)를 사용해 리액티브 마이크로서비스를 구축하는 방법을 알아본다.
5장, '리액티브 스프링 데이터'에서는 리액티브 스프링 데이터를 사용해 몽고DB 같은 NoSQL 데이터베이스를 작업하는 방법에 중점을 둔다. 그런 다음 REST API의 CRUD 작업을 리액티브하게 생성하는 리액티브 마이크로서비스를 향상시키는 방법을 살펴본다.
6장, '클라우드 네이티브 마이크로서비스 만들기'에서는 클라우드 네이티브 마이크로서비스가 무엇이고, 스프링 클라우드로 쉽게 구축하는 방법을 설명한다.
7장, '도커 만들기'에서는 도커를 설치 및 구성해서 컨테이너를 작성, 게시, 실행하는 방법과 메이븐(Maven)을 사용해 마이크로서비스를 빌드할 때 이를 통합하는 방법에 대해 설명한다.
8장, '마이크로서비스 확장하기'에서는 도커에서 개인용 클라우드를 만드는 방법과 마이크로서비스를 확장하고 제어하는 방법을 살펴본다.
9장, '스프링 마이크로서비스 테스트'에서는 SpringBootTest와 JUnit을 사용해 마이크로서비스를 테스트하는 방법을 설명한다. Kluent를 사용해 더욱 풍부한 표현 방식으로 마이크로서비스를 테스트하는 방법을 배운다.
10장, '마이크로서비스 모니터링'에서는 실제 운영 시스템에서 모니터링이 중요한 이유와 스프링 부트 액추에이터(Actuator)와 JMX를 이용해 모니터하고 제어하는 마이크로서비스를 제공하는 방법에 대해 설명한다.
11장, '마이크로서비스 배포'에서는 마이크로서비스 도커를 오픈시프트 온라인(OpenShift Online)에 배포하는 방법과 마이크로서비스 코드가 변경될 때 깃허브를 통합해 자동 배포하는 방법을 설명한다.
12장, '모범 사례'에서는 마이크로서비스를 만드는 데 사용할 수 있는 업계 모범 사례를 설명한다.

지은이의 말

구글이 안드로이드 생태계에서 코틀린(Kotlin)의 지원을 발표하면서 코틀린은 주류 언어로 인식되기 시작했다. 마이크로서비스(Microservices)는 확장성 있고 관리하기 쉬운 웹 애플리케이션을 설계하는 데 도움이 되며, 코틀린은 현대적 관용구(Idio)를 활용해 개발을 단순화하고 고품질 서비스를 만들 수 있게 한다. 코틀린은 JVM과 100% 상호 운용성이 있어 기존 자바 코드를 가지고 작업하기 쉽다. 스프링(Spring), 잭슨(Jackson), 리액터(Reactor) 같은 인기 있는 자바 프레임워크에는 널 안전성(Null-safty)이나 타입 안전(type-safe) 선언 빌더와 같은 언어 기능을 활용하는 코틀린 모듈이 들어있다.
이 책은 운영 환경에서 테스트 가능한 코드로 서비스를 설계 및 구현해 독자가 기존 자바 구현보다 더 짧고 유지보수가 용이하고 편한 코드를 작성할 수 있게 한다.
넌블로킹(Non-blocking) 기술을 활용하고 서비스를 차기 수준의 업계 표준으로 끌어올리기 위해 리액티브(Reactive) 패러다임을 사용하면 좋은 점을 알게 될 것이다.
책을 읽는 도중에 대용량 처리 마이크로서비스를 만들기 위해 리액티브적으로 NoSQL 데이터베이스를 사용한다.
이 책에서는 다양한 클라우드 환경에서 실행할 수 있는 클라우드 네이티브 마이크로서비스(Cloud Native Microservice)를 만드는 방법과 이를 모니터링하는 방법을 알려준다.
마이크로서비스용 도커(Docker) 컨테이너(Container)를 만들고 이를 확장하는 방법을 알 수 있다. 마지막으로, 오픈시프트 온라인(Openshift Online)에 마이크로서비스를 배포한다.

옮긴이의 말

어느덧 마이크로서비스는 새로운 서비스를 만들 때 실질적인 표준(de facto)이 되어 가고 있다. 이는 비단 스타트업이나 서비스 기업뿐만 아니라 전통적인 기업에서도 기존의 일체형 애플리케이션을 마이크로서비스화하기 위해 시도하고 있다는 이야기가 심심치 않게 들려오고 있다.
코틀린의 등장 이후 안드로이드 생태계의 영향이기는 하지만 어느새 자바 생태계의 주류 언어로 자리매김하게 되었고 서버측 개발 언어로도 많은 부분이 코틀린을 채택하고 있다.
마이크로서비스의 1세대가 VM 기반의 폴리그랏으로 대변되는 자치성에 기반한 서비스의 분리에 있었다면, 2세대는 컨테이너 기반의 리액티브 패러다임이라 말할 수 있을 것 같다.
이 책은 코틀린 언어를 이용해 차세대 마이크로서비스를 구축하기 위한 다양한 내용을 담고 있다.
마이크로서비스와 리액티브의 개념적인 원리와 장점으로 시작해서 스프링 부트 기반으로 마이크로서비스를 쉽게 만들어보고, 스프링 웹플럭스(WebFlux)를 사용해 넌블로킹 리액티브 마이크로서비스를 구축하는 방법에 대해 살펴본다.
그리고 이를 컨테이너 기반으로 운용하기 위한 개발, 테스트 모니터링과 배포에 이르는 영역을 다룬다. 무엇보다도 이 책의 장점은 제목에서도 알 수 있듯이 기본적인 개념에 대한 이해를 바탕으로 직접 만들어 보면서 새로운 개념과 기술을 체험할 수 있도록 구성돼 있어서 차세대급 마이크로서비스 구축에 소요되는 기술 기반을 조망해보는 데 좋은 안내서가 될 것으로 기대한다.
원서가 출간된 시점에 스프링 부트 버전은 2.0.0 M7이었으나 번역서가 출간되는 시점에는 2.1버전이 출시됐다. 그리고 인텔리제이 IDEA CE 버전도 2017.2이었으나 번역서 출간 시점에는 2018.3으로 업그레이드됐다. 번역서에는 이런 변경 사항을 반영해 예제와 책 내용을 무리없이 따라 할 수 있도록 일부 내용을 수정했으니 안심해도 좋다.
마지막으로 마이크로서비스의 배포와 운용을 위해 컨테이너를 고려 중이라면 쿠버네티스(kubernetes)를 함께 검토해볼 것을 권한다. 서비스 메시(Service Mesh)를 구성하기 위한 쿠버네티스와 이스티오(istio)의 조합은 컨테이너 기반 마이크로서비스 운용에 최상의 조합이 될 것이다.

목차

1장. 마이크로서비스의 이해
마이크로서비스란 무엇인가
SoA 이해
SoA와 마이크로서비스의 차이점
일체형에서 마이크로서비스로
마이크로서비스 원칙
설계 원칙 정의
비즈니스 역량 중심 모델
느슨한 결합
단일 책임
구현 은닉
격리
독립적인 배포 가능
장애를 고려한 빌드
확장성
자동화
도메인 주도 설계
도메인 주도 설계란
리액티브 마이크로서비스
리액티브 프로그래밍
리액티브 선언문
리액티브 프레임워크
리액티브 마이크로서비스
클라우드 네이티브 마이크로서비스
클라우드 컴퓨팅
컨테이너
배포 모델
정리

2장. 스프링 부트 2.0 시작하기
스프링 부트 애플리케이션 만들기
구성
스프링 이니셜라이저 사용
인텔리제이 IDEA 사용
스프링 부트 애플리케이션의 구조
애플리케이션 오브젝트 생성
스프링 애플리케이션 컨텍스트 정의
컴포넌트 스캔 이해
컴포넌트 사용
의존 관계 자동 설정
스프링 부트 애플리케이션 패키징 및 실행
패키징
WAR가 아닌 JAR로 패키징하기
스프링 부트 애플리케이션 실행
실행 가능한 JAR 만들기
애플리케이션 설정
설정 값 설정하기
스프링 표현 언어의 이해
프로파일 사용
조건부 빈 만들기
정리

3장. RESTful 서비스 만들기
RestController의 이해
컨트롤러란
RestController 만들기
컨트롤러 이해
경로와 요청 매개 변수
customers 맵 생성
경로 변수 얻기
경로 변수 이해
요청 매개 변수 정의
요청 매개 변수 이해
HTTP 동사와 상태
표준 HTTP 동사와 상태
HTTP 동사 처리
서비스 레이어 구현
HTTP 상태 처리하기
JSON으로 작업하기
고객 클래스에 전화번호 추가
역직렬화 이해
오류 처리
컨트롤러 어드바이스 사용
비즈니스 예외 생성
컨트롤러 어드바이스 피하기
정리

4장. 리액티브 마이크로서비스 만들기
스프링 웹플럭스의 이해
스프링 웹플럭스 애플리케이션 만들기
네티 사용하기
RestController 추가
Customer 서비스 만들기
블로킹은 리액티브가 아니다
리액티브 서비스 만들기
구독자와 게시자
단일 객체 게시하기
서비스에서 모노 사용하기
여러 객체 게시하기
서비스에서 플럭스 사용하기
리액티브하게 객체 수신
함수형 웹 프로그래밍 사용하기
RouterFunction 사용하기
핸들러 만들기
리액티브 서비스 사용하기
다중 경로 처리하기
쿼리 매개 변수 사용하기
JSON 본문 처리하기
리액티브 오류 처리하기
핸들러에서 오류 캡처하기
오류 게시
정리

5장. 리액티브 스프링 데이터
NoSQL 데이터베이스
SQL 데이터베이스란
NoSQL 데이터베이스란
몽고DB 설치
Mongo 클라이언트와 연결
데이터베이스 생성
명령 사용
스프링 데이터 사용
프로젝트 설정
연결 구성
몽고DB에 명령어 보내기
리액티브 리포지토리
리포지토리 생성하기
리포지토리 사용하기
초기화 완료
ReactiveMongoTemplate 사용
CRUD 연산을 위한 RESTful API
서비스 재사용
GET을 READ로 매핑
POST를 CREATE로 매핑
DELETE 매핑
고객 검색
정리

6장. 클라우드 네이티브 마이크로서비스 만들기
스프링 클라우드의 이해
클라우드 네이티브 프로그램이란 무엇인가
스프링 클라우드 아키텍처
스프링 클라우드 넷플릭스
스프링 클라우드 마이크로서비스 만들기
컨피그 서버
컨피그 서버 만들기
설정 얻기
데이터 암호화
애플리케이션 프로파일 사용하기
서비스 탐색
서비스 탐색 서버 만들기
탐색 서버에 연결하기
스프링 부트 액추에이터 사용하기
게이트웨이
게이트웨이 만들기
라우터 정의
정리

7장. 도커 생성
도커로 시작하기
컨테이너 이해
도커 설치
도커 시작하기
이미지 가져오기
이미지 관리
마이크로서비스 도커 생성하기
예제 마이크로서비스 만들기
Dockerfile 만들기
마이크로서비스 도커 만들기
마이크로서비스 실행하기
도커 게시
도커 허브 계정 만들기
도커 게시
도커와 메이븐 통합하기
정리

8장. 마이크로서비스 확장
확장 가능한 아키텍처
확장의 방향성
확장 설계
독립적 확장
축소
클라우드 만들기
스웜 만들기
서비스 추가
서비스의 로그 확인하기
서비스 삭제
마이크로서비스를 서비스로 퍼블리시
레지스트리 만들기
마이크로서비스 만들기
도커 만들기
서비스 만들기
서비스 제어하기
인스턴스 확장
서버스 로그 가져오기
서비스 제어하기
정리

9장. 스프링 마이크로서비스 테스트
SpringBootTest 이해
간단한 마이크로 서비스 만들기
SpringBootTest 이해
빈 테스트
MockMvc 사용하기
모의 빈 사용하기
왜 mock을 사용하는가
목(mock) 설치
모의(mocked) 값 반환하기
목(mock) 호출 검증하기
유창한 테스트
Kluent 추가하기
서술적으로 서비스 테스트하기
서술적으로 컨트롤러 테스트하기
정리

10장. 마이크로서비스 모니터링
모니터링의 이해
모니터링은 무엇인가
경고
복구
장애 발생 마이크로서비스 만들기
스프링 부트 액추에이터
스프링 부트 액추에이터 활성화
액츄에이터의 종단점 이해
JMX
JMX 이해
JMX 사용하기
정리

11장. 마이크로서비스 배포
설정
깃허브 계정 생성
깃 설치
오픈시프트 계정 만들기
오픈시프트 클라이언트 다운로드
애플리케이션 빌드
예제 마이크로서비스 만들기
테스트 추가
깃허브에 업로드하기
오픈시프트에 게시
애플리케이션 만들기
애플리케이션 관리
애플리케이션 업데이트
정리

12장. 모범 사례
코틀린 관용구 사용
타입 추론
표현식
기본 매개 변수
람다
스프링 컨텍스트 관리
생성자 주입
명시적 컨텍스트 설정
애플리케이션의 계층화
클래스 이해
분할
효과적인 테스트
테스트 유형 이해
단위 테스트
통합 테스트
E2E 테스트
그 외 테스트
테스팅 피라미드
테스트 주도 개발
행위/행동 주도 개발
CI/CD 처리
지속적인 통합
지속적 배포
파이프라인
대시보드
정리

저자소개

후안 안토니오 메디나 이글레시아스(Juan Antonio Medina Iglesias) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

20년 전에 인디 게임 개발자로 시작해 그 이후 해외 4개국에서 임베디드 소프트웨어부터 엔터프라이즈 애플리케이션에 이르기까지 다양한 분야에서 일했다. 소프트웨어 장인 정신에 평생을 바쳤다. 2006년부터 금융 산업에서 가장 큰 변화 중 하나를 수행한 재능 있는 전문가 그룹과 함께 산탄데르 테크놀로지(Santander Technology)에서 일하고 있다. 현재는 산탄데르 테크놀로지 UK의 디지털 혁신 팀에서 수석 엔지니어로 일하고 있다.

생년월일 -
출생지 -
출간도서 0종
판매수 0권

개발자로 IT 경력을 시작해서 EnSOA와 티맥스소프트를 거치면서 CBD & SOA 방법론 컨설팅을 수행했다. 오라클에서는 클라우드 네이티브, 컨테이너 네이티브 애플리케이션 개발과 운영을 도우며, 개발자 생태계를 지원하고 소통하는 역할을 하고 있으며, 최근에는 머신 러닝에도 많은 관심을 가지고 있다

생년월일 -
출생지 -
출간도서 0종
판매수 0권

IT 기업에서 개발자로 시작해 오랫동안 BEA 시스템즈, 오라클 등에서 소프트웨어 아키텍처, 엔지니어로 일했다. 수많은 기업에서 기업용 소프트웨어 지원과 비즈니스 적용을 도왔으며, 컨테이너에 관심이 많아서 LXC, 도커로 시작해 쿠버네티스 생태계에 참여하고 있다. 현재는 컨테이너 기반의 클라우드 네이티브 애플리케이션의 개발과 운영을 도와 드리고 있습니다. 현재는 피보탈(Pivotal)에서 플랫폼 아키텍처로 근무하며, 고객이 클라우드를 통해 디지털 트랜스포메이션을 성공적으로 할 수 있도록 돕고 있다

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    0.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용