Skip to content

5.3. HikariCP 커넥션 풀

5.3.1. 개요

Spring Boot는 HikariCP를 기본 커넥션 풀로 사용합니다. 별도의 의존성 추가 없이 spring-boot-starter-jooq에 포함되어 있습니다.

5.3.2. 주요 파라미터

파라미터기본값권장값설명
maximum-pool-size10환경별 조정최대 커넥션 수
minimum-idle10maximum-pool-size와 동일최소 유휴 커넥션 수
connection-timeout3000030000 (30초)커넥션 획득 대기 시간(ms)
idle-timeout600000600000 (10분)유휴 커넥션 유지 시간(ms)
max-lifetime18000001800000 (30분)커넥션 최대 수명(ms)
leak-detection-threshold060000 (1분)커넥션 누수 감지 임계값(ms)

5.3.3. 환경별 pool-size 가이드

환경maximum-pool-size근거
local5개발 장비 부하 최소화
dev10기본값
staging15프로덕션 유사 환경
prod20~30트래픽 규모에 따라 조정

산정 공식

HikariCP 공식 권장 공식: pool_size = (core_count * 2) + effective_spindle_count

대부분의 경우 10~20 사이가 적절합니다. 과도한 커넥션 수는 오히려 성능을 저하시킵니다.

5.4. 프로파일별 데이터소스 설정

5.4.1. 공통 설정 (application.yml)

yaml
spring:
  datasource:
    hikari:
      connection-timeout: 30000
      idle-timeout: 600000
      max-lifetime: 1800000
      leak-detection-threshold: 60000

5.4.2. 로컬 환경 (application-local.yml)

yaml
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/flowin
    username: flowin
    password: flowin1234
    hikari:
      maximum-pool-size: 5

5.4.3. 개발 환경 (application-dev.yml)

yaml
spring:
  datasource:
    url: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}
    hikari:
      maximum-pool-size: 10

5.4.4. 프로덕션 환경 (application-prod.yml)

yaml
spring:
  datasource:
    url: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}
    hikari:
      maximum-pool-size: 20
      minimum-idle: 20

필수

개발/스테이징/프로덕션 환경의 데이터베이스 접속 정보는 반드시 환경변수로 주입합니다. application.yml에 직접 기입하지 않습니다.

TIENIPIA QUALIFIED STANDARD