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

김진호님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

H2 v2.2.4와 실행모드 관련 질문

작성

·

67

0

안녕하세요

현재 강의 한참 초반부라고 할 수 있는 "데이터베이스 연결"부분을 보고 있는데요,

강사님께서 사용하는 H2 모드가 임베디드 모드인가요 서버모드인가요?

강의 1:09초 즈음 노출되는 화면을 보면 모드는 임베디드 모드이고, JDBC URL은 jdbc:h2:tcp://localhost/~/test 로 보이는데요

저는 h2 버전 2.2.4를 이용 중인데 서버 모드일 때는 JDBC URL이 jdbc:h2:tcp://localhost/~/test 형태이지만, 임베디드 모드일 때는 jdbc:h2:~/test 입니다.

DBConnectionUtilTest 가 자꾸 실패하여, JDBC URL을 임베디드 모드일 때의 url로 변경하고 서버를 내리면(= ./bin/h2 실행 종료)하면 테스트 코드가 성공하는데요,

서버 모드의 url로 변경하면 테스트 코드 실패는 둘째치고 웹 콘솔에서 h2를 실행하려 할 때 아래와 같이 에러가 발생합니다.

찾아보니 h2의 임베디드 모드 자체가, 여러 클라이언트가 접근 불가능한 모드이고 하나의 jvm 인스턴스만 접근 가능하다고 되어 있기 때문에, h2 실행파일을 종료하고 테스트코드가 성공하는게 자명하다고 느껴지긴 하는데요..

 

영상에서 강사님이 진행하는 과정과 너무 달라지기도 하고, h2 서버모드 실행 시 sonarqube 관련 에러가 발생하는게 의아해서 질문 남깁니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김진호님

우선 임베디드 모드, 서버 모드의 선택은 의미가 없습니다.

해당 옵션은 단순히 JDBC URL을 편리하게 적어주는 기능일 뿐입니다.

따라서 JDBC URL에만 집중하시면 됩니다.

감사합니다.