AI Briefing

코드 품질 개선 - 세션 59: 물로 만든 클래스 파사드

·2025.12.26 11:00

핵심 내용

클래스의 책임을 지나치게 분리하기보다 호출자 입장에서 인터페이스를 단순하게 유지하는 것이 중요하다.

자세히 보기

데이터 저장소인 FooValueStore의 책임을 최소화하기 위해, 모든 데이터를 삭제하는 clearAll 기능을 별도의 클래스인 FooValueStoreClearer로 분리하는 설계 방식이 있다.

하지만 이러한 구조는 호출자(Caller)에게 복잡성을 전가한다. 호출자는 두 객체 사이의 관계를 이해해야 하며, 두 객체가 동일한 인스턴스여야 하는지 등의 제약 조건을 확인해야 한다. 이는 **최소 지식 원칙(Principle of Least Knowledge)**을 위배하고 설계를 어렵게 만든다.

클래스의 책임을 결정할 때는 단순히 책임을 쪼개는 것에 집중하기보다, 호출자에게 노출되는 인터페이스의 단순함에 초점을 맞춰야 한다. clearAll 기능을 FooValueStore 내부에 직접 구현하거나 확장 함수로 정의하면, 호출자는 하나의 객체만 관리하면 되므로 설계가 훨씬 간결해진다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.