좋은 캡슐화는 구현 타입이 아니라 필요한 결과를 공개한다

호출자가 private 내부 표현을 알아야 하면 API가 모순됩니다.

깨진 경계

private Book 반환
호출자 타입 접근 실패

안정 경계

String·record·interface 반환
내부 교체 가능

컴파일 실패접근 수준 불일치를 배포 전에 발견

핵심: 외부에 필요한 의미를 별도 공개 DTO나 인터페이스로 표현합니다.