공부 자료/Spring

[Spring Boot] driver-class-name / url 이해하기

희희웃는청바지 2023. 11. 10. 00:12
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을 설정해 주는 것이 좋다.