외부 계약
클래스 밖에서 안정적으로 호출해야 하는 메서드와 읽기 모델에 사용합니다.
공개 범위는 문법보다 변경 비용의 문제입니다. 호출자, 클래스 내부, 하위 클래스 중 누가 알아도 되는지를 먼저 정합니다.
클래스 밖에서 안정적으로 호출해야 하는 메서드와 읽기 모델에 사용합니다.
검증 없이 바뀌면 위험한 값, 교체 가능한 로직, 임시 계산 상태를 숨깁니다.
외부에는 감추되 하위 클래스가 재사용해야 하는 상태와 헬퍼에 사용합니다.
생성자 매개변수 속성을 활용하되, 외부 수정이 위험한 값은 읽기 전용이나 getter로 제한합니다.
상태 변경은 메서드로 모아 불변식을 지키고, 내부 필드는 직접 접근하지 못하게 합니다.