320x100
320x100

Modular Monolithic Architecture

하나의 서비스에서 각 로직을 모듈로 나누는 방식. 각 모듈은 독립적이며, 격리된 구조이다

각각의 로직을 모듈화하여 필요한 모듈끼리만 서로 의존하는 관계로 만든다

 

 

이유

- 복잡성 관리

MSA는 서비스 간의 통신, 데이터 일관성 유지, 배포 파이프라인 등에서 복잡성을 증가시키는데 MMA는 모듈 간 종속성이 단순해지기 때문에 복잡성이 낮다

 

- 성능 최적화

MSA의 경우 마이크로 서비스간 통신 오버헤드가 존재할 수 있는데 MMA는 모놀리식 아키텍처의 장점인 동일 프로세스 내 호츨이기 때문에 성능이 더 좋다

 

- 비용절감

MSA의 경우 각각의 서비스가 독립적으로 배포되고 운영되어야하기 때문에 인프라 및 운영 비용이 증가한다 MMA는 모놀리식의 구조를 일부 가져가기 때문에 비용이 덜 든다 (모놀리식 보다는 더 들어감)

 

- 개발 및 디버깅 용이성

하나의 코드베이스에서 작업하는 모놀리식의 장점을 그대로 가져가면서 필요한 서비스들끼리 모아놓은 형태로 MSA의 구조를 가지기 때문에 관리에 용이하다

 

 

 

장점

- 단일 애플리케이션으로 개발, 테스트, 배포가 단순해진다

- 서비스 단위로 나눠지기 때문에 데이터 관리가 쉬워지고 트랜잭션 관리가 용이하다

- 인프라 및 운영 비용이 절감된다

- 모놀리식 보다 유지 관리가 용이하고 확장성이 뛰어나면서 MSA 보다 덜 복잡한 구조를 가진다

 

 

단점

- 모듈별 의존 관계 관리가 복잡하다

- 특정 부분만 스케일링하는 것이 어렵다

- 하나의 작은 변경이 전체 애플리케이션의 재배포를 필요로 할 수 있다

- 한 모듈이 동일한 기술 스택을 사용해야 하므로 부분적으로 새로운 기술을 도입하기 어렵다

 

 

 

 

 

Reference

 

이장근 / Modular Monolithic Architectur... | 커리어리

예전엔 서비스가 커지면 MSA가 답이라는 글을 많이 읽었는데, 요즘은 MMA 이야기가 많더라구요. 상황에 따...

careerly.co.kr

 

Modular Monolithic Architecture

Modular Monolithic 아키텍처를 알아보기 이전에 먼제 Monolith와 Microservice 아키텍처를 알아보는 시간을 가져보겠습니다.Monolithic Architecture란 소프트웨어의 모든 구성 요소가 한 프로젝트에 통합되어

velog.io

 

 

300x250
728x90