상품 정보
상품 기본설명
마이크로서비스와 리액티브 프로그래밍
상품 상세설명
이용혁(KBSYS)
스프링 부트의 최신 버전으로 기본적인 내용부터 마이크로서비스에 이르기까지 다양한 기능들을 소개하고, 예제를 통해서 스트링 부트의 장점이 무엇이고, 왜 스프링 부트를 사용해야 하는지에 대한 답을 제시해 준다. 기존에 스프링 프레임워크를 사용해본 자바 개발자라면 쉽게 따라 하면서 익힐 수 있으며, 마이크로서비스나 클라우드 네이티브와 같은 최신 트렌드에 맞는 내용도 다루고 있어, 이미 스프링 부트에 익숙해한 자바 개발자들도 흥미롭게 읽을 수 있을 것이다.
목차
1장. 자바로 빠른 시작
__시작하기
__스프링 부트 스타터
__스프링 부트 애플리케이션 실행
__스프링 부트의 속성 지원에 대해 알아보기
__애플리케이션을 실행 가능한 JAR 파일로 묶기
__클라우드 파운드리에 배포
__프로덕션-준비 지원 추가
____일반적인 헬스를 위한 앱 핑(Pinging)
____매트릭스
__요약
2장. 스프링 부트 리액티브 웹
__스프링 이니셜라이저를 이용한 리액티브 웹 애플리케이션 생성하기
__리액티브 프로그래밍의 원리 배우기
__리액터 타입 소개
__임베디드 네티에서 아파치 톰캣으로 전환
__리액티브 스프링 웹 플럭스와 고전적인 스프링 MVC 비교하기
____왜 스프링이 이것을 하고 있는가?
__모노/플럭스-기반 엔드포인트 표시
__리액티브 ImageService 생성하기
__리액티브 파일 컨트롤러 생성하기
__리액티브 프로그래밍을 사용해야 하는 이유
__타임리프 템플릿과 상호 작용
__비동기에서 동기화로 이동하는 방법을 설명하는 것은 쉽지만, 그 반대는 아니다
__요약
3장. 스프링 부트를 이용한 리액티브 데이터 액세스
__리액티브 데이터 저장소를 사용해 진행
__문제 해결
____스프링 부트로 스프링 데이터 저장소 연결하기
__리액티브 저장소 생성
__모노/플럭스 및 오퍼레이션 체인을 통해 데이터 가져오기
__커스텀 파인더 생성하기
__Example로 쿼리하기
__MongoOperations로 쿼리하기
__리액티브 오퍼레이션 로깅
__요약
4장. 스프링 부트 테스트
__테스트 의존성
__단위 테스팅
__슬라이스-기반 테스팅
____임베디드 몽고 DB로 테스팅
____실제 몽고 DB 데이터베이스로 테스팅
__웹 플럭스 컨트롤러 테스팅
__임베디드 스프링 부트 앱 테스트
__커스텀 스프링 부트 자동 설정 테스팅
__요약
5장. 스프링 부트 앱을 위한 개발자 도구
__핫 코드 리로딩을 위해 스프링 부트의 DevTools 사용
__스프링 부트의 자동 설정 보고서 사용
__로컬 변경 및 대상 시스템에서 보기
__커스텀 헬스 체크 작성
__/application/info에 빌드 데이터 추가
__커스텀 매트릭스 생성
__추가 액추에이터 엔드포인트 작업
__요약
6장. 스프링 부트로 AMQP 메시징하기
__래빗MQ 시작하기
____래빗MQ 브로커 설치
____래빗MQ 브로커 시작
__기존 애플리케이션에 메시징을 새로운 컴포넌트로 추가
__메시지 생성자/메시지 소비자 생성하기
____코멘트 표시
____코멘트 작성
____AMQP 기본 사항
__메시지 플로를 추적하는 커스텀 매트릭스 추가
__스프링 클라우드 스트림(래빗MQ 포함)에서 엿보기
____스프링 클라우드 소개
____스프링 클라우드 스트림을 이용한 로깅
__요약
7장. 스프링 부트의 마이크로서비스
__마이크로서비스에 대한 간단한 입문서
__유레카를 사용해 동적으로 서비스를 등록 및 검색
__@SpringCloudApplication 소개
__클라이언트-사이드 로드 밸런싱을 통해 다른 마이크로서비스를 호출
__마이크로서비스 서킷 브레이커 구현
__서킷 모니터링
__마이크로서비스 설정을 컨피그 서버로 오프로드
__요약
8장. 스프링 부트의 웹 소켓
__저장된 코멘트를 채팅 서비스에 게시하기
__웹 소캣 트래픽을 처리하기 위한 채팅 서비스 생성하기
____웹 소캣 메시지 중개
____저장된 코멘트 브로드캐스트
____웹 소캣 핸들러 구성
__웹 페이지에서 웹 소켓 메시지 소비
__완전 비동기식 웹 클라이언트로 이동
__서버에서 AJAX 호출 처리
__사용자 채팅 소개
__사용자별 메시지 보내기
____인증 없이 사용자 등록
____사용자를 세션에 연결
____사용자 간 메시지 보내기
__최종 제품 체크 아웃
__JSR 356 대 스프링 WebFlux 메시징
__요약
9장. 스프링 부트로 앱 보안
__스프링 부트 애플리케이션 보안
__스프링 세션 사용하기
____게이트웨이 API 작성
__채팅 마이크로서비스 보안
____인증 대 권한 부여
__다른 마이크로서비스와 세션 세부 정보 공유
__이미지 마이크로서비스 보안
__이미지 소유권 연결
____인증 메서드
__권한 부여 확인을 사용해 UI 조정
__웹 소켓 보안
__통신 추적
__컨피그 서버 보안
__유레카 서버 보안
__요약
10장. 스프링 부트로 앱 프로덕션하기
__프로파일-기반 빈 세트
__설정 등록 정보 빈 생성
__프로덕션 환경 설정 오버라이딩
____@ConfigurationProperties 대 @Value
__앱을 클라우드 파운더리에 푸시하고 설정 조정
__요약
출판사 서평
★ 이 책에서 다루는 내용 ★■ 번거로움을 최소화하면서 강력한 프로덕션 수준의 애플리케이션 및 서비스 생성하기
■ 하나의 아티팩트로 여러 환경을 지원하고, 프로덕션급 기능 지원 추가하기
■ 다양한 속성을 통해 앱을 조정하는 방법 알아보기
■ 커스텀 매트릭스을 사용해 게시되고, 소비된 메시지 수 추적하기
■ 애플리케이션의의 보안 모델 강화
■ 스프링 부트에서 리액티브 프로그래밍 사용하기
■ 경량 단위 테스트에서 임베디드 웹 컨테이너 통합 테스트에 이르기까지 모든 것을 빌드하기★ 이 책의 대상 독자 ★초보자와 숙련된 스프링 개발자 모두를 대상으로 한다. 스프링 부트 설정을 오버라이트하는 법을 가르쳐줄 것이며, 복잡한 구성을 정의할 필요가 없게 해 줄 것이다.★ 이 책의 구성 ★1장, ‘자바로 빠른 시작’에서는 최소한의 코드 및 빌드 설정을 사용해 임베디드 웹 컨테이너에서 실행 중인 웹 애플리케이션을 빠르게 작성하고, 일부 데이터에 액세스한 후 클라우드에 배포하는 방법에 대해 설명한다.
2장, ‘스프링 부트 리액티브 웹’에서는 스프링 웹 플럭스, 프로젝트 리액터 및 타임리프 템플릿 엔진을 사용해 소셜 미디어 서비스를 구축해 이미지를 업로드하는 방법을 보여준다.
3장, ‘스프링 부트를 이용한 리액티브 데이터 액세스’에서는 스프링 데이터 몽고 DB를 리액티브-파워 데이터 저장소로 선택해 소셜 미디어 플랫폼에 연결하는 방법에 대해 설명한다. 스프링 부트가 어떻게 앱을 자동 설정해 데이터를 유지하는지 알게 될 것이다.
4장, ‘스프링 부트 테스트’에서는 JUnit으로 단위 테스트를 작성하는 방법, 애플리케이션의 실제 컴포넌트를 사용하는 슬라이스 테스트, 완전한 임베디드 컨테이너 테스트에 대해 설명한다. 또한 웹 브라우저 구동 테스트 툴킷에 대한 자동 설정 정책을 작성하고, 이를 테스트하는 방법도 설명한다.
5장, ‘스프링 부트 앱을 위한 개발자 도구’에서는 DevTools, LiveReload 및 IDE를 클라우드에 연결하는 것과 같은 개발자 경험을 향상시키기 위해 여러 가지 도구를 제공한다.
6장, ‘스프링 부트로 AMQP 메시징 하기’에서는 래빗MQ를 메시지 브로커로 사용하는 방법을 설명하고 컴포넌트 간 안정적이고 스트리밍되는 메시지 서비스를 리액티브적으로 구축한다.
7장, ‘스프링 부트의 마이크로서비스’에서는 스프링 클라우드와 소셜 미디어 플랫폼을 더 작고 관리하기 쉬운 앱으로 분해해 서로 동적으로 대화하는 기능을 소개한다.
8장, ‘스프링 부트의 웹 소켓’에서는 다양한 마이크로서비스에 관심 있는 모든 사람에게 업데이트를 보내 사용자 경험을 향상시키는 방법을 보여준다. 또한 모든 웹 소켓 메시지를 래빗MQ 브로커를 통해 라우팅하는 방법을 알 수 있다.
9장, ‘스프링 부트로 앱 보안’에서는 URL-기반 및 메서드-기반 전략을 사용해 프로덕션 소셜 미디어 플랫폼을 보호할 수 있어, 등록된 사용자만 온라인에 접속할 수 있으며 승인된 관리자와 소유자만 실제로 업로드된 이미지를 삭제할 수 있다.
10장, ‘스프링 부트로 앱 프로덕션하기’에서는 프로파일-기반 구성을 사용해 로컬 및 클라우드-기반 상황을 구분하고, 모든 환경에 대한 코드를 다시 작성하지 않고 애플리케이션 설정을 조정할 수 있는 커스텀 속성을 생성해 애플리케이션을 번들하고 프로덕션으로 배포하는 방법을 보여준다.★ 옮긴이의 말 ★우리는 언제부터인가 자바 웹 개발을 얘기할 때, 그 밑바닥에 스프링 프레임워크가 있다는 전제 조건을 갖고 시작한다. 그만큼 자바 개발자들에게는 없어서는 안 되는 존재가 됐고, 앞으로도 혁신적인 프레임워크가 나타나지 않는 한 스프링 프레임워크의 위치는 확고할 것이 분명하다. 기업에서 신제품을 내놓을 때는 경쟁사의 제품보다 더 뛰어난 것을 개발한 경우가 대부분이지만, 스프링 프레임워크와 같이 한국에서의 높은 지위를 생각한다면 더 뛰어난 프레임워크가 나올 것이라는 생각을 가진 개발자들은 거의 없었을 것이다. 또한 사람들은 최고의 제품만을 사용하고 싶어하고, 익숙해져 있는 제품을 관성적으로 사용하게 돼 있다.
이러한 생각에 젖어 있을 때쯤 스프링 프레임워크를 위협할 만한 프레임워크가 스프링 내부에서 나타났고, 그 파급력은 점점 커져가고 있다. 스프링 프레임워크에 익숙한 개발자들에게 스프링 부트는 마치 업그레이드된 자동차 엔진과 같이 전체 개발/운영은 동일한 익숙함으로 가능하고, 내부적으로는 좀 더 간결하고, 자동 설정들의 편의성을 제공해주는 마치 마법과 같은 것이 돼가고 있다.
스프링 프레임워크로 개발하는 경우에 개발자들이 고려해야 할 사항은 톰캣 설치에 대한 번거로움이 포함돼 있다는 것이다. 하지만 스프링 부트에는 톰캣이나 네티가 임베디드돼 있어 개발이 완료된 후 바로 운영이 가능하다는 점이 매우 매력적이라고 할 수 있다. 특히 데몬과 같은 프로그램을 개발하고 운영하고자 할 때에는 설치 시간 및 리소스를 획기적으로 절약해준다. 스프링 프레임워크와 달리, 의존성 자동 설정과 같은 기능은 수동 변속기로 운전하다가 자동 변속기로 바꾸고 운전했을 때의 편리함을 제공해준다고 할 수 있다. 이러한 다양한 장점을 가진 스프링 부트를 사용하지 않는다면, 도대체 무엇을 사용하겠다는 것인가? 스프링 부트에 대한 전반적인 내용을 살펴보고, 스프링 프레임워크를 대체 할 만한 것이라는 판단을 하고 싶다면, 이 책이 그 해답을 줄 것이다.-김완철하나의 프로젝트를 진행하면서 패키지 구성부터 테스트, 배포에 이르기까지 스프링 부트를 중심으로 쉬운 예제를 통해 풀어가고 있으며, 스프링 부트 2.0의 최신 기능인 웹 플럭스 프레임워크, 리액티브 프로그래밍, 웹 소켓, 데이터베이스 등을 활용하는 방법을 배울 수 있다. 또한 이 책은 프로그래밍에만 초점을 두지 않고 클라우드 구성에 따른 빌드 및 배포 방법, 각종 테스트 방법, 간단한 보안 설정 등을 경험하게 해줘 최신 트렌드에 맞는 프로젝트(애플리케이션) 제작의 시작부터 끝을 경험할 수 있게 해준다.-권용길
상품 정보 고시
도서명 |
스프링 부트 2.0 |
저자 |
그렉 턴키스트 |
출판사 |
에이콘출판 |
ISBN |
9791161752624 (1161752625) |
쪽수 |
460 |
출간일 |
2019-01-30 |
사이즈 |
189 * 236 * 30 mm /1052g |
목차 또는 책소개 |
1장. 자바로 빠른 시작
__시작하기 __스프링 부트 스타터 __스프링 부트 애플리케이션 실행 __스프링 부트의 속성 지원에 대해 알아보기 __애플리케이션을 실행 가능한 JAR 파일로 묶기 __클라우드 파운드리에 배포 __프로덕션-준비 지원 추가 ____일반적인 헬스를 위한 앱 핑(Pinging) ____매트릭스 __요약
2장. 스프링 부트 리액티브 웹
__스프링 이니셜라이저를 이용한 리액티브 웹 애플리케이션 생성하기 __리액티브 프로그래밍의 원리 배우기 __리액터 타입 소개 __임베디드 네티에서 아파치 톰캣으로 전환 __리액티브 스프링 웹 플럭스와 고전적인 스프링 MVC 비교하기 ____왜 스프링이 이것을 하고 있는가? __모노/플럭스-기반 엔드포인트 표시 __리액티브 ImageService 생성하기 __리액티브 파일 컨트롤러 생성하기 __리액티브 프로그래밍을 사용해야 하는 이유 __타임리프 템플릿과 상호 작용 __비동기에서 동기화로 이동하는 방법을 설명하는 것은 쉽지만, 그 반대는 아니다 __요약
3장. 스프링 부트를 이용한 리액티브 데이터 액세스
__리액티브 데이터 저장소를 사용해 진행 __문제 해결 ____스프링 부트로 스프링 데이터 저장소 연결하기 __리액티브 저장소 생성 __모노/플럭스 및 오퍼레이션 체인을 통해 데이터 가져오기 __커스텀 파인더 생성하기 __Example로 쿼리하기 __MongoOperations로 쿼리하기 __리액티브 오퍼레이션 로깅 __요약
4장. 스프링 부트 테스트
__테스트 의존성 __단위 테스팅 __슬라이스-기반 테스팅 ____임베디드 몽고 DB로 테스팅 ____실제 몽고 DB 데이터베이스로 테스팅 __웹 플럭스 컨트롤러 테스팅 __임베디드 스프링 부트 앱 테스트 __커스텀 스프링 부트 자동 설정 테스팅 __요약
5장. 스프링 부트 앱을 위한 개발자 도구
__핫 코드 리로딩을 위해 스프링 부트의 DevTools 사용 __스프링 부트의 자동 설정 보고서 사용 __로컬 변경 및 대상 시스템에서 보기 __커스텀 헬스 체크 작성 __/application/info에 빌드 데이터 추가 __커스텀 매트릭스 생성 __추가 액추에이터 엔드포인트 작업 __요약
6장. 스프링 부트로 AMQP 메시징하기
__래빗MQ 시작하기 ____래빗MQ 브로커 설치 ____래빗MQ 브로커 시작 __기존 애플리케이션에 메시징을 새로운 컴포넌트로 추가 __메시지 생성자/메시지 소비자 생성하기 ____코멘트 표시 ____코멘트 작성 ____AMQP 기본 사항 __메시지 플로를 추적하는 커스텀 매트릭스 추가 __스프링 클라우드 스트림(래빗MQ 포함)에서 엿보기 ____스프링 클라우드 소개 ____스프링 클라우드 스트림을 이용한 로깅 __요약
7장. 스프링 부트의 마이크로서비스
__마이크로서비스에 대한 간단한 입문서 __유레카를 사용해 동적으로 서비스를 등록 및 검색 __@SpringCloudApplication 소개 __클라이언트-사이드 로드 밸런싱을 통해 다른 마이크로서비스를 호출 __마이크로서비스 서킷 브레이커 구현 __서킷 모니터링 __마이크로서비스 설정을 컨피그 서버로 오프로드 __요약
8장. 스프링 부트의 웹 소켓
__저장된 코멘트를 채팅 서비스에 게시하기 __웹 소캣 트래픽을 처리하기 위한 채팅 서비스 생성하기 ____웹 소캣 메시지 중개 ____저장된 코멘트 브로드캐스트 ____웹 소캣 핸들러 구성 __웹 페이지에서 웹 소켓 메시지 소비 __완전 비동기식 웹 클라이언트로 이동 __서버에서 AJAX 호출 처리 __사용자 채팅 소개 __사용자별 메시지 보내기 ____인증 없이 사용자 등록 ____사용자를 세션에 연결 ____사용자 간 메시지 보내기 __최종 제품 체크 아웃 __JSR 356 대 스프링 WebFlux 메시징 __요약
9장. 스프링 부트로 앱 보안
__스프링 부트 애플리케이션 보안 __스프링 세션 사용하기 ____게이트웨이 API 작성 __채팅 마이크로서비스 보안 ____인증 대 권한 부여 __다른 마이크로서비스와 세션 세부 정보 공유 __이미지 마이크로서비스 보안 __이미지 소유권 연결 ____인증 메서드 __권한 부여 확인을 사용해 UI 조정 __웹 소켓 보안 __통신 추적 __컨피그 서버 보안 __유레카 서버 보안 __요약
10장. 스프링 부트로 앱 프로덕션하기
__프로파일-기반 빈 세트 __설정 등록 정보 빈 생성 __프로덕션 환경 설정 오버라이딩 ____@ConfigurationProperties 대 @Value __앱을 클라우드 파운더리에 푸시하고 설정 조정 __요약 |
교환/반품
[반품/교환방법]
마이페이지> 주문배송조회 > 반품/교환신청 또는 고객센터 (070-4680-5689)로 문의 바랍니다.
[반품주소]
- 도로명 : (10882) 경기도 파주시 산남로 62-20 (산남동)
- 지번 : (10882) 경기도 파주시 산남동 305-21
[반품/교환가능 기간]
변심반품의 경우 수령 후 14일 이내, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
[반품/교환비용]
단순 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
[반품/교환 불가 사유]
- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
(단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
예) 화장품, 식품, 가전제품(악세서리 포함) 등
- 복제가 가능한 상품 등의 포장을 훼손한 경우
예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
* (1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시
‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
[상품 품절]
공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
[소비자 피해보상, 환불지연에 따른 배상]
- 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됩니다.
- 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함.