Cloud

[MSA] 멀티 모듈과 MSA

한비Skyla 2025. 5. 30. 11:21

멀티 모듈 vs MSA

모듈이란

  • 프로그램을 구성하는 시스템을 기능 단위로, 독립적인 부분으로 분리한 것.
  • 하나 이상의 논리적인 기능을 수행하기 위한 명령어들의 집합.
  • 모듈 자체로 재사용될 수 있고, 독립적으로 컴파일이 가능해야 한다.

모듈화란

  • 기능적인 분리를 통해 다른 프로그램을 개발 할 때 유지보수와 코드 재사용성을 높여 소프트웨어를 설계하는 기법

 

멀티 모듈 / MSA 구조 이해하기

1. 모놀리식 아키텍처1) 단일 모듈 멀티 프로젝트일반적으로 익숙한 하나의 서비스에서 api, admin, batch, web, db 등이 관리되는 구조로, 여러개의 서비스 프로젝트가 레이어드 아키텍처 구조를 갖고

dallaecodding.tistory.com

모놀리식 아키텍쳐

 

1. 단일 모듈 멀티 프로젝트

  • api, batch, web, db 등이 하나의 서비스에서 관리.

 

2. 멀티 모듈 단일 프로젝트

  • 중복된 코드를 하나의 공통모듈에 작성하고, 나머지 모듈은 이 공통 모듈을 의존함.
  • 각자 다른 프로젝트에 존재하던 하나의 모듈이 common 모듈 로직을 그대로 사용할 수 있게 됨
  • 최소 의존성을 중시해야 함.
    • common 모듈에 모든 중복 코드를 넣으면, 다른 모듈에서는 알 필요가 없는 로직을 의존하게 됨.
    • 공통 모듈 사용을 최대한 지양함.
  1.  

 

 

마이크로서비스 아키텍쳐 MSA

  • 완전히 독립적으로 작동할 수 있는 작은 서비스 별로 분리하여, gateway를 통해 하나의 큰 서비스로 작동할 수 있게 한다.

 

  • 구성 요소
    • 외부 아키텍쳐
      • 어플리케이션, 플랫폼, 인프라
    • 내부 아키텍쳐
      • API, 비지니스 로직, 이벤트 발행, 데이터 저장 처리
  • 각 서비스 마다 독립적 배포가 가능하며, 서비스 확장이 쉽다.
  • 데이터 동기화, 로드밸런싱, 분산DB 등 오버 헤드 증가 가능성이 있다.