이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1부. 스프링 부트를 사용한 마이크로서비스 개발
1장. 마이크로서비스 소개 기술 요구 사항 내 마이크로서비스 경험 독립 소프트웨어 컴포넌트의 장점 독립 소프트웨어 컴포넌트의 문제 마이크로서비스 입문 샘플 마이크로서비스 환경 마이크로서비스 정의 마이크로서비스의 문제 마이크로서비스 디자인 패턴 서비스 검색 에지 서버 리액티브 마이크로서비스 구성 중앙화 로그 분석 중앙화 분산 추적 서킷 브레이커 제어 루프 모니터링 및 경고 중앙화 필수 소프트웨어 다른 주요 고려 사항 요약 2장. 스프링 부트 소개 기술 요구 사항 스프링 부트 설정보다 관례와 팻 JAR 파일 스프링 부트 애플리케이션 설정에 대한 코드 예제 스프링 웹플럭스 REST 서비스 설정에 대한 코드 예제 springdoc-openapi 스프링 데이터 엔티티 리포지터리 스프링 클라우드 스트림 메시지 송수신에 대한 코드 예제 도커 요약 질문 3장. 공조 마이크로서비스 집합 생성 기술 요구 사항 마이크로서비스 환경 소개 마이크로서비스가 처리하는 정보 임시로 검색 서비스 대체 골격 마이크로서비스 생성 스프링 이니셜라이저로 골격 코드 생성 그래들에 멀티 프로젝트 빌드 설정 RESTful API 추가 api 프로젝트와 util 프로젝트 추가 API 구현 복합 마이크로서비스 추가 API 클래스 속성 통합 컴포넌트 복합 API 구현 예외 처리 추가 전역 REST 컨트롤러 예외 핸들러 API 구현의 예외 처리 API 클라이언트의 예외 처리 API 수동 테스트 자동화된 마이크로서비스 테스트 반자동화된 마이크로서비스 환경 테스트 테스트 스크립트 실행 요약 질문 4장. 도커를 사용한 마이크로서비스 배포 기술 요구 사항 도커 소개 첫 도커 커맨드 실행 도커에서 자바를 실행할 때의 문제 사용 가능한 CPU 제한 사용 가능한 메모리 제한 도커로 단일 마이크로서비스 실행 소스 코드 변경 도커 이미지 빌드 서비스 시작 컨테이너를 분리 모드로 실행 도커 컴포즈를 사용한 마이크로서비스 환경 관리 소스 코드 변경 마이크로서비스 환경 시작 공조 마이크로서비스의 테스트 자동화 테스트 실행 문제 해결 요약 질문 5장. OpenAPI를 사용한 API 문서화 기술 요구 사항 springdoc-openapi 소개 소스 코드 변경 그래들 빌드 파일에 의존성 추가 ProductCompositeServiceApplication에 구성과 API 정보 추가 ProductCompositeService 인터페이스에 API 정보 추가 마이크로서비스 환경 구축 및 시작 OpenAPI 문서 사용법 요약 질문 6장. 영속성 추가 기술 요구 사항 목표 핵심 마이크로서비스에 영속성 계층 추가 의존성 추가 엔티티 클래스를 사용해 데이터 저장 스프링 데이터 리포지터리 정의 영속성에 중점을 둔 자동 테스트 작성 Testcontainers 사용법 영속성 테스트 작성 서비스 계층에서 영속성 계층 사용 데이터베이스 연결 URL 기록 새 API 추가 서비스 계층에서 영속성 계층 호출 자바 빈 매퍼 선언 서비스 테스트 업데이트 복합 서비스 API 확장 복합 서비스 API에 새 오퍼레이션 추가 통합 계층에 메서드 추가 새 복합 API 오퍼레이션 구현 복합 서비스 테스트 업데이트 도커 컴포즈 환경에 데이터베이스 추가 도커 컴포즈 구성 데이터베이스 연결 구성 MongoDB 및 MySQL CLI 도구 새 API 및 영속성 계층의 수동 테스트 마이크로서비스 환경의 자동 테스트 업데이트 요약 질문 7장. 리액티브 마이크로서비스 개발 기술 요구 사항 논블로킹 동기 API와 이벤트 기반 비동기 서비스의 선택 기준 논블로킹 동기 REST API 개발 프로젝트 리액터 소개 스프링 데이터 MongoDB를 사용한 논블로킹 영속성 핵심 서비스의 논블로킹 REST API 복합 서비스의 논블로킹 REST API 이벤트 기반 비동기 서비스 개발 메시징 관련 문제 처리 토픽 및 이벤트 정의 그래들 빌드 파일 변경 핵심 서비스에서 이벤트 소비 복합 서비스에서 이벤트 게시 리액티브 마이크로서비스 환경의 수동 테스트 이벤트 저장 상태 점검 API 추가 파티션 없이 RabbitMQ 사용 파티션을 추가해 RabbitMQ 사용 토픽당 2개의 파티션으로 카프카 사용 리액티브 마이크로서비스 환경의 자동 테스트 요약 질문 2부. 스프링 클라우드를 활용한 마이크로서비스 관리 8장. 스프링 클라우드 소개 기술 요구 사항 스프링 클라우드의 진화 넷플릭스 유레카를 검색 서비스로 사용 스프링 클라우드 게이트웨이를 에지 서버로 사용 구성 중앙화를 위해 스프링 클라우드 컨피그 사용 복원력 향상을 위해 Resilience4j 사용 Resilience4j를 사용한 서킷 브레이커 샘플 스프링 클라우드 슬루스와 집킨을 사용한 분산 추적 요약 질문 9장. 넷플릭스 유레카를 사용한 서비스 검색 기술 요구 사항 서비스 검색 소개 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 호출 스웨거 UI에서 OAuth 2.0 테스트 외부 OpenID Connect 공급자를 사용한 테스트 Auth0 사용자 계정의 설정 및 구성 Auth0를 OpenID 공급자로 사용하기 위해 필요한 변경 사항 적용 Auth0를 OpenID Connect 공급자로 사용해 테스트 스크립트 실행 클라이언트 자격 증명 승인 흐름을 사용해 접근 토큰 획득 권한 코드 승인 흐름을 사용해 접근 토큰 획득 Auth0 접근 토큰을 사용해 보안 API 호출 사용자에 대한 추가 정보 획득 요약 질문 12장. 구성 중앙화 기술 요구 사항 스프링 클라우드 컨피그 서버 소개 구성 저장소의 저장 유형 선택 클라이언트가 먼저 접속할 서버 결정 구성 보안 구성 서버 API 소개 구성 서버 설정 에지 서버에 라우팅 규칙 설정 도커 환경을 위한 구성 서버 설정 구성 서버의 클라이언트 설정 연결 정보 구성 구성 저장소 구조화 스프링 클라우드 컨피그 서버 사용 빌드 및 자동화 테스트 실행 구성 서버 API로 구성 조회 민감한 정보의 암호화 및 해독 요약 질문 13장. Resilience4j를 사용한 복원력 개선 기술 요구 사항 Resilience4j의 복원 메커니즘 소개 서킷 브레이커 소개 시간 제한기 소개 재시도 메커니즘 소개 소스 코드에 복원력 메커니즘 추가 프로그래밍 방식으로 지연 및 무작위 오류 추가 서킷 브레이커 및 시간 제한기 추가 재시도 메커니즘 추가 자동 테스트 추가 서킷 브레이커 및 재시도 메커니즘 테스트 빌드 및 자동화 테스트 실행 정상적인 요청만 유입될 때 서킷이 닫혀 있는지 확인 문제가 발생했을 때 서킷이 열리는지 확인 서킷 브레이커 다시 닫기 무작위 오류로 재시도 메커니즘 테스트 요약 질문 14장. 분산 추적 기술 요구 사항 스프링 클라우드 슬루스와 집킨을 사용한 분산 추적 소스 코드에 분산 추적 추가 빌드 파일에 의존성 추가 스프링 클라우드 슬루스 및 집킨에 대한 구성 추가 도커 컴포즈 파일에 집킨 추가 분산 추적 수행 RabbitMQ를 대기열 관리자로 사용해 시스템 환경 시작 정상적인 API 요청 전송 비정상적인 API 요청 전송 비동기 처리를 유발하는 API 요청 전송 RabbitMQ를 통해 집킨으로 전달된 추적 정보 모니터링 카프카를 메시지 브로커로 사용 요약 질문 3부. 쿠버네티스를 사용한 경량 마이크로서비스 개발 15장. 쿠버네티스 소개 기술 요구 사항 쿠버네티스 개념 소개 쿠버네티스 API 객체 소개 쿠버네티스 런타임 컴포넌트 소개 미니큐브를 사용해 쿠버네티스 클러스터 생성 미니큐브 프로필 사용 쿠버네티스의 CLI 도구인 kubectl 사용 kubectl 콘텍스트 사용 쿠버네티스 클러스터 생성 샘플 디플로이먼트 생성 로컬 쿠버네티스 클러스터 관리 쿠버네티스 클러스터 중지 및 시작 쿠버네티스 클러스터 종료 요약 질문 16장. 쿠버네티스에 마이크로서비스 배포 기술 요구 사항 넷플릭스 유레카를 쿠버네티스 서비스로 대체 쿠버네티스 객체 소개 스프링 부트의 지원 기능 사용 헬름 소개 헬름 커맨드 실행 헬름 차트의 구조 헬름 템플릿과 전달 값 common 라이브러리 차트 components 차트 environments 차트 개발 및 테스트 환경을 위한 쿠버네티스 배포 도커 이미지 빌드 헬름 차트의 의존성 해결 쿠버네티스에 배포 쿠버네티스 환경에 맞게 테스트 스크립트 수정 디플로이먼트 테스트 스테이징 및 상용 환경을 위한 쿠버네티스 배포 소스 코드 수정 쿠버네티스에 배포 정리 요약 질문 17장. 쿠버네티스로 기존 시스템 환경 대체 기술 요구 사항 스프링 클라우드 컨피그 서버 대체 스프링 클라우드 컨피그 서버를 대체하기 위한 변경 작업 스프링 클라우드 게이트웨이 대체 스프링 클라우드 게이트웨이를 대체하기 위한 변경 작업 인증서 프로비저닝 자동화 쿠버네티스 컨피그 맵, 시크릿, 인그레스, cert-manager를 사용한 테스트 인증서 갱신 스테이징 및 상용 환경을 위한 쿠버네티스 배포 쿠버네티스 없이도 마이크로서비스가 작동하는지 확인 도커 컴포즈 파일의 수정 사항 도커 컴포즈로 테스트 요약 질문 18장. 서비스 메시를 사용해 관찰 가능성 및 관리 편의성 개선 기술 요구 사항 이스티오를 이용한 서비스 메시 소개 이스티오 소개 마이크로서비스에 이스티오 프록시 삽입 이스티오의 API 객체 소개 마이크로서비스 환경 단순화 이스티오 인그레스 게이트웨이로 쿠버네티스 인그레스 컨트롤러 대체 이스티오 예거 컴포넌트로 집킨 서버 대체 쿠버네티스 클러스터에 이스티오 배포 이스티오 서비스에 대한 접근 설정 서비스 메시 생성 소스 코드 변경 커맨드를 실행해 서비스 메시 생성 서비스 메시 관찰 서비스 메시 보안 HTTPS와 인증서로 외부 엔드포인트 보호 OAuth 2.0/OIDC 접근 토큰을 사용한 외부 요청 인증 상호 인증을 사용한 내부 통신 보호 서비스 메시의 복원력 확보 결함을 삽입해 탄력성 테스트 지연을 삽입해 복원력 테스트 비가동 시간 없이 업데이트 수행 소스 코드 변경 v1 및 v2 버전의 마이크로서비스 배포 모든 트래픽이 v1 버전의 마이크로서비스로 전달되는지 확인 카나리아 테스트 실행 블루/그린 배포 실행 도커 컴포즈로 테스트 실행 요약 질문 19장. EFK 스택을 사용한 로깅 중앙화 기술 요구 사항 플루언티드 소개 플루언티드 개요 플루언티드 구성 쿠버네티스에 EFK 스택 배포 마이크로서비스 빌드 및 배포 일래스틱서치와 키바나 배포 플루언티드 배포 EFK 스택 실습 키바나 초기화 로그 레코드 분석 마이크로서비스의 로그 레코드 검색 근본 원인 분석 수행 요약 질문 20장. 마이크로서비스 모니터링 기술 요구 사항 프로메테우스와 그라파나를 사용한 성능 모니터링 애플리케이션 메트릭 수집을 위한 소스 코드 변경 마이크로서비스 빌드 및 배포 그라파나 대시보드를 사용한 마이크로서비스 모니터링 테스트용 로컬 메일 서버 설치 부하 테스트 실행 키알리 내장 대시보드 사용 기존 그라파나 대시보드 가져오기 사용자 정의 그라파나 대시보드 개발 그라파나 대시보드 내보내기 및 가져오기 그라파나 경고 설정 메일 기반 알림 채널 정의 서킷 브레이커에 경고 설정 서킷 브레이커 경고 테스트 요약 질문 21장. 맥OS용 설치 지침 기술 요구 사항 도구 설치 홈브루 설치 홈브루로 도구 설치 홈브루 없이 도구 설치 설치 후 조처 설치 확인 소스 코드 다운로드 IDE 사용 코드 구조 22장. 윈도우용 설치 지침 기술 요구 사항 도구 설치 윈도우용 도구 설치 WSL 2 리눅스 서버에 도구 설치 소스 코드 다운로드 코드 구조 23장. 자바 마이크로서비스의 네이티브 컴파일 기술 요구 사항 자바 소스 코드의 네이티브 컴파일이 필요한 이유 그랄VM 프로젝트 소개 스프링 네이티브 프로젝트 소개 소스 코드를 네이티브 이미지로 컴파일 소스 코드 변경 추적 에이전트 설치 추적 에이전트 실행 네이티브 이미지 생성 도커 컴포즈로 테스트 쿠버네티스로 테스트 요약 질문 |
|
이 책에서 다루는 내용
◆ 스프링 부트를 사용한 리액티브 마이크로서비스 구축 ◆ 스프링 클라우드를 사용해 복원력 및 확장성 있는 마이크로서비스 개발 ◆ 스프링 시큐리티 및 OAuth 2.1/OIDC를 사용해 공개 API 보호 ◆ 도커를 사용해 개발, 테스트 환경과 상용 환경 사이의 격차 해소 ◆ 쿠버네티스를 사용한 마이크로서비스 배포 및 관리 ◆ 이스티오를 사용한 보안성, 관찰 가능성, 트래픽 관리 편의성 향상 ◆ JUnit, Testcontainers, 그래들(Gradle), 배시(Bash)를 사용해 자동화된 마이크로서비스 테스트 작성 및 실행 |