[Spring] JDBC(Java Database Connectivity)란? JDBC 드라이버란?

JDBC의 등장 배경

애플리케이션 서버에서 DB를 연결하기 위해선 어떤 동작이 필요할까? 

 

애플리케이션 서버와 DB
[그림 1] 애플리케이션 서버와 DB

 

1. 커넥션 연결 : 주로 TCP/IP를 사용해 애플리케이션 서버와 DB서버가 연결된다.

2. SQL 전달 : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달한다.

3. 결과 응답 : DB는 전달된 SQL을 수행하고 그 결과를 응답한다.

 

간단하게 표현하면 위와 같이 동작한다. 이때 DB서버를 교체한다면 어떻게  될까?

 

 

애플리케이션 서버의 DB가 변경된다면
[그림 2] DB가 변경되었을 경우

 

MySQL과 Oracle은 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답받는 방법이 모두 다르다.

 

위와 같은 방식처럼 애플리케이션 서버와 DB서버를 직접 연결하는 방식은 데이터베이스를 다른 종류로 변경하면 애플리케이션 서버에서 개발한 데이터베이스 사용 코드를 모두 변경해야 한다. 또한 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달, 결과를 응답받는 방법들을 모두 학습해야 한다는 문제점이 발생한다.

 

이러한 문제를 해결할 수 있는게 바로 JDBC라는 자바 표준이다.

 

 

JDBC(Java Database Connectivity)란? JDBC 드라이버란?

JDBC는 자바에서 데이터베이스 접속할 수 있도록 하는 자바 API이다. 이러한 JDBC는 데이터베이스에서 자료를 쿼리 하거나 업데이트하는 방법을 제공한다. 

 

JDBC 표준 인터페이스를 이용하면 위에서 언급한 문제들을 해결 할 수 있다.

 

JDBC 표준 인터페이스
[그림 3] JDBC 표준 인터페이스 ( 출처 : 참고1 )

 

JDBC 표준 인터페이스는 다음 3가지 기능을 표준 인터페이스로 정의해서 제공한다.

 

  • java.sql.Connection : 연결
  • java.sql.Statement : SQL을 담은 내용
  • java.sql.ResultSet : SQL 요청 응답

 

DB 벤더(회사)에서는 자신의 DB에 맞도록 위 JDBC 인터페이스를 구현해서 라이브러리로 제공하는데, 이것을 JDBC 드라이버라고 한다. 예를 들어 MySQL DB에 접근할 수 있는 것은 MySQL JDBC 드라이버라고 하고, Oracle DB에 접근할 수 있는 것은 Oracle JDBC 드라이버라고 한다.

 

MySQL JDBC 드라이버
[그림 4] MySQL 드라이버 사용 ( 출처 : 참고1 )

 

만약 애플리케이션 서버에서 MySQL DB에 연결하고 싶다면 MySQL 드라이버를 사용하면 된다. 

이때 만약 Oracle DB로 변경하고 싶다면 어떻게 하면 될까?

 

Oracle JDBC 드라이버
[그림 5] Oracle 드라이버 사용 ( 출처 : 참고1 )

 

JDBC 드라이버만 Oracle 드라이버로 교체해주면 된다. 

 

 

이처럼 JDBC를 사용하면 데이터베이스를 변경하더라도 JDBC 구현 라이브러리(JDBC 드라이버)만 변경하면 된다. 또한 개발자는 JDBC 표준 인터페이스 사용법만 학습하더라도 수많은 데이터베이스에 동일하게 적용할 수 있게 된다.

 

 

 

 

 

 

 


참고)

 

1. 이 포스팅은 인프런 김영한 강사님의 "스프링 DB 1편 - 데이터 접근 핵심 원리" 강의를 듣고 정리한 내용입니다.

강의 URL : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1

 

 

 

반응형

댓글

Designed by JB FACTORY