하나의 시스템을 만드는데 있어 모든 소프트웨어를 직접 개발하는 경우는 드물다. 외부 API 혹은 라이브러리를 사용할 수도 있으며 단순히 DB접근을 하더래도 흔히 다른 소프트웨어를 사용하곤 한다. 이러한 외부 코드를 우리의 코드에게 깔끔하게 통합해야할 필요가 있다. 외부코드 사용하기 인터페이스 제공자는 많은 사람들이 인터페이스를 사용하게 끔 많은 환경에서 돌아가게끔 하고, 사용자는 자신에게만 알맞는 인터페이스를 찾기 원한다 이에 따른 시스템 경계에 따른 문제들이 있는데 대표적인 예로 Map 이 있다. Map 같은 경우는 누가 선언을 했던 지우는 권한은 누구에게나 있으며 key 값을 자유로이 선언할 수 있어 어떠한 객체든 추가 할 수도 있다. 이렇게 되면 사용자가 사용함에 있어 혼돈이 있을 수 있고 어떻게 ..