Toss Tech2026-06-20

Spring Modulith로 모듈러 모놀리스 시작하기

모놀리스는 배포가 단순하지만 시간이 지나면 모듈 사이의 경계가 흐려지기 쉽다. 패키지 하나가 다른 패키지의 내부 클래스를 마음대로 참조하기 시작하면, 결국 어디를 고쳐도 전부 얽혀 있는 거대한 덩어리가 된다.

Spring Modulith는 이런 경계를 코드로 강제한다. 각 모듈은 자기 패키지 안에서만 완결되고, 다른 모듈과는 공개된 API나 이벤트로만 통신하도록 제약을 건다.

핵심은 테스트다. ApplicationModules.of(App.class).verify() 한 줄이 모듈 규칙 위반을 빌드 단계에서 잡아낸다. 순환 참조나 내부 패키지 직접 접근이 생기면 테스트가 깨지므로, 경계가 무너지기 전에 되돌릴 수 있다.

처음부터 마이크로서비스로 쪼개는 대신, 경계가 명확한 모듈러 모놀리스로 시작하고 필요할 때 서비스로 분리하는 편이 대부분의 팀에 현실적이다.

원문에서 계속 읽기

연관 추천