인프런 커뮤니티 질문&답변

김남현님의 프로필 이미지
김남현

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

데이터베이스 클라이언트

작성

·

143

0

안녕하세요

스프링 DB 접근 기술에 순수 jdbc 강의중 1:22 쯤에 h2 데이터베이스 클라리언트 설정이 필요하다고 하셔서

'com.h2database:h2' 설정을 하셨는데 이부분이 이해가 안되서요...ㅠ

제 지식으로는 자바와 h2데이터베이스(다른 데이터베이스도 동일하게)를 연동하기 위해서 다음과 같이

1. h2 dbms를 다운받아 실행한다.

2. dbms의 api를 사용하기 위해 자바 jdbc 인터페이스 구현체인 h2의 jdbc driver를 다운로드 한다.

이렇게 되는것으로 알고 있는데 위의 'com.h2database:h2' 설정은 무엇인지 잘 모르겠습니다.

답변 2

0

김남현님의 프로필 이미지
김남현
질문자

답변 감사드립니다. 추가적인 질문이 하나더 있는데요.

'com.h2database:h2'  'com.mysql.cj.jdbc.Driver(MYSQL)' 이 둘의 역할은 구체적으로 어떤건가요?

제가 알기로는 후자인 jdbc는 db api를 사용하기 위한것인데 전자의 정확한 역할을 모르겠습니다.

db 커넥션을 맺기 위한 의존성입니다.

저 의존성 추가 없이 스프링에서 해당 db에 연결을 할 수 가 없어요.

 

'com.h2database:h2'  'com.mysql.cj.jdbc.Driver(MYSQL)'

를 추가하지 않고 스프링에서 DB 연결을 해보시면 감이 오실꺼에요.

추가로 아래의 링크도 참고해주세요.

JDBC 구조, JDBC의 구조와 역활 (tistory.com)

0

안녕하세요. 김남현님, 공식 서포터즈 OMG입니다.

h2 뿐만 아니라 mysql, oracle 등을 스프링 웹 애플리케이션에서 사용하기 위해

'com.h2database:h2' , com.mysql.cj.jdbc.Driver(MYSQL)

와 같은 의존성을 추가해야합니다. 의존성을 추가해야 db와 붙어 개발 작업이 가능하다고 이해하시면 됩니다.

 

스프링 애플리케이션과 h2는 별도의 프로그램입니다. 이 둘을 이어주기 위한 의존성 추가라고 이해하시면 될 것 같아요.

gradle로 보시면 잘 이해가 안되실 거 같아 maven(pom.xml)으로 가져와봤습니다.

별도의 scope(runtime)까지 지정하신 것을 볼 수 있습니다.

 

감사합니다.

김남현님의 프로필 이미지
김남현

작성한 질문수

질문하기