JDBC 이해

Minseo Kang·2023년 3월 14일
0
post-thumbnail

01. JDBC 등장 이유

애플리케이션 개발 시 중요한 데이터는 대부분 데이터베이스에 보관

클라이언트, 애플리케이션, 서버, DB

  • 앱이나 웹이든, 직접 데이터베이스에 접근해서 무언가를 하지 않음
  • 앱이나 웹이 애플리케이션 서버에 요청을 보내면 필요한 비즈니스 로직을 수행 후 DB에 전달하여 보관
  • 아래에 나오는 일반적인 사용법을 통해 데이터베이스를 사용함


애플리케이션 서버와 DB - 일반적인 사용법
1) 커넥션 연결 : 주로 TCP/IP 사용
2) SQL 전달 : 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달
3) 결과 응답 : DB는 전달된 SQL 수행 후 결과를 응답, 애플리케이션 서버는 응답 결과 활용


애플리케이션 서버와 DB - DB 변경

  • 각각의 데이터베이스마다 커넥션을 연결하는 방법 / SQL을 전달하는 방법 / 결과를 응답받는 방법이 모두 다름
  • 관계형 데이터 베이스는 수십 개가 존재


문제 발생과 해결
1) 데이터베이스의 종류를 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함께 변경해야 함
2) 개발자가 각각의 데이터베이스마다 커넥션 연결 / SQL 전달, 결과를 응답 받는 결과를 새로 학습해야 함
-> JDBC라는 자바 표준이 등장




02. JDBC 표준 인터페이스


JDBC 표준 인터페이스

JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공


대표적으로 다음 3가지 기능을 표준 인터페이스로 정의하여 제공

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


JDBC 드라이버

  • JDBC 인터페이스를 각각의 회사에서 자신의 DB에 맞게 구현하여 라이브러리로 제공하는 것
  • ex1) MySQL DB에 접근할 수 있는 것 = MySQL JDBC 드라이버
  • ex2) Oracle DB에 접근할 수 있는 것 = Oracle JDBC 드라이버


JDBC의 등장으로 해결된 문제
1) 데이터베이스를 다른 종류의 데이터베이스로 변경하면 애플리케이션 서버의 데이터베이스 사용 코드 또한 변경해야하는 문제

  • 애플리케이션 로직은 오직 JDBC 표준 인터페이스에만 의존하게 되었음

2) 개발자가 각각의 데이터베이스를 다루는 방법을 알아야 하는 문제

  • 개발자는 JDBC 표준 인터페이스 사용법만 학습하면 됨



참고 - 표준화의 한계

  • 데이터베이스를 변경하면 JDBC 코드는 변경하지 않아도 됨
  • SQL은 해당 데이터베이스에 맞도록 변경해야 함
  • JPA(Java Persistence API) 사용하면 각각의 데이터베이스마다 다른 SQL을 정의해야 하는 문제도 해결 가능

0개의 댓글