Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

모놀리스에서 마이크로서비스까지

모놀리스에서 마이크로서비스로 전환하는 과정에서 마주치는 개념, 패턴, 그리고 현실적인 선택들을 다룹니다.

마이크로서비스는 도구이지 목적이 아니다.

서문 — 이 책을 시작하기 전에


목차

1부. 왜 마이크로서비스인가

마이크로서비스란 무엇이고, 무엇을 얻고 무엇을 잃는가. 전환 결정의 출발점.

  • 1장. 마이크로서비스의 기본 개념과 장점
  • 2장. 마이크로서비스의 그림자
  • 3장. 반드시 이해해야 할 핵심 개념들

2부. 모놀리스를 어떻게 떠날 것인가

빅뱅이 아닌 점진적 전환. 라우팅과 Gateway, 데이터 마이그레이션까지.

  • 4장. 한 번에 옮길 수 없다 — 점진적 전환의 원칙
  • 5장. Strangler Fig — 모놀리스를 감싸 잘라내기
  • 6장. Gateway를 위로 끌어올리기 — 모놀리스 앞에 새 관문 두기
  • 7장. 데이터 마이그레이션 — 공유 DB에서 분리된 DB까지

3부. 경계를 설계하다

서비스를 어디서 나누고, 어떻게 그 경계를 유지할 것인가.

  • 8장. 경계를 설계하는 방법 — DDD와 Bounded Context
  • 9장. 무엇부터 떼어낼 것인가 — 추출 우선순위 결정법
  • 10장. 경계를 지키는 설계 — DB per Service와 스냅샷
  • 11장. 경계를 연결하는 방법 — 동기와 비동기

4부. 외부와 연결하다

클라이언트와 시스템 사이의 관문, 채널 특화, 그리고 인증의 흐름.

  • 12장. 단일 진입점의 설계 — API Gateway
  • 13장. 채널을 위한 설계 — BFF
  • 14장. 인증과 인가 — 분산 환경에서 사용자 정보가 흐른다

5부. 이벤트 기반 통신의 현실

메시지는 유실되고, 중복되고, 순서가 뒤바뀐다. 그 위에서 시스템을 어떻게 설계할 것인가.

  • 15장. 이벤트로 연결되는 시스템
  • 16장. 메시지는 정확히 한 번 오지 않는다
  • 17장. 이벤트는 항상 순서대로 오지 않는다
  • 18장. 같은 이벤트는 여러 번 온다 — 멱등성

6부. 분산 환경의 정합성

트랜잭션이 사라진 자리에 Outbox·Saga·검증이 들어선다.

  • 19장. 분산 환경에서의 정합성 — 최종 일관성
  • 20장. 트랜잭션과 이벤트의 원자성 — Outbox
  • 21장. 이벤트를 안전하게 전달하는 방법 — Outbox + Inbox
  • 22장. Saga 패턴
  • 23장. 전환 중의 데이터 정합성 — Dual-write에서 살아남기

7부. 장애와 복원력

장애는 사라지지 않는다. 다만 퍼지지 않게 만든다.

  • 24장. 동기 호출 기반 복원력
  • 25장. Circuit Breaker
  • 26장. 비동기 시스템의 장애와 복원 전략
  • 27장. 관측 가능성 — Trace · Metric · Log

8부. 데이터 모델의 진화

분산 환경에서 읽기와 쓰기의 모델은 분리된다.

  • 28장. JOIN이 사라진 세계 — 분산 환경에서의 조회
  • 29장. 읽기와 쓰기의 모델을 분리하다 — CQRS
  • 30장. 상태 대신 이벤트를 저장하다 — Event Sourcing
  • 31장. Event Sourcing의 불변성과 보상 전략
  • 32장. 동시성과 일관성

9부. 코드 아키텍처

서비스 내부의 의존성을 어떻게 설계할 것인가.

  • 33장. 레이어 아키텍처
  • 34장. 의존성은 왜 문제가 되는가
  • 35장. 헥사고날 아키텍처
  • 36장. 실제 코드 구조로 보는 헥사고날 아키텍처

10부. 안티패턴과 함정

분산 모놀리스, Nanoservice, 그리고 돌아온 사람들의 이야기.

  • 37장. 분산 모놀리스의 다양한 얼굴
  • 38장. Nanoservice — 너무 잘게 쪼갠 함정
  • 39장. 마이크로서비스로 갔다가 돌아온 사례들

11부. 운영과 종합

안전한 배포, 통합 사례, 그리고 다시 처음의 질문으로.

  • 40장. 배포 전략 — Blue/Green, Canary, Feature Flag
  • 41장. 실전 사례 — 모놀리스 전자상거래 전환기
  • 42장. 다시, 마이크로서비스는 의무가 아니다 (에필로그)

책의 흐름

1부  ─ 왜 마이크로서비스인가?
2부  ─ 모놀리스에서 어떻게 떠날 것인가?
3부  ─ 서비스를 어디서 나눌 것인가?
4부  ─ 외부와 어떻게 연결할 것인가?
5부  ─ 이벤트 기반 통신의 현실
6부  ─ 분산 환경에서 정합성을 어떻게 보장하나?
7부  ─ 장애를 어떻게 견디나?
8부  ─ 데이터 모델은 어떻게 진화하나?
9부  ─ 서비스 내부 코드는 어떻게 구성하나?
10부 ─ 어떤 함정을 피해야 하나?
11부 ─ 어떻게 운영하고 마무리할 것인가?

총 11부 · 42장.


어떻게 읽을 것인가

처음부터 끝까지 — 1부부터 11부까지 순서대로 읽으면 전체 여정을 따라갈 수 있습니다.

필요한 부분만 — 지금 막힌 주제로 바로 가도 됩니다. 각 챕터는 자체 결론으로 마무리되므로 흐름이 끊기지 않습니다.

  • 추출 우선순위가 막혔다면 → 9장
  • 데이터 분리가 문제라면 → 7장 또는 23장
  • 이벤트 처리가 꼬였다면 → 5부 전체
  • 분산 모놀리스 의심이 든다면 → 37장
  • 너무 잘게 쪼개졌다면 → 38장

자세한 안내는 서문을 참고하세요.