본문내용 바로가기
MD의선택 무료배송 이벤트 경품 소득공제

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

  • 정가 : 33,000원
    판매가 : 29,700 [10%↓ 3,300원 할인]
  • 통합포인트 :
    [기본적립] 1,650원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 3만원 이상 구매 시 2~4% 추가적립
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    당일배송 지금 주문하면 오늘(22일,화) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • 개발자로 입문하기: 일단 이것부터 읽어보자!
    2019.05.31 ~ 2020.12.31
  • 설문참여 시 매월 5명 추첨통해 선물을 드립니다.
    10. 14 ~ 12. 31
상품상세정보
ISBN 9791161752556(1161752552)
쪽수 504쪽
크기 189 * 234 * 31 mm /928g 판형알림
이 책의 원서/번역서 Hands-On Microservices with Kotlin/Juan Antonio Medina Iglesias

책소개

이 책이 속한 분야

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

저자소개

저자 : 후안 안토니오 메디나 이글레시아스

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

역자 : 강인호

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

역자 : 황주필

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

작가의 말

★ 지은이의 말 ★
구글이 안드로이드 생태계에서 코틀린(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 처리
____지속적인 통합
____지속적 배포
____파이프라인
____대시보드
__정리

찾아보기

출판사 서평

★ 이 책에서 다루는 내용 ★
▣ 마이크로서비스 아키텍처 및 원리 이해
▣ 스프링 부트 2.0 과 스프링 프레임워크 5.0을 사용해 코틀린으로 마이크로서비스 구축
▣ 스프링 웹플럭스로 넌블로킹(non-blocking) 작업을 수행하는 리액티브 마이크로서비스 생성
▣ 스프링 데이터를 사용해 몽고DB(MongoDB)에서 리액티브하게 데이터 가져오기
▣ JUnit과 코틀린으로 하는 효과적인 테스트
▣ 스프링 클라우드로 클라우드 네이티브 마이크로서비스 생성
▣ 마이크로서비스의 도커 이미지 빌드 및 게시
▣ 도커 스웜(Dock... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

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

이 책의 원서번역서

안내

이 분야의 베스트

  • 윤인성
    16,200원
  • 이남호
    23,310원
  • 한국데이터진흥원
    16,200원
  • 이남호
    23,310원
  • 홍태성
    12,600원
더보기+

이 분야의 신간

  • 블레이크 J. 해리스
    25,200원
  • 길벗R&D
    18,900원
  • 이기창
    31,500원
  • 박해선
    17,820원
  • 길벗R&D
    17,100원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품