Modular Monolithic Architecture

예전엔 서비스가 커지면 MSA가 답이라는 글을 많이 읽었는데, 요즘은 MMA 이야기가 많더라구요. 상황에 따라 맞는 아키텍처를 가져가야겠죠? 특징을 살펴보세요!


👨🏻‍💻 이유

  1. 복잡성 관리: MSA는 서비스 간의 통신, 데이터 일관성 유지, 배포 파이프라인 등에서 복잡성을 증가시킵니다. 이 복잡성을 줄이기 위해 Modular Monolithic Architecture를 선택할 수 있습니다.

  2. 성능 최적화: 마이크로서비스 간의 통신 오버헤드가 문제될 수 있습니다. 모놀리식 아키텍처는 동일 프로세스 내에서의 호출로 성능을 최적화할 수 있습니다.

  3. 비용 절감: 마이크로서비스는 각각의 서비스가 독립적으로 배포되고 운영되어야 하기 때문에 인프라 및 운영 비용이 증가할 수 있습니다. 이를 줄이기 위해 모놀리식 아키텍처가 다시 주목받고 있습니다.

  4. 개발 및 디버깅 용이성: 모놀리식 아키텍처는 하나의 코드베이스에서 작업하기 때문에 디버깅 및 개발이 더 용이할 수 있습니다.


👨🏻‍💻 장점

  1. 단순성: 단일 애플리케이션으로 개발, 테스트, 배포가 단순해집니다.

  2. 일관성: 데이터 일관성 관리가 쉬워지고, 트랜잭션 관리가 용이합니다.

  3. 성능: 서비스 간의 네트워크 통신이 없으므로 성능 최적화가 가능합니다.

  4. 비용 절감: 인프라 및 운영 비용을 절감할 수 있습니다.


👨🏻‍💻 단점

  1. 스케일링 문제: 모놀리식 아키텍처는 특정 부분만을 스케일링하는 것이 어렵습니다.

  2. 배포 주기: 하나의 작은 변경 사항이 전체 애플리케이션의 재배포를 필요로 할 수 있습니다.

  3. 기술 채택 제한: 전체 애플리케이션이 동일한 기술 스택을 사용해야 하므로, 새로운 기술을 부분적으로 도입하기 어렵습니다.

  4. 팀 협업: 대규모 팀이 동시에 작업할 경우 충돌이 발생할 수 있습니다.


결론적으로, Modular Monolithic Architecture로의 전환은 특정 상황에서 MSA의 복잡성을 줄이고 효율성을 높이기 위해 선택될 수 있습니다. 하지만, 이는 조직의 특정 요구와 환경에 따라 다를 수 있으며, 어느 아키텍처가 더 적합한지는 상황에 따라 달라질 수 있습니다.


https://www.youtube.com/watch?v=Pae2D4XcEIg

The Modern Monolith, with Spring Modulith by Cora Iberkleid @ Spring I/O 2024

www.youtube.com

The Modern Monolith, with Spring Modulith by Cora Iberkleid @ Spring I/O 2024

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 7월 23일 오전 9:36

 • 

저장 67조회 4,306

댓글 4