Access

접근 지정자 경계

public은 사용하는 방법을, private은 구현 세부와 불변식을 보호하는 공간을 나타냅니다.

접근 지정자 경계접근 지정자는 객체 내부 상태와 외부 인터페이스를 나눕니다. public, private, protected의 노출 범위를 먼저 정합니다.
접근 지정자 경계 점검 항목접근 지정자는 외부 API와 내부 구현 경계를 나누므로, 공개할 이름과 숨길 상태를 먼저 정합니다.
public

public 최소 표면

private

private 내부 구현

protected

protected 공개 범위

기본값class는 private, struct는 public이 기본 접근입니다.
캡슐화값 변경은 setter보다 의미 있는 멤버 함수로 제한해야 불변식이 흩어지지 않습니다.
불변식객체가 항상 지켜야 하는 조건은 private 상태와 public 함수로 보호합니다.

상태 경계 접근 지정자는 감추기 위한 장식이 아니라, 타입이 스스로 올바른 상태를 유지하게 하는 안전장치입니다.