애플리케이션 서버와 DB의 통신 과정

  1. 커넥션 연결 : 주로 TCP/IP를 사용하여 커넥션 연결
  2. SQL 전달 (WAS -> DB) : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달
  3. 결과 전달 (DB -> WAS) : DB는 전달받은 SQL을 실행하고 그 결과를 응답한다.

문제점

  • DB(Postgresql, Mysql, Oracle .. )마다 커넥션 연결 방법, SQL 및 결과 전달 방법이 다르다
  • 따라서 기존 DB를 다른 종류로 변경해야 한다면 애플리케이션 서버에 개발된 DB 접근 코드를 수정해야 한다.
  • 또한 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달 및 결과 응답 방법을 새로 학습해야 한다.
  • 이러한 문제를 해결하기 위해 JDBC라는 Java 표준 등장

JDBC (Java DataBase Connectivity) 란?

  • Java에서 데이터베이스에 접근할 수 있도록 하는 Java API. 즉, Java 표준 인터페이스이다.
  • 데이터베이스 접근 방법을 추상화한 인터페이스
  • JDBC는 데이터베이스에 쿼리를 전달하여 자료를 업데이트하거나 가져오는 방법을 제공한다.
  • 대표적으로 다음 세 가지 기능을 표준 인터페이스로 정의하여 제공한다
    • Java.sql.Connection : 연결
    • Java.sql.Statement : SQL 전달
    • Java.sql.ResultSet : 결과 응답
  • 각각의 DB 회사에서 자신들의 DB에 맞게 이 인터페이스를 구현하여 라이브러리로 제공하면 개발자는 그 구현체를 사용하여 DB에 접근한다.

JDBC를 통해 기존 문제 해결

  • 애플리케이션 코드는 JDBC 표준 인터페이스에만 의존하므로 DB를 변경하고 싶다면 JDCB 구현 라이브러리만 변경하면 된다. 즉, 코드를 수정하지 않아도 된다.
  • 개발자는 JDBC 표준 인터페이스 사용법만 학습하면 된다.

+ Recent posts