4.1.1 안정적인 코드를 디자인하라
고수준 코드를 작성할 때 우리는 대부분 ‘안정적인 코드’를 작성한다. 이는 좋은 일이다. 인터페이스는 구성 요소가 외부 세계에 제공하는 것을 고수준에서 정의하기 때문에, 시간이 지나도 안정적인 코드 단위의 좋은 예다. 인터페이스는 내부 구현의 세부 사항에는 신경 쓰지 않는다. 이런 점에서 인터페이스는 고수준 코드와 저수준 코드를 분리하는 훌륭한 방법이다.
인터페이스가 기적을 일으키지는 않는다. 안정적이지 않거나 내부 구현 세부 사항을 노출하는 나쁜 인터페이스도 디자인될 수 있다. 인터페이스를 디자인할 때는 안정성과 정보 은닉을 염두해야 한다.