이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 청년패스
요즘 개발자를 위한 마이크로서비스 아키텍처
이도원 저
길벗 2026.10.30.
가격
44,000원
10 39,600
YES포인트?
2,200원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
  •  국내배송만 가능
  •  예약상품과 함께 주문 시 제품 출시일에 함께 배송됩니다. (제작사의 사정으로 출시 지연 가능)
  •  문화비소득공제 가능

이 상품의 태그

상세 이미지

책소개

목차

1장 마이크로서비스 개요

1.1 마이크로서비스의 정의와 특징
1.2 모놀리식 아키텍처 vs 마이크로서비스 아키텍처
1.3 마이크로서비스의 장단점
1.4 마이크로서비스 도입 배경
1.5 마이크로서비스에 대한 비즈니스 가치
__1.5.1 클라우드 네이티브
1.6 실습: 스프링 부트로 간단한 마이크로서비스 개발
__1.6.1 개발 환경 준비
__1.6.2 Postman 사용법
1.7 요약

2장 스프링 부트와 스프링 클라우드

2.1 스프링 부트
__2.1.1 스프링 부트란?
__2.1.2 스프링 부트의 작동 방식과 구성
__2.1.3 REST API 서비스 작성 실습: 상품 목록 조회
2.2 스프링 클라우드
__2.2.1 스프링 클라우드란?
__2.2.2 스프링 클라우드 기반 MSA 구조
2.3 왜 스프링 부트와 스프링 클라우드인가?
2.4 주요 기능 및 사용 방법
__2.4.1 스프링 부트 주요 애너테이션과 설정 파일
__2.4.2 스프링 클라우드 모듈 적용: Eureka, Gateway 연동
2.5 스프링 부트와 스프링 클라우드의 장단점
2.6 요약

3장 마이크로서비스 아키텍처의 이해

3.1 마이크로서비스 아키텍처 설계 원칙
__3.1.1 단일 책임 원칙과 서비스 설계
__3.1.2 도메인 주도 설계와 바운디드 컨텍스트
__3.1.3 비즈니스 기능 중심의 서비스 모델링
__3.1.4 콘웨이의 법칙: 조직 구조와 아키텍처의 정렬
3.2 마이크로서비스에서의 데이터 관리
__3.2.1 서비스별 데이터베이스 원칙
__3.2.2 데이터 일관성과 분산 트랜잭션 처리
__3.2.3 서비스 간 데이터 조회: API vs 이벤트 vs CQRS
__3.2.4 여러 요청을 집계하여 전달하는 게이트웨이 애그리게이션
3.3 서비스 통신 패턴의 이해
__3.3.1 동기식 통신과 비동기식 통신
__3.3.2 활용 시나리오와 장단점 비교
__3.3.3 전자상거래 예시: 주문 처리 흐름
3.4 마이크로서비스 설계 시 고려사항
__3.4.1 서비스 경계 정의 전략
__3.4.2 API 계약 우선 설계
__3.4.3 인프라 및 데브옵스 관점 고려사항
__3.4.4 보안과 장애 복원력 설계 원칙
__3.4.5 스프링 클라우드 구성 요소 도입 시 고려사항
3.5 마이크로서비스 전환 시 도전 과제
__3.5.1 조직 구조 변화와 데브옵스 문화 도입
__3.5.2 통합 테스트 및 품질 관리의 복잡성
__3.5.3 네트워크 환경에서의 예측 불가능성
__3.5.4 서비스 스프롤과 문서화/버전 관리
3.6 요약

4장 서비스 디스커버리

4.1 마이크로서비스와 서비스 디스커버리
__4.1.1 서비스 레지스트리 개념
__4.1.2 서비스 레지스트리의 역할
4.2 스프링 클라우드 넷플릭스 Eureka
__4.2.1 Eureka 서버의 특징
__4.2.2 Eureka 서버 구현하고 설정하기
__4.2.3 Eureka 클라이언트(마이크로서비스) 설정하기
__4.2.4 Eureka와 스프링 클라우드 구성 요약
4.3 다른 서비스 디스커버리 솔루션들과의 비교
__4.3.1 HashiCorp Consul 150
__4.3.2 Apache ZooKeeper 159
__4.3.3 쿠버네티스 DNS 기반 서비스 디스커버리
__4.3.4 Eureka, Consul, ZooKeeper, 쿠버네티스의 비교
4.4 요약

5장 API 게이트웨이

5.1 API 게이트웨이의 개념과 필요성
5.2 API 게이트웨이의 주요 역할
5.3 스프링 클라우드 게이트웨이 소개
5.4 스프링 클라우드 게이트웨이의 아키텍처와 동작 원리
5.5 스프링 클라우드 게이트웨이 설정 구성
__5.5.1 API 게이트웨이 애플리케이션 생성하기
__5.5.2 스프링 클라우드 게이트웨이의 라우트 설정하기
__5.5.3 다양한 프레디킷 사용
__5.5.4 게이트웨이 필터 설정하기
__5.5.5 서비스 디스커버리 연동 및 부하 분산
5.6 인증 필터와 로깅 필터(사용자 정의 필터 구성)
__5.6.1 인증 필터 구성
__5.6.2 로깅 필터 구성
__5.6.3 필터 구성 요약
5.7 요약

6장 전자상거래 애플리케이션

6.1 전자상거래 애플리케이션의 마이크로서비스 구성
6.2 인프라스트럭처 컴포넌트: 서비스 디스커버리, API 게이트웨이, 컨피그 서버
__6.2.1 서비스 디스커버리 서버
__6.2.2 API 게이트웨이
__6.2.3 컨피그 서버
6.3 마이크로서비스 간 협업: 시나리오 흐름 예시
6.4 REST API 설계 및 예시
__6.4.1 상품 서비스 API(product-service)
__6.4.2 주문 서비스 API(order-service)
__6.4.3 결제 서비스 API(payment-service)
6.5 서비스별 설정과 독립 실행
__6.5.1 상품 서비스 설정
__6.5.2 주문 서비스 설정
__6.5.3 결제 서비스 설정
6.6 서비스 디스커버리 설정
6.7 API 게이트웨이 서비스 설정
6.8 전체 아키텍처 흐름도
6.9 마이크로서비스 프로젝트 구조와 주요 코드
__6.9.1 상품 서비스 컨트롤러 예시
__6.9.2 주문 서비스: 다른 마이크로서비스 호출
__6.9.3 컨피그 서버와 게이트웨이 등 나머지 구성
6.10 전체 서비스 동작 확인하기
6.11 요약

7장 중앙화된 설정 관리

7.1 스프링 클라우드 컨피그 서버
__7.1.1 필요성 및 등장 배경
__7.1.2 스프링 클라우드 컨피그의 구성 예시
__7.1.3 스프링 클라우드 컨피그 서버 구성
7.2 스프링 클라우드 컨피그 클라이언트 구성
__7.2.1 스프링 클라우드 컨피그 클라이언트 구성하기
7.3 설정 변경 반영 전략
__7.3.1 애플리케이션 재시작
__7.3.2 액추에이터를 통한 수동 리프레시 - /actuator/refresh
__7.3.3 스프링 클라우드 버스를 통한 자동 갱신
__7.3.4 액추에이터를 이용한 설정 정보 리프레시
7.4 마무리 및 요약

8장 스프링 클라우드 버스를 이용한 분산 이벤트 전파

8.1 설정 동기화의 필요성
8.2 스프링 클라우드 버스란
8.3 RabbitMQ로 스프링 클라우드 버스 환경 설정하기
__8.3.1 RabbitMQ 설치하고 실행하기
__8.3.2 RabbitMQ 연결 테스트
8.4 스프링 클라우드 버스 설정하기
__8.4.1 스프링 클라우드 버스 설정
8.5 스프링 클라우드 버스를 통한 구성 갱신 적용하기
__8.5.1 설정 정보 수정하기
__8.5.2 스프링 클라우드 버스를 통한 브로드캐스트 트리거
__8.5.3 변경된 설정 정보 확인
8.6 RabbitMQ vs Kafka
8.7 스프링 클라우드 버스 사용을 위한 아키텍처
__8.7.1 구성 변경 메시지 흐름
__8.7.2 브로드캐스트 범위 제한(선택적 갱신)
8.8 장점과 고려사항
8.9 요약

9장 컨피그 서버를 이용한 암호화 처리

9.1 스프링 클라우드 컨피그의 암호화 아키텍처
9.2 대칭 키 암호화 적용하기(encrypt.key 속성 사용)
__9.2.1 대칭 키 방식을 이용한 암호화 처리
__9.2.2 대칭 키 암호화 데이터 설정하기
__9.2.3 대칭 키 암호화 데이터 사용하기
9.3 비대칭 키(RSA) 암호화 적용하기
__9.3.1 RSA 키 쌍 및 키스토어 생성하기
__9.3.2 컨피그 서버에 RSA 키스토어 설정하기
__9.3.3 RSA를 이용한 암호화/복호화 과정
9.4 /encrypt 및 /decrypt 엔드포인트 활용하기
__9.4.1 /encrypt 사용 예시(cURL)
__9.4.2 /decrypt 사용 예시(cURL)
__9.4.3 YAML vs Properties 파일 저장 시 유의사항
9.5 자주 발생하는 오류와 문제 해결
__9.5.1 복호화 키 누락 또는 불일치
__9.5.2 {cipher} 암호문이 평문으로 노출되는 문제
__9.5.3 Illegal key size 등 암호화 관련 예외
__9.5.4 기존 암호문이 새 키로 복호화되지 않는 문제
__9.5.5 그 외 고려해야 할 오류들
9.6 암호화 엔드포인트 보안
__9.6.1 컨피그 서버에 스프링 시큐리티 적용하기
__9.6.2 엔드포인트별 권한 제어
9.7 요약
__9.7.1 대칭 vs 비대칭 암호화 방식 선택 가이드
__9.7.2 키 관리 및 교체
__9.7.3 CI/CD와 자동 암호화
__9.7.4 기타 주의 사항

10장 마이크로서비스 간 통신

10.1 동기 통신의 개요 및 동작 흐름
10.2 REST API와 RESTful API
10.3 RestTemplate을 사용한 REST API 호출
__10.3.1 RestTemplate 빈 생성하기
__10.3.2 RestTemplate으로 주문 서비스 호출하기
10.4 OpenFeign을 사용한 REST API 호출
__10.4.1 페인 클라이언트 사용 순서
__10.4.2 OpenFeign을 이용한 REST API 호출
__10.4.3 사용자 등록하고 로그인하기
__10.4.4 OpenFeign을 이용한 REST API 호출하기
__10.4.5 페인 클라이언트에서의 오류 처리 방법
__10.4.6 오류 디코더를 사용한 예외 처리 실습
10.5 스프링 클라우드 Eureka를 통한 서비스 디스커버리 통합
10.6 RESTful API 설계와 예시
__10.6.1 RESTful API 설계 주요 원칙
__10.6.2 예제 API 설계
10.7 기타 서비스 통신 기술
__10.7.1 gRPC
__10.7.2 GraphQL
__10.7.3 웹소켓
10.8 동기 통신에서의 고려사항
10.9 요약

11장 비동기 데이터 처리

11.1 스프링에서의 비동기 처리 방법
11.2 Kafka 기반 비동기 메시징 처리
11.3 Spring Kafka 연동 실습
__11.3.1 프로젝트 설정하고 의존성 추가하기
__11.3.2 주문 서비스 - Kafka 프로듀서 구현하기
__11.3.3 상품 서비스 - Kafka 컨슈머 구현 준비하기
__11.3.4 Kafka 컨슈머 구현하기
__11.3.5 비동기 처리를 활용한 주문하기
11.4 비동기 통신의 장단점
11.5 요약 및 마무리

12장 EDA를 위한 Kafka 활용

12.1 MSA 통신의 진화와 EDA의 등장 배경
__12.1.1 동기식 통신의 한계와 문제점
__12.1.2 이벤트 주도 아키텍처란?
12.2 Spring Kafka를 이용한 EDA 구현하기
__12.2.1 프로젝트 설정 및 환경
__12.2.2 EDA를 위한 Kafka 프로듀서 구현하기
__12.2.3 EDA를 위한 Kafka 컨슈머 구현하기
__12.2.4 이벤트 흐름도
12.3 Kafka 기반 EDA의 핵심 설계 전략
__12.3.1 메시지 순서 보장의 메커니즘
__12.3.2 이벤트 재처리 전략
__12.3.3 장애 대비 설계 전략
__12.3.4 이벤트 스키마 설계 및 버전 관리
12.4 EDA 확장 패턴
__12.4.1 CQRS 패턴
__12.4.2 이벤트 소싱 패턴
12.5 EDA 도입 전략
__12.5.1 EDA의 장점
__12.5.2 EDA의 단점/한계
__12.5.3 도입 전략 및 베스트 프랙티스
12.6 요약 및 핵심 정리

13장 마이크로서비스 분산 트랜잭션 관리

13.1 분산 트랜잭션과 2PC의 한계
13.2 사가 패턴
__13.2.1 사가 구현 방식
__13.2.2 오케스트레이션 기반의 사가
__13.2.3 코레오그래피 기반의 사가
13.3 스프링 부트를 이용한 사가 구현
__13.3.1 오케스트레이션 기반 사가
__13.3.2 주문 서비스 구현 실습
__13.3.3 결제 서비스 구현 실습
__13.3.4 상품 서비스 구현 실습
__13.3.5 코레오그래피 기반 사가 구현하기
__13.3.6 주문 서비스 구현 실습
__13.3.7 결제 서비스 구현 실습
__13.3.8 상품 서비스 구현 실습
__13.3.9 보상 트랜잭션 구현하기
13.4 트랜잭션 실패 시 예외 처리 및 사가 복구 전략
__13.4.1 오케스트레이션 방식의 예외 처리
__13.4.2 코레오그래피 방식의 예외 처리
__13.4.3 사가 복구 전략
13.5 사가 적용을 위한 추가 고려사항
__13.5.1 CQRS와 사가 병행 적용
__13.5.2 로깅과 트랜잭션 트레이싱(분산 추적)
13.6 요약

14장 장애 처리와 분산 추적

14.1 마이크로서비스 환경의 장애 유형과 원인
__14.1.1 마이크로서비스 장애 유형
__14.1.2 마이크로서비스가 장애에 취약한 이유
__14.1.3 마이크로서비스 장애 전파 시나리오
14.2 회복성 패턴과 Resilience4j 개요
__14.2.1 회로 차단기
__14.2.2 재시도
__14.2.3 속도 제한기
__14.2.4 타임아웃
__14.2.5 격리 처리
__14.2.6 대체 처리
14.3 서비스 호출 장애 발생 시 Resilience4j 적용 예제
__14.3.1 장애 대응 패턴 구현하기
__14.3.2 장애 상황에서 동작 확인하기
__14.3.3 격리 처리와 대체 처리 구현하기
14.4 분산 추적
__14.4.1 분산 추적 도구
__14.4.2 Micrometer Tracing+OpenTelemetry 실습
__14.4.3 Trace Context 전파 실습
__14.4.4 장애 메트릭 모니터링
14.5 장애 대응 전략 및 마무리

15장 모니터링과 로깅

15.1 관찰 가능성: 메트릭, 로그, 트레이스
15.2 서비스 메트릭 수집 및 시각화
__15.2.1 스프링 부트 액추에이터와 Micrometer를 활용한 메트릭 노출
__15.2.2 Micrometer + Prometheus를 이용한 메트릭 모니터링 구성하기
__15.2.3 커스텀 메트릭 추가하기
__15.2.4 Prometheus를 활용한 메트릭 수집(Pull 방식 시계열 DB)
__15.2.5 Prometheus 설치하기
__15.2.6 Grafana를 통한 메트릭 시각화 및 대시보드 구성하기
__15.2.7 Grafana 대시보드 생성하기
__15.2.8 Grafana.com/dashboards에 등록된 대시보드 가져오기
15.3 스프링 부트 어드민
__15.3.1 어드민 서버 실행하기
__15.3.2 어드민 클라이언트 설정하기
15.4 로그 전략 수립
__15.4.1 마이크로서비스를 위한 로그 포맷 표준화
__15.4.2 마이크로서비스에 logback-spring.xml 파일 추가
__15.4.3 주요 로그 정보: Trace ID 및 공통 필드 포함
__15.4.4 로그 수집 파이프라인 구축하기
__15.4.5 Filebeat 실행하기
__15.4.6 로그 수집 에이전트 배포하기
__15.4.7 로그 중앙화와 시각화: Elasticsearch, Kibana
__15.4.8 Kibana Data View 생성하기
__15.4.9 Query DSL 사용하기
15.5 운영 환경 고려사항
15.6 모니터링/로깅 아키텍처의 장단점
15.7 요약

16장 애플리케이션 배포 전략

16.1 배포 전략의 중요성과 구조
__16.1.1 클라우드 모델의 변화와 MSA 배포 전략
__16.1.2 컨테이너 오케스트레이션
__16.1.3 스프링 클라우드 핵심 컴포넌트의 현대적 역할 변화
16.2 무중단 배포 전략
__16.2.1 블루/그린 배포 전략
__16.2.2 카나리 배포 전략
16.3 스프링 클라우드 주요 컴포넌트의 고가용성 구성 및 실습
__16.3.1 Eureka 서버의 HA 구성
__16.3.2 멀티 Eureka 서버 구성하기 실습
__16.3.3 스프링 클라우드 게이트웨이의 확장과 로드 밸런싱
__16.3.4 컨피그 서버의 HA 구성
16.4 도커 컨테이너 기반 배포
__16.4.1 스프링 부트 컨테이너 이미지 최적화 전략
__16.4.2 최적화된 도커 파일 예시
__16.4.3 도커 컨테이너 이미지 생성하기
__16.4.4 도커 컴포즈를 이용한 전체 MSA 실행 환경 구성하기
__16.4.5 도커 컴포즈 실행
16.5 쿠버네티스 환경에서의 배포 개요
__16.5.1 서비스 디스커버리: 쿠버네티스의 서비스 vs Eureka 서버
__16.5.2 설정 관리: 컨피그 서버 vs 컨피그맵/시크릿
__16.5.3 서비스 메시의 활용
__16.6 지속적 통합(CI)과 지속적 배포(CD)
16.7 데브옵스 문화와 배포 전략
16.8 요약

부록 A 실습 환경 설정
A.1 IDE 설정하기
__A.1.1 JDK 설치하기
__A.1.2 IntelliJ IDEA 설치하기
A.2 도커 데스크톱 설치
A.3 쿠버네티스 실행해 보기
A.4 비주얼 스튜디오 코드 설치

찾아보기

저자 소개 1

엔제이원컴퍼니 대표이자 동국대학교 국제정보대학원 정보보호학과 대우 교수로, 일본 JP Morgan Chase AMJ와 삼성 SDS에서 실무 경험을 쌓았다. 주요 관심 분야는 마이크로서비스 아키텍처(MSA), 클라우드 네이티브, 대화형 AI다. AI 챗봇과 지능형 어시스턴트 구축 프로젝트에서 솔루션 아키텍트(SA)와 프로젝트 매니저(PM)를 맡아 왔다. 삼성전자, LG전자, SK AX, KT DS, 금융결제원 등에서 MSA와 AI를 강의하며 실무 경험과 기술 지식을 나누고 있다.

품목정보

발행일
2026년 10월 30일
쪽수, 무게, 크기
696쪽 | 188*257*255mm
ISBN13
9791140720996

책 속으로

이 책은 전자상거래 예제를 바탕으로 스프링 부트로 서비스를 만들고, 스프링 클라우드를 이용해 서비스들을 연결하는 과정을 따라갑니다. 이어 설정 관리와 서비스 간 통신, Kafka와 사가 패턴을 살펴보고, 장애 대응과 모니터링, 배포까지 다룹니다. 각 기술의 사용법뿐만 아니라 왜 그 기능이 필요한지, 하나의 설계 선택이 이후 시스템의 동작과 운영에 어떤 영향을 미치는지도 함께 설명하려고 했습니다. 모든 내용을 한 번에 익히려 애쓰지 않아도 됩니다. 먼저 예제를 실행해 보고, 궁금한 부분이 생기면 다시 돌아와 읽어 봐도 좋습니다. 잘 동작하던 서비스를 일부러 멈추거나 같은 요청을 여러 번 보내 보면 처음에는 지나쳤던 설명이 다르게 읽힐 수 있습니다. 그렇게 하나씩 직접 확인하다 보면 새로운 문제를 만났을 때도 어디서부터 살펴봐야 할지 감을 잡을 수 있을 것입니다
- 이도원
--- 「저자 서문」 중에서

출판사 리뷰

설계하고 연결하고 운영하는, 실전 MSA의 모든 것!

MSA의 기본 개념부터 Eureka, 게이트웨이, 컨피그 서버를 활용한 서비스 구성과 서비스 간 통신을 차근차근 설명한다. 여기에 Kafka를 활용한 이벤트 기반 아키텍처, 비동기 처리, 분산 데이터와 트랜잭션까지 범위를 넓혀 실제 마이크로서비스에서 마주하게 되는 문제를 다룬다. 또한 장애 대응과 분산 추적, 로그 모니터링을 통해 서비스의 안정성과 관측 가능성을 높이는 방법을 살펴보고, 도커와 쿠버네티스를 활용한 배포와 운영 전략까지 이어진다. 개별 기술의 사용법만 익히는 것이 아니라, 각 기술이 왜 필요하고 MSA 안에서 어떻게 연결되는지 하나의 흐름으로 이해할 수 있도록 구성했다. 서비스를 만드는 개발자에서, 분산된 서비스를 설계하고 운영할 수 있는 개발자로 한 단계 더 나아가 보자.

추천평

AI가 코드를 빠르게 만들어 주는 시대일수록 중요한 것은 좋은 코드를 작성하는 능력을 넘어, 무엇을 만들고 어떻게 설계하며 어떤 선택을 해야 하는지를 판단하는 힘이라고 생각합니다. 이 책이 마이크로서비스를 이해하고 자신의 시스템에 적용하려는 개발자와 엔지니어에게 든든한 길잡이가 되기를 바라며 기쁜 마음으로 추천합니다. - 한선호 (베스핀글로벌 CAIO)
“이 책은 단순한 개발 방식의 변화를 넘어, 확장 가능하고 유연한 시스템을 설계하기 위해 필요한 관점과 방법을 제시합니다. 마이크로서비스를 처음 접하는 개발자뿐만 아니라, 시스템의 미래를 고민하는 아키텍트에게도 든든한 길잡이가 될 것이라 확신합니다.” - 김영애 (SAP 상무·공학박사)

첫번째 리뷰어가 되어주세요.

첫번째 한줄평을 남겨주세요.

사락 별점0

혜택 및 유의사항

첫번째 별점을 남겨주세요.

첫번째 밑줄을 남겨주세요.

39,600원
총 1개 39,600원