피드로 돌아가기
The Blueprint Beneath the Blueprint: Designing Data Model and Choosing Its Database
Dev.toDev.to
Database

Database per Service 패턴 기반의 도메인 분리 설계

The Blueprint Beneath the Blueprint: Designing Data Model and Choosing Its Database

Eugene Zimin2026년 5월 23일19intermediate

Context

단일 데이터베이스 구조로 인한 도메인 간 강결합 문제와 확장성 제약 발생. 데이터 모델링 없는 상태에서 작성된 다이어그램의 모호함으로 인해 구현 단계의 계약 정의가 불분명한 한계 노출.

Technical Solution

  • Data Model 우선 설계를 통한 시스템 동작의 명확한 계약(Contract) 정의
  • User Management(UMS)와 Twitter 도메인을 분리한 Database per Service 아키텍처 채택
  • 인증 및 권한 관리와 콘텐츠/소셜 그래프의 관심사 분리를 통한 독립적 스케일링 구조 확보
  • DB 레벨의 외래 키 제약 대신 애플리케이션 계층에서 관계를 관리하는 Trade-off 결정
  • Use Case 기반의 엔티티 추출을 통한 불필요한 필드 제거 및 데이터 모델 정규화

- 데이터 모델링 완료 전 Flowchart 작성을 지양하고 데이터 계약부터 정의했는가? - 도메인 간의 경계가 DB 스키마 레벨에서 물리적으로 분리되어 있는가? - 서비스 확장 시 특정 테이블의 성능 최적화가 다른 도메인에 영향을 주지 않는 구조인가? - DB 제약 조건과 애플리케이션 로직 간의 책임 분배가 명확히 설계되었는가?

원문 읽기