비브로스 기술 블로그 · 2026. 07. 16.
MSA - 원칙, 아키텍처, 그리고 DB 분리
AI 엔지니어링 브리핑
이 글은 하나의 큰 시스템을 여러 서비스로 나누는 MSA의 원칙과, 단일 데이터베이스를 도메인별 데이터베이스로 무중단 분리한 실전 과정을 설명합니다.
문제 & 배경
- 문제 & 배경: 모놀리스는 규모가 커질수록 작은 변경에도 전체 배포가 필요하고 일부 기능만 확장하기 어렵거나 한 영역의 장애가 전체 시스템으로 번지는 문제가 생겼으며, 서비스로 나누더라도 경계를 잘못 정하면 공유 DB와 잦은 서비스 간 호출이 남아 ‘분산 모놀리스’가 될 수 있었습니다.
기술 & 해결책
- 기술 & 해결책: 도메인별로 데이터와 책임의 소유권을 정하고 서비스 간에는 API나 이벤트로만 통신하게 했으며, 데이터 변경과 이벤트 발행은 트랜잭션 아웃박스와 멱등 처리를 사용하고 MongoShake의 전체 복사·변경분 동기화로 104개 컬렉션을 6개 DB로 단계적으로 옮겼습니다.
교훈 & 주의점
- 교훈 & 주의점: MSA는 서비스 수를 늘리는 일이 아니라 독립 배포와 장애 격리가 가능한 경계를 만드는 일이며, DB 전환 때는 복제 지연·변경 누락·인덱스·루프백을 검증하고 점진적 전환과 롤백 경로를 반드시 남겨야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.