16주차 - Spring (7) 커넥션풀(DPCP)에 대해 알아보자, hikariCP, Spring-jdbc, mybatis, mybatis-spring 추가하기
이번의 목표
01. 커넥션풀(DPCP)에 대해 알아보자.
02. hikariCP를 추가하자.
03. Spring-jdbc를 추가하자.
04. mybatis-spring을 추가하자.
05. mybatis를 추가하자.
01. 커넥션풀(DBCP)에 대해 알아보자
지금까지 데이터베이스와 연결하기 위해서는 DAO 클래스를 만들고 서버와의 연결을 개발자가 관리해야했습니다.
스프링 프레임워크에서는 이 기능을 스프링이 관리할 수 있도록 할 수 있습니다.
이것을 가능하도록 하는것이 커넥션 풀(Connection pool)이라는 것으로 DBCP라고도 부릅니다.
이 커넥션풀은 DB와 미리 연결해놓은 객체들을 pool에 저장해놓고 클라이언트의 요청이 발생하면 이 연결을 빌려주고 처리가 끝나면 다시 연결을 돌려받아 pool에 저장합니다. 하지만 데이터베이스에 연결할 수 있는 최대 수가 제한이 없는 것은 아니기 때문에 이를 넘어가게 되면 에러가 발생할 수 있습니다.
이렇듯, DBCP의 장점은 데이터베이스와의 연결을 스프링에서 관리하기 때문에 한 사용자가 연결만 반복하여 에러가 발생하는 것을 방지하고 개발자가 보다 쉬운 관리를 할 수 있도록 합니다.
하지만 단점도 있는데, 단점으로는 데이터베이스에 연결할수 있는 최대가 1000이라고 가정했을 때, 실 사용자가 10명뿐이라면 990의 낭비가 발생한다는 점 입니다.
이제는 커넥션풀을 사용하기 위해 몇개의 dependency를 설치하는 방법에 대해 알아보겠습니다.
dependency를 설치하기 위해서는 아래의 Maven Repository 에 접속해야합니다.
>> Maven Repository <<
02. hikariCP를 추가하자
먼저 설치해볼 것은 hikariCP 입니다.
01) hikariCP를 검색하여 HikariCP를 클릭합니다.
02) 아무 버전이나 상관없이 클릭하여 들어갑니다.
03) HomePage의 깃허브 링크로 접속
04) 스크롤을 아래로 내리면 설치된 자바의 버전에 따른 디펜던시 코드가 있습니다.
버전에 맞는 코드를 pom.xml에 복사합니다.
03. Spring-jdbc를 추가하자.
Spring-jdbc는 설치되어있는 스프링 프레임워크와 버전이 같아야합니다.
01) spring jdbc를 검색하여 접속합니다.
02) 아무 버전이나 상관없이 버전을 클릭합니다.
03) Maven에 있는 코드를 복사합니다.
04) pom.xml에 복사합니다.
위에서, Spring-jdbc는 설치되어있는 스프링의 버전과 같아야한다 했습니다.
설치되어있는 스프링의 버전을 확인하여 처음부터 맞게 설치하는 방법도 있겠습니다만,
여기서는 현재 설치된 스프링의 버전을 출력하는 el코드를 이용하여 스프링의 버전이 바뀌면 자동으로 Spring-jdbc의 버전도 변경되도록 하겠습니다.
현재 스프링의 버전을 가져오는 el코드는 아래와 같습니다.
${org.springframework-version}
04. mybatis-spring을 추가하자.
01) mybatis spring을 검색하여 아래의 링크를 클릭합니다.
02) 제일 최근에 업데이트된 버전이 0.1 버전이므로 링크를 클릭합니다.
03) 여기서 잠깐 체크하고 넘어가겠습니다.
페이지에 접속해서 Maven의 코드를 보면 아래의 사진과 같이 버전이 0.1 로 되어있습니다.
이대로 코드를 복사하여 pom.xml에 붙여넣기 하면 0.1 버전을 찾을 수 없다는 에러가 발생합니다.
그래서 MyBatis 홈페이지에 접속해보면 자바 버전에 따라 버전이 달라지는데 자바 8 이상부터는 2.0 버전을 사용해야 한다고 명시되어있습니다.
때문에 mybatis-spring의 버전을 2.0.1로 수정하여 입력하겠습니다.
05. mybatis을 추가하자.
01)
방금전에 접속했던 mybatis-spring의 페이지를 닫지 않고 스크롤을 아래로 조금 내리면
mybatis의 링크와 버전이 있습니다.
02) 링크로 접속하여 Maven의 코드를 복사하여 pom.xml에 추가합니다.
03) mybatis를 추가할때 체크할점
현재 Maven repository에서 mybatis를 검색하여 들어가면 vulnerability(취약성)이 없는 것중에서 가장 최근 업데이트된 4.1버전의 링크로 들어가 Maven에서 코드 복사하여 입력하면 4.1버전을 찾을 수 없다는 에러가 발생합니다.
마이바티스 홈페이지에서 보니 mybatis-spring과 마찬가지로 버전의 형태는 x.x.x 의 형태를 취하고 있는데 Maven repository에서 검색했을때 나오는 링크로 들어가면 제공하는 코드가 x.x의 형식으로 되어 있는것을 확인할 수 있습니다.
가장 최근 업데이트된 버전이 무엇인지 알기가 어려워 mybatis의 깃허브에 접속해보니 3.5.11 버전이 가장 최근 업데이트된 버전임을 확인 할 수 있었습니다.
>> mybatis github 바로가기 <<