CS기술면접/DataBase

[Database] mac 환경 H2 사용법 정리

포포015 2022. 6. 26. 16:54

목차

  • 1. h2 DB란 무엇인가?
  • 2. mac os 환경에서 h2 사용해보기 ( mac - m1 칩)
  • 3. java spring boot 에서 h2 연결 해보기

 

1. h2 란 무엇인가?

- h2는 가벼운 데이터베이스이다.

 ?????????????????? 무슨말이지 이게?

RDB의 경우 오라클,mysql,maria 등등 많은 데이터베이스가 있다.

한번 설치해보신분들이라면,  설치하는게 어렵진 않겠지만 생각보다 설치하고 환경설정잡고 등등등... 귀찮고 오래걸린다.

그래서 나온게 h2 DB이다. mode 설정으로 여러 데이터베이스를 가볍게 사용할수있다.

 

 

 

2. mac 환경(m1칩)에서 h2 사용해보기.

[DB생성과 실행 시나리오]

일단 h2를 설치하고 압축을 해제하고 /h2/bin/h2.sh    경로에 있는 h2.sh파일을 실행하자.

실행을 하면 http://localhost:8082/login.jsp?jsessionid=[key] 

 

위와 같은경로로 root 권한의 h2 데이터 베이스가 구동된다.

mac 상단에 보면 노란색 아이콘으로 된 h2 프로그램이 구동되고 있을텐데,

 

클릭해서 create a new database 를 눌러서 데이터베이스를 만들자. (패스워드는 필수로 입력해야 DB생성이 되는듯하다.)

본인의 폴더 경로를 지정해서 만들면, db명.mv.db 파일이 생성되있을텐데 그럼 정상으로 데이터베이스가 생성된것이다.

 

자 그럼 아까 뜬 웹사이트에서 DB생성한 경로로 접속해보자.

아래 이미지와 같이 정보를 입력한다

위의 이미지로 화면이 이동된다면 h2가 정상적으로 생성된것이다.

  

 

 

3. java spring boot에서 h2 연결해보기

 

위의 이미지까지 성공적으로 되었다면, 서버로 사용할 데이터베이스를 생성했다.

 

h2는 기본적으로 내장모드, 서버 모드 두가지의 형태로 사용할수 있는데,

 

내장모드 - application이 구동되면 DB접근이 허용되고 application이 다운되면 안의 데이터는 사라지게된다.

서버모드 - DB데이터를 관리하는 파일 .mv.db 에 데이터를 기록해놓기에 application이 종료되더라도 데이터는 온전하다. 

 

 

서로의 장단점이 있는데, 내장모드의 경우 h2.sh를 실행 하지 않아도 구동이 된다( 테스트코드 같은경우 사용하면 유용할거같다.)

서버모드의 경우 mysql 설치하기 귀찮고 임시 데이터를 저장하는느낌으로 사용하면 좋다. (application이 다운되도 데이터를 확인할수 있기에.)

 

 

 

 

서버 모드의 application.yml 파일

(url에 Mode를 안쓰면, mac - m1 칩에서는 인식이 안되서 추가 했다. 윈도우는 안써도 인식됫는데 ㅠ.ㅠ...) 

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/h2/dbList/test;MODE=MySQL
    username: sa
    password: 1234
    driver-class-name: org.h2.Driver

 

 

내장모드의 application.yml 파일

spring:
  datasource:             
    url: jdbc:h2:mem:test
    username: sa
    password:
    driver-class-name: org.h2.Driver

    h2:                         #h2 메모리 모드로 쓸경우 추가
    console:
      enabled: true
 
 
 
 

 

'CS기술면접 > DataBase' 카테고리의 다른 글

[Database] Database 면접 질문  (0) 2021.02.16