외부 소프트웨어를 사용하게 된다면 이 코드를 우리 코드에 깔끔하게 통합해야 한다.
경계에 위치하는 코드는 분리해야 한다.
경계 인터페이스를 클래스 안으로 숨겨 밖으로 노출되지 않도록 한다.
프로그램에 필요한 인터페이스만 제공하도록 함으로써 우리의 설계 규칙, 비즈니스 규칙을 따르도록 강제할 수 있다.
바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신, 간단한 테스트 케이스를 작성해 외부코드를 익히는 것이 좋다.
이를 학습 테스트라고 한다.
학습 테스트를 통해 새로운 버전의 패키지가 나와서 변경이 발생해도 이를 빠르게 파악하여 수정할 수 있다. 따라서 낡은 버전을 필요 이상으로 오랫동안 사용할 필요도 없다.
아는 코드와 모르는 코드를 분리하는 경계에서, 모르는 영역은 일단 쳐다보지 않는다.
대신 필요한 내용으로 자체적인 인터페이스를 구현하면, 인터페이스를 전적으로 통제할 수 있어 코드의 의도도 분명해진다.