Java에서 인터페이스를 활용하여 다양한 API를 제작하고 사용하는 프로그래밍 방식으로 Java 어플리케이션 개발 시 외부 자원과의 통신에 적용된다.
일반적으로 데이터베이스와 같은 외부 자원을 활용하기 위해서는 해당 자원과 통신하기 위한 API를 설계하고 개발해야 한다. 그러나 각 DB 벤더마다 접속 방식이 다르기 때문에, 자바에서 모든 API를 제공하기 어렵다.
인터페이스 기반의 프로그래밍은 이러한 문제를 해결하기 위해 제시된 솔루션 중 하나다. Java는 각 데이터베이스 벤더에게 특정 API를 개발할 것을 강제하지 않고, 대신 인터페이스를 제공하여 각 벤더가 이를 상속받아 자신의 API를 구현하도록 한다.
즉, '무엇을 할지'는 명시하되, '어떻게 할지'는 각 벤더가 구현하도록 함으로써 각 벤더가 자체 API를 제공할 수 있고, 개발자들은 표준화된 인터페이스를 통해 다양한 데이터베이스와 통신할 수 있도록 한다. 결과적으로 인터페이스 기반의 프로그래밍은 자바 어플리케이션 개발 시에 외부 자원과의 통신을 보다 효율적이고 유연하게 만들어 준다.
또한 .class 파일만 제공하여(소스 파일 노출X) 각 DB 벤더들은 API(C)의 구현 세부 사항을 숨기고 인터페이스(B)를 통해 구현 클래스의 메서드들을 A가 동작시킬 수 있어(업캐스팅) A-B-C 간의 느슨한 연결(Loose Coupling)이 실현된다.
JDBC API
자바에서 데이터베이스에 접근하기 위한 표준 API인 JDBC는
다양한 데이터베이스 벤더들이 자신의 시스템에 맞게 구현할 수 있도록 제공한 인터페이스다.