본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
JDBC 프로그래밍
의존성 추가
implementation 'com.zaxxer:HikariCP:5.0.1'
implementation 'org.springframework:spring-jdbc:5.3.29'
db_schema.sql 생성
DROP TABLE IF EXISTS USERS;
CREATE TABLE USERS(
userId varchar(12) NOT NULL ,
password varchar(12) NOT NULL ,
name varchar(20) NOT NULL ,
email varchar(50),
PRIMARY KEY (userId)
)
HikariCP
- HikariCP는 2012년 처음 개발된, 130kb의 가벼운 용량과 빠른 속도를 가지는 JDBC의 커넥션 풀 오픈소스 라이브러리인 JDBC DataSource의 구현체입니다.
- 대표적인 커넥션 풀 오픈소스로는 common-dbcp2, tomcat-jdbc pool, HikariCP 등이 있으며, Spring Boot 2.0 이전 버전까지는 기본적으로 connection pool을 tomcat-jdbc pool을 사용했지만 2.0 버전 이후부터는 HikariCP를 사용하도록 변경되었습니다.
HikariCP 장점
- 적은 메모리 사용량: HikariCP는 매우 적은 메모리를 사용하므로 초기화 및 연결 시간이 짧다.
- 높은 처리량: HikariCP는 매우 빠르게 연결을 생성하고 반환하기 때문에 처리량이 매우 높다.
- 작은 코드 베이스: HikariCP는 코드 베이스가 작기 때문에 구성이 간단하고 가볍다.
- 풍부한 구성 옵션: HikariCP는 다양한 구성 옵션을 제공하여 애플리케이션에 최적화된 커넥션 풀을 생성할 수 있다.
- 스레드 안전성: HikariCP는 스레드 안전하게 설게되어 있으므로 여러 스레드에서 안전하게 사용할 수 있다.
Spring의 Hikari에서 자주 사용하는 설정
spring:
datasource:
hikari:
driver-class-name: com.mysql.cj.jdbc.Driver
username: {id}
password: {password}
jdbc-url: jdbc:mysql://{url}:{port}/{db스키마}
minimum-idle: 5
maximum-pool-size: 10
idle-timeout: 30000
pool-name: DevLogHikariCP
max-lifetime: 200000
connection-timeout: 30000
connection-test-query: /*CONNECTION TEST QUERY*/SELECT NOW() FROM DUAL
- minimum-idle: Connection Pool에 유지 가능한 최소 커넥션 개수
- maximum-pool-size: Connection Pool에 유지 가능한 최대 커넥션 개수
- idle-timeout: Connection이 Poll에서 유휴상태(사용하지 않는 상태)로 남을 수 있는 최대 시간
- pool-name: Connction Pool 이름
- max-lifetime: Connection의 최대 유지 가능 시간
- connection-timeout: Pool에서 Connection을 구할 때 대기시간, 대기시간안에 구하지 못하면 Exception
- connection-test-query: Connection이 잘 되었는지 확인하는 TEST SQL
'패스트캠퍼스 강의' 카테고리의 다른 글
[9일차] 50일 포트폴리오 챌린지 (0) | 2023.08.16 |
---|---|
[8일차] 50일 포트폴리오 챌린지 (0) | 2023.08.15 |
[6일차] 50일 포트폴리오 챌린지 (0) | 2023.08.13 |
[5일차] 50일 포트폴리오 챌린지 (0) | 2023.08.12 |
[4일차] 50일 포트폴리오 챌린지 (0) | 2023.08.11 |