JDBC(Java Database Connectivity)는 Java 언어 기반의 데이터베이스 연동을 위한 표준 인터페이스 API로, Java 프로그램이 다양한 관계형 데이터베이스(RDBMS)와 독립적으로 통신할 수 있도록 중간 계층 역할을 수행한다. JDBC는 ANSI SQL을 기반으로 하며, 플랫폼 독립적 데이터베이스 연동을 핵심 목표로 한다.
Java 애플리케이션이 DB와 통신할 수 있도록 하는 인터페이스 집합. 주요 구성은 다음과 같다.
JDBC 드라이버는 API 호출을 실제 DBMS의 프로토콜로 변환하는 역할을 하며, 아래와 같이 4가지 유형으로 분류된다.
드라이버 유형 | 설명 | 장단점 |
---|---|---|
Type 1 (JDBC-ODBC Bridge) | ODBC 호출을 브리지로 연결 | 단순하지만 플랫폼 종속 |
Type 2 (Native-API Driver) | 벤더 API 사용 | 성능 우수, 플랫폼 종속 |
Type 3 (Network Protocol Driver) | 미들웨어 서버를 통해 통신 | 확장성 우수, 복잡 |
Type 4 (Thin Driver / Pure Java) | Java로 구현된 직접 연결 | 플랫폼 독립, 현대 JDBC 표준 |
JDBC는 추상화 기반 설계를 통해 다양한 DBMS에 대한 종속성을 제거하고, 개발자에게는 일관된 API를 제공한다. 이러한 접근은 벤더 종속성 문제를 해소하며, Java의 "Write Once, Run Anywhere" 철학을 데이터베이스 영역으로 확장시켰다.
SQLException
을 통해 DBMS 오류를 캡슐화하며, SQLState
, ErrorCode
등을 통해 상세 원인을 제공함으로써 표준화된 예외 처리 방식을 구현한다.
JDBC는 Java에서 데이터베이스를 제어하기 위한 기반 기술이자 확장 기술의 뿌리로, 그 자체로 완결된 접근 방식을 제공하지만, 현대 애플리케이션에서는 보완적 활용이 일반적이다. 기술 선택은 요구사항의 복잡성, 성능, 유지보수성을 기준으로 하여 계층적 설계 구조를 수립해야 하며, JDBC는 그 기반 역할로 여전히 유효한 기술로 평가된다.