대부분의 코드는 다른 코드와 협력
협력에 필요한 것은 '무엇'
→ 인터페이스
→ '무엇'을 표현
→ 현력하는 코드 사이의 계약
→ 추상화 결과
효과적인 모듈화
조직 간 의사소통 최소화
변경 여파 최소화
시스템 이해 도움
공개된 설계 결정과 숨겨진 설계 결정
🤦♀️
인터페이스는 프로토콜로 완전 치환이 가능할까?