AI Briefing

코드 품질 개선 - 세션 50: 단 하나의 진실

·2025.10.24 11:00

데이터 모델을 분리하여 집계나 합성을 적용할 때, 값의 중복으로 인한 잘못된 상태 생성을 방지하는 설계 방법을 제시한다.

데이터 모델 내에 생명주기가 다르거나 사용 범위가 다른 속성들이 섞여 있다면, 이를 분리하여 코드의 견고함을 높일 수 있다. 예를 들어, 자주 변경되는 onlineStatus와 잘 변하지 않는 accountType을 별도의 모델로 나누어 의존성 방향을 명확히 하는 방식이다.

하지만 **집계(Aggregation)**나 **합성(Composition)**을 적용할 때 주의해야 할 점이 있다. 만약 상위 모델인 UserState가 하위 모델인 AccountModel을 포함하면서, 두 모델 모두에 동일한 userId를 가지고 있다면 서로 다른 ID를 가진 객체들이 조합되어 **잘못된 상태(Invalid state)**가 만들어질 위험이 있다.

이러한 문제를 해결하려면 **값의 중복(Value duplication)**을 피해야 한다. 상위 모델에서 userId를 아예 삭제하거나, 하위 모델의 userId를 참조하도록 설계하여 데이터의 일관성을 보장해야 한다.

또한, **팩토리 함수(Factory function)**를 활용해 속성 간의 불일치를 원천 차단할 수 있다. 두 모델의 ID가 일치하는지 검증한 후 인스턴스를 생성하는 방식을 사용하면, 잘못된 값의 조합이 생성되는 것을 방지할 수 있다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.