• 메인으로 이동
    AD광고
    Best Seller소년 김구의 가슴 뜨거운 역사설민석의 한국사 대모험 38
    AD광고
    New행복을 선택하는 삶의 태도불행에 몰두하지 않는다
    • 베스트
    • 소득공제
    • 무료배송

    클라우드 네이티브 스프링 인 액션 - 스프링 부트와 도커 쿠버네티스로 애플리케이션 구축하기(제이펍의 클라우드 시리즈27)

    • 토마스 비탈레 저
    • 차건회 역
    • 제이펍
    • 2024년 03월 29일
    10%40,50045,000
    적립금
    2,250원 (5% 적립)
    추가 적립
    추가 적립 안내
    • 5만원 이상 결제 시 (*배송비 제외)

      정가제FREE(상품/사은품) 금액이 2,000원 이상이면 2,000원 추가적립

    • 10만원 이상 결제 시 (*배송비 제외)

      정가제FREE(상품/사은품) 금액이 2,000원 이상이면 2,000원 추가적립

      정가제FREE(상품/사은품) 금액이 5,000원 이상이면 5,000원 추가적립

    결제혜택
    무이자 할부
    결제사 혜택
    쿠폰
    회원 가입 즉시 지급되는 적립금 과 등급별 다양한 회원 혜택 보기
    배송비
    무료  (해외배송의 경우 지역에 따라 상이)

    배송안내

    서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
    지금 택배 주문하면 9/17(목) 출고 가능
    택배보다 빠른, 나우드림
    40,500

    [네이버페이]

    상품 규격 정보
    상품상세정보
    ISBN ISBN-13 : 9791192987675
    쪽수768쪽
    크기기타 규격
    제품구성단행본
    이 책이 속한 분야
    • 컴퓨터/IT > 시스템공학
    관련 이벤트
    • 사은품

    신규가입시 최대 10,800원

    2025.12.31 ~ 2026.12.31

    • 사은품

    아이세움 슈뻘맨 시리즈 신간 출간 기념 이벤트🥽

    2025.06.30 ~ 2026.12.31

    • 사은품

    2026 추석 프로모션 - 영롱한 보름달처럼 풍성한 추석 혜택

    2026.09.09 ~ 2026.09.27

    • 사은품

    『유치원 Wars 17』 출간 기념 포토카드 증정!

    2026.09.01 ~ 2026.09.28

    • 사은품

    9월 특별선물 《영풍문고 리유저블백》

    2026.09.01 ~ 2026.09.30

    • 사은품

    이달의 리뷰왕

    2026.01.01 ~ 2026.12.31

    • 사은품

    신규가입시 최대 10,800원

    2025.12.31 ~ 2026.12.31

    • 사은품

    아이세움 슈뻘맨 시리즈 신간 출간 기념 이벤트🥽

    2025.06.30 ~ 2026.12.31

    • 사은품

    2026 추석 프로모션 - 영롱한 보름달처럼 풍성한 추석 혜택

    2026.09.09 ~ 2026.09.27

    • 사은품

    『유치원 Wars 17』 출간 기념 포토카드 증정!

    2026.09.01 ~ 2026.09.28

    책 소개

    클라우드 환경에 스프링 애플리케이션을 구축하는 효과적인 방법

    클라우드 기술이 발달하면서 많은 애플리케이션이 클라우드에서 서비스되고 있다. 이 책에서는 가상의 온라인 서점 시스템을 개발하며 클라우드 환경에 애플리케이션을 어떻게 구축하는지 상세히 설명한다. 스프링으로 클라우드 네이티브 앱을 빌드 및 테스트하고, 도커로 컨테이너화하며, 쿠버네티스로 퍼블릭 클라우드에 배포하는 방법을 배운다. 클라우드 네이티브 환경과 개발 원칙에 대한 이해부터 시작하여 모범 사례와 디자인 패턴을 학습하고, 잘 알려지지 않은 팁과 요령을 배워 문제없이 클라우드 네이티브 개발을 진행하도록 돕는다. 나아가 보안, 복원력, 확장성 처리에 대해 이해하고 지속적 배포와 깃옵스까지 실습해본다. 점점 더 복잡해지는 클라우드 환경을 탐색하는 데 완벽한 입문서가 될 것이다.

    목차

    [목 차]

    옮긴이 머리말 xv
    베타리더 후기 xviii
    추천 서문(조시 롱) xx
    머리말 xxii
    감사의 글 xxiv
    이 책에 대하여 xxvi
    표지에 대하여 xxxii

    PART I 클라우드 네이티브 개요
    CHAPTER 1 클라우드 네이티브 소개 3
    1.1 클라우드 네이티브란 무엇인가? 5
    __1.1.1 클라우드 네이티브에서의 세 가지 P 5
    1.2 클라우드와 클라우드 컴퓨팅 모델 6
    __1.2.1 서비스형 인프라스트럭처 9 / 1.2.2 서비스형 컨테이너 9 / 1.2.3 서비스형 플랫폼 10 / 1.2.4 서비스형 함수 10 / 1.2.5 서비스형 소프트웨어 11
    1.3 클라우드 네이티브 애플리케이션의 특성 11
    __1.3.1 확장성 12 / 1.3.2 느슨한 결합 13 / 1.3.3 복원력 15 / 1.3.4 관측 가능성 16 / 1.3.5 관리 용이성 17
    1.4 클라우드 네이티브를 지원하는 문화 및 관행 18
    __1.4.1 자동화 19 / 1.4.2 지속적 전달 21 / 1.4.3 데브옵스 22
    1.5 클라우드가 최선의 선택인가? 24
    __1.5.1 속도 25 / 1.5.2 복원력 26 / 1.5.3 확장성 27 / 1.5.4 비용 27
    1.6 클라우드 네이티브 구성 28
    __1.6.1 컨테이너 29 / 1.6.2 오케스트레이션 32 / 1.6.3 서버리스 33
    1.7 클라우드 네이티브 애플리케이션을 위한 아키텍처 35
    __1.7.1 다중 계층에서 마이크로서비스 아키텍처까지 그리고 그 이후 36 / 1.7.2 클라우드 네이티브 애플리케이션을 위한 서비스 기반 아키텍처 38
    요약 40

    CHAPTER 2 클라우드 네이티브 패턴 및 기술 42
    2.1 클라우드 네이티브 개발 원칙: 12요소와 확장 43
    __2.1.1 하나의 코드베이스, 하나의 애플리케이션 44 / 2.1.2 API 우선 44 / 2.1.3 의존성 관리 44 / 2.1.4 설계, 빌드, 릴리스, 실행 45 / 2.1.5 설정, 크리덴셜 및 코드 45 / 2.1.6 로그 46 / 2.1.7 일회성 46 / 2.1.8 지원 서비스 47 / 2.1.9 환경 동일성 47 / 2.1.10 관리 프로세스 47 / 2.1.11 포트 바인딩 48 / 2.1.12 상태를 갖지 않는 프로세스 48 / 2.1.13 동시성 49 / 2.1.14 원격 측정 49 / 2.1.15 인증 및 승인 49
    2.2 스프링을 사용한 클라우드 네이티브 애플리케이션 구축 50
    __2.2.1 스프링 개요 50 / 2.2.2 스프링 부트 애플리케이션 구축 51
    2.3 도커를 통한 애플리케이션 컨테이너화 62
    __2.3.1 도커 소개: 이미지 및 컨테이너 63 / 2.3.2 컨테이너를 통한 스프링 애플리케이션의 실행 66
    2.4 쿠버네티스로 컨테이너 관리 68
    __2.4.1 쿠버네티스 소개: 배포, 파드, 서비스 69 / 2.4.2 쿠버네티스에서 스프링 애플리케이션 실행 71
    2.5 폴라 북숍: 클라우드 네이티브 애플리케이션 75
    __2.5.1 시스템 요구 사항 이해 75 / 2.5.2 프로젝트에서 사용되는 패턴과 기술 78
    요약 82

    PART II 클라우드 네이티브 개발
    CHAPTER 3 클라우드 네이티브 개발 시작 87
    3.1 클라우드 네이티브 프로젝트 부트스트래핑 88
    __3.1.1 하나의 코드베이스, 하나의 애플리케이션 88 / 3.1.2 그래들과 메이븐의 의존성 관리 90
    3.2 임베디드 서버로 작업 92
    __3.2.1 실행 가능한 JAR 및 임베디드 서버 93 / 3.2.2 요청당 스레드 모델 이해 95 / 3.2.3 내장 톰캣 설정 97
    3.3 스프링 MVC를 이용한 RESTful 애플리케이션 구축 100
    __3.3.1 REST API를 먼저, 비즈니스 로직은 그다음 100 / 3.3.2 스프링 MVC를 이용한 REST API 구현 106 / 3.3.3 데이터 유효성 검사 및 오류 처리 109 / 3.3.4 미래 요구 사항을 위해 진화하는 API 114
    3.4 스프링 RESTful 애플리케이션 테스트 115
    __3.4.1 JUnit 5를 이용한 단위 테스트 117 / 3.4.2 @SpringBootTest를 통한 통합 테스트 119 / 3.4.3 @WebMvcTest를 사용한 REST 컨트롤러의 테스트 122 / 3.4.4 @JsonTest를 사용한 JSON 직렬화 테스트 124
    3.5 배포 파이프라인: 빌드 및 테스트 126
    __3.5.1 배포 파이프라인의 커밋 단계 이해 127 / 3.5.2 깃허브 액션을 이용한 커밋 단계 구현 129
    요약 133

    CHAPTER 4 외부화 설정 관리 136
    4.1 스프링 설정 : 속성과 프로파일 139
    __4.1.1 속성: 설정을 위한 키-값 쌍 140 / 4.1.2 프로파일: 기능 플래그와 설정 그룹 146
    4.2 외부화된 구성: 하나의 빌드, 여러 설정 150
    __4.2.1 커맨드라인 인수를 통한 애플리케이션 설정 152 / 4.2.2 JVM 시스템 속성을 통해 애플리케이션 구성 152 / 4.2.3 환경 변수를 통해 애플리케이션 구성 153
    4.3 스프링 클라우드 컨피그 서버로 중앙식 설정 관리하기 155
    __4.3.1 깃을 통한 설정 데이터 저장 158 / 4.3.2 설정 서버 구성 160 / 4.3.3 복원력 높은 설정 서버 생성 164 / 4.3.4 설정 서버 REST API 이해 166
    4.4 스프링 클라우드 컨피그 클라이언트로 설정 서버 사용 168
    __4.4.1 설정 클라이언트 구축 168 / 4.4.2 내결함성이 높은 설정 클라이언트의 구축 171 / 4.4.3 런타임 시 설정 새로고침 173
    요약 176

    CHAPTER 5 클라우드에서 데이터 저장과 관리 178
    5.1 클라우드 네이티브 시스템을 위한 데이터베이스 179
    __5.1.1 클라우드에서의 데이터 서비스 180 / 5.1.2 PostgreSQL을 컨테이너로 실행 183
    5.2 스프링 데이터에 대한 데이터 지속성 JDBC 185
    __5.2.1 JDBC로 데이터베이스에 연결 187 / 5.2.1 스프링 데이터를 통한 지속성 엔티티 정의 190 / 5.2.3 JDBC 감사 활성화와 설정 195 / 5.2.4 스프링 데이터의 데이터 리포지터리 198
    5.3 스프링 및 테스트컨테이너로 데이터 지속성 테스트하기 202
    __5.3.1 PostgreSQL을 위한 테스트컨테이너 설정 203 / 5.3.2 @DataJdbcTest 및 테스트컨테이너를 통한 데이터 지속성 테스트 205 / 5.3.3 @SpringBootTest 및 테스트컨테이너를 이용한 통합 테스트 206
    5.4 플라이웨이를 통한 프로덕션 환경에서의 데이터베이스 관리 207
    __5.4.1 플라이웨이 이해: 데이터베이스 버전 관리 208 / 5.4.2 플라이웨이를 이용한 데이터베이스 스키마 초기화 210 / 5.4.3 플라이웨이를 이용한 데이터베이스 진화 211
    요약 213

    CHAPTER 6 스프링 부트 컨테이너화 215
    6.1 도커에서 컨테이너 이미지로 작업하기 216
    __6.1.1 컨테이너 이미지 이해 217 / 6.1.2 도커파일을 통한 이미지 생성 218 / 6.1.3 깃허브 컨테이너 저장소로 이미지 저장 222
    6.2 스프링 부트 애플리케이션을 컨테이너 이미지로 패키지 226
    __6.2.1 스프링 부트의 컨테이너화를 위한 준비 226 / 6.2.2 도커파일로 스프링 부트 컨테이너화 229 / 6.2.3 프로덕션을 위한 컨테이너 이미지 빌드 231 / 6.2.4 클라우드 네이티브 빌드팩을 이용한 스프링 부트 컨테이너화 237
    6.3 도커 컴포즈를 통한 스프링 부트 컨테이너의 관리 242
    __6.3.1 도커 컴포즈를 통한 컨테이너 라이프사이클 관리 243 / 6.3.2 스프링 부트 컨테이너 디버깅 244
    6.4 배포 파이프라인: 패키지 및 등록 247
    __6.4.1 커밋 단계에서 릴리스 후보 빌드 248 / 6.4.2 깃허브 액션을 통한 컨테이너 이미지 등록 249
    요약 254

    CHAPTER 7 스프링 부트를 위한 쿠버네티스 기초 256
    7.1 도커에서 쿠버네티스로의 이동 257
    __7.1.1 로컬 쿠버네티스 클러스터 259 / 7.1.2 로컬 클러스터에서 데이터 서비스 관리 261
    7.2 스프링 부트를 위한 쿠버네티스 배포 263
    __7.2.1 컨테이너에서 파드로 263 / 7.2.2 배포를 통한 파드 제어 264 / 7.2.3 스프링 부트 애플리케이션을 위한 배포 객체 생성 265
    7.3 서비스 검색 및 부하 분산 271
    __7.3.1 서비스 검색 및 부하 분산의 이해 271 / 7.3.2 클라이언트 측 서비스 검색 및 부하 분산 272 / 7.3.3 서버 측 서비스 검색 및 부하 분산 274 / 7.3.4 쿠버네티스 서비스를 통한 스프링 부트 애플리케이션 노출 276
    7.4 확장성과 일회성 279
    __7.4.1 일회성을 위한 조건: 빠른 시작 280 / 7.4.2 일회성을 위한 조건: 우아한 종료 280 / 7.4.3 스프링 부트 애플리케이션 확장 283
    7.5 틸트를 사용한 로컬 쿠버네티스 개발 286
    __7.5.1 틸트를 사용한 내부 개발 루프 286 / 7.5.2 옥탄트를 사용한 쿠버네티스 워크로드 시각화 289
    7.6 배포 파이프라인: 쿠버네티스 매니페스트 유효성 검사 292
    __7.6.1 커밋 단계에서 쿠버네티스 매니페스트 검증 292 / 7.6.2 깃허브 액션을 통한 쿠버네티스 매니페스트 유효성 검사 자동화 294
    요약 295

    PART III 클라우드 네이티브 분산 시스템
    CHAPTER 8 리액티브 스프링: 복원력과 확장성 299
    8.1 리액터와 스프링의 비동기 및 비차단 아키텍처 301
    __8.1.1 요청당 스레드에서 이벤트 루프로 302 / 8.1.2 프로젝트 리액터: 모노와 플럭스를 갖는 리액티브 스트림 304 / 8.1.3 스프링 리액티브 스택 이해 306
    8.2 스프링 웹플럭스와 스프링 데이터 R2DBC를 갖는 리액티브 서버 307
    __8.2.1 스프링 부트를 통한 리액티브 애플리케이션 부트스트래핑 309 / 8.2.2 스프링 데이터 R2DBC를 사용한 리액티브 데이터 지속성 311 / 8.2.3 리액티브 스트림을 이용한 비즈니스 로직 구현 318 / 8.2.4 스프링 웹플럭스로 REST API 노출 321
    8.3 스프링 웹 클라이언트를 사용한 리액티브 클라이언트 323
    __8.3.1 스프링에서 서비스 간 통신 324 / 8.3.2 데이터 교환 방법에 대한 이해 326 / 8.3.3 웹 클라이언트를 통한 REST 클라이언트 구현 328
    8.4 리액티브 스프링을 통한 복원력 높은 애플리케이션 332
    __8.4.1 타임아웃 332 / 8.4.2 재시도 336 / 8.4.3 폴백 및 오류 처리 339
    8.5 스프링, 리액터, 테스트컨테이너를 이용한 리액티브 애플리케이션의 테스트 341
    __8.5.1 모의 웹 서버로 REST 클라이언트 테스트 341 / 8.5.2 @DataR2dbcTest 및 테스트컨테이너를 이용한 데이터 지속성 테스트 344 / 8.5.3 @WebFluxTest를 이용한 REST 컨트롤러 테스트 346
    요약 348

    CHAPTER 9 API 게이트웨이와 서킷 브레이커 350
    9.1 에지 서버와 스프링 클라우드 게이트웨이 352
    __9.1.1 스프링 클라우드 게이트웨이를 이용한 에지 서버 부트스트래핑 354 / 9.1.2 경로와 술어의 정의 356 / 9.1.3 필터를 통한 요청 및 응답 처리 360
    9.2 스프링 클라우드 서킷 브레이커와 Resilience4J로 내결함성 개선하기 362
    __9.2.1 스프링 클라우드 서킷 브레이커를 통한 서킷 브레이커 소개 364 / 9.2.2 Resilience4J 서킷 브레이커 설정 365 / 9.2.3 스프링 웹플럭스를 이용한 폴백 REST API 정의 366 / 9.2.4 서킷 브레이커, 재시도 및 시간 제한의 결합 367
    9.3 스프링 클라우드 게이트웨이와 레디스를 통한 요청 사용률 제한 371
    __9.3.1 레디스 컨테이너 실행 372 / 9.3.2 스프링과 레디스의 통합 373 / 9.3.3 요청 사용률 제한 설정 374
    9.4 레디스를 통한 분산 세션 관리 377
    __9.4.1 스프링 세션 데이터 레디스를 통한 세션 처리 378
    9.5 쿠버네티스 인그레스를 통한 외부 액세스 관리 382
    __9.5.1 인그레스 API와 인그레스 컨트롤러 이해 382 / 9.5.2 인그레스 객체 사용 385
    요약 388

    CHAPTER 10 이벤트 중심 애플리케이션과 함수 390
    10.1 이벤트 중심 아키텍처 392
    __10.1.1 이벤트 중심 모델 이해 392 / 10.1.2 발행자/구독자 모델의 사용 393
    10.2 메시지 브로커와 래빗MQ 395
    __10.2.1 메시징 시스템의 AMQP 이해 396 / 10.2.2 발행/구독 통신을 위한 래빗MQ 사용 397
    10.3 스프링 클라우드 함수를 통한 함수 399
    __10.3.1 스프링 클라우드 함수의 함수적 패러다임 사용 400 / 10.3.2 함수의 합성 및 통합: REST, 서버리스, 데이터 스트림 406 / 10.3.3 @FunctionalSpringBootTest를 통한 통합 테스트 408
    10.4 스프링 클라우드 스트림을 통한 메시지 처리 410
    __10.4.1 래빗MQ와의 통합 설정 410 / 10.4.2 함수의 메시지 채널 바인딩 412 / 10.4.3 테스트 바인더를 통한 통합 테스트 419 / 10.4.4 실패에 대한 메시지 복원력 422
    10.5 스프링 클라우드 스트림을 통한 메시지 생성 및 소비 423
    __10.5.1 이벤트 소비자 구현 및 멱등성 문제 423 / 10.5.2 이벤트 생성자 구현과 원자성 문제 427
    요약 433

    CHAPTER 11 보안: 인증과 SPA 435
    11.1 스프링 보안 기초 436
    11.2 키클록을 통한 사용자 계정 관리 441
    __11.2.1 보안 영역 정의 443 / 11.2.2 사용자 및 역할 관리 444
    11.3 오픈ID 커넥트, JWT 및 키클록을 통한 인증 445
    __11.3.1 오픈ID 커넥트를 통한 사용자 인증 446 / 11.3.2 JWT를 통한 사용자 정보 교환 450 / 11.3.3 키클록에서 애플리케이션 등록 452
    11.4 스프링 보안 및 오픈ID 커넥트로 사용자 인증 455
    __11.4.1 새 의존성 추가 456 / 11.4.2 스프링 보안과 키클록의 통합 설정 457 / 11.4.3 기초적인 스프링 보안 설정 458 / 11.4.4 인증된 사용자 콘텍스트 검사 460 / 11.4.5 스프링 보안 및 키클록에서 사용자 로그아웃 설정 464
    11.5 스프링 보안과 SPA 통합 468
    __11.5.1 앵귤러 애플리케이션 실행 469 / 11.5.2 인증 흐름 제어 471 / 11.5.3 사이트 간 요청 위조 방지 474
    11.6 스프링 보안 및 오픈ID 커넥트 테스트 477
    __11.6.1 OIDC 인증 테스트 477 / 11.6.2 CSRF 테스트 479
    요약 482

    CHAPTER 12 보안: 권한과 감사 484
    12.1 스프링 클라우드 게이트웨이와 OAuth2를 통한 권한과 역할 485
    __12.1.1 스프링 클라우드 게이트웨이에서 다른 서비스로의 토큰 전달 488 / 12.1.2 토큰 사용자 지정 및 사용자 역할 전파 491
    12.2 스프링 보안 및 OAuth2를 통한 API 보호(명령형) 497
    __12.2.1 스프링 부트 OAuth2 리소스 서버 보호 497 / 12.2.2 스프링 보안 및 JWT를 통한 역할 기반 접근 제어 501 / 12.2.3 스프링 보안 및 테스트컨테이너를 이용한 OAuth2 테스트 504
    12.3 스프링 보안과 OAuth2를 이용한 API 보호(반응형) 511
    __12.3.1 스프링 부트 OAuth2 리소스 서버 보호 511 / 12.3.2 스프링 보안 및 테스트컨테이너로 OAuth2 테스트 514
    12.4 스프링 보안 및 스프링 데이터로 데이터 보호 및 감사 516
    __12.4.1 스프링 보안 및 스프링 데이터 JDBC를 사용한 데이터 감사 517 / 12.4.2 스프링 데이터와 @WithMockUser를 통한 데이터 감사 테스트 520 / 12.4.3 스프링 보안 및 스프링 데이터 R2DBC로 사용자 데이터 보호 522 / 12.4.4 @WithMockUser 및 스프링 데이터 R2DBC를 통한 데이터 감사 및 보호 테스트 526
    요약 528

    PART IV 프로덕션에서의 클라우드 네이티브CHAPTER 13 관측 가능성 및 모니터링 533
    13.1 스프링 부트, 로키 및 플루언트 비트를 사용한 로깅 534
    __13.1.1 스프링 부트를 사용한 로깅 535 / 13.1.2 로키, 플루언트 비트, 그라파나로 로그 관리하기 538
    13.2 스프링 부트 액추에이터와 쿠버네티스를 사용한 상태 프로브 544
    __13.2.1 액추에이터를 통한 스프링 부트 애플리케이션 상태 프로브 정의 545 / 13.2.2 스프링 부트 및 쿠버네티스에서 상태 프로브 설정 548
    13.3 스프링 부트 액추에이터, 프로메테우스, 그라파나를 통한 메트릭 및 모니터링 553
    __13.3.1 스프링 부트 액추에이터 및 마이크로미터로 메트릭 설정 554 / 13.3.2 프로메테우스와 그라파나를 통한 메트릭 모니터링 557 / 13.3.3 쿠버네티스에서 프로메테우스 메트릭 설정 562
    13.4 오픈텔레메트리 및 템포를 사용한 분산 추적 563
    __13.4.1 템포와 그라파나를 통한 트레이스 관리 566 / 13.4.2 오픈텔레메트리를 사용해 스프링 부트에서 추적 구성하기 567
    13.5 스프링 부트 액추에이터를 통한 애플리케이션 관리 및 모니터링 572
    __13.5.1 스프링 부트에서 플라이웨이 마이그레이션 모니터링 573 / 13.5.2 애플리케이션 정보 노출 574 / 13.5.3 힙 덤프 생성 및 분석 577
    요약 579

    CHAPTER 14 설정과 시크릿 관리 581
    14.1 쿠버네티스에서 애플리케이션 설정하기 582
    __14.1.1 스프링 시큐리티를 통한 설정 서버 보안 583 / 14.1.2 스프링 클라우드 버스를 통한 런타임 설정 새로고침 584 / 14.1.3 스프링 클라우드 컨피그를 통한 시크릿 관리 586 / 14.1.4 스프링 클라우드 컨피그 비활성화 587
    14.2 쿠버네티스에서 컨피그맵과 시크릿 사용 588
    __14.2.1 컨피그맵을 통한 스프링 부트 설정 589 / 14.2.2 시크릿으로 민감한 정보를 저장하거나 저장하지 않기 594 / 14.2.3 스프링 클라우드 쿠버네티스를 통한 런타임 설정 갱신 597
    14.3 커스터마이즈를 통한 설정 관리 600
    __14.3.1 커스터마이즈를 통한 스프링 부트 애플리케이션 관리 및 설정 601 / 14.3.2 커스터마이즈를 통한 여러 환경에 대한 쿠버네티스 설정 관리 606 / 14.3.3 스테이징을 위한 설정 오버레이 정의 609 / 14.3.4 환경 변수 사용자 지정 변경 610 / 14.3.5 컨피그맵 사용자 정의 변경 612 / 14.3.6 이미지 이름 및 버전의 사용자 지정 변경 613 / 14.3.7 복제본 수 사용자 지정 변경 614
    요약 618

    CHAPTER 15 지속적 전달과 깃옵스 620
    15.1 배포 파이프라인: 수락 단계 621
    __15.1.1 지속적 배포를 위한 릴리스 후보 버전 지정 621 / 15.1.2 배포 파이프라인 수락 단계의 이해 626 / 15.1.3 깃허브 액션으로 수락 단계 구현 628
    15.2 프로덕션을 위한 스프링 부트 설정 631
    __15.2.1 프로덕션을 위한 설정 오버레이 정의 632 / 15.2.2 스프링 부트 컨테이너 CPU 및 메모리 설정 638 / 15.2.3 프로덕션 환경에 스프링 부트 배포 644
    15.3 배포 파이프라인: 프로덕션 단계 646
    __15.3.1 배포 파이프라인의 프로덕션 단계 이해 647 / 15.3.2 깃허브 액션을 통한 프로덕션 단계 구현 647
    15.4 깃옵스를 사용한 지속적 배포 654
    __15.4.1 아르고 CD로 깃옵스 구현 656 / 15.4.2 종합하기 660
    요약 662

    CHAPTER 16 서버리스, 그랄VM 및 케이네이티브 664
    16.1 스프링 네이티브 및 그랄VM을 사용한 네이티브 이미지 665
    __16.1.1 그랄VM과 네이티브 이미지 이해하기 666 / 16.1.2 스프링 네이티브를 통한 그랄VM의 스프링 부트 지원 667 / 16.1.3 스프링 부트 애플리케이션의 네이티브 이미지 컴파일 674
    16.2 스프링 클라우드 함수를 사용한 서버리스 애플리케이션 678
    __16.2.1 스프링 클라우드 함수를 통한 서버리스 애플리케이션 구축 679 / 16.2.2 배포 파이프라인: 빌드 및 등록 685 / 16.2.3 서버리스 애플리케이션의 클라우드 배포 687
    16.3 케이네이티브를 통한 서버리스 애플리케이션 배포 688
    __16.3.1 로컬 케이네이티브 플랫폼 구축 689 / 16.3.2 케이네이티브 CLI로 애플리케이션 배포 690 / 16.3.3 케이네이티브 매니페스트를 통한 애플리케이션 배포 692
    요약 696

    APPENDIX 부록
    APPENDIX A 개발 환경 설정 701
    A.1 자바 701
    A.2 도커 703
    A.3 쿠버네티스 705
    A.4 다른 툴 707

    APPENDIX B 디지털오션 프로덕션 환경을 위한 쿠버네티스 710
    B.1 디지털오션에서 쿠버네티스 클러스터 실행 711
    B.2 디지털오션에서 PostgresQL 데이터베이스 실행 715
    B.3 디지털오션에서 레디스 실행 717
    B.4 쿠버네티스 오퍼레이터를 통한 래빗MQ 실행 719
    B.5 헬름 차트를 사용한 키클록 실행 720
    B.6 폴라 UI 실행 723
    B.7 모든 클라우드 리소스 삭제 723

    찾아보기 725

    [본 문]

    기술을 다루는 사람들은 최신 유행의 최첨단 기술에 쉽게 사로잡힌다. 특정 기술이나 접근 방식이 문제를 해결할 수 있는지 파악하는 것이 핵심이다. 아이디어를 소프트웨어로 바꾸고 이를 고객에게 전달하고 가치를 제공해야 하며, 이것이 우리의 최종 목표다. (중략) 그렇다면 언제 클라우드로 옮겨가는 것이 좋을까? 왜 기업들은 클라우드 네이티브 방식을 채택하는 것일까? 그림 1.8에서 설명한 클라우드 네이티브로 가기 위한 주요 목표는 속도, 확장성, 복원력 및 비용이다. 비즈니스 비전에 이러한 목표가 포함되어 있고 클라우드 기술로 해결하려는 문제점을 가지고 있다면 클라우드로 이동하고 클라우드 네이티브 접근 방식을 채택하는 것이 좋다. (25쪽)

    15요소는 클라우드 네이티브 애플리케이션을 개발하기 위한 좋은 출발점이기 때문에 이 책 전반에 걸쳐 가이드라인으로 삼으려고 한다. 처음부터 새로운 애플리케이션을 만들거나 기존 시스템을 클라우드로 옮기는 등 어느 경우라도 이 원칙이 도움이 될 것이다. 이 책에서는 관련 있을 때마다 이 원칙에 대해 더 자세히 설명하고 스프링 애플리케이션에 적용하는 방법을 설명할 것이다. (44쪽)

    전통적인 접근법과 클라우드 네이티브 접근법의 차이점 중 하나는 애플리케이션을 패키징하고 배포하는 방법이다. 전통적으로는 애플리케이션 서버나 독립형 웹 서버가 사용됐다. 이런 유형의 서버는 프로덕션 환경에서 설정과 유지 비용이 높았기 때문에 효율성을 위해 여러 개의 애플리케이션을 EAR 또는 WAR로 패키징해서 배포했다. (중략) 클라우드 네이티브에서는 상황이 다르다. 클라우드 네이티브 애플리케이션은 독립적이어야 하고 실행 환경이 제공하는 서버에 의존하지 않는다. 대신 필요한 서버 기능은 애플리케이션 자체에 포함되어 조달된다. (93쪽)

    리액티브 패러다임을 사용해 클라우드에서 탄력적이고 확장 가능하며 효율적인 애플리케이션을 구축하는 데 중점을 둔다. 먼저 이벤트 루프 모델과 리액티브 스트림(Reactive Streams), 프로젝트 리액터(Project Reactor), 스프링의 리액티브 스택의 주요 기능을 소개한다. 그런 다음 스프링 웹플럭스(Spring WebFlux)와 스프링 데이터 R2DBC(Spring Data R2DBC)를 사용해 리액티브 주문 서비스 애플리케이션을 만들어볼 것이다. (301쪽)

    클라우드 네이티브 애플리케이션에서 액세스 제어 시스템을 구현하는 방법을 설명한다. 폴라 북숍과 같은 시스템에 인증을 추가하고 키클록과 같은 전용ID 및 액세스 관리 설루션을 사용하는 방법을 살펴본다. 또한 스프링 보안을 활용해 애플리케이션을 보호하고 JWT, OAuth2, 오픈ID 커넥트와 같은 표준을 사용하는 방법을 설명할 것이다. 이 과정에서 앵귤러(Angular) 프런트엔드를 시스템에 추가하고 단일 페이지 애플리케이션(SPA)에 대한 보안 모범 사례를 배운다. (436쪽)

    애플리케이션을 프로덕션에 배포할 때 고려해야 할 사항을 마지막으로 살펴본다. 먼저 릴리스 후보에 대한 버전 관리 전략과 배포 파이프라인의 승인 단계를 설계하는 방법에 대해 논의한다. 그런 다음 프로덕션을 위해 스프링 부트 애플리케이션을 설정하고 퍼블릭 클라우드의 쿠버네티스 클러스터에 배포하는 방법을 살펴본다. 그리고나서, 배포 파이프라인의 마지막 단계인 프로덕션 단계를 구현하는 방법을 배운다. 마지막으로 아르고 CD(Argo CD)를 사용해 깃옵스 원칙에 따라 지속적 배포를 구현한다. (620쪽)

    출판사 서평

    온라인 서점 시스템을 만들며 배우는 클라우드 네이티브 개발

    클라우드 네이티브 방식을 이용하면 소프트웨어를 신속하게 제공하고, 필요에 따라 동적으로 확장하며, 비용을 최적화하면서 항상 사용 가능하게 유지할 수 있다. 개발자가 최상의 결과를 얻기 위해 고려해야 할 ‘15요소 방법론’을 기초로 클라우드 네이티브 애플리케이션을 개발하고 운영하는 거의 모든 방법을 이 책에 담았다. 스프링 부트와 쿠버네티스를 사용해 클라우드 네이티브 애플리케이션을 설계부터 빌드, 배포까지 모두 배울 수 있는 유익한 도서다.

    ‘폴라 북숍’이라는 가상의 온라인 서점 시스템을 개발하면서 스프링 및 자바 생태계에서 제공하는 라이브러리를 사용해 클라우드 네이티브 애플리케이션을 빌드하고 테스트하는 방법을 설명한다. 아이디어를 떠올리는 것을 시작으로 모든 과정을 단계별로 안내하고 있어 클라우드 네이티브 개발이 어떤 사이클로 이루어지는지 살펴볼 수 있다. 특히 REST API, 데이터 지속성, 리액티브 프로그래밍, API 게이트웨이, 함수, 이벤트 중심 아키텍처, 복원력, 보안, 테스트, 통합 가시성 등의 주제를 깊이 다루며 독자로 하여금 처음부터 끝까지 실습하도록 구성한 것이 장점이다. 끝으로 처음부터 만든 클라우드용 애플리케이션을 컨테이너 이미지로 패키징하고 쿠버네티스와 같은 클라우드 환경에 배포하는 방법까지 설명하며 대단원의 막을 내린다.

    저자는 이 책을 구성하고 집필할 때 “예제는 일상 업무와 관련 있고 즉시 적용할 수 있는 실제적인 것이어야 한다”는 점을 원칙으로 삼았다고 밝혔다. 실전과 같은 예제를 차근차근 따라 하면서 현장에서 바로 쓸 수 있는 기술과 아이디어를 얻길 바란다.


    주요 내용
    ● 스프링으로 클라우드 네이티브 패턴 구현
    ● 클라우드 네이티브 모범 사례 및 디자인 패턴
    ● 온라인 서점 시스템 개발 실습
    ● 필수 및 반응형 애플리케이션 빌드 및 테스트
    ● 보안, 복원력 및 확장성 처리
    ● 쿠버네티스에서 애플리케이션 구성, 배포 및 통합 가시성
    ● 지속적 배포 및 깃옵스 도입

    저자 소개
    저자 : 토마스 비탈레
      토마스 비탈레
      복원력 있고 안전한 클라우드 네이티브 엔터프라이즈 애플리케이션 구축을 전문으로 하는 소프트웨어 엔지니어이자 아키텍트다. 덴마크의 Systematic에서 소프트웨어 설루션의 설계 및 개발을 담당하고 있으며, 개발자 경험과 보안에 중점을 두고 클라우드 네이티브 환경을 위한 플랫폼 및 애플리케이션 현대화 작업을 해왔다. 주요 관심사 및 전문 분야는 자바, 스프링 부트, 쿠버네티스, 케이네이티브 및 클라우드 네이티브 기술 전반이다. 지속적 전달 관행을 지지하며 함께 협력하는 협업 문화를 통해 사용자, 고객, 비즈니스에 가치를 제공할 수 있다고 믿고 있으며, 스프링 보안 및 스프링 클라우드와 같은 오픈소스 프로젝트에 기여하고 커뮤니티에서 지식을 나누는 것도 좋아한다.

      도서리뷰 (1)
      이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.
      회원 총 평점
      5 / 5
      전체 리뷰수 1
      5점
      100%
      4점
      0%
      3점
      0%
      2점
      0%
      1점
      0%
      사용자 평점
      5
      • che***
      • 2024.04.07

      자바 개발자로서, 스프링과 함께 개발을 진행하고 있지만 클라우드나 배포, 데브옵스에 대한 흥미는 있지만 지식은 전혀 없는 상태에서 책을 접하게 되었습니다. 개발자의 관점에서 부터 시작하여, 클라우드의 전반적인 이해와 함께 스프링 프로젝트에서 부터 시작합니다. 도커와 쿠버네티스의 이해, 사용법과 함께 왜 사용하는지와 사용 사례들이 적혀 있습니다. 또한 개인적으로 가장 관심이 있었던 테스트 케이스와 설정 방법이 상세히 나와 있습니다. 리액티브 스프링을 통한 복원력과 확장성도 고려되어있습니다. 최신 트렌드인 SSO(keycloak), Redis,OAuth2, 스프링 클라우드 게이트웨이와 토큰에 대한 예제들도 들어있습니다. 로깅과 프로메테우스 설정, 모니터링 그리고 보안을 위해 스프링 시큐리티와 쿠버네티스의 설정까지 여러 케이스들이 담겨있습니다. 700페이지라는 방대한 분량을 가지고 클라우드의 기초부터 시작하여 클라우드 생태계에서 꼭 알아야할 지식들이 충분한 설명과 함께 담겨있었습니다. 이 책만 있으면 클라우드 분야에서 많은 이해를 가지고 개발을 해낼 수 있을거라는 확신이 듭니다!

        이 책과 함께 구매한 책
        이 분야에서 요즘 뜨는 책
        에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
        AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
        인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
        비전공자를 위한 이해할 수 있는 파이썬 - 챗GPT 시대에 최적화된 파이썬 공부법최원영 | 티더블유아이지
        엔트리 인공지능 with 햄스터 로봇 - 개정판강윤지,박찬규,강성웅,김원유,심재민,김연구,홍성용,김경상,정인재 | 영진닷컴
        에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
        AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
        인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
        비전공자를 위한 이해할 수 있는 파이썬 - 챗GPT 시대에 최적화된 파이썬 공부법최원영 | 티더블유아이지
        엔트리 인공지능 with 햄스터 로봇 - 개정판강윤지,박찬규,강성웅,김원유,심재민,김연구,홍성용,김경상,정인재 | 영진닷컴
        에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
        AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
        인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
        이 분야의 화제의 신간
        일상에 바로 쓰는 일잘러의 바이브 코딩 활용법임재희, 조효기, 이정용 | 제이펍
        AI 시스템 설계 - 불확실한 AI를 운영 가능한 시스템으로 만드는 구조와 원칙이한울 | 한빛미디어
        클로드와 엑셀로 시작하는 AI 주식 투자 - 데이터 수집부터 대시보드 자동화와 투자 판단까지 나만의 AI 주식 비서 만들기LearnAI Team | 위키북스
        AI와 일하는 기술 - 성과를 만드는 365가지 AI 치트키최정혜, 김여립, 이동근, 뉴럴웨이브 | 한국경제신문
        AI 편집 디자인 - AI x 인디자인 x 일러스트레이터 x 포토샵으로 배우는 디자인 실무 편집 디자인 브로슈어 포스터 패키지 출판 편집 포트폴리오까지이미정, 유은진, 강경희, 신호진, 앤미디어 | 길벗
        일상에 바로 쓰는 일잘러의 바이브 코딩 활용법임재희, 조효기, 이정용 | 제이펍
        AI 시스템 설계 - 불확실한 AI를 운영 가능한 시스템으로 만드는 구조와 원칙이한울 | 한빛미디어
        클로드와 엑셀로 시작하는 AI 주식 투자 - 데이터 수집부터 대시보드 자동화와 투자 판단까지 나만의 AI 주식 비서 만들기LearnAI Team | 위키북스
        AI와 일하는 기술 - 성과를 만드는 365가지 AI 치트키최정혜, 김여립, 이동근, 뉴럴웨이브 | 한국경제신문
        AI 편집 디자인 - AI x 인디자인 x 일러스트레이터 x 포토샵으로 배우는 디자인 실무 편집 디자인 브로슈어 포스터 패키지 출판 편집 포트폴리오까지이미정, 유은진, 강경희, 신호진, 앤미디어 | 길벗
        일상에 바로 쓰는 일잘러의 바이브 코딩 활용법임재희, 조효기, 이정용 | 제이펍
        AI 시스템 설계 - 불확실한 AI를 운영 가능한 시스템으로 만드는 구조와 원칙이한울 | 한빛미디어
        클로드와 엑셀로 시작하는 AI 주식 투자 - 데이터 수집부터 대시보드 자동화와 투자 판단까지 나만의 AI 주식 비서 만들기LearnAI Team | 위키북스
        교환/반품/환불
        반품/교환방법
        • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
        • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
        반품/교환 가능기간
        • 변심반품의 경우 수령 후 7일 이내
        • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
        반품/교환비용
        • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
        • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
        반품/교환 불가 사유
        • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
        • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
          예) 만화, 잡지, 수험서 및 문제집류
        • 복제가 가능한 상품 등의 포장을 훼손한 경우
          예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
        • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
        • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
        • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
        • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
        상품 품절
        • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
        소비자 피해보상
        환불지연에 따른 배상
        • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
        • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
        공지사항
        • [이벤트 당첨자 발표] 26년 8월 <리뷰왕을 찾아라> 이벤트 당첨자 안내
        • [이벤트 당첨자 발표] 서울국제정원박람회, 김진명 작가 북토크 당첨자 안내
        • [이벤트 당첨자 발표] 9월 모두의 서가 이벤트 당첨자 안내
        • [공지사항] 스타필드마켓 월계 문구복합매장 그랜드 오픈 🎊 이벤트 안내!
        • [공지사항] 2026년 9월 1일 개인정보 처리방침 개정 안내(3.개인정보 처리, 항목, 보유기간)
        공지더보기