[Spring Boot] driver-class-name / url 이해하기
Spring Boot에서 데이터베이스 연동을 위해 사용하는
spring.datasource.driver-class-name, spring.datasource.url 이해하기
SpringBoot 프로젝트를 설정하고 데이터베이스를 연결하는데,
바인딩을 하지 못한다는 에러가 발생하면서 이것저것 만져보다가 생긴 궁금증!
데이터베이스를 사용하기 위해 application.yml 혹은 application.properties에서
spring.datasource와 관련된 설정을 진행해 주는데,
driver-class-name과 url을 모두 써도 되지만, driver-class-name을 작성하지 않아도 실행되는 상황을 발견했다.
이에 두개의 차이가 궁금하여 gpt에게 물어봤을 때 돌아오는 답변은 아래와 같았다.
결국, Spring Boot에서 자동으로 해당 URL에서 필요한 드라이버를 자동으로 선택하기 때문에 driver-class-name을 설정하지 않아도 된다는 의미였는데, 이는 맞기는 하지만 틀리기도 한 내용이었다.
그렇다면 driver-class-name을 지정하는 것이 좋을까? 사용하지 않는 것이 좋을까?
나의 답은 바로 사용하는 것이 좋지 않을까? 이다. 그 이유는 위에서 이야기 한 것처럼 Spring Boot에서 자동으로 드라이버를 선택한다고 하였는데, 자동으로 인식하지 못하는 경우가 있고 이에 대한 확신이 없다면 사용하는 것이 밑져야 본전이라는 생각이 들었기 때문이다.
즉, driver-class-name은 Spring Boot에서 자동으로 인식하지 못하는 경우에 인식할 수 있도록 설정해 주는 것으로,
url은 말 그대로 'database가 어디에 있는지'를 의미하고
driver-class-name은 'database를 어떤것을 사용할거니 다른 database를 인식하지 말라'는 것을 의미한다.
[오늘의 결론]
상황에 따라서 사용을 해도 되고, 하지 않아도 되지만
정확하고 명시적으로 나타내기 위해서는 driver-class-name을 설정해 주는 것이 좋다.