TIL

TIL - 모놀리식 기반 MSA 지향적 도메인 및 DB 설계

kinim329 2026. 2. 24. 23:43

오늘 프로젝트의 첫 설계를 시작하며, 현재는 모놀리식 방식을 사용하지만 나중에 MSA로 쉽게 전환할 수 있는 DB 구조를 잡았다. 전체 시스템을 유저, 가게, 주문, 결제라는 4개 영역으로 확실히 나누고, 서비스끼리 복잡하게 얽히지 않도록 도메인 사이의 직접적인 Join이나 외래키 연결은 하지 않았다. 하지만 같은 도메인 안에 묶인 데이터들은 데이터의 정확성을 유지하기 위해 서로 연결해서 조인이 가능하도록 설계의 응집력을 높였다.

 

성능을 위해 데이터를 조금씩 중복해서 저장하는 스냅샷 전략을 택했다. 각 서비스가 분리되면 조회가 느려질 수 있는데, 이를 방지하고자 리뷰 조회 등에 필요한 식별자나 메뉴 명칭을 미리 저장해 서비스 간 의존성을 낮췄다.

 

MSA 구조를 염두에 두고 처음으로 설계를 진행해봤는데, 서비스 간의 경계를 나누고 데이터 흐름을 예측하는 과정이 꽤 까다롭다는 것을 느꼈다.

성능과 무결성 사이에서 타협점을 찾는 게 꽤 까다로웠다. 직접 고민해 보니 설계 단계에서 방향을 잘 잡는 게 얼마나 중요한지 실감했다