본문 바로가기

추천 검색어

실시간 인기 검색어

[epub3.0]스프링 부트로 개발하는 MSA 컴포넌트

김병부 지음
길벗

2022년 12월 07일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 ePUB (30.16MB)
ISBN 9791140702558
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

소득공제
소장

판매가 판매금지

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

마이크로서비스 도입에 필요한 스프링 부트 사용법을 확실하게 배우자!
개발과 운영이 까다로운 마이크로서비스를 올바르게 이해하고, 마이크로서비스 애플리케이션을 개발할 때 필요한 스프링 부트에 집중해서 설명한다. 스프링 부트의 자동 설정 기능부터 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 도커 이미지 저장소 관련 명령어들

작가정보

저자(글) 김병부

광운대학교 무선네트워크 연구실에서 석사 학위를 받았다. 지금은 NHN Dooray에서 백엔드 시스템을 개발하고 있으며, 동시에 NHN Academy에서 미래의 개발자에게 기술을 전파하는 즐거움도 느끼고 있다. 저서로는 『자바를 다루는 기술』, 『Linux Server Bible』, 『ASP.NET 30일 완성』 등이 있다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    [epub3.0]스프링 부트로 개발하는 MSA 컴포넌트 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    [epub3.0]스프링 부트로 개발하는 MSA 컴포넌트 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    [epub3.0]스프링 부트로 개발하는 MSA 컴포넌트
    저자 모두보기
    저자(글)
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)