핵심 내용 모든 클래스와 멤버는 소프트웨어가 동작하는 한 가장 낮은 접근 권한을 부여하라. 꼭 필요한 것만 골라 최소한의 public API를 설계하자. public 클래스는 상수용 필드 외에는 어떠한 public필드를 가져선 안된다. public static final 필드가 참조하는 객체가 불변인지 확인하라. 📌 여기서 API란 어떤 클래스 혹은 인터페이스에서 제공하는 public 메서드로 다른 해당 클래스 혹은 인터페이스를 사용하는 코드에서 호출할 수 있는 메서드를 의미한다. 클래스와 멤버의 접근 권한을 최소화 하라 잘 설계된 컴포넌트는 클래스 내부 구현 정보를 외부로부터 얼마나 잘 숨겼는지에 판단된다. 자동차를 예로 들어보자. 운전자에게 제공되어야 할 기능(정보)는 자동차를 조작하기 위해 사용될 ..