아이템 15

    [Effective Java] item 15. 클래스와 멤버의 접근 권한을 최소화하라

    본문은 Effective Java를 읽고 정리한 내용을 기반으로 작성된 글입니다. 어설프게 설계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 바로 클래스 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼느냐다. 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨, 구현과 API를 깔끔히 분리한다. 오직 API를 통해서만 다른 컴포넌트와 소통하며 서로의 내부 동작 방식에는 전혀 개의치 않는다. 정보 은닉, 혹은 캡슐화라고 하는 이 개념은 소프트웨어 설계의 근간이 되는 원리다. [모든 클래스와 멤버의 접근성을 가능한 한 좁혀야 한다] : 소프트웨어가 올바로 동작하는 한 항상 가장 낮은 접근 수준을 부여해야 한다. ☑️ 톱레벨 클래스, 인터페이스에 부여할 수 있는 접근 수준 public..