원시 setter보다 의도 있는 행동이 불변식을 지킨다

상태 변경의 목적을 이름과 검증으로 함께 표현합니다.

setMinutes(655)

임의 값 교체
상한 우회

extend(15)

현재 값과 상한 검사
성공 여부 반환

캡슐화필드 숨김 + 허용된 상태 전이 공개

핵심: getter와 setter를 자동 생성하는 것만으로 객체 책임이 생기지 않습니다.