개발일지/League Linker

[개발환경] H2 DB 선택과 연결하기

기억지기 개발자 2024. 8. 9. 09:35

🤷🏻‍♀️고민하기 - 어떤 DB를 사용할 것인가

이전 프로젝트에서는 mysql를 사용하기도 했고, 가장 친숙한 느낌이라 mysql을 사용할까도 했지만 

스프링 부트를 공부했을 때 test 코드 작성 시에 내장형 db를 사용하면 더 다양한 기능을 자동으로(?) 사용할 수 있었던 것으로 기억해서 이번에는 H2를 활용해 보기로 했다. (추후 mysql로 변경도 가능하기 때문에~)


 

 

1. 인메모리 모드

데이터가 메모리에만 저장되며, 서버가 종료되면 데이터가 사라진다. 

2. 디스크 기반 모드 ✔️

데이터가 디스크에 저장되며, 서버를 종료하고 다시 시작해도 데이터는 유지된다. 

 

✔️ Mac에서 h2에 실행하기

  1. 터미널에 접속한다.
  2. cd 명령어를 활용해 다운받아 놓았던 h2 폴더 ➡️ bin 폴더까지 들어간다.
  3. 그 상태에서 아래의 명령어를 입력한다.
chmod 755 h2.sh
./h2.sh

위의 명령어를 입력하고 나면 자동으로 띄워지는 화면

 

인메모리 모드를 사용할 것이기 때문에 Embedded가 아니라 Server로 선택해서 실행해야 한다.

Generic H2(server)로 선택

 

✔️ Intellij - DB에 연결하기

intellij - DB properties 설정

 

# 데이터베이스 연결 설정
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

# JPA 설정
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect

application.properties에 연결 정보를 입력.

 

✔️ 결과

H2 DB 화면

인텔리제이에서 코드를 작성한 후 실행하면 entity 클래스들이 테이블로 생성된 것을 확인할 수 있다.

 


아주 기초적인 내용이지만 처음에 DB 선택 이유부터 과정까지 모두 남겨놓고 싶어서 포스팅을 해보았다.