<aside>
💡
블로그 주소
1. 주제
-
이 글이 설명하는 주제
- 모듈러 모놀리스 아키텍처와 Spring Modulith
-
이 개념이 어떤 상황에서 유용한지
- 도메인의 경계를 정의하고 각 도메인마다 인프라를 구성하는 MSA에서
한 프로젝트의 인프라에서 여러 도메인을 나눠서 관리할 수 있는 아키텍처 및 방안 소개
2. 세부 내용
1) 문제 배경
카카오뱅크의 초기 채널 서버 시스템은 모든 서비스가 하나의 모놀리스 서버에서 동작하는 구조였다.
서비스가 커질수록 코드의 양이 많아지며
- 빌드와 테스트의 속도가 급격히 느려짐
- 조직이 세분화되면서 작은 변경이 여러 팀에 영향을 주었고, 그 영향 범위를 파악하기 어려워짐
- 코드와 DB에 대한 접근 제어가 체계적으로 분리되지 않게 됨
- 이로 인해 서로의 영역이 명확히 구분되지 않아 작업에 영향을 미치는 상황이 자주 발생
- 테스트 서버에 오류가 발생할 경우 모든 팀의 배포가 지연되는 문제가 종종 발생
이러한 문제점들을 해결하기 위해 서비스 간 경계를 명확히 하고, 팀별로 자율성과 책임을 부여할 수 있는 구조가 필요해졌고**,** ‘MSA 전환의 출발점’으로 이어지게 되었다.