외부 API로 남길 멤버
클래스 내부 허용
자식 클래스 허용
인스턴스 외부 허용
호출부가 의존해도 되는 이름과 반환 타입만 공개합니다.
외부 호출부가 써도 되는 계약, 클래스 내부의 불변식, 자식 클래스의 확장
지점을 분리하면
public, private,
protected 선택이 명확해집니다.
호출부가 의존해도 되는 이름과 반환 타입만 공개합니다.
검증 로직을 우회하면 안 되는 값은 메서드를 통해서만 바꿉니다.
하위 클래스가 재사용할 훅은 노출하되 외부 호출은 막습니다.
속성을 private으로 숨기고, 검증을 통과한 변경만
public
메서드로 열어 잘못된 상태 유입을 막습니다.
공통 로직은 protected 메서드로 올리고, 외부에 필요한
결과만 공개합니다.