CodingActivity 하나가 클래스 계층과 세 역할을 동시에 가진다

각 클라이언트는 자신에게 필요한 작은 인터페이스만 받습니다.

CodingActivity

StudyActivity

공통 상태·perform

StudyTask

execute

Trackable

progressPercent

Exportable

exportText

핵심: 역할별 매개변수는 구체 클래스와 불필요한 메서드 의존을 줄입니다.