1. 개념
DB 커넥션을 획득하는 로직을 추상화한 인터페이스
2. 등장배경
기존에는 Connection을 얻는 방식이 달라지면 Application Logic이 수정되어야 했음
Connection을 얻는 방식에 따라 Application Logic이 수정되어야 하는 이슈 때문에
Connection을 얻는 방식을 추상화한 DataSource라는 인터페이스가 등장
DataSource에서 Connection을 얻는 방식을 추상화했기 때문에
Connection을 얻는 방식이 달라져도 Application Logic을 수정할 필요가 없음
3. Connection 획득 방법
Connection을 획득하는 방법에는
DriverManager를 이용하여 Query 요청 시마다 Connection을 할당받는 DriverManagerDataSource,
ConnectionPool을 이용하는 HikariDataSource를 이용하는 방법이 있다
(ConnectionPool에서는 HikariCP가 가장 많이 사용되므로 HikariCP 기준으로 설명하겠다)
1) DriverManagerDataSource
DataSource dataSource = new DriverManagerDataSource(URL, USERNAME, PASSWORD);
Connection connection = dataSource.getConnection();
2) HikariDataSource
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setPoolName("myPool");
hikariConfig.setJdbcUrl(URL);
hikariConfig.setUsername(USERNAME);
hikariConfig.setPassword(PASSWORD);
hikariConfig.setMaximumPoolSize(10);
DataSource dataSource = new HikariDataSource(hikariConfig);
Connection connection = dataSource.getConnection();
참고로, HikariCP과 같은 Connection Pool을 사용하는 경우, Connection을 close해도 Connection이 실제로 닫히는게 아니라 HikariCP에 반환된다.
'Spring > Spring DB' 카테고리의 다른 글
문제해결 - 트랜잭션 처리 코드 반복 문제 (0) | 2025.07.19 |
---|---|
DB Lock (0) | 2025.07.18 |
DB Connection (0) | 2025.07.18 |
트랜잭션 (0) | 2025.07.18 |
Connection Pool (0) | 2025.07.16 |
댓글