-
Java: JDBC API 기본 개념 이해각종 학습 요약/Java 2022. 6. 30. 13:46
JDBC API 기본 개념 이해
이 글은 JDBC가 무엇인지 알아보고 사용되는 과정에서 일어나는 일들을 살펴보는 글입니다.
JDBC란?
JDBC API는 Java 어플리케이션에서 데이터베이스와 연결하여 자원을 사용할 수 있도록 해주는 표준 API입니다.
어플리케이션 코드가 DB 벤더(Mysql, oracle, PostgreSQL 등...)에 종속되지 않도록 인터페이스 역할을 하고 있습니다.
벤더에 따라 JDBC 구현체가 존재하고, 어플리케이션 개발자는 이를 이용해서 다양한 벤더의 데이터베이스에 접근할 수 있습니다.JDBC 연결 과정
몇 가지 단계가 있긴 한데 아주 단순합니다.
- JDBC 드라이버를 로드해서 데이터베이스와 연결할 준비를 하고요.
- 준비를 했으니 연결합니다. 커넥션(Connection)을 얻어요.
- 연결을 했으니 할 일을 해야겠죠. '일'을 하기 위해서 Query 수행 객체(Statement)를 생성합니다.
- Statement를 통해 Query가 수행됩니다.
- 만약 결과가 있다면 결과를 받고요(ResultSet).
- 할 일을 마쳤으니 차례로 닫아줍니다. ResultSet을 닫고, Statement를 닫고, Connection을 해제하는 것이죠.
연결할 준비를 해서, 연결 하고, 보내고/받고, 닫아주면 끝. 쉽죠?
그런데 연결은 어떻게 받아주는 걸까?
잠시 HTTP 통신의 이야기를 해보면, Java의 서블릿을 사용하는 어플리케이션 서버(WAS)는 많은 클라이언트 요청을 응답하기 위해서 스레드풀에 스레드들을 생성해놓고 기다리고 있죠. 요청이 들어오면 대기 상태의 스레드 하나가 담당해서 어플리케이션을 실행하고 결과를 응답메시지로 보내줍니다.
그렇다면 데이터베이스 통신은 어떨까요? 결과부터 말하면 비슷합니다. 서블릿컨테이너의 스레드풀과 마찬가지로, 매 요청이 올 때마다 커넥션을 생성했다 해제했다 하는 것은 너무 비용이 큰 작업이기 때문에 데이터베이스는 커넥션 풀에 커넥션을 생성해두고, 연결 요청이 들어오면 하나의 커넥션을 할당합니다.
그렇기 때문에 JDBC를 사용중이라면 자원의 해제를 신경써서 관리해야 합니다.
'각종 학습 요약 > Java' 카테고리의 다른 글
Java: 입출력(I/O) 스트림(Stream) 기초 개념 (0) 2022.05.20 Java: 람다와 스트림의 기본적인 이해와 사용법 - 2 (2) 2022.05.19 Java: 람다와 스트림의 기본적인 이해와 사용법 - 1 (0) 2022.05.19 Java: Enum 클래스의 기본적인 이해 (0) 2022.05.19 Java: 내부 클래스(Inner Class)의 기본적인 이해 (4) 2022.05.18 Java: 컬렉션 프레임워크(Collection Framework) 개요 (0) 2022.05.17