본문 바로가기
Study/Server

[Server] 커넥션 풀

by _royJang 2022. 10. 4.

커넥션풀이 필요한 이유

WAS는 사용자의 요청에 DB에서 필요한 데이터를 얻게된다. 이 과정에서 DB에 대한 커넥션을 연결해야 하는데 이는 시간이 오래걸리는 무거운 작업이다. 그렇기 때문에 이 커넥션 풀을 사용하게 된다.

DB가 커넥션을 얻는 과정

  1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션 조회
  2. DB 서버와 TCP/IP 연결(3way handshake)
  3. DB에 ID/PWD 전달
  4. 인증 후 DB 세션 생성
  5. 커넥션 객체 반환

풀 이란?

객체를 보관하는 장소. 한번 생성된 객체 인스턴스를 필요할 때 꺼내 쓰고 사용 후 반환하는 기술.

장점

  • 미리 생성해 놓은 커넥션을 재활용 하기에 복잡한 커넥션을 얻는 과정을 애플리케이션이 시작할 당시에 한번만 수행하면 된다
  • DB에 무한정 연결이 생성되는 것을 막아주어 DB를 보호하는 효과

단점

  • 여러 쓰레드가 사용하는 공유 객체(크리티컬 섹션)이므로 보호해줄 필요가 있다