Access audit

접근 지정자는 불변식이 지나갈 문을 정한다

public, private, protected는 문법 장식이 아니라 객체 상태를 누가 읽고 바꿀 수 있는지 제한하는 설계 도구입니다.

public

외부 계약

호출자가 의존해도 되는 함수와 타입만 공개합니다.

private

내부 불변식

멤버 변수와 보조 함수는 클래스가 직접 검증할 수 있게 숨깁니다.

protected

상속 경계

파생 클래스가 재사용해야 하지만 외부에는 보이지 않아야 할 지점에 둡니다.

default

기본값 확인

class는 private, struct는 public으로 시작한다는 차이를 먼저 봅니다.

변경 전

새 멤버를 공개하기 전에 외부 코드가 정말 알아야 하는 정보인지 묻습니다.

변경 후

테스트가 public API만 사용해 객체 상태를 검증하는지 확인합니다.

접근 지정자의 목표는 숨기기가 아니라 객체가 스스로 일관성을 지킬 수 있는 통로만 남기는 것입니다.