접근 제어자 정리

접근 제어자 선택 기준

공개 범위는 문법보다 변경 비용의 문제입니다. 호출자, 클래스 내부, 하위 클래스 중 누가 알아도 되는지를 먼저 정합니다.

public

외부 계약

클래스 밖에서 안정적으로 호출해야 하는 메서드와 읽기 모델에 사용합니다.

private

내부 구현

검증 없이 바뀌면 위험한 값, 교체 가능한 로직, 임시 계산 상태를 숨깁니다.

protected

상속 확장점

외부에는 감추되 하위 클래스가 재사용해야 하는 상태와 헬퍼에 사용합니다.

DTO 모델

lean

생성자 매개변수 속성을 활용하되, 외부 수정이 위험한 값은 읽기 전용이나 getter로 제한합니다.

도메인 객체

guard

상태 변경은 메서드로 모아 불변식을 지키고, 내부 필드는 직접 접근하지 못하게 합니다.