마이크로서비스는 기능보다 배포·장애 경계를 먼저 나눈다

서비스를 작게 쪼개는 목적은 파일을 많이 만드는 것이 아니라, 바뀌는 속도와 장애 전파 범위를 분리하는 것입니다.

Monolith

하나의 배포 단위

주문, 사용자, 결제 코드가 같은 프로세스와 같은 릴리스 주기를 공유합니다.

Microservices

여러 독립 배포 단위

각 서비스가 자신의 데이터와 장애를 책임지고, 네트워크 계약으로만 연결됩니다.

HTTP 진입

API Gateway

외부 요청을 받고 내부 서비스 호출로 변환합니다.

서비스 계약

Message pattern

무엇을 요청하는지 패턴과 payload로 표현합니다.

독립 실행

Users Service

자신의 프로세스에서 요청을 처리하고 응답합니다.

핵심: 분리할수록 코드 경계는 선명해지지만 네트워크, 배포, 관측성 비용이 생깁니다. 그래서 “독립 배포할 이유”가 먼저 있어야 합니다.