피드로 돌아가기
Dev.toBackend
원문 읽기
CMS 기반 Thin Entity 설계로 God Class 제거 및 확장성 확보
Entidades finas e composição: o design que escolhi para a nova plataforma
AI 요약
Context
도메인 확장 과정에서 엔티티에 속성과 상태가 누적되어 God Class로 변질되는 문제 발생. Nullable 필드 증가와 컨텍스트별 예외 규칙 산재로 인한 유지보수 비용 상승 및 시스템 경직성 초래.
Technical Solution
- 핵심 속성만 남긴 Thin Entity 설계로 엔티티 간의 직접적인 결합도 제거
- Drupal/WordPress의 플러그인 구조를 벤치마킹한 Composition 기반 아키텍처 도입
- 순서, 가시성 등 컨텍스트 의존적 속성을 별도의 Orthogonal Piece로 분리하여 관리
- ItemDaTrilha와 같이 약한 참조(Weak Reference)를 활용한 다형적 관계 설정
- 엔티티 본연의 정체성과 맥락적 필요 사항을 분리하는 Decorator 패턴 방식의 상태 관리
실천 포인트
- 엔티티 설계 시 '본질적 속성'과 '컨텍스트 속성'을 엄격히 구분하고 있는가 - 신규 요구사항 추가 시 기존 엔티티에 필드를 추가하기보다 별도의 컴포지션 모델을 고려하는가 - 유연한 확장을 위해 DB 수준의 Referential Integrity를 일부 포기하는 Trade-off를 검토했는가 - 시스템의 노후화(Aging)를 늦추기 위한 플러그인 가능한 구조를 설계했는가