해결된 질문
작성
·
423
·
수정됨
0
안녕하세요. 커넥션에 대해서 궁금해서 질문드립니다.
DriverManager 또는 DriverManagerDataSource 또는 DataSourceTransactionManager는 모든 경우에 커넥션 풀을 생성하지 않고 커넥션할 때마다 DB에 세션을 생성하나요?
DataSourceTransactionManager에 DriverManagerDataSource가 오면 커넥션 풀이 없고 hikari가 오면 모든 경우에 커넥션 풀이 생성되나요?
감사합니다.
답변 2
0
안녕하세요. 가로수길방랑자님
Q1: DriverManager 또는 DriverManagerDataSource 또는 DataSourceTransactionManager는 모든 경우에 커넥션 풀을 생성하지 않고 커넥션할 때마다 DB에 세션을 생성하나요?
A: 네 맞습니다. 해당 기능은 커넥션 풀이 아니기 때문에 항상 새로운 커넥션을 생성합니다.
Q2: DataSourceTransactionManager에 DriverManagerDataSource가 오면 커넥션 풀이 없고 hikari가 오면 모든 경우에 커넥션 풀이 생성되나요?
A: 네 맞습니다. hikari 자체가 커넥션 풀입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요.
DriverManager를 사용한 경우, 매번 커넥션 요청 시 새로운 세션이 생성됩니다. 하지만, 비효율적이기 때문에 커넥션 풀을 사용하게 됩니다.
DataSourceTransactionManager는 PlatformTransactionManager의 구현체 중 하나로서, 트랜잭션을 처리할 때 사용됩니다. 데이터베이스 커넥션을 얻기 위해서는 DataSource가 필요한데, DataSource는 일반적으로 커넥션 풀을 생성하여 커넥션 객체를 보관함으로써 사용자에게 성능 상의 이점을 제공합니다. 그리고 DriverManagerDataSource 역시 커넥션 풀을 생성하지 않고, 매번 새로운 세션을 생성합니다.
만약 DataSource로 HikariCP를 사용한다면 커넥션 풀이 생성됩니다. HikariCP는 커녁션 풀 라이브러리 중에서 가장 범용성과 성능이 우수한 라이브러리로 알려져 있습니다.
감사합니다.