[Spring] Connection Pool
2024. 7. 6. 23:11ㆍBE/Spring
1. Connecion Pool이란?
Connection Pool은 데이터베이스와의 Connection을 미리 생성하고, 이를 Pool에서 관리하는 기술이다.
데이터베이스로의 추가 요청이 필요할 때 연결을 재사용할 수 있도록 관리되는 데이터베이스 연결의 캐시이다.
Connection Pool이 시작될 때 특정한 수의 물리적 커넥션을 만들며 이는 애플리케이션 실행 중에 커넥션 생성, 해제하는 오버헤드(Overhead)를 줄여준다.
또한, 동시에 많은 요청이 들어와도 안정적으로 처리할 수 있게 해준다.
2. Java에서 Connection Pool 사용하기
- DataSource
: 애플리케이션이 데이터베이스와 상호작용할 수 있도록 하는 연결을 관리하는 객체다.
: 애플리케이션은 데이터베이스에 직접 접속하는 대신, 미리 정의된 설정과 연결 풀을 이용하여 효율적으로 데이터베이스 작업을 수행할 수 있다. - JNDI
: Java Naming and Directory Interface
: 자바 애플리케이션이 네이밍 및 디렉터리 서비스를 이용할 수 있게 해주는 API입니다.
: 이를 사용하면 애플리케이션은 외부 리소스(예: 데이터베이스, 메시징 시스템, EJB 등)에 대한 참조를 쉽게 관리할 수 있다.
: 이를 통해 DataSource와 같은 리소스를 설정하면, 애플리케이션은 환경에 구애받지 않고 동일한 이름을 통해 리소스에 접근할 수 있다.
가. META-INF/context.xm
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/company" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="company" password="company" driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/companyweb?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8"/>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
META-INF/context.xml
에 DB 접급을 위한 정보를 추가한다.
나. root-context.xml
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/company"></property>
</bean>
root-context.xml
에 datasource bean을 등록한다.
'BE > Spring' 카테고리의 다른 글
[MyBatis] 동적 SQL (0) | 2024.07.06 |
---|---|
[MyBatis] MyBatis란? (0) | 2024.07.06 |
[Spring] File Upload & Download (0) | 2024.07.06 |
[Spring] ControllerAdvice (0) | 2024.07.06 |
[Spring] Java Config (0) | 2024.07.06 |