Monolithic Architecture vs Micro Service Architecture(MSA)
Monolithic Architecture
- 장점
1) 로컬 환경에서 개발이 편리
2) 통합 시나리오 테스트 진행이 수월
3) 배포가 간편
- 단점
1) 코드의 수정 및 추가가 힘듦
2) 효율적인 자원 관리가 힘듦
3) 자주 업데이트 불가능
4) 새로운 기술 적용이 힘듦
5) 부분의 장애가 서비스 전체적인 장애
6) scale out 이 불가능
Micro Service Architecture
- 장점
1) 빌드 및 테스트 시간을 단축 (기능별 부분 테스트 가능)
2) 유연하게 기술을 적용 (기능별 독립적인 환경 구성 가능)
3) scale out 가능
4) 서비스간의 연관성 낮음 (ex. 장애 발생의 경우 영향도 낮음)
- 단점
성능 이슈
1) Monolithic의 단순 메소드 호출이 아닌 http 통신으로 호출하므로 고려사항 많음
2) 트랜잭션을 위한 추가 로직 필요
3) 다양한 환경 구성으로 여러 상황에 고려사항이 많음 ( 로깅, 모니터링, 배포, 테스트 등)