개발/Java

[Spring] HikariCP ?

Dane.Kim 2021. 11. 7.

먼저 DB connection pool에 대해 알아보자

사용자의 요청에 따라 무수한 Connection을 생성하다보면 서버에 과부하가 걸리게 된다. 이러한 상황을 방지하기 위해 미리 설정해놓은 일정수의 Connection을 만들어 놓고 이것을 Connection Pool에 보관해두었다가 요청이 발생하면 제공을 해주고 Connection의 사용이 끝난다면 다시 Connection Pool에 반환하여 보관하는 기술을 DB Connection Pool이라고 한다. 이러한 DB Connection Pool을 사용한다면 다음과 같은 장점이 있다.

  • DB접속 설정 객체를 미리 만들어 연결하여 메모리 상에 등록해 놓기 때문에 클라이언트가 빠르게 DB에 접속 가능
  • DB Connection 수를 제한 할 수 있어서 과도한 접속으로 인한 서버 자원 고갈 방지 가능
  • DB 접속 모듈을 공통화해 DB서버의 환경이 바뀔 경우 쉬운 유지보수 가능
  • 연결이 끝난 Connection을 재사용함으로써 새로 객체를 만드는 비용을 줄일 수 있음

HikariCP란 Springboot 2.0 부터 default로 설정되어 있는 DB Connection Pool로써 Zero-Overhead가 특징으로 높은 성능을 자랑하는 DB Connection Pool이다. HikariCP는 미리 정해놓은 만큼의 Connection을 Connection Pool에 담아 놓는다. 그 후 요청이 들어오면 Thread 가 Connection을 요청하고, Hikari는 Connection Pool내에 있는 Connection을 연결해주는 역할을 한다. 원하는 HikariCP의 연결정보 뿐만 아니라 원하는 Connection Pool의 크기, 시간 등등을 설정해줄 수 있다.

댓글