Programming/개발 공부
[MSA] Multi-Module과 Mini-Service Architecture
오늘 하루s
2024. 8. 22. 13:51
728x90
Multi-Module
- 특징
- 하나의 대형 프로젝트를 여러 개의 모듈로 나누어 관리하는 방식
- 장점
- 개발 효율성 증가 : 코드의 재사용성을 높이고, 프로젝트의 관리를 용이
- 팀간의 협업이 용이 : 각 팀이 독립적으로 모듈을 개발하고 관리하기 때문에 효율적인 협업 가능
- 유지보수 용이 : 각 모듈을 독립적으로 관리함으로써 특정 모듈의 변경이나 업데이트가 전체 프로젝트에 미치는 영향을 최소화
- 단점
- 모듈 간 의존성 관리가 복잡 : 각 모듈이 서로 다른 모듈의 기능을 필요로 할 때, 의존성 관리가 중요해지며, 프로젝트 복잡성을 증가시킴
- 프로젝트 초기 설정 복잡 : 각 모듈의 독립적인 개발 및 배포를 위한 환경 설정과 의존성 관리가 필요
Mini-Service Architecture
- 특징
- 모놀리식과 마이크로서비스 아키텍처 사이의 중간 지점에 적합
- 서로 관련된 서비스 및 모듈들은 동일한 데이터베이스를 공유 할 수 있음
- 서비스 간 통신은 REST API를 통해 이루어짐
- 장점
- 성능 향상 : 도메인 간 서비스, 상호 연결 및 네트워크 트래픽 수를 줄임
- 공유 유지 관리 오버헤드 감소 : 다양한 관련 기능을 처리하는 서비스를 통해 마이크로서비스와 관련된 유지 관리 오버헤드 감소
- 개발자 친화적 : 각 개별 서비스 작업을 전담하는 소규모 개발팀을 만들 여력이 없는 회사에 더 적합
- 단점
- 단일 서비스와 관련된 종속성의 수로 인해 미니서비스 프레임워크에서 엔드투엔드 테스트가 어려울 수 있음. 이것은 효율적인 오류 처리 및 버그 발견과 관련해 복잡성을 증가시킴.
728x90