본문 바로가기
Etc

인터페이스가 필요한가?

by 당리 2025. 3. 30.

응용 서비스 구현시 인터페이스의 필요성에 대해 종종 논의됨

 

  • 인터페이스가 필요한 경우?
    • 여러 구현체가 존재하는 경우
    • 런타임에 구현 객체를 바꿀 필요가 있을 경우
  • 단일 구현체다?
    • 하나의 응용 서비스에 대해 한 가지의 구현만 존재하기에, 인터페이스로 인한 구조 복잡성이 쓸 데 없이 증가한다.

만약 TDD 의 경우

  • TDD 는 실제 클래스의 구현 전에 인터페이스의 작성을 미리 다 해놓고 개발을 진행해야하기에, 인터페이스가 필요함
  • 하지만, TDD가 아닌 경우 Mockito같은 도구로 클래스에 대한 테스트 객체를 모킹이 가능하기에, 인터페이스가 무조건적으로 필요하지는 않다.