장바구니 담기 close

장바구니에 상품을 담았습니다.

스프링 부트로 개발하는 MSA 컴포넌트

스프링 부트로 개발하는 MSA 컴포넌트

  • 김병부
  • |
  • 길벗
  • |
  • 2022-11-18 출간
  • |
  • 768페이지
  • |
  • 183 X 235 X 30mm
  • |
  • ISBN 9791140702121
판매가

44,000원

즉시할인가

39,600

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
39,600

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

마이크로서비스 도입에 필요한 스프링 부트 핵심 가이드!마이크로서비스 도입에 필요한 스프링 부트 사용법을 확실하게 배우자!개발과 운영이 까다로운 마이크로서비스를 올바르게 이해하고, 마이크로서비스 애플리케이션을 개발할 때 필요한 스프링 부트에 집중해서 설명한다. 스프링 부트의 자동 설정 기능부터 JPA, REST-API, 영속성 프레임워크와 레디스, 그리고 스프링 프레임워크에서 제공하는 스케줄링 기능과 스프링 이벤트를 사용하는 방법까지 순서대로 들여다보면서 스프링 애플리케이션을 보다 완성도 있게 개발할 수 있다.400개의 길고 짧은 예제를 통해 실전 감각을 올리자!이 책에서는 실무에서 서비스를 개발하면서 부딪힐 수 있는 여러 상황들을 예제로 설명한다. 400개의 길고 짧은 예제를 통해 ‘스프링 투어’라는 가상의 여행 예약 서비스를 조금씩 발전시키면서 여러 서비스가 결합된 서비스로의 전환 과정을 보여준다. 이 과정 안에서 스프링 부트로 마이크로서비스 컴포넌트를 개발하는 방법을 보다 쉽게 이해할 수 있을 것이다.

목차

1장 마이크로서비스 아키텍처 1.1 모놀리식 아키텍처 소개 __1.1.1 모놀리식 아키텍처 장점 __1.1.2 모놀리식 아키텍처 단점 1.2 마이크로서비스 아키텍처 소개 __1.2.1 마이크로서비스 아키텍처 장점 __1.2.2 마이크로서비스 아키텍처 단점 1.3 마이크로서비스 아키텍처 설계 __1.3.1 서비스 세분화 원칙 __1.3.2 도메인 주도 설계(DDD)의 바운디드 컨텍스트 __1.3.3 단일 책임 원칙 __1.3.4 가벼운 통신 프로토콜 __1.3.5 외부 공개 인터페이스 __1.3.6 마이크로서비스마다 독립된 데이터 저장소 __1.3.7 정리 1.4 스프링 투어의 아키텍처 변화 __1.4.1 스프링 투어의 시작 __1.4.2 서비스 안정성 확보 __1.4.3 확장의 시작 __1.4.4 데이터 저장소의 확장 __1.4.5 마이크로서비스 아키텍처의 시작 1.5 12 요소 애플리케이션 __1.5.1 코드베이스: 버전 관리되는 하나의 코드베이스와 다양한 배포 __1.5.2 의존성: 명시적으로 선언할 수 있고 분리할 수 있는 의존성 __1.5.3 설정: 환경 변수를 이용한 설정 __1.5.4 지원 서비스: 지원 서비스는 연결된 리소스로 처리 __1.5.5 빌드, 릴리스, 실행: 소스 빌드와 실행은 완전히 분리되어야 한다 __1.5.6 프로세스: 애플리케이션은 하나 이상의 무상태 프로세스로 실행되어야 한다 __1.5.7 포트 바인딩: 포트 바인딩을 통한 서비스 공개 __1.5.8 동시성: 프로세스들을 통한 수평 확장 __1.5.9 폐기 가능: 프로세스는 빠르게 시작해야 하고 안정적으로 종료해야 한다 __1.5.10 Dev 환경과 Production 환경 일치 __1.5.11 로그: 로그는 이벤트 스트림으로 다룬다 __1.5.12 admin 프로세스: 시스템 유지 보수를 위한 일회성 프로세스 1.6 정리 64 2장 프레임워크와 스프링 부트2.1 스프링 투어가 스프링 부트를 선택한 이유 2.2 스프링 프레임워크 __2.2.1 POJO 기반의 경량 컨테이너 __2.2.2 복잡한 비즈니스 영역의 문제를 쉽게 개발하고 운영하기 위한 철학 __2.2.3 모듈식 프레임워크 __2.2.4 높은 확장성과 범용성, 생태계 시스템 __2.2.5 엔터프라이즈 애플리케이션에 적합한 오픈 소스 경량급 프레임워크 2.3 스프링 부트 소개 __2.3.1 단독 실행 가능한 스프링 애플리케이션 __2.3.2 간편한 설정을 위한 ‘스타터’ 의존성 제공 __2.3.3 스프링 기능을 자동 설정하는 ‘자동 구성’ 제공 __2.3.4 모니터링 지표, 헬스 체크를 위한 ‘액추에이터’ __2.3.5 XML 설정을 위한 일이 필요 없음 __2.3.6 애플리케이션에 내장된 WAS 2.4 스프링 부트 애플리케이션 시작하기 __2.4.1 Maven을 사용하여 프로젝트를 구성하는 방법 __2.4.2 스프링 이니셜라이저를 사용하여 프로젝트를 구성하는 방법 __2.4.3 IntelliJ의 이니셜라이저를 사용하여 프로젝트를 구성하는 방법 __2.4.4 스프링 스타터에 포함된 pom.xml 분석 __2.4.5 @SpringBootApplication 애너테이션과 메인 클래스 __2.4.6 스프링 애플리케이션 예제 2.5 정리 3장 스프링 애플리케이션 기본 3.1 스프링 빈 사용 __3.1.1 @Bean 애너테이션 3.2 자바 설정 __3.2.1 @Configuration __3.2.2 @ComponentScan __3.2.3 @Import 3.3 스테레오 타입 스프링 빈 사용 3.4 의존성 주입 __3.4.1 의존성 __3.4.2 애너테이션 기반 설정의 의존성 주입 __3.4.3 자바 설정의 의존성 주입 3.5 ApplicationContext 3.6 스프링 빈 스코프 3.7 스프링 빈 생명주기 관리 3.8 스프링 빈 고급 정의 __3.8.1 @Primary 애너테이션 __3.8.2 @Lazy 애너테이션 3.9 스프링 투어가 오해한 스프링 빈 4장 스프링 웹 MVC 개요 4.1 HTTP 프로토콜 __4.1.1 HTTP 상태 코드 __4.1.2 HTTP 특징 4.2 스프링 웹 MVC 프레임워크 __4.2.1 MVC 패턴 __4.2.2 DispatcherServlet __4.2.3 서블릿 스택과 스레드 모델 __4.2.4 스프링 부트 설정 4.3 REST-API 설계 __4.3.1 HTTP 메서드별 REST-API 예제 __4.3.2 REST-API 특성과 설계 4.4 간단한 REST-API 예제 __4.4.1 @ResponseBody와 HttpMessageConverter 5장 스프링 MVC를 이용한 REST-API 개발 5.1 REST-API: GET, DELETE 메서드 매핑 __5.1.1 호텔 정보 조회 API 명세서 __5.1.2 Controller 클래스 구현 __5.1.3 @GetMapping 애너테이션 __5.1.4 @PathVariable 애너테이션 __5.1.5 @RequestParam 애너테이션 __5.1.6 @DeleteMapping 애너테이션 5.2 REST-API 응답 메시지 처리 __5.2.1 @JsonProperty와 @JsonSerialize 애너테이션: JSON 마셜링 예제 __5.2.2 JsonSerializer와 JsonDeserializer 예제 __5.2.3 @JsonFormat 애너테이션 __5.2.4 열거형 클래스 변환 5.3 REST-API POST, PUT 매핑 5.4 ResponseEntity 응답과 Pageable, Sort 클래스 __5.4.1 ResponseEntity 클래스 __5.4.2 페이지네이션과 정렬 파라미터를 위한 Pageable 클래스 __5.4.3 Pageable 자동 설정 5.5 REST-API 검증과 예외 처리 __5.5.1 JSR-303을 사용한 데이터 검증 __5.5.2 @Valid 애너테이션과 예제 __5.5.3 Validator 인터페이스를 사용한 검증 __5.5.4 @ControllerAdvice와 @ExceptionHandler 예외 처리 5.6 미디어 콘텐츠 내려받기 6장 웹 애플리케이션 서버 구축하기 6.1 웹 애플리케이션 기본 설정 __6.1.1 웹 애플리케이션의 설정 메커니즘 __6.1.2 WebMvcConfigurer를 사용한 설정 __6.1.3 DispatcherServlet 설정 6.2 HttpMessageConverter와 REST-API 설정 __6.2.1 HttpMessageConverter 설정 __6.2.2 ObjectMapper와 스프링 빈을 이용한 애플리케이션 설정 6.3 Interceptor와 ServletFilter 설정 __6.3.1 HandlerInterceptor 인터페이스 __6.3.2 Filter 인터페이스 6.4 Application.properties 설정 __6.4.1 @Value 애너테이션 __6.4.2 @ConfigurationProperties와 @ConfigurationPropertiesScan 6.5 Profile 설정 __6.5.1 Profile 변수 값 설정 __6.5.2 프로파일별 application.properties 설정 __6.5.3 @Profile 애너테이션과 스프링 빈 설정 __6.5.4 @Profile 애너테이션과 인터페이스를 사용한 확장 __6.5.5 Environment 인터페이스 6.6 REST-API와 국제화 메시지 처리 __6.6.1 message.properties 파일 설정 __6.6.2 MessageSource 인터페이스 __6.6.3 스프링 부트 프레임워크의 자동 설정 구성 __6.6.4 LocaleResolver와 LocaleChangeInterceptor 설정 예제 6.7 로그 설정 __6.7.1 Logger 선언과 사용 __6.7.2 logback-spring.xml __6.7.3 중앙 수집 로그 6.8 애플리케이션 패키징과 실행 __6.8.1 메이븐 패키징 __6.8.2 도커 이미지 생성 7장 스프링 AOP와 테스트, 자동 설정 원리 7.1 스프링 AOP __7.1.1 AOP 용어 정리 __7.1.2 어드바이스 종류와 설명 __7.1.3 스프링 AOP와 프록시 객체 __7.1.4 포인트 컷과 표현식 __7.1.5 JoinPoint와 ProceedingJoinPoint __7.1.6 관점 클래스 예제 __7.1.7 애너테이션을 사용한 AOP 7.2 스프링 부트 테스트 __7.2.1 스프링 부트 테스트 설정 __7.2.2 Junit 사용 예제 __7.2.3 @SpringBootTest를 사용한 스프링 부트 테스트 __7.2.4 @TestConfiguration을 사용한 테스트 환경 설정 __7.2.5 @MockBean을 사용한 테스트 환경 설정 __7.2.6 테스트 슬라이스 애너테이션 __7.2.7 스프링 부트 웹 MVC 테스트 예제 __7.2.8 JPA 테스트 7.3 스프링 부트 자동 설정 8장 데이터 영속성 8.1 JPA __8.1.1 JPA 소개 __8.1.2 ORM과 SQL Mapper 비교 __8.1.3 JPA 장단점 8.2 MySQL 실행 환경 설정 458 __8.2.1 도커를 사용한 MySQL 실행 환경 설정 __8.2.2 테이블 설계 8.3 Spring Data JPA 기능과 설정 __8.3.1 Spring Data JPA 기능 __8.3.2 Spring Data JPA 자동 설정과 필수 스프링 빈 __8.3.3 Spring Data JPA 설정 __8.3.4 Hikari DataSource 설정 8.4 엔터티 클래스 설계 __8.4.1 엔터티 클래스와 @Entity 애너테이션 __8.4.2 엔터티 클래스 기본 키 설정 __8.4.3 열거형과 @Enumerated __8.4.4 Date 클래스와 @Temporal __8.4.5 엔터티 클래스 속성 변환과 AttributeConverter __8.4.6 엔터티 클래스 상속과 @MappedSuperClass 8.5 리포지터리 개발과 JpaRepository 8.6 Spring Data JPA의 쿼리 메서드 기능 __8.6.1 메서드 이름으로 쿼리 생성 __8.6.2 예제와 테스트 케이스 __8.6.3 @Query 애너테이션을 사용한 쿼리 사용 8.7 트랜잭션과 @Transactional __8.7.1 @Transactional 애너테이션 __8.7.2 @Transactional의 propagation 속성 __8.7.3 @Transactional 애너테이션의 isolation 속성 __8.7.4 트랜잭션 테스트 예제 __8.7.5 @Transactional을 사용할 때 주의 사항 8.8 EntityManager __8.8.1 EntityManager와 영속성 컨텍스트 __8.8.2 영속성 컨텍스트의 특징 8.9 엔터티 연관 관계 설정 __8.9.1 연관 관계 설계 __8.9.2 일대다 연관 관계 설정 __8.9.3 영속성 전이와 로딩, 고아 객체 __8.9.4 다대일 연관 관계 설정 __8.9.5 양방향 관계 설정 __8.9.6 다대다 연관 관계 설정 __8.9.7 일대일 연관 관계 설정 8.10 엔터티 상태 이벤트 처리 8.11 트랜잭션 생명주기 동기화 작업 __8.11.1 스프링 부트 프레임워크의 OSIV 설정 9장 애플리케이션 통합: REST-API 9.1 RestTemplate 클래스 __9.1.1 RestTemplate 구조 __9.1.2 RestTemplate 스프링 빈 설정 __9.1.3 Connection Timeout과 Read Timeout 설정 __9.1.4 RestTemplate 클래스 __9.1.5 RestTemplate 예제 __9.1.6 keep-alive와 Connection Pool 설정 9.2 WebClient 10장 레디스와 스프링 캐시 10.1 레디스 소개 및 아키텍처 __10.1.1 레디스 센티넬 아키텍처 __10.1.2 레디스 클러스터 아키텍처 __10.1.3 레디스 자료 구조 __10.1.4 레디스 유효 기간 10.2 Spring Data Redis 사용 __10.2.1 RedisAutoConfiguration 자동 설정 __10.2.2 레디스 도커 설정 10.3 Lettuce 라이브러리와 커넥션 설정 __10.3.1 RedisConnectionFactory 설정 10.4 레디스 문자열 예제와 RedisSerializer 설정 10.5 레디스 분산 락 사용 예제 10.6 레디스 Sorting 구현 예제 10.7 레디스 Pub-Sub 구현 예제 __10.7.1 토픽과 메시지 객체 __10.7.2 게시자 예제 __10.7.3 구독자 예제 __10.7.4 게시자와 구독자 테스트 10.8 스프링 프레임워크 캐시 __10.8.1 Cache와 CacheManager 인터페이스 __10.8.2 캐시 애너테이션 11장 스프링 스케줄링 태스크 11.1 스케줄링 설정 __11.1.1 SchedulingConfigurer를 사용한 TaskScheduler 설정 __11.1.2 ScheduledAnnotationBeanPostProcessor와 TaskScheduler 설정 11.2 스케줄링 태스크 정의 __11.2.1 cron 속성과 클론 표현식 __11.2.2 fixedDelay 속성 __11.2.3 fixedRate 속성 11.3 배치 서버 아키텍처 __11.3.1 단독 배치 서버 구성 __11.3.2. 젠킨스와 REST-API 서버군 구성 __11.3.3 @Scheduled와 REST-API 서버군 구성 12장 스프링 이벤트 12.1 스프링 이벤트 장점 12.2 사용자 정의 이벤트 처리 12.3 비동기 사용자 정의 이벤트 처리 12.4 @Async 애너테이션을 사용한 비동기 이벤트 처리 12.5 @EventListener 12.6 스프링 애플리케이션 이벤트 12.7 트랜잭션 시점에 구독한 이벤트 처리 부록 A 예제 코드 사용법 A.1 예제 코드 실행하기 __A.1.1 실행 환경 설정 __A.1.2 예제 코드의 구조 및 실행 A.2 도커 이미지 생성하기 __A.2.1 도커 설치 __A.2.2 도커 이미지 관련 명령어들 __A.2.3 도커 컨테이너 명령어들 __A.2.4 도커 이미지 저장소 관련 명령어들 찾아보기

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.