<aside>
📌 회의 안건
- MSA 와 DDD
- MSA 통신 방법 정하기
- 유비쿼터스 언어 정하기
- 엔티티
</aside>
1. MSA 와 DDD
MSA란?
- 소프트웨어 시스템을 여러 작은 독립적인 서비스로 분할하여 개발하고 배포하는 방식
- 하나의 애플리케이션을 구분 가능한 여러 개의 작은 서비스로 나눠 사용자 요청을 처리하는 구조
- 서비스의 end-point만 API의 형태로 외부에 노출하고, 실질적 세부 사항은 모두 추상화.
- Loosing Coupling , High Cohesion
장점
- 각 서비스 별 소스코드 수정이 쉽다.
- 수정한 서비스만 배포 가능
- 배포 시 전체 서비스 중단이 없음
- 기능이 고립되어 있기에 일부 서비스가 실패해도 전체에 큰 영향을 안줌.
- 개발이 유연해짐
단점
- 서비스간 통신이 필수 → 서로 간 연결 구축 및 관리의 복잡성 증가
- 초기 개발 및 통신 등 시간이 걸림(Latency…)
- 데이터 관리가 어려움(데이터가 여러 서비스에 분산되어 있음)
- MSA 환상론 → 속도만 느려지고, 관리만 불편하다