데이터소스와 풀링

화낼거양's avatar
Nov 15, 2024
데이터소스와 풀링
 

데이터소스 (DataSource)

데이터소스(DataSource)는 데이터베이스에 대한 연결을 관리하는 객체입니다. 이는 데이터베이스 연결을 설정하고 제공하는 데 사용되며, 직접 JDBC 연결을 관리하는 대신 더 유연하고 관리하기 쉬운 방법을 제공합니다.

주요 특징:

  1. 재사용성: 데이터베이스 연결을 재사용하여 성능을 향상시킵니다.
  1. 관리성: 연결을 보다 효율적으로 관리할 수 있습니다. 예를 들어, 연결 풀링을 지원합니다.
  1. 보안성: 데이터베이스 연결 정보를 안전하게 관리합니다.

사용 예시:

Spring Boot에서 데이터소스를 설정하는 예시입니다:
 
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DriverManagerDataSource; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mydb"); dataSource.setUsername("username"); dataSource.setPassword("password"); return dataSource; } }
 

풀링 (Pooling)

풀링(Pooling)은 데이터베이스 연결과 같은 리소스를 효율적으로 관리하기 위한 기술입니다. 풀링은 여러 개의 연결을 미리 생성해두고, 필요할 때마다 이를 재사용함으로써 성능을 크게 향상시킵니다.

주요 특징:

  1. 성능 향상: 새로운 연결을 생성하는 오버헤드를 줄여 응답 시간을 단축합니다.
  1. 자원 관리: 한정된 자원을 보다 효율적으로 관리합니다.
  1. 신뢰성: 연결을 지속적으로 모니터링하고 문제가 발생하면 새로운 연결로 교체합니다.

사용 예시:

Spring Boot에서 HikariCP와 같은 연결 풀을 사용하는 예시입니다:
 
import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class DataSourceConfig { @Bean public HikariDataSource dataSource() { HikariConfig config = new HikariConfig(); config.setDriverClassName("com.mysql.cj.jdbc.Driver"); config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb"); config.setUsername("username"); config.setPassword("password"); config.setMaximumPoolSize(10); // 최대 풀 크기 설정 return new HikariDataSource(config); } }
 
위의 예시에서 HikariCP는 매우 빠르고 경량화된 커넥션 풀 구현체로 널리 사용됩니다.

요약:

  • 데이터소스(DataSource)는 데이터베이스 연결을 설정하고 관리하는 객체로, 더 유연하고 관리하기 쉬운 방법을 제공합니다.
  • 풀링(Pooling)은 여러 연결을 미리 생성해두고 필요할 때마다 이를 재사용하여 성능을 향상시키는 기술입니다.
Share article

moohyun