
아키텍처
코드 품질 개선 기법 24편: 유산의 가치
두줄요약
테마처럼 값만 다른 경우에는 상속보다 값 객체로 표현하는 편이 더 간결하다고 정리했습니다. Kotlin의 비상속 클래스 특성을 활용해 동적 변경 가능성과 불필요한 로직을 줄이는 방법을 제안했습니다.
핵심 내용
- 테마별 값만 다른 경우 상속과 동적 디스패치보다 값 객체와 인스턴스 생성이 더 간결한 구조
- 인터페이스 기반 ThemeStrategy 대신 상속 불가 클래스로 테마 데이터를 보관하는 방식 제안
- Kotlin의 기본 비상속 성질을 활용해 속성 변경 가능성과 인스턴스 고유 로직 부재를 함께 보장
선택 이유
- 값만 다르고 동작이 같은 경우 상속 필요성 낮음
- 애그리게이션·컴포지션보다 단순한 데이터 모델이 적합한 사례
적용해볼 점
- UI 테마나 설정값처럼 정적 데이터 중심 구조는 모델 클래스로 분리
- 동적 디스패치가 실제로 필요한지 먼저 검토
- 상속이 목적에 맞는지, 값 보관만으로 충분한지 점검