피드로 돌아가기
Entidades finas e composição: o design que escolhi para a nova plataforma
Dev.toDev.to
Backend

CMS 기반 Thin Entity 설계로 God Class 제거 및 확장성 확보

Entidades finas e composição: o design que escolhi para a nova plataforma

Alberto Luiz Souza2026년 5월 25일9intermediate

Context

도메인 확장 과정에서 엔티티에 속성과 상태가 누적되어 God Class로 변질되는 문제 발생. Nullable 필드 증가와 컨텍스트별 예외 규칙 산재로 인한 유지보수 비용 상승 및 시스템 경직성 초래.

Technical Solution

  • 핵심 속성만 남긴 Thin Entity 설계로 엔티티 간의 직접적인 결합도 제거
  • Drupal/WordPress의 플러그인 구조를 벤치마킹한 Composition 기반 아키텍처 도입
  • 순서, 가시성 등 컨텍스트 의존적 속성을 별도의 Orthogonal Piece로 분리하여 관리
  • ItemDaTrilha와 같이 약한 참조(Weak Reference)를 활용한 다형적 관계 설정
  • 엔티티 본연의 정체성과 맥락적 필요 사항을 분리하는 Decorator 패턴 방식의 상태 관리

- 엔티티 설계 시 '본질적 속성'과 '컨텍스트 속성'을 엄격히 구분하고 있는가 - 신규 요구사항 추가 시 기존 엔티티에 필드를 추가하기보다 별도의 컴포지션 모델을 고려하는가 - 유연한 확장을 위해 DB 수준의 Referential Integrity를 일부 포기하는 Trade-off를 검토했는가 - 시스템의 노후화(Aging)를 늦추기 위한 플러그인 가능한 구조를 설계했는가

원문 읽기