15. 클래스와 멤버의 접근 권한을 최소화하라 아주 기본적인 내용이지만, 처음 입문했을 때 모든 내부 구현 정보를 외부에 제공하던 설계를 만들었던 시기가 생각나는 아이템이었다. 결론적으로, 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨서 구현과 API를 깔끔히 분리하고, 오직 API를 통해서만 다른 컴포넌트와 소통하고 내부의 동작에는 상호 개의치 않는 설계가 필요하다. 우리가 흔히 이야기하는 이 개념은 정보 은닉, 캡슐화로, 설계의 근간이다. 장점 시스템 개발 속도를 높인다. 여러 컴포넌트가 병렬로 개발할 수 있기 때문에 시스템 관리 비용을 낮춘다. 컴포넌트를 더 빨리 파악해, 디버깅하고 다른 컴포넌트로의 교체도 부담 적음 성능 최적화 단계에서 도움이 될 수 있다. 완성된 시스템을 프로파일링해 최적..