
아키텍처
코드 품질 개선 기법 12편: 세트 할인
두줄요약
가변 속성을 개별적으로 바꾸면 이전 값이 남아 버그가 생길 수 있었습니다. 정책 객체로 묶어 상태 갱신 시점과 조합을 제한하는 방식이 더 안전했습니다.
핵심 내용
- 세 가지 가변 속성의 독립 변경이 만드는 혼란과 버그 가능성
- 샘플링 활성 상태와 정책을 분리하지 않고 하나의 정책 객체로 묶는 설계
- 상태 갱신 시점과 값 조합을 제한해 동작을 단순화하는 접근
적용해볼 점
- 서로 연동되는 속성은 개별 setter보다 일괄 갱신 인터페이스로 제공
- 활성/비활성 상태를 null 같은 단일 상태로 표현해 이전 값 재사용 방지
- 재설정 조건을 명시해 비동기 변경과 경쟁 상태 위험을 줄이기