[spring boot] spring boot 프로젝트 H2 데이터베이스 연결

Soorim Yoon·2024년 12월 25일
0

spring boot

목록 보기
3/3

지난 시간 spring boot 프로젝트에 데이터베이스를 연결하지 않고 (관련 DB 정보를 property에 설정하지 않고) 프로젝트를 실행하니, 오류가 발생하였다.

DB를 연결하지 않으면 서버 실행조차 불가하다니, 처음 알게 된 사실이다. (그동안 업무하면서는 완성된 시스템의 소스와 DB를 통으로 세팅하여 개발했으니, 이 부분을 몰랐다. 😇
이번 기회에 배워서 다행이다 ~!)

이번 시간엔 해당 오류를 해결해보고자 한다.

0. H2 database 설치

홈페이지에서 다운로드

아래 h2 database 홈페이지에서 설치 파일을 다운받는다.
https://www.h2database.com/html/main.html

  • 나중에 h2 database 에 관해 게시글을 작성할 예정이다.
    (h2 database 특징, 장점, 왜 h2 database를 사용했는지 등)

압축풀고 실행

다운 받은 파일의 압축을 풀면 다음과 같은 구성으로 되어 있다.

여기서 ./bin/h2.sh 를 입력하여 h2 console 을 실행한다.
만약 권한이 없다면 아래 명령어로 권한을 부여한다.

chmod 755 ./bin/h2.sh

h2 console을 실행한 모습

  • terminal 창에서 ./bin/h2.sh 를 입력하면, 새 크롬창에 아래 콘솔이 뜬다.
./bin/h2.sh

  • JDBC URL 을 아래처럼 변경해준 후, "연결" 을 클릭한다.

  • "연결" 을 진행하면, Root 폴더 (=soorim 폴더) 에 my-db-test.mv.db 가 생성된 것을 확인할 수 있다.

  • 이후 다시 h2 console 에서 연결 끊기 후, jdbc:h2:tcp://localhost/~/my-db-test 로 접속해서 사용하면 된다.

jdbc:h2:tcp://localhost/~/my-db-test

1. build.gradle에 H2 dependency 추가

: build.gradle 의 dependencies 에 아래 내용을 추가한다.

dependencies {
	// H2
	runtimeOnly 'com.h2database:h2:'
}

2. application.yml DB 설정 추가

  • 프로젝트 구조를 확인해보니 application.properties 로 설정이 되어있어, application.yml 로 설정을 바꿔주었다. 바꾸는 방법은 아래 게시글을 참고하였다.
    (추후 yml vs properties 비교글도 작성해보겠다.)

    application.properties를 우클릭 후, Convert .properties to .yaml 을 선택해 속성을 변경해주면, 작성된 내용들도 자동으로 yaml 파일 형식으로 변환된다.

application.yml 에 DB 설정 추가

: application.yml 파일에 아래 내용을 추가한다.

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/my-db-test
    username: sa
    password:
    driver-class-name: org.h2.Driver

3. Spring boot 프로젝트 실행

그결과! 두둥 😎
tomcat 서버가 정상 실행되면서, localhost:8080 페이지에 정상 접속 가능한 것을 볼 수 있다 ~!

cf) h2 console

: h2 console은 앞으로 요 아이콘을 클릭해서 연결/ 연결해제 해주면 된다.
참고로 h2 console 이 연결되지 않은채로, spring boot 톰캣서버를 실행하면 구동이 안되니 꼭!! db 연결을 켜고 서버를 실행해줘야 한다.

cf) h2 database 테이블 생성

CREATE TABLE emp_table
(   emp_id      NUMBER           NOT NULL,
    emp_name    VARCHAR2(100)    NOT NULL,
    gender      VARCHAR2(10)         NULL,
    age         NUMBER               NULL,
    hire_date   DATE                 NULL,
    etc         VARCHAR2(300)        NULL,
    PRIMARY KEY (emp_id)                  );


emp_table 을 신규 생성해줬다.


드디어 spring boot 공부를 위한 개발환경들을 모두 셋팅해 주었다.
(Java 설치부터, vscode 확장팩 설치, spring boot 플젝 생성, h2 database 설치 및 연결까지 !!)
내 환경에 맞추어 셋팅을 하느라 시간이 좀 걸렸지만, 설정하면서 많은 것들을 배웠다.

다음 시간부터는 본격적으로 강의에서 배우는 실습들을 작성해보겠다.
(드디어 개발 환경세팅을 마치고 강의를 들을 수 있다. 역시 개발 공부할땐 환경설정이 가장 오래 걸리는 것 같다~)

참고

https://bcp0109.tistory.com/315 ⭐️⭐️
: MacOS 에서 H2 database 설치 및 Spring Boot 에 연결

https://velog.io/@wonizizi99/Spring-Spring-Boot-%EC%97%90%EC%84%9C-H2-database-%EC%82%AC%EC%9A%A9%EB%B2%95
: [Spring] Spring Boot 에서 H2 database 사용법 , application.yml 설정

https://herojoon-dev.tistory.com/141
: Spring Boot에 H2 Database 설정, H2 Console 띄우기

profile
👩🏻‍💻 AI를 좋아하는 IT학부생 > 성장하는 2년차 개발자

0개의 댓글