Spring Framework 라이브러리 - 3. HikariCP

업데이트:

Spring Framework에서 많이 사용하는 라이브러리 3가지 설치하기

Spring Framework를 처음 시작하면서 하는 여러 설정들은 github를 참고하도록 한다.

Spring과 DB 구조

데이터 삽입의 경우

  • Spring → MyBatis → HikariCP → OracleDriver(JDBC) → Oracle

데이터 불러오기일 경우

  • Oracle → OracleDriver(JDBC) → HikariCP → MyBatis → Spring
  1. 자동화된 프로그램을 만들기 위한 DB 구조
  2. HikariCP는 속도 향상을 위해 Connection Pool 라이브러리를 사용하는 것
  3. MyBatis는 DAO코드를 자동으로 생성해 준다.
  4. 인터페이스와 SQL문만 저장해 놓으면 프로그램이 처리되도록 만드는 것

HikariCP 라이브러리 등록(HikariCP)

HikariCP는 Connection Pool Library로 Connection Pool이란 DB와 연결하는데 사용하는 Connection을 미리 만들어서 담아 두도록 하는 것이다.

일반적으로 여러 명의 사용자를 동시에 처리해야 하는 Web Application의 경우 Database 연결을 이용할 때는 ‘Connection Pool‘을 이용하므로, 아예 스프링에 Connection Pool을 등록해서 사용하는 것이 좋다. Java에서는 DataSource라는 인터페이스를 통해서 Connection Pool을 사용한다. DataSource를 통해 매번 Databse와 연결하는 방식이 아닌, 미리 연결을 맺어주고 반환하는 구조를 이용하여 성능 향상을 꾀한다.

Connection Pool을 사용하는 이유는 ‘Server를 운영‘할 때 여러 명의 사용자를 처리하는 경우 ‘미리 Connection을 만들어 놓음‘으로써 서버와 DB를 연동하는데 있어서 ‘속도의 향상‘을 꾀한다.

1. pom.xml에 라이브러리 등록

  • dependency 태그 추가
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<!-- 커넥션 풀 라이브러리 -->
<dependency>
  <groupId>com.zaxxer</groupId>
  <artifactId>HikariCP</artifactId>
  <version>2.7.4</version>
</dependency>

2. root-context <bean> 태그 정의

  • DB는 웹 서버에서 연결하는 것이 아니라 내 컴퓨터에서 DB와 연결하는 것으로 root-context에 정의한다. HikariCP github 참고

  • root-context.xml은 스프링이 로딩되면서 읽어 들이는 문서이므로, 주로 이미 만들어진 클래스들을 이용해서 스프링의 bean으로 동록할 때 사용된다. 외부 jar파일 등으로 사용하는 클래스들은 bean 태그를 이용해서 작성하는 경우가 대부분이다.

<!-- beans 태그 안에 bean tag를 넣을 수있다. -->
<!-- <bean>태그 ==> 객체를 선언하는 것 : 자동 생성 (선언을 하는 순간 생성한다.) -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
  <property name="jdbcUrl" value="jdbc:oracle:thin:@402-oracle:1521:orcl"></property>
  <property name="username" value="c##java06"></property>
  <property name="password" value="java06"></property>
</bean>

<!-- HikariCP configuration -->
<!-- 서버가 시작되면 일정 개수의 Connection을 만들어서 DBCP(DataBaseConnectionPool)에 넣어둔다. -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
  <!-- hikariConfig를 참조한다. 생성자의 파라미터를 뜻하는 태그(constructor - 생성자) -->
  <constructor-arg ref="hikariConfig" />
</bean>