The Modern Monolith, with Spring Modulith by Cora Iberkleid @ Spring I/O 2024
www.youtube.com
예전엔 서비스가 커지면 MSA가 답이라는 글을 많이 읽었는데, 요즘은 MMA 이야기가 많더라구요. 상황에 따라 맞는 아키텍처를 가져가야겠죠? 특징을 살펴보세요!
👨🏻💻 이유
복잡성 관리: MSA는 서비스 간의 통신, 데이터 일관성 유지, 배포 파이프라인 등에서 복잡성을 증가시킵니다. 이 복잡성을 줄이기 위해 Modular Monolithic Architecture를 선택할 수 있습니다.
성능 최적화: 마이크로서비스 간의 통신 오버헤드가 문제될 수 있습니다. 모놀리식 아키텍처는 동일 프로세스 내에서의 호출로 성능을 최적화할 수 있습니다.
비용 절감: 마이크로서비스는 각각의 서비스가 독립적으로 배포되고 운영되어야 하기 때문에 인프라 및 운영 비용이 증가할 수 있습니다. 이를 줄이기 위해 모놀리식 아키텍처가 다시 주목받고 있습니다.
개발 및 디버깅 용이성: 모놀리식 아키텍처는 하나의 코드베이스에서 작업하기 때문에 디버깅 및 개발이 더 용이할 수 있습니다.
👨🏻💻 장점
단순성: 단일 애플리케이션으로 개발, 테스트, 배포가 단순해집니다.
일관성: 데이터 일관성 관리가 쉬워지고, 트랜잭션 관리가 용이합니다.
성능: 서비스 간의 네트워크 통신이 없으므로 성능 최적화가 가능합니다.
비용 절감: 인프라 및 운영 비용을 절감할 수 있습니다.
👨🏻💻 단점
스케일링 문제: 모놀리식 아키텍처는 특정 부분만을 스케일링하는 것이 어렵습니다.
배포 주기: 하나의 작은 변경 사항이 전체 애플리케이션의 재배포를 필요로 할 수 있습니다.
기술 채택 제한: 전체 애플리케이션이 동일한 기술 스택을 사용해야 하므로, 새로운 기술을 부분적으로 도입하기 어렵습니다.
팀 협업: 대규모 팀이 동시에 작업할 경우 충돌이 발생할 수 있습니다.
결론적으로, Modular Monolithic Architecture로의 전환은 특정 상황에서 MSA의 복잡성을 줄이고 효율성을 높이기 위해 선택될 수 있습니다. 하지만, 이는 조직의 특정 요구와 환경에 따라 다를 수 있으며, 어느 아키텍처가 더 적합한지는 상황에 따라 달라질 수 있습니다.
https://www.youtube.com/watch?v=Pae2D4XcEIg
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 7월 23일 오전 9:36
좋은글 감사합니다!~
상황에 맞게 쓰는 거죠. 정답이란 그때그때 다르니
MSA 개발을 위한 서포트 툴이 더 나와야한다고 생각합니다
좋은 글 감사합니다