Interface Driven Design

계약 중심 의존 흐름

인터페이스는 구현체를 감추는 벽이 아니라, 호출자가 의존할 안정적인 계약을 앞에 세우는 설계 방식입니다.

1

호출자

구체 클래스가 아니라 필요한 메서드 모양만 알고 작업을 요청합니다.

2

계약

입력, 출력, 속성 이름을 고정해 구현체가 지켜야 할 표면을 만듭니다.

3

구현체

파일 로그, 콘솔 로그, 테스트 더블처럼 같은 계약을 다른 방식으로 만족합니다.

교체

호출자 변경 없이 구현체만 바꿈

테스트

가짜 구현으로 의존성 격리

확장

새 구현체를 추가해 기능 확장