JDBC(Java Database Connectivity)는 DBMS의 종류와 관계없이 데이터베이스를 조작하기 위한 Java API이다.
간단한 예시를 들어보자.
사용자가 UI를 통해 로그인을 요청한다. 그럼 프로그램은 SQL 문장을 실행해서 해당 정보가 데이터베이스에 들어있는지 확인하고 적절한 응답을 반환한다. 프로그램의 DB로는 Oracle을 사용하고 있다. DB의 종류에 상관없이 DB가 하는 일은 근본적으로 같다.
- 해당 DB 서버에 연결하고
- SQL 문장을 실행하고
- 결과값을 반영한다
만약 내가 만든 프로그램이 Oracle을 쓰고 있었는데, 이를 MySQL로 바꿔야할 일이 생겼다고 해보자. DB가 하는 일은 같지만 각 제품마다 사용법이 다르기 때문에 이를 사용하기 위한 API도 조금씩 차이가 있을 것이다. 그렇기 때문에 프로그램 전체를 수정해야한다. 뿐만 아니라 개발자는 Oracle을 사용하기 위한 API와 MySQL을 사용하기 위한 API를 모두 익혀야하는 부담이 생긴다.
하는 일은 같은데, 작동법이 조금씩 다르다는 이유로 이렇게 큰 비용을 치러야한다니... 인터페이스가 필요한 시점이다.
이러한 문제를 해결하기 위해 탄생한 것이 JDBC이다. JDBC는 거창한 무언가가 아니라 단순히 DB와 Java 프로그램을 연결하는 인터페이스이다.
프로그래머는 JDBC를 다룰줄만 알면 나머지 DB 제품과 관련된 구체적인 사항들은 신경쓰지 않고 프로그래밍을 할 수 있다. 단 실제로 SQL을 구동할 수 있는 JDBC 드라이버가 필요한데, 이는 각 DBMS의 회사들이 자신들의 제품에 맞게 미리 준비해놓고 있다.
따라서 우리는 사용할 데이터베이스 제품의 JDBC 드라이버를 다운받아서 프로젝트에 설정만 해놓으면, JDBC를 통해 데이터베이스를 조작할 수 있고, 설령 DB를 다른 제품으로 교체하더라도, 해당 제품의 JDBC 드라이버만 다운받으면 코드를 거의 변경하지 않고 데이터베이스를 교체할 수 있다.
'Java > Java-basic' 카테고리의 다른 글
[Java] JDBC 기본 코드의 이해 (0) | 2021.02.21 |
---|---|
[Intellij] 인텔리제이 MySQL - JDBC 연동 방법 (Java) (2) | 2021.02.20 |
[Java Study 13주차] I/O (0) | 2021.02.18 |
[Java Study 12주차] Annotation (0) | 2021.01.31 |
[Java Study 11주차] Enum (0) | 2021.01.23 |
댓글