본문 바로가기

728x90

Connection Pool

(2)
[DB] DataSource 란? 커넥션 획득 방법커넥션을 얻는 방법은 JDBC DriverManager를 직접 사용하거나, 커넥션 풀을 사용하는 등 다양한 방법이 있습니다. 여기서 문제가 존재합니다. JDBC DriverManager를 통해 커넥션을 획득하다가, 커넥션 풀을 사용하는 방법으로 변경한다고 하면 애플리케이션 코드도 함께 변경해야 하게 되는 것이죠. 위와 같은 문제를 해결하기 위해서 자바에서 javax.sql.DataSource 라는 인터페이스를 제공합니다.DataSourceDatasource는 커넥션을 획득하는 방법을 추상화하는 인터페이스입니다. Datasource 에는 여러 기능이 있지만, 핵심 기능은 커넥션 조회 라고 할 수 있습니다. public interface DataSource { Connection getCon..
[DB] 커넥션 풀이란? (Connection pool) 데이터베이스 커넥션을 획득할 때는 다음과 같은 복잡한 과정을 거칩니다.애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회합니다.DB 드라이버는 DB와 TCP/IP 커넥션을 연결합니다. 즉, 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생하게 됩니다.DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달합니다.DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성합니다.DB는 커넥션 생성이 완료되었다는 응답을 보내고, DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환합니다. 이렇게 커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 소모되는 일입니다. DB는 물론이고 애플리케이션 서버에서도 TCP/IP 커넥..

728x90
반응형