JDBC 이해

  • 직접 DB를 연결하기 보단 클라이언트가 애플리케이션 서버를 통해 데이터를 저장하거나 조회한다.

일반적인 사용법

  1. 커넥션 연결

    • 주로 TCP/IP를 사용해 커넥션을 연결한다.

  2. SQL 전달

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

  3. 결과 응답

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

    • 애플리케이션 서버는 응답 결과를 활용한다.

DB 변경

문제는 과거엔 DB마다 커넥션 연결, SQL 전달, 결과를 받는 방법 등이 모두 달랐다는 것이다.

  • DB 종류마다 애플리케이션 서버에 개발된 DB 사용 코드도 함께 변경해야 한다.

  • 개발자가 각각의 커넥션 연결, SQL 전달 등을 새로 학습해야 한다.

JDBC 표준 인터페이스

  • 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API

  • DB에서 자료를 쿼리하거나 업데이트 하는 방법을 제공한다.

  • java.sql.Connection

    • 연결

  • java.sql.Statement

    • SQL을 담은 내용

  • java.sql.ResultSet

    • SQL 요청 응답

이제 개발자는 이 표준만 사용해서 개발하면 된다. 하지만 인터페이스만 있다고 기능이 동작하는 것은 아니다.

JDBC 드라이버

  • JDBC 인터페이스를 각 DB 벤더에서 자기 DB에 맞도록 구현해서 라이브러리로 제공한 것

  • 애플리케이션 로직에서는 표준 인터페이스를 그대로 사용하면서 드라이버만 바꿀 수 있다.

참고

표준화의 한계

  • JDBC로 많은 문제가 해결되었지만 일부는 사용법이 다르다.

  • 결국 DB를 변경하면 JDBC 코드는 변경하지 않지만 SQL은 해당 DB에 맞게 변경해야 한다.

  • JPA를 사용하면 이런 문제도 부분적으로 해결할 수 있다.

Last updated