우리팀의 경우엔 성능상의 이유보단 도메인 분리, 데이터 추적의 목적이 큼.


보통의 운영계 DB는 도메인별로 권한이 나눠져있음. 예를 들어 B도메인의 개발자는 A도메인의 테이블에 대해 접근을 못한다고 보면 됨.


근데, 통계같이 모든 도메인에 대한 접근이 필요한 경우가 있음. 물론 조회만 하면 되긴 하는데, 통계라는 도메인의 특성상 쿼리가 매우 복잡해지고 성능도 안좋음.


이걸 해결하기 위해??(여기부턴 그냥 현업 의사결정임)

통계에 필요한 모든 컬럼을 가진 커먼 테이블을 만들어버림. 여기에 포함된 컬럼만 7-80개야. 일종의 반정규화라고 생각하면 됨.


이게 평상시엔 문제가 없는데 서비스 특성상 데이터 정합성이 깨지는 경우가 있음. 이러면 어디부터 백로그가 발생했는지 추적해야되는데, 반정규화 테이블 특성상 실시간 반영이 아니기 때문에 언제 왜 이런 변경이 이뤄진건지 추적이 힘듦.


이런 문제를 해결하기 위해서도 MSA를 도입할 수 있는거야.

커먼 테이블에 강하게 묶이는 대신 인터페이스로 값을 받는다면 데이터 로깅도 쉽고, 변경 주체도 명확해지니까.


별 이유없이 오버엔지니어링이니 말하지마라. 필요한 경우가 있으니까 나온거지