본문 바로가기
웹 프로그래밍/스프링부트

SpringBoot에서 Mysql 설정

by Backchus 2019. 10. 26.

스프링부트가 지원하는 DBCP 기능과 MySql을 설정하는 방법을 살펴보겠습니다.

DBCP란 DataBase Connection Pool의 약자로 DB에서 Connection을 만드는 과정이 상당히 많은 작업이 이뤄지는 작업이기 때문에 커넥션을 미리 만들어놓고 필요한 애플리케이션이 사용하고 반납하는 형식으로 DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 합니다. 또한 이 DBCP가 애플리케이션의 성능 아주 지대한 영향을 끼치기 때문에 신중히 DBCP를 선택해야 합니다.

스프링부트는 기본적으로 HikariCP라는 DBCP를 사용합니다.

 

DBCP설정은 application.properties에서 합니다.

위에 설정은 커넥션 풀의 개수를 5개로 바꾸는 설정입니다.

 

이제 MySQL설정을 해보겠습니다. MySQL이 설치되었다고 가정하고 시작하겠습니다.

스프링부트 프로젝트를 생성하고 pom.xml에 JDBC와 DataSource의 구현체인 MySQL Connector의존성을 추가합니다.

 

의존성 추가후에 application.properties에서 위처럼 MySQL용 DataSource를 설정합니다.

 

MysqlRunner클래스를 생성하여 설정이 제대로 되었는지 확인하기 위해 메타데이터를 출력하는 클래스를 작성하였습니다. 작성 후 스프링부트를 실행해보면

The server time zone value ‘KST’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

이런 에러가 뜨는 경우가 있습니다. 이것은 mysql-connector-java 버전 5.1.X 이후 버전부터 KST 타임존을 인식하지 못하는 이슈로

serverTimezone=UTC파라미터를 추가시켜준 후에 스프링부트를 실행시켜보겠습니다.

 

DBCP명과 접속URL, 접속유저네임이 정상적으로 출력되고 설정이 정상적임을 확인할 수 있습니다.