ConnectionPool

DB 커넥션 풀은 무엇이고 왜 사용하나요?

  • DB 커넥션 풀 이란, 애플리케이션과 데이터베이스 사이의 필요한 커넥션들을 미리 생성해 둔 공간을 말한다.

  • DB 커넥션 풀을 사용하는 이유

    • 데이터베이스 커넥션을 획득할 때는 복잡한 과정을 거치는데, 이때 연결할 때마다 리소스가 낭비되고 성능에도 영향을 미칠 수 있다.

    • 그래서 애플리케이션 시작 시점에 커넥션을 미리 일정 수량 생성해 놓고, 이것을 재활용하여 사용한다.

  • 현재 스프링 부트에서는 HikariCP가 기본으로 사용하는 커넥션 풀 구현체이다.

데이터소스는 무엇인가요?

  • DataSource는 커넥션을 획득하는 방법을 추상화한 인터페이스로, 핵심 기능은 커넥션 조회 하나이다.

  • DataSource를 사용하면 커넥션을 획득하는 방법의 변경이 일어나도 DataSource의 구현체만 변경하면 되므로 DI와 OCP 원칙을 준수할 수 있다.

Last updated