JAVA
[이펙티브 자바] 클래스와 인터페이스
item15. 클래스와 멤버의 접근 권한을 최소화하라내부 데이터와 내부 구현 정보를 외부로부터 얼마나 잘 숨겼는지가 중요하다정보은닉, 캡슐화라고 함시스템을 구성하는 컴포넌트를 독립시켜 개발, 테스트, 최적화, 적용, 분석, 수정이 개별적으로 가능해야 함장점컴포넌트 간 의존성 x → 독립적인 병렬 개발이 가능 → 개발 속도 증가컴포넌트별 디버깅이 가능 → 관리 비용이 절약컴포넌트별 최적화가 가능 → 성능 최적화 적용이 쉬움컴포넌트 간 의존성 x → 재사용 가능컴포넌트별 테스트 가능 → 제작 난이도 낮아짐컴포넌트 간 의존성을 없애는 것의 핵심이 접근 제한자임 → 가능하면 가장 낮은 접근 수준을 유지private: 멤버를 선언한 톱레벨 클래스에서만 접근 가능package-private: 멤버가 소속된 패키지 ..