
아키텍처
코드 품질 개선 기법 14편: 책임을 부여하는 오직 하나의 책임
두줄요약
책임을 분리하면 코드가 더 깔끔해질 것 같지만, 제약 조건과 의존성이 오히려 흩어질 수 있었습니다. 클래스 분할뿐 아니라 호출자 부담과 결합도까지 함께 살펴야 했습니다.
핵심 내용
- 버튼 클릭 시 실행 로직과 어떤 Launcher를 선택할지의 책임 분리 사례
- 책임 분리 과정에서 제약 조건의 분산, 상태 중복, 의존성 노출, 호출자 비대화 문제 발생
- 클래스 응집도 개선만 보지 말고 호출자 책임과 결합도까지 함께 고려할 필요
적용해볼 점
- 책임 분할 시 사양의 제약 조건을 한 곳에서 확인할 수 있는지 점검
- 상태 중복과 의존성 전파로 인한 God class, Ravioli code 가능성 검토
- 개별 클래스보다 모듈 전체의 책임 배치를 함께 설계