JAVA
JDBC 커넥션에 대해 알아보자
잼규
2025. 7. 9. 23:48
DB 커넥션은 애플리케이션이 DB에 접속해서 데이터를 주고 받는 연결 통로이다.
이중에 JDBC 커넥션이 JAVA에서 DB와 통신할 때 사용하는 표준 API인 JDBC를 통해 맺는 연결을 말한다.
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb", "user", "password");
// DB 작업 수행
conn.close();
스프링에서는 JDBC 코드(DriverManager)를 직접 작성하지 않고, DataSource 라는 추상화 객체를 통해 DB 커넥션을 관리한다.
DataSource는 커넥션 풀과 연동되어 커넥션을 효율적으로 쉽게 관리할 수 있다. (커넥션을 개별로 관리하면 오버헤드 심함)
주요 커넥션 풀 종류로는 3가지가 있다.
- HiKariCP
- Tomcat JDBC Pool
- Commons DBCP2
애플리케이션 라이플 사이클에 따른 커넥션풀의 동작흐름
- 애플리케이션 시작 : 커넥션 풀 초기화, 최소 유휴 커넥션 생성 시작
- DB 작업 요청 시 : 커넥션 풀에서 커넥션 할당, 필요시 추가 커넥션 생성
- 커넥션 반환 시 : 커넥션 풀에 커넥션 반환(물리적 연결 끊김 아님)
- 애플리케이션 종료 : 커넥션 풀 종료, 모든 커넥션 물리적 종료 및 자원 해제
커넥션과 관련된 설정 요소
- DataSource : DB 커넥션 풀(연결 정보)
- SqlSessionFactoryBean : MyBatis의 SqlSession 생성, DataSource와 연결
- SqlSessionTemplate : MyBatis 쿼리 실행, 커넥션 관리 자동화
- DataSourceTransactionManager : 트랜잭션 관리(커밋, 롤백 등)