피드로 돌아가기
Rich domain modelling: a library story
Dev.toDev.to
Backend

SOLID 원칙 기반 Rich Domain Model 구축을 통한 확장성 확보

Rich domain modelling: a library story

Leon Pennings2026년 4월 19일13intermediate

Context

DB Schema 중심의 Anemic Domain Model 설계로 인한 비즈니스 로직 분산 및 유지보수 효율 저하 발생. 요구사항 변경 시 여러 서비스 메서드와 복잡한 Join 쿼리를 수정해야 하는 구조적 한계 직면.

Technical Solution

  • Single Responsibility Principle 적용을 통한 Book과 Loan 엔티티 분리 및 도메인 책임 명확화
  • 대여 이력 관리 및 통계 분석 가능 구조를 위한 Loan 엔티티의 First-class Entity 격상
  • Open/Closed Principle 기반의 LendableItem 추상화 도입으로 신규 아이템 타입 추가 시 코드 수정 없는 확장 구현
  • ItemType 설정을 통한 Data-driven 확장 구조 설계로 런타임 구성 변경 가능성 확보
  • 기술적 계층이 아닌 도메인 수준에서의 SOLID 원칙 적용을 통한 비즈니스 개념 중심 모델링 수행

- 엔티티 설계 시 '해당 속성이 개념적으로 이 객체의 본질인가'를 검증하여 책임 분리 여부 결정 - 단순 구현 편의를 위한 속성 추가 대신 도메인 이벤트(예: Loan)를 별도 엔티티로 추출하는 방안 검토 - 새로운 타입 추가 시 클래스 생성 대신 추상 인터페이스와 설정 데이터(Configuration) 조합 고려 - 요구사항 변경 시 기술 부채로 남기지 않고 즉시 도메인 모델에 반영하는 Iterative Refinement 프로세스 도입

원문 읽기