이번 프로젝트를 진행하면서, H2 데이터베이스 를 사용해보게 되어, 설치법 공유!
H2 DB?
- H2는 자바로 작성된 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)
- H2 데이터베이스는 내장 모드와 서버 모드 모두에서 동작 가능
- 개발 환경에서 빠르고 쉽게 사용할 수 있는 경량 데이터베이스
- 테스트 및 프로토타이핑에 유용
특징
- 경량성: H2는 경량 데이터베이스로, 메모리와 디스크 모두에서 작동 가능
- 임베디드 및 서버 모드: H2는 자바 애플리케이션에 내장될 수 있는 임베디드 모드와 클라이언트-서버 방식으로 사용할 수 있는 서버 모드를 지원
- 호환성: H2는 다양한 SQL 기능을 지원하며, 다른 주요 데이터베이스(MySQL, PostgreSQL 등)와의 호환성을 제공하는 모드를 지원
이러한 점을 통해 Spring Data 에서 따로 설정하지 않고, MySQL로 어댑터만 바꾸어 주어도 동작!
데이터베이스 이식성(Database Portability) 이라고 한다!
- 특정 데이터베이스에서 작성된 코드가 다른 데이터베이스로 쉽게 전환될 수 있는 능력
- 빠른 성능: 인메모리 모드에서 특히 빠른 성능을 제공하여 단위 테스트 및 애플리케이션 프로토타이핑에 적합
- 웹 콘솔: H2는 편리한 웹 기반 콘솔을 제공하여 데이터베이스를 관리하고 쿼리를 실행 가능
- 오픈 소스: H2는 Apache 2.0 라이선스로 제공되는 오픈 소스 프로젝트

구동 환경
OS : Mac OS
JAVA : JAVA 17
IDE : IntelliJ
1) H2 Database 설치
H2 데이터베이스 다운로드 페이지



- h2.sh 파일을 실행시키기 위해 권한을 설정한다
chmod 755 ./h2.sh

- h2.sh 쉘 스크립트 파일을 실행한다 → 앞으로 DB를 실행시키기 위해서는 해당 명령어로 동작한다.

- 이 터미널이 종료되게 되면, DB의 연결도 종료된다.
실행 화면

2) DB 설정

If) 설정 이름을 삭제해서 “Generic H2 (Embedded)가 안보인다면??
- User 디렉토리로 들어가서 리눅스 명령어 ls -al 을 치면 .h2.server.properties 파일이 보인다

rm .h2.server.properties

- 위 화면에서 연결 버튼을 누르면 /user 디렉토리에 [설정한 이름].mv.db 가 생긴다
3) IntelliJ에 DB 연동


jdbc:h2:tcp://localhost/~/was
- 여기서 / 을 하면 빨간줄이 뜰 떄도 있는데 상관없다