JDBC(Java DataBase Connectivity)
JDBC란 자바 프로그램에서 데이터베이스를 표준화된 방법으로 접속할 수 있도록 만든 API 규격이다. 이 JDBC를 통해 개발자는 DB 종류에 무관하게 표준화된 API를 이용해 프로그램 개발이 가능하고 만약 DB의 종류 변경된다 하더라도 프로그램 수정은 최소화된다. 아직 이것이 무슨말인지 와닿지 않을것이다. JDBC가 탄생한 과정과 JDBC가 무엇인지 조금 더 자세히 알아보자
SQL을 작성할 수 있는 사람들을 위한 쿼리 실행 도구는 DB Client 프로그램
오라클을 또는 MS SQL 서버를 배운 적이 있는 사람이라면 SQL문을 직접 작성한 내용을 가지고 오라클이나 MS SQL 서버에 접속해서 그것을 실행하기 위해서 DBMS를 쓰기 위한 클라이언트 도구인 SQL Developer를 썼을거다. SQL Developer는 모든 DBMS를 만드는 회사들이 제공해주고 있는 클라이언트이다. SQL Developer를 통해 오라클에 접속해서 쿼리를 실행할 수 있도록 하기 위해서 연결/인증과 문장 실행, 그 다음 결과를 패치한 결과를 볼 수 있도록 하는 기능을 갖고 있다. 각 DBMS는 연결/인증, 문장실행, 결과패치 도구도 다르고 DBMS도 다르지만 그 기능은 일맥하다.
SQL을 작성할 수 없는 사람들을 위한 쿼리 실행 도구는 업무용 프로그램
SQL을 작성할 수 없는 사람도 웹사이트나 프로그램의 UI를 통해서 SQL문이 작성되도록 하여 간접적으로 데이터베이스를 이용한다. 프로그래머는 사용자가 데이터베이스를 이용하기 위해서 사용자의 요구에 부응한 쿼리를 만들어주고 그걸 실행할 수 있게 해주는 것이다. 그러기 위해선 연결/인증, 문장실행, 결과패치가 필요하고 연결/인증, 문장실행, 결과패치를 사용하기 위해서 코드에서 데이터베이스 이용할 수 있게 해주는 라이브러리인 DB API가 필요한 것이다. 즉 프로그래머가 작성한 코드 안에서 연결/인증, 문장실행, 결과패치를 이용할 수 있도록 하기 위해 DB API가 필요한것이다.
DBC(DataBase Connectivity)
서로 다른 DBMS들은 쿼리를 작성하는 SQL Developer의 기능은 같지만 UI가 다를것이고 사용하는 방법도 조금씩 다를 수 있다. 그리고 DBMS 회사들은 DB API도 제공해줘야 하는데 SQL문이 완전히 동일한 쿼리라고 해도 DB에 연결하기 위한 API 자체가 다르기 때문에 오라클이 만든 DB API와 MS SQL 서버를 만든 마이크로소프트가 만든 DB API 함수들의 이름들이 다를것이다.
만약 오라클에서 제공해주는 DB API를 사용하다가 MS SQL에서 제공해주는 DB API로 바꾸게 되면 기존에 사용하였던 API의 함수 이름들을 다 수정해야하기 때문에 큰 문제가 발생할 것이다. DBMS를 굳이 변경하지 않는다 하더라도 DBMS가 무엇이냐에 따라 데이터베이스에 연결해서 문장을 실행하고 결과를 패치하는 일이 다르다는 것은 데이터베이스에 연결하기 위한 내용이 약간의 차이 때문에 특정 DBMS가 갖고 있는 기능들을 다 알고 있어야 하기 때문에 프로그램을 만드는 사람 입장에서는 굉장히 골치 아픈 일이다. 이런 골치 아픈 일을 해결하기 위해 등장한것이 JDBC이다.
JDBC(Java DataBase Connectivity)
JDBC는 DBMS에 연결하기 위한 접속하기 위한 도구인 DB API를 프로그래머들이 직접 쓰지 않게 하려고 하는 것이다. 그래서 이제 특정 DBMS의 DB API를 직접 쓰지 않고 JDBC를 통해서 간접적으로 DB API를 쓰는 것이기 때문에 각 DB API의 차이를 알 필요도 없다. (JDBC는 항상 같은 함수의 이름을 갖고 기능을 제공한다.) 이렇게 해서 데이터베이스로부터 특화된 기능들로부터 벗어날 수 있게 됐다. 하지만 실제 구동 코드는 DB API(JDBC 드라이버)가 갖고 있기 때문에 특정 DBMS를 사용하기 위해선 특정 DBMS의 드라이버를 다운로드 받아야한다.
JDBC를 사용할 때는 반드시 아래의 절차를 통해서 사용하게 된다.
1. 드라이버 로드하기
2. 연결 생성하기
3. 문장 실행하기
4. 결과집합 사용하기
참고자료
[1] 유튜브 뉴렉처, JDBC란 무엇인가?
'🖥️ Backend > JDBC' 카테고리의 다른 글
[JDBC] 4.JDBC 기본 코드 실습 (0) | 2024.09.05 |
---|---|
[JDBC] 3.JDBC 기본 코드의 이해 (0) | 2024.08.24 |
[JDBC] 2.오라클 JDBC Driver 다운로드 및 불러오기 (0) | 2024.08.23 |