더북(TheBook)

클래스 내부의 세부 사항을 숨기는 것은 다른 소프트웨어 구성 요소에 신경 쓰지 않고 소프트웨어 구성 요소를 독립적으로 발전시키는 데 매우 중요하다. 한 클래스를 리팩터링했을 뿐인데 시스템의 클래스 수백 개를 변경해야 한다고 상상해보라. 시간도 많이 소모되고 비용도 많이 들 것이다.

컴퓨터 과학에서는 이러한 원칙을 정보 은닉(information hiding)이라고 부른다. 변화 가능성이 높은 것과 그렇지 않은 것을 분리함으로써, 어떤 요소를 변경해도 다른 구성 요소들이 많이 변경될 필요가 없도록 하는 것이 정보 은닉의 핵심 아이디어다.

모든 클래스의 세부 사항을 숨기는 것은 불가능하지만, 무엇을 노출하고 무엇을 숨길지 명시적으로 디자인할 수는 있다. 이에 도움이 되는 몇 가지 지침을 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.