본문 바로가기
Computer Science/Database

[JDBC] JDBC (Java Database Connectivity)

by pilgyeong 2023. 1. 12.

문제의 상황

만약, CRUD를 해야되는 상황일 때

같은 기능인데, 함수 명령어가 다를 때

요구사항이 같은데, 매번 써야되는 함수가 다르다면 데이터베이스를 바꿀 때마다 모든 코드를 갈아엎어야 한다.

이때, 필요한 것이 표준 인터페이스이다.

 

표준 인터페이스의 필요성

개발자는 표준 인터페이스에 정의된 클래스와 함수만 사용하고, 사용하는 DB에 따라 라이브러리만 바꿔끼우면, 코드의 수정 없이 같은 동작이 가능하도록 할 수 있다.

 

 

JDBC (Java Database Connectivity)

  • Java application이 client로서 어떻게 데이터베이스에 접근하는지 정의해놓은 표준 인터페이스이다. Java Standard Edition (Java SE)에서 지원하는 스펙이다.
  • Database에 접속하고 데이터를 업데이트하거나 쿼리(질의)할 수 있는 메소드를 제공한다. 기본적으로 RDBMS(관계형 데이터베이스)를 상정하고 만들어졌다.
  • 즉, 어떤 RDBMS를 접근하는 Java Application을 작성하려면, 해당 데이터베이스가 JDBC 클라이언트 라이브러리를 구현해놓았는지를 먼저 찾아야 한다.
  • JDBC는 표준인터페이스이므로 JDBC를 따르지 않는 클라이언트 라이브러리도 존재할 수 있다. NoSQL 데이터베이스 또는 빅데이터 계열은 JDBC를 따르지 않고 독자적인 메소드를 만드는 편이다.
  • 빅데이터 OLAP에서도 대부분 JDBC 연결을 지원하는 편이다. 왜냐하면, OLAP은 분석용으로 많이 사용하는데, 분석용 클라이언트 앱(대표적으로 Tableau)들이 기존에 JDBC 연결을 기반으로 만들어졌기 때문이다.

 

ODBC (Open Database Connectivity)

  • JDBC를 통해 Java Application에서는 DBMS의 종류를 바꾸어도 인터페이스(코드)는 변경하지 않아도 되는 장점을 얻었다. DBMS를 사용하는 많은 시스템들이 자바로 작성된 어플리케이션인 것에는 JDBC의 영향이 크다.
  • 프로그래밍 언어나 운영체제에 상관없이 DBMS에 독립적으로 사용할 수 있는 전송계층을 만들려는 노력으로 ODBC driver가 만들어졌다.
  • Java에서도 ODBC를 사용할 수 있는데, JDBC-to-ODBC bridge가 JVM 기반의 어플리케이션이 ODBC에 연결할 수 있도록 도와준다. Java 개발자는 이런 이유로 클라이언트 코드를 작성할 때 JDBC만 쓰면 된다.

출처 : https://static.javatpoint.com/images/type11.JPG

 

  • ODBC는 초기에는 지원이 미비했지만, 점차 Java 말고도 다른 프로그래밍 언어나 클라이언트 앱들이 DBMS를 사용하고자 하는 요구가 많아지면서 주요 DBMS에서는 ODBC 인터페이스에 맞는 드라이버를 제공한다. 빅데이터 OLAP에서도 JDBC 다음으로 OLAP도 많이 지원하고 있는 추세이다.

 


데이터엔지니어 조이(Joey) 강사님의 강의 요약