개발/기본) 디자인패턴
아키텍처 패턴) Modular Monoliths(모듈형 모놀리스)
테샤르
2025. 4. 9. 20:25
Modular Monoliths(모듈형 모놀리스)
Modular Monolith는 "하나의 애플리케이션(= 모놀리스)"로 배포되지만, 내부는 잘 정의된 모듈들로 구성되어 있어 각 모듈이 서로 독립적으로 개발, 테스트, 유지보수될 수 있게 설계된 아키텍처를 말한다.
반응형
< 구조 예시 : C# >
/Assets
/Modules
/User
UserService.cs
UserModel.cs
UserView.cs
/Inventory
InventoryService.cs
ItemModel.cs
/Combat
CombatSystem.cs
DamageCalculator.cs
/Shared
/Utils
Logger.cs
MathHelpers.cs
/Main
GameManager.cs
EntryPoint.cs
< 장점 >
- 배포가 간단함
- 단일 애플리케이션으로 배포하므로 인프라 복잡성이 적음
- 모듈화된 구조
- 마이크로서비스처럼 모듈 간 책임 분리가 잘 되어 있음
- 테스트가 쉬움
- 단일 프로세스이므로 통합 테스트, 디버깅이 간편
- 향후 마이크로서비스로의 이행이 쉬움
- 각 모듈이 잘 분리되어 있으면, 필요할 때 개별적으로 서비스화 가능
< 단점 및 주의할 점 >
- 코드 레벨의 모듈 분리가 명확하지 않으면 결국 전통적인 모놀리스처럼 커플링이 심해질 수 있음
- 모듈 경계를 엄격히 유지하려는 노력이 필요 (ex. 의존성, 계층구조, 인터페이스 관리 등)
< 아키텍처와 비교 >
아키텍처 | 특징 |
모놀리스 | 하나의 큰 코드베이스, 모든 컴포넌트가 강하게 결합됨 |
마이크로서비스 | 각 서비스가 독립적으로 배포 가능, 네트워크 통신 필요 |
모듈형 모놀리스 | 하나의 배포 단위지만, 내부적으로는 느슨하게 결합된 모듈 구조를 가짐 |
★★☆☆☆
반응형