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

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

이 책은 모놀리스에서 마이크로서비스로 옮겨가는 사람을 위한 책이다. 지금 그 한가운데 있거나, 시작을 고민하고 있거나, 이미 옮긴 후의 문제를 다루는 사람을 위한 책이다.


왜 이 책을 썼는가

마이크로서비스에 관한 책은 이미 많다. 패턴을 정리한 책도, 도구를 다루는 책도 있다.

하지만 실제 전환의 현장에서 부딪치는 질문은 그 책들이 잘 다루지 않는다.

  • 무엇부터 떼어낼 것인가
  • 모놀리스가 Gateway일 때 어떻게 풀어낼 것인가
  • 신·구 시스템이 공존하는 동안 데이터를 어떻게 다룰 것인가
  • 분산 모놀리스로 회귀하지 않으려면 무엇을 봐야 하는가

이 책은 그 질문들에 답하기 위해 쓰였다.


누가 읽으면 좋은가

이 책은 다음 사람들에게 가장 유용하다.

  • 모놀리스를 운영 중이고 마이크로서비스 전환을 고민하는 개발자
  • 이미 전환 중이고 길을 잃지 않으려는 팀
  • 분리된 서비스들이 점점 분산 모놀리스처럼 느껴지는 회사
  • 마이크로서비스의 개념과 패턴을 한 번에 정리하고 싶은 사람

다음 분들에게는 덜 적합할 수 있다.

  • 마이크로서비스를 처음 들어보는 입문자 — 일부 기본 개념은 가볍게만 다룬다
  • Kubernetes·Service Mesh 같은 인프라 도구의 운영 매뉴얼을 찾는 사람 — 이 책의 범위가 아니다
  • 특정 언어·프레임워크의 구현 방법을 찾는 사람 — 이 책은 언어 중립적이다

이 책의 특징

1️⃣ 개념보다 결정에 집중한다

“마이크로서비스가 무엇인가“보다 “언제·어떻게 전환할 것인가“에 더 무게를 둔다.

2️⃣ 패턴마다 비용을 정직하게 짚는다

모든 패턴은 비용이 있다. 이 책은 장점만 보여주지 않는다.

3️⃣ 안티패턴을 별도로 다룬다

10부 전체를 함정과 회귀 사례에 할애한다. 좋은 결정만큼 나쁜 결정의 패턴을 아는 것도 중요하다.

4️⃣ 짧은 호흡으로 쓰였다

GitHub에서 md 뷰어로 읽기에 좋도록 짧은 문장과 빈 줄로 호흡을 만들었다.


어떻게 읽을 것인가

이 책은 두 가지 방식으로 읽을 수 있다.

처음부터 끝까지

1부 → 11부 순서대로 읽으면 모놀리스에서 마이크로서비스까지의 전체 여정을 따라간다.

처음 마이크로서비스를 접하는 사람, 큰 그림을 잡고 싶은 사람에게 권장한다.

필요한 부분만 골라서

각 챕터는 독립적으로도 읽을 수 있다. 지금 막힌 부분이 있다면 해당 챕터로 바로 가도 된다.

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

각 챕터는 자체 결론으로 마무리되므로 부분적으로 읽어도 흐름이 끊기지 않는다.


이 책이 다루지 않는 것

이 책은 의도적으로 다음을 다루지 않는다.

  • 컨테이너·Kubernetes 운영
  • Service Mesh의 설정
  • CI/CD 파이프라인 구축
  • 보안·컴플라이언스의 세부
  • 로컬 개발 환경 구성
  • 특정 언어·프레임워크

이 주제들은 각자 책 한 권 분량이다. 이 책은 그 위에 얹어 읽는 책이다.


책의 흐름

[1부]  왜 마이크로서비스인가?       — 결정의 시작
[2부]  어떻게 떠날 것인가?           — 전환 전략
[3부]  경계를 설계하다               — DDD와 책임 분리
[4부]  외부와 연결하다               — Gateway·BFF·인증
[5부]  이벤트 기반 통신의 현실        — 메시지의 비결정성
[6부]  분산 환경의 정합성             — 트랜잭션의 재정의
[7부]  장애와 복원력                 — 살아남는 시스템
[8부]  데이터 모델의 진화             — 읽기와 쓰기의 분리
[9부]  코드 아키텍처                 — 서비스 내부 설계
[10부] 안티패턴과 함정               — 실패의 모양
[11부] 운영과 종합                  — 배포·사례·에필로그

총 11부 · 42장.


마지막으로

이 책에는 한 가지 큰 메시지가 흐른다.

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

이 메시지는 1장에서 시작해서 42장까지 이어진다.

도구의 힘을 알고, 그 비용도 알고, 자기 상황에 맞게 결정하고, 필요하다면 결정을 되돌릴 줄 아는 사람.

이 책은 그런 결정을 돕기 위해 쓰였다.


이제 1장으로 넘어가자.