홈 > 부모님 > 부모님 > 소설,일반 > 컴퓨터,모바일
스프링 부트 3와 스프링 클라우드를 활용한 마이크로서비스 구축  이미지

스프링 부트 3와 스프링 클라우드를 활용한 마이크로서비스 구축
스프링 클라우드, 이스티오, 쿠버네티스를 활용한 견고하고 확장성 있는 마이크로서비스 구축과 배포
위키북스 | 부모님 | 2025.11.12
  • 정가
  • 42,000원
  • 판매가
  • 37,800원 (10% 할인)
  • S포인트
  • 2,100P (5% 적립)
  • 상세정보
  • 18.8x24 | 1.414Kg | 744p
  • ISBN
  • 9791158396299
  • 배송비
  • 2만원 이상 구매시 무료배송 (제주 5만원 이상) ?
    배송비 안내
    전집 구매시
    주문하신 상품의 전집이 있는 경우 무료배송입니다.(전집 구매 또는 전집 + 단품 구매 시)
    단품(단행본, DVD, 음반, 완구) 구매시
    2만원 이상 구매시 무료배송이며, 2만원 미만일 경우 2,000원의 배송비가 부과됩니다.(제주도는 5만원이상 무료배송)
    무료배송으로 표기된 상품
    무료배송으로 표기된 상품일 경우 구매금액과 무관하게 무료 배송입니다.(도서, 산간지역 및 제주도는 제외)
  • 출고일
  • 품절된 상품입니다.
  • ★★★★★
  • 0/5
리뷰 0
리뷰쓰기

구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.

  • 도서 소개
  • 출판사 리뷰
  • 작가 소개
  • 목차
  • 회원 리뷰

  도서 소개

실용적인 접근 방식을 채택해 간단한 마이크로서비스부터 시작해 복잡한 분산 애플리케이션을 구축하는 과정을 단계적으로 진행한다. 그 과정에서 마이크로서비스 구축에 필수적인 기능들을 학습하고 쿠버네티스와 이스티오를 이용해 마이크로서비스를 배포하는 방법을 익힐 수 있다.

4차 개정판인 이 책에서는 자바 24, 스프링 부트 3.5, 스프링 클라우드 2025를 사용한다. 코드 예제가 전체적으로 업데이트됐으며, 사용 중단된 API는 대체되어 최신 정보를 제공한다. 스프링의 AOT 모듈, 관찰 가능성, 분산 추적, 쿠버네티스 패키징을 위한 헬름에 대한 지식을 배울 수 있다.

  출판사 리뷰

단계별로 배우는 견고하고 확장성 있는 마이크로서비스 구축과 배포!

이 책에서는 실용적인 접근 방식을 채택해 간단한 마이크로서비스부터 시작해 복잡한 분산 애플리케이션을 구축하는 과정을 단계적으로 진행한다. 그 과정에서 마이크로서비스 구축에 필수적인 기능들을 학습하고 쿠버네티스와 이스티오를 이용해 마이크로서비스를 배포하는 방법을 익힐 수 있다.

4차 개정판인 이 책에서는 자바 24, 스프링 부트 3.5, 스프링 클라우드 2025를 사용한다. 코드 예제가 전체적으로 업데이트됐으며, 사용 중단된 API는 대체되어 최신 정보를 제공한다. 스프링의 AOT 모듈, 관찰 가능성, 분산 추적, 쿠버네티스 패키징을 위한 헬름에 대한 지식을 배울 수 있다.

실습에서는 도커 컴포즈를 사용해 데이터베이스 및 메시징 서비스와 함께 마이크로서비스를 실행하는 것으로 시작해 이스티오를 사용해 쿠버네티스에 마이크로서비스를 배포한다. 또한 데이터 영속성, 복원력, 반응형 마이크로서비스, OpenAPI를 활용한 API 문서화를 비롯해 넷플릭스 유레카를 활용한 서비스 디스커버리, 스프링 클라우드 게이트웨이를 활용한 에지 서버 구축, 프로메테우스, 그라나파, EFK 스택을 활용한 모니터링을 배운다.

이 책을 마치고 나면 스프링 부트와 스프링 클라우드를 활용해 견고하고 확장성 있는 마이크로서비스를 구축할 수 있을 것이다.

★ 이 책에서 다루는 내용 ★

◎ 스프링 부트를 활용한 반응형 마이크로서비스 구축
◎ 스프링 클라우드를 활용한 탄력적이고 확장 가능한 마이크로서비스 개발
◎ OAuth 및 스프링 시큐리티를 활용한 API 보호
◎ 도커를 이용한 개발, 테스트, 생산 환경 간의 격차 해소
◎ 쿠버네티스를 이용한 마이크로서비스 배포 및 관리
◎ 이스티오를 적용해 보안, 관찰 가능성, 트래픽 관리를 개선
◎ JUnit, 테스트 컨테이너, 그레이들, bash를 이용한 마이크로서비스 테스트 자동화
◎ 스프링 AOT 및 GraalVM을 이용한 마이크로서비스의 네이티브 컴파일
◎ 마이크로미터 트레이싱을 활용한 분산 추적




  작가 소개

지은이 : 마그누스 라르손
1986년부터 IT 업계의 베테랑으로 활동해왔으며, 볼보, 에릭슨, 아스트라제네카 등 스웨덴의 주요 기업에서 컨설팅을 담당했다. 과거에는 분산 시스템 구축에 어려움이 많았지만 오늘날에는 스프링 클라우드, 쿠버네티스, 이스티오 같은 오픈소스 도구들이 효과적인 해결책을 제공한다. 지난 10년 동안 마그누스는 고객이 이러한 도구를 사용할 수 있도록 지원해 왔으며, 프레젠테이션과 블로그를 통해 인사이트를 공유해 왔다.

  목차

[1부] 스프링 부트를 활용해 마이크로서비스 개발 시작하기

▣ 01장: 마이크로서비스 소개
기술적 요구사항
마이크로서비스와의 만남
__자율적인 소프트웨어 컴포넌트의 이점
__자율적인 소프트웨어 컴포넌트의 문제
__마이크로서비스 시작하기
__예제 마이크로서비스 환경
마이크로서비스 정의
마이크로서비스의 문제
마이크로서비스 디자인 패턴
__서비스 디스커버리
__에지 서버
__반응형 마이크로서비스
__중앙 집중식 구성
__중앙 집중식 로그 분석
__분산 추적
__서킷 브레이커
__제어 루프
__중앙 집중식 모니터링과 알람
소프트웨어 지원 도구
기타 중요한 고려 사항
정리

▣ 02장: 스프링 부트 소개
기술적 요구사항
스프링 부트
__‘구성보다 관습’과 팻 JAR 파일
__스프링 부트 애플리케이션 설정을 위한 코드 예제
__스프링 부트 3.0 ~ 3.5의 새로운 기능
__스프링 부트 2 애플리케이션의 마이그레이션
스프링 웹플럭스
__REST 서비스 구축을 위한 코드 예제
__springdoc-openapi
스프링 데이터
__엔티티
__리포지터리
스프링 클라우드 스트림
__메시지 전송과 수신을 위한 코드 예제
도커
정리
문제

▣ 03장: 협력하는 마이크로서비스 만들기
기술적 요구사항
마이크로서비스 환경 소개
마이크로서비스에서 처리하는 정보
__제품 서비스
__리뷰 서비스
__추천 서비스
__제품 복합 서비스
__인프라 관련 정보
__임시로 서비스 디스커버리 대체하기
기본 골격 마이크로서비스 생성
__스프링 이니셜라이저를 활용한 기본 골격 코드 생성
__그레이들에서 멀티 프로젝트 빌드 설정
RESTful API 추가
__API와 유틸리티 프로젝트 추가
__API 구현
복합 마이크로서비스 추가
__API 클래스
__프로퍼티
__통합 컴포넌트
__복합 API 구현
오류 처리 추가
__전역 REST 컨트롤러 예외 핸들러
__API 구현에서의 오류 처리
__API 클라이언트에서의 오류 처리
API 수동 테스트
격리된 환경의 자동화된 마이크로서비스 테스트 추가
마이크로서비스 환경에 대한 반자동화된 테스트 추가
__테스트 스크립트 실행
정리
문제

▣ 04장: 도커를 활용한 마이크로서비스 배포
기술적 요구사항
도커 소개
__첫 번째 도커 명령 실행
도커에서 자바 실행하기
__사용 가능한 CPU 제한하기
__사용 가능한 메모리 제한하기
단일 마이크로서비스에 도커 사용
__소스코드의 변경 사항
__도커 이미지 빌드
__서비스 구동
__컨테이너를 분리 모드로 실행
도커 컴포즈를 활용한 마이크로서비스 환경 관리
__소스코드의 변경 사항
__마이크로서비스 환경 구동
협력 마이크로서비스의 테스트 자동화
__테스트 실행 문제 해결
정리
문제

▣ 05장: OpenAPI를 활용한 API 문서화
기술적 요구사항
springdoc-openapi 사용법 소개
소스코드에 springdoc-openapi 추가
__그레이들 빌드 파일에 의존성 추가
__ProductCompositeService에 OpenAPI 구성 및 일반 API 문서 추가
__ProductCompositeService 인터페이스에 API 관련 문서 추가
마이크로서비스 환경 빌드 및 구동
OpenAPI 문서 테스트
정리
문제

▣ 06장: 영속성 추가
기술적 요구사항
이번 장의 목표
핵심 마이크로서비스에 영속성 계층 추가
__의존성 추가
__엔티티 클래스를 활용한 데이터 저장
__스프링 데이터에서 리포지터리 정의하기
영속성에 중점을 둔 자동화된 테스트 작성
__Testcontainers 사용
__영속성 테스트 작성
서비스 계층에서 영속성 계층 사용
__데이터베이스 연결 URL 로깅
__새 API 추가
__서비스 계층에서 영속성 계층 호출
__자바 빈 매퍼 선언
__서비스 테스트 업데이트
복합 서비스 API 확장
__복합 서비스 API에 새 연산 추가
__통합 계층에 메서드를 추가
__새로운 복합 API 연산 구현
__복합 서비스 테스트 업데이트
도커 컴포즈 환경에 데이터베이스 추가
__도커 컴포즈 구성
__데이터베이스 연결 구성
__MongoDB와 MySQL CLI 도구
새로운 API와 영속성 계층에 대한 수동 테스트
마이크로서비스 환경의 자동화된 테스트 업데이트
정리
문제

▣ 07장: 반응형 마이크로서비스 개발
기술적 요구사항
논블로킹 동기 API와 이벤트 기반 비동기 서비스 중에서 선택하기
논블로킹 동기 RESTful API 개발
__프로젝트 리액터 소개
__스프링 데이터 MongoDB를 활용한 논블로킹 영속성
__핵심 서비스의 논블로킹 RESTful API
__복합 서비스의 논블로킹 RESTful API
이벤트 기반 비동기 서비스 개발
__메시징 관련 문제 처리
__토픽과 이벤트 정의
__그레이들 빌드 파일 변경
__핵심 서비스에서 이벤트 소비하기
__복합 서비스에서 이벤트 게시하기
반응형 마이크로서비스 환경에 대한 수동 테스트 실행
__이벤트 저장
__상태 API 추가
__파티션을 사용하지 않고 RabbitMQ 사용하기
__파티션과 함께 RabbitMQ 사용하기
__토픽당 두 개의 파티션과 함께 카프카 사용하기
반응형 마이크로서비스 환경에 대한 자동화된 테스트 실행
정리
문제

[2부] 스프링 클라우드를 활용한 마이크로서비스 관리

▣ 08장: 스프링 클라우드 소개
기술적 요구사항
스프링 클라우드의 진화
서비스 디스커버리를 위한 넷플릭스 유레카 활용
스프링 클라우드 게이트웨이를 에지 서버로 사용하기
중앙 집중식 구성을 위한 스프링 클라우드 컨피그 활용
복원력 향상을 위한 Resilience4j 활용
__Resilience4j의 서킷 브레이커 예제
분산 추적을 위한 마이크로미터 트레이싱과 집킨 활용
정리
문제
기술적 요구사항

▣ 09장: 넷플릭스 유레카를 활용한 서비스 디스커버리
서비스 디스커버리 소개
__DNS 기반 서비스 디스커버리의 문제
__서비스 디스커버리의 과제
__스프링 클라우드의 넷플릭스 유레카를 활용한 서비스 디스커버리
넷플릭스 유레카 서버 설정
넷플릭스 유레카 서버에 마이크로서비스 연결
개발 환경용 구성 설정
__유레카 구성 매개변수
__유레카 서버 구성
__유레카 서버에 대한 클라이언트 구성
디스커버리 서비스 테스트
__서비스 확장
__서비스 축소
__유레카 서버를 활용한 테스트
유레카 서버를 다시 구동
정리
문제

▣ 10장: 스프링 클라우드 게이트웨이를 활용해 에지 서버 뒤에 마이크로서비스 숨기기
기술적 요구사항
시스템 환경에 에지 서버 추가
스프링 클라우드 게이트웨이 설정
__복합 상태 검사 추가
__스프링 클라우드 게이트웨이 구성
__도커 엔진 외부로 무엇이 노출되는지 검사하기
__라우팅 규칙 테스트
정리
문제

▣ 11장: API에 대한 접근 보안
기술적 요구사항
OAuth 2.0과 OpenID Connect 소개
__OAuth 2.0 소개
__OpenID Connect 소개
시스템 환경 보호
HTTPS를 이용한 외부 통신 보호
__런타임에 자체 서명 인증서 교체하기
디스커버리 서버에 대한 접근 보호
__유레카 서버의 변경 사항
__유레카 클라이언트의 변경 사항
로컬 인가 서버 추가
OAuth 2.0과 OpenID Connect를 활용한 API 보호
__에지 서버 및 product-composite 서비스의 변경 사항
__product-composite 서비스의 변경 사항
__테스트 스크립트의 변경 사항
로컬 인가 서버를 이용한 테스트
__자동화된 테스트의 빌드와 실행
__보호된 디스커버리 서버에 대한 테스트
__접근 토큰 획득
__접근 토큰을 이용한 보호된 API 호출
__OAuth 2.0으로 스웨거 UI 테스트
외부 OpenID Connect 제공자를 이용한 테스트
__Auth0에서 계정 설정 및 구성
__Auth0을 OpenID 제공자로 사용하는 데 필요한 변경 사항
__Auth0을 OpenID Connect 제공자로 사용해 테스트 스크립트 실행하기
__클라이언트 자격 증명 승인 흐름을 이용한 접근 토큰 획득
__인가 코드 승인 흐름을 이용한 접근 토큰 획득
__Auth0 접근 토큰을 이용한 보호된 API 호출
__사용자의 상세 정보 조회
정리
문제

▣ 12장: 중앙 집중식 구성
기술적 요구사항
스프링 클라우드 컨피그 서버 소개
__구성 저장소의 스토리지 유형
__초기 클라이언트 연결 결정
__구성 보안 설정
__컨피그 서버 API 소개
컨피그 서버 설정
__에지 서버에서 라우팅 규칙 설정
__도커 사용을 위한 컨피그 서버 구성
컨피그 서버의 클라이언트 구성
__연결 정보 구성
구성 저장소 구조화
스프링 클라우드 컨피그 서버 테스트
__빌드 및 자동화 테스트 실행
__컨피그 서버 API를 이용한 구성 조회
__민감한 정보의 암호화와 복호화
정리
문제

▣ 13장: Resilience4j를 활용한 복원력 개선
기술적 요구사항
Resilience4j 복원 메커니즘 소개
__서킷 브레이커 소개
__시간 제한 소개
__재시도 메커니즘 소개
복원 메커니즘 추가
__프로그래밍 가능한 처리 지연 및 무작위 오류 추가
__서킷 브레이커와 시간 제한 추가
__재시도 메커니즘 추가
__자동화된 테스트 추가
서킷 브레이커와 재시도 메커니즘 테스트
__빌드 및 자동화된 테스트 실행
__정상 작동 중 회로가 닫혀 있는지 확인
__문제 발생 시 서킷 브레이커를 강제로 열기
__서킷 브레이커 다시 닫기
__무작위 오류로 인한 재시도 테스트
정리
문제

▣ 14장: 분산 추적
기술적 요구사항
마이크로미터 트레이싱과 집킨을 활용한 분산 추적 소개
분산 추적 추가
__빌드 파일에 의존성 추가
__마이크로미터 트레이싱과 집킨에 대한 구성 추가
__도커 컴포즈 파일에 집킨 추가하기
__반응형 클라이언트에 대한 지원 문제 해결
__사용자 정의 스팬 및 기존 스팬에 사용자 정의 태그 추가
분산 추적 실습
__시스템 환경 구동
__성공적인 API 요청 보내기
__실패하는 API 요청 보내기
__비동기 처리를 트리거하는 API 요청 보내기
정리
문제

[03부] 쿠버네티스를 활용한 경량 마이크로서비스 개발

▣ 15장: 쿠버네티스 소개
기술적 요구사항
쿠버네티스 개념 소개
쿠버네티스 API 오브젝트 소개
쿠버네티스 런타임 컴포넌트 소개
미니큐브를 이용한 쿠버네티스 클러스터 생성
__미니큐브 프로파일 활용하기
__kubectl 활용하기
__kubectl 컨텍스트 다루기
__쿠버네티스 클러스터 생성
예시 디플로이먼트 실습
로컬 쿠버네티스 클러스터 관리
__쿠버네티스 클러스터 중단 및 재개
__쿠버네티스 클러스터 종료
정리
문제

▣ 16장: 쿠버네티스에 마이크로서비스 배포
기술적 요구사항
넷플릭스 유레카를 쿠버네티스 서비스로 대체
쿠버네티스 활용법 소개
우아한 종료와 라이브니스 및 준비 상태 프로브에
스프링 부트 기능 활용
헬름 소개
__헬름 명령 실행
__헬름 차트의 내부 구조
__헬름 템플릿과 값
__공통 라이브러리 차트
__컴포넌트 차트
__환경 차트
개발 및 테스트를 위해 쿠버네티스에 배포하기
__도커 이미지 빌드
__헬름 차트 의존성 해결
__쿠버네티스에 배포하기
__쿠버네티스와 함께 사용하기 위한 테스트 스크립트 변경
__디플로이먼트 테스트
스테이징 및 프로덕션을 위해 쿠버네티스에 배포하기
__소스코드의 변경 사항
__쿠버네티스에 배포하기
__리소스 정리
정리
문제

▣ 17장: 시스템 환경을 단순화하기 위한 쿠버네티스 기능구현
기술적 요구사항
스프링 클라우드 컨피그 서버 대체하기
__스프링 클라우드 컨피그 서버를 대체하는 데 필요한 변경 사항
스프링 클라우드 게이트웨이 대체하기
__스프링 클라우드 게이트웨이를 대체하는 데 필요한 변경 사항
인증서 프로비저닝 자동화
쿠버네티스 컨피그맵, 시크릿, 인그레스, cert-manager를 활용한 테스트
__인증서 교체
__스테이징 및 프로덕션을 위한 쿠버네티스 배포
쿠버네티스 없이도 마이크로서비스가 작동하는지 확인
__도커 컴포즈 파일의 변경 사항
__도커 컴포즈를 이용한 테스트
정리
문제

▣ 18장: 서비스 메시를 활용한 관찰 가능성과 관리 개선
기술적 요구사항
이스티오를 활용한 서비스 메시 소개
__이스티오 소개
__마이크로서비스에 이스티오 프락시 주입
__이스티오 API 오브젝트 소개
마이크로서비스 환경 단순화
__쿠버네티스 인그레스 컨트롤러를 이스티오 인그레스 게이트웨이로 대체
__집킨 서버를 이스티오의 예거 컴포넌트로 대체
쿠버네티스 클러스터에 이스티오 배포
__이스티오 서비스에 대한 접근 설정
서비스 메시 생성
__소스코드 변경
__서비스 메시를 생성하는 명령 실행
__추적 및 스팬 ID 전파 로깅
서비스 메시 관찰
서비스 메시 보안
__HTTPS 및 인증서를 이용한 외부 엔드포인트 보호
__OAuth 2.0/OIDC 접근 토큰을 사용해 외부 요청 인증
__상호 인증(mTLS)을 이용한 내부 통신 보호
서비스 메시가 복원력 있는지 확인하기
__결함을 주입해 복원력 테스트하기
__처리 지연을 주입해 복원력 테스트하기
무중단 업데이트
__소스코드 변경
__마이크로서비스의 v1 버전과 v2 버전 배포 및 v1 버전으로의 라우팅
__모든 트래픽이 처음에 마이크로서비스의 v1 버전으로 라우팅되는지 확인
__카나리아 테스트 실행
__블루-그린 배포 실행
도커 컴포즈를 이용한 테스트 실행
정리
문제

▣ 19장: EFK 스택을 활용한 중앙 집중식 로깅
기술적 요구사항
플루언트디 소개
__플루언트디 개요
__플루언트디 구성
쿠버네티스에 EFK 스택 배포
__마이크로서비스 빌드와 배포
__엘라스틱서치와 키바나 배포
__플루언트디 배포
EFK 스택 사용해보기
__키바나 초기화
__로그 레코드 분석
__마이크로서비스의 로그 레코드 검색
__근본 원인 분석 수행
정리
문제

▣ 20장: 마이크로서비스 모니터링
기술적 요구사항
프로메테우스와 그라파나를 활용한 성능 모니터링
애플리케이션 메트릭을 수집하기 위한 소스코드 변경
마이크로서비스 빌드와 배포
그라파나 대시보드를 이용한 마이크로서비스 모니터링
__테스트용 로컬 메일 서버 설치
__그라파나 구성
__로드 테스트
__키알리의 기본 대시보드 사용하기
__기존 그라파나 대시보드 가져오기
__나만의 그라파나 대시보드 만들기
__새 대시보드 테스트
그라파나 대시보드 내보내기와 가져오기
그라파나에서 알람 설정
__메일 기반 연락 지점 구성
__기본 알림 정책 구성
__서킷 브레이커에 대한 알람 설정
__서킷 브레이커 알람 테스트
정리
문제
기술적 요구사항

▣ 21장: macOS용 설치 안내
필요한 도구 설치
__SDKMan, 자바, 스프링 부트 CLI 설치
__홈브루 설치
__홈브루를 이용한 도구 설치
__홈브루 없이 도구 설치
__설치 후 작업
__설치 확인
소스코드 다운로드
__IDE 사용
__코드 구조
정리
기술적 요구사항

▣ 22장: WSL 2와 우분투가 탑재된 마이크로소프트 윈도우용 설치 안내
필요한 도구 설치
__윈도우에 도구 설치
__WSL 2의 리눅스 서버에 도구 설치
소스코드 다운로드
__코드 구조
정리

▣ 23장: 자바 마이크로서비스의 네이티브 컴파일
기술적 요구사항
자바 소스코드를 네이티브 컴파일해야 하는 경우
GraalVM 프로젝트 소개
스프링 AOT 엔진 소개
네이티브 컴파일과 관련된 문제 해결
소스코드의 변경 사항
__그레이들 빌드 파일 업데이트
__도달 가능성 메타데이터 및 사용자 지정 힌트 제공
__application.yml 파일에서 빌드 시점에 스프링 빈 활성화
__업데이트된 런타임 속성
__GraalVM 네이티브 이미지 트레이싱 에이전트 구성
__test-em-all.bash 검증 스크립트의 업데이트
네이티브 이미지의 테스트와 컴파일
__트레이싱 에이전트 실행
__네이티브 테스트 실행
__현재 OS용 네이티브 이미지 생성
__네이티브 이미지를 도커 이미지로 생성
도커 컴포즈를 이용한 테스트
__AOT 모드를 비활성화한 상태에서 자바 VM 기반 마이크로서비스 테스트
__AOT 모드를 활성화한 상태에서 자바 VM 기반 마이크로서비스 테스트
__네이티브 컴파일된 마이크로서비스 테스트
쿠버네티스를 이용한 테스트
정리
문제

  회원리뷰

리뷰쓰기

    이 분야의 신상품