본문 바로가기
개발/기본) 디자인패턴

아키텍처 패턴) Modular Monoliths(모듈형 모놀리스)

by 테샤르 2025. 4. 9.

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

 

< 장점 >

  1. 배포가 간단함
    • 단일 애플리케이션으로 배포하므로 인프라 복잡성이 적음
  2. 모듈화된 구조
    • 마이크로서비스처럼 모듈 간 책임 분리가 잘 되어 있음
  3. 테스트가 쉬움
    • 단일 프로세스이므로 통합 테스트, 디버깅이 간편
  4. 향후 마이크로서비스로의 이행이 쉬움
    • 각 모듈이 잘 분리되어 있으면, 필요할 때 개별적으로 서비스화 가능

 

< 단점 및 주의할 점 >

 

  • 코드 레벨의 모듈 분리가 명확하지 않으면 결국 전통적인 모놀리스처럼 커플링이 심해질 수 있음
  • 모듈 경계를 엄격히 유지하려는 노력이 필요 (ex. 의존성, 계층구조, 인터페이스 관리 등)

 

< 아키텍처와 비교 >

아키텍처 특징
모놀리스 하나의 큰 코드베이스, 모든 컴포넌트가 강하게 결합됨
마이크로서비스 각 서비스가 독립적으로 배포 가능, 네트워크 통신 필요
모듈형 모놀리스 하나의 배포 단위지만, 내부적으로는 느슨하게 결합된 모듈 구조를 가짐

 

 

 

★★☆☆

 

반응형

댓글