[intelliJ] Spring Boot JPA 활용을 위한 H2 데이터베이스 설치 및 사용 방법

JooKit 주킷 2024. 11. 7. 19:34
목차 접기
728x90
반응형

 

 

Help.


JPA: Java Persistence API

스프링 부트는 JPA를 ORM 기술의 표준으로 사용하고 있다.
JPA는 인터페이스 모음으로 이 인터페이스를 구현한 실제 클래스를 필요로 한다.

JPA를 활용하기 위한 대표적인 실제 클래스로 하이버네이트: Hibernate 가 있다.

* 인터페이스는 클래스가 구현해야 하는 메서드들을 정의한 틀이라고 볼 수 있다.

 

 

 

H2 데이터베이스 설치하기

H2 데이터베이스는 주로 개발 환경에서 사용하는 자바 기반의 경량 DBMS이다. 

 

 

 

DBMS 종류

- MySQL
- Oracle
- PostgreSQL
- MongoDB 
- .. 등 

 

RDBMS: Relational Database Management System 

- DBMS의 하위 개념으로, 데이터를 관계형 모델로 저장하고 관리할 수 있는 DBMS를 말한다.
- 테이블과 테이블 간의 관계를 기반으로 데이터를 저장하고 관리하는 방식이다.
- 종류: MySQL, Oracle, PostgreSQL 등 

 

 

MySQL Workbench, Sequel Pro, DBeaver, HeidiSQL 들은 DB 관리 툴 (Database Management Tool) 이다.

데이터베이스(DBMS/RDBMS)와 연결하여 데이터를 조회하고, 테이블 구조를 확인하고, 쿼리를 실행하는 등의 관리 작업을 편리하게 수행할 수 있도록 도와주는 클라이언트 프로그램이다.

 

 

 

H2 데이터베이스 설치

 

build.gradle 파일에서 공백에 우클릭 -> Generate 클릭 

 

 

 

 

Add Maven artifact dependency 선택 

 

Maven Repository 사이트에서 필요한 maven 또는 gradle을 다운로드 받아서 사용해왔지만,
인텔리제이에서는 내부 기능으로 maven repository에 대한 인덱싱 작업만 해주면 작업 중에 원하는 gradle을 검색해서 바로 원격 저장소에서 내려받아 사용할 수 있다.

 

 

 

📌


인텔리제이에서 maven repository에 대한 인덱싱 작업이 되어 있지 않다면, gradle을 검색하려고 해도 검색 결과가 나오지 않을 것이다. 그런 경우, 아래의 방법으로 인덱싱 작업을 해줄 수 있다.

 

 

 

 

File -> Manage IDE Settings -> Settings Sync 선택 

 

 

 

1. build 검색 -> Build, Execution, Deployment -> Repositories 선택 
2. https://repo1.maven.org/maven2/ 선택 후 업데이트 -> OK 선택 

 

 

인텔리제이 하단에 maven repository에 대한 인덱싱 작업 시작을 확인할 수 있다.

 

 

 

본인은.. 무엇이 문제인지 maven 원격 저장소에서 gradle 목록을 제대로 불러오지 못하여 gradle 코드를 찾아서 build.gradle 파일에 직접 설정해 주었다.

 

 

 

 

runtimeOnly 'com.h2database:h2'

 

📌


runtimeOnly 란?

애플리케이션이 실행될 때만 해당 라이브러리를 필요로 한다는 것을 의미한다. 이는 컴파일 단계에서는 필요하지 않지만 런타임 시에만 필요한 라이브러리를 정의하는 데 사용된다.

이렇게 컴파일 또는 런타임 단계에서 실행할 라이브러리들을 명시해 주면, 컴파일 또는 런타임 단계에서 모든 라이브러리를 처리하지 않기 때문에 개발 환경과 컴파일 프로세스가 더 간결해진다.

그리고 빌드시간이 단축되고 성능을 향상시킬 수 있다.

 

 

 

gradle을 추가하거나 변경하면, gradle을 refresh 해줘야 반영된다.

방법: 상단 View -> Tool Windows -> gradle -> 프로젝트 우클릭 -> Refresh Gradle Dependencies 선택 

 

 

설치한 H2 데이터베이스를 사용하기 위한 추가 설정 

# DATABASE
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:~/local
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

 

src/main/resources 디렉터리에 application.properties 파일에 h2 데이터베이스를 사용하기 위한 설정을 추가

 

  • spring.h2.console.enabled : H2 콘솔에 접속할 것인지 묻는 항목으로 true로 설정했다. H2콘솔은 H2데이터베이스를 웹 UI로 보여준다.
  • spring.h2.console.path : H2 콘솔에 접속하기 위한 URL 경로이다.
  • spring.datasource.url : 데이터베이스에 접속하기 위한 경로이다.
  • spring.datasource.driver-class-name : 데이터베이스에 접속할 때 사용하는 드라이버 클래스명이다.
  • spring.datasource.username : 데이터베이스의 사용자명으로 기본값인 sa로 설정했다.
  • spring.datasource.password : 데이터베이스의 비밀번호로 로컬에서 개발 용도로만 사용할 것이므로 비밀번호를 설정하지 않고 비워 두었다.

 

 

 

데이터베이스 파일 만들어주기

spring.datasource.url에 설정한 경로에 해당하는 데이터베이스 파일을 만들어야 한다.

 

spring.datasource.url=jdbc:h2:~/local

~/ 이 경로이며, 마지막에 local은 폴더가 아닌, 사용할 데이터베이스 명 이다.

데이터베이스를 사용할 경로에, 사용할 데이터베이스 명에 local.mv.db 확장자로 파일을 생성해 준다.

예시로, spring.datasource.url=jdbc:h2:~/hello 의 경우라면 hello.mv.db 파일을 생성해 주면 된다.

  

 

 

이렇게 데이터베이스 파일을 생성해 주었고, h2 console path로 지정한 /h2-console 으로 브라우저에서 접속해보자.

 

 

웹 브라우저에서 H2 콘솔을 통해 데이터베이스에 접근하는 방법

H2 데이터베이스로 사용할 db 파일도 생성해 주었고, 데이터베이스 콘솔 경로로 지정한 path로 접속해 보자.

 

http://localhost:8080/h2-console

 

 

이렇게 웹에서 H2 콘솔로 데이터베이스에 접근을 할 수가 있게 되었다.
언어는 한글로도 선택할 수 있다.

내가 설정한 Driver Class와 User Name을 확인할 수 있다.

📌


JDBC URL 

위에서 설정해주었던,
spring.datasource.url=jdbc:h2:~/local 
----->     jdbc:h2:~/local
으로 변경을 필히 해주어야 한다. 

 

마지막으로 Connect 클릭 ✅

 

 

Help.


JDBC 란?

Java Database Connectivity

자바 프로그램에서 데이터베이스와 상호 작용을 하는 자바 API 기술이다.
JDBC는 자바 프로그램과 DB를 연결하여 데이터베이스 작업을 수행할 수 있다.

 

 

 

 

 

데이터베이스 접근 성공 !

 

 

 

728x90
반응형
LIST