JDBC 2

[Spring] Connection Pool, DataSource

Connection Pool 이란? 이전 포스팅에서는 DriverManager를 통해서 커넥션을 얻어오는 과정을 알아봤다. 이러한 방식은 매번 새로운 커넥션을 생성하기 때문에 커넥션을 맺는 시간, 비용 등등.. 비효율적이라고 할 수 있다. 그래서 고안해낸 방식이 바로 Connection Pool이다. 위 사진처럼 애플리케이션이 시작하는 시점에 커넥션 풀은 필요한 만큼(기본 10개) 커넥션을 미리 확보해서 풀에 보관한다. 커넥션 풀에 들어 있는 커넥션은 TCP/IP로 DB와 커넥션이 연결외어 있는 상태이므로 언제든지 즉시 SQL을 DB에 전달할 수 있다. 애플리케이션은 이제 DriverManager를 통해서 매번 커넥션을 획득하지 않고, 커넥션 풀에 미리 생성되어 있는 커넥션을 가져다 쓰기만 하면 된다. ..

Spring 2023.12.07

[Spring] JDBC에 대한 이해

JDBC가 등장한 이유 과거에는 수 십개의 관계형 데이터베이스마다 커넥션을 획득하고(Connection), SQL을 담아서 DB에 전달하고(Statement), 결과를 응답받는(ResultSet) 과정이 모두 달랐다. 그래서 데이터베이스를 변경하면 많은 번거로움이 있을 수 밖에 없었다. '굳이 매번 번거롭게 사용해야해? 통일된 느낌으로 만들 수 없나?' 라는 생각에서 등장한 것이 바로 JDBC 표준 인터페이스이다. 개발자들은 JDBC 표준 인터페이스의 규칙에 맞춰 사용하면 되고, 내부적으로는 각 DB 벤더 회사들이 제공해주는 JDBC 드라이버를 이용해 구현체를 생성하게 된다. 이렇게 JDBC 인터페이스를 통해 한 단계 추상화를 거치면서 다음과 같은 두 가지의 이점이 생겼다. 애플리케이션 로직은 이제 JD..

Spring 2023.12.07