MSA는 이번에 처음 들어봤는데..>_<
Spring도 한참 부족하지만 일단 새로운 거 배울생각에 일단 설렘 ㅎㅎ 그럼 시작 !
| 비교 항목 | 모놀리식 아키텍처 | MSA |
|---|---|---|
| 코드베이스 | 단일 코드베이스 | 여러개의 독립적인 서비스 |
| 확장성 | 전체 시스템 확장 필요 | 개별 서비스만 확장 가능 |
| 배포 방식 | 전체 시스템 재배포 | 개별 서비스만 배포 가능 |
| 장애 영향 | 하나의 장애가 전체 영향 | 장애가 서비스 단위로 격리됨 |
| 기술 스택 | 동일한 기술 스택 사용 | 서비스별 다른 기술 스택 가능 |
| 데이터베이스 | 하나의 DB 공유 | 서비스마다 개별 DB 운영 가능 |
이렇게 표로 비교해보면 어 그럼 MSA를 무조건 써야겠네?! 생각이 드는데 MSA가 항상 좋은 것은 아니다.
그럼 언제 MSA를 사용할까?
| 항목 | 장점 | 단점 |
|---|---|---|
| 배포 방식 | 개별서비스배포가능 | CI/CD 필요, 운영 복잡 |
| 확장성 | 특정 서비스만 확장 가능 | 서비스 간 통신 복잡 |
| 장애 관리 | 장애 격리 가능 | 분산 트랜잭션 문제 |
| 기술 스택 | 서비스별 맞춤 기술 선택 가능 | 개발자 학습 부담 증가 |
| 데이터 관리 | 각 서비스별 독립 DB 사용 가능 | 데이터 일관성 유지 어려움 |