본문 바로가기
IT Study/SpringBoot

Spring DB Setting

by Irwin-Kr 2025. 7. 24.

이전에 진행하였던

Spring Security를 기반으로

DB와 연동 및 설정을 진행해 보려고 한다.

 

DB를 설치해주어야 하는데 여러가지 설치 방법이 있다.

 

1️⃣ PC 또는 노트북

2️⃣ 가상머신 or docker

3️⃣ 애플리케이션

 

이중 애플리케이션을 이용한 방법을 사용하려 한다.

애플리케이션으로 수행하게 되면,

DB 설치 과정은 생략 된다고 생각하여 진행하였다.

 

그래서 H2 Database를 사용할 것이고,

기본적인 방법만 설명할 예정이다.

 

첫 번째로 build.gradle에 의존성을 추가해 주어야 한다.

build.gradle

 

IDEA로 Intellij를 사용하고 있어 쉽게 의존성을 수정할 수 있다.

H2 Database 의존성 추가 - 1

 

Edit Staters...를 누르게 되면

프로젝트를 생성할때의 의존성을 추가하는 창이 표출된다.

H2 Database 의존성 추가 - 2

 

이제 우리가 H2 Database를 사용하기 위한 의존성을 추가해주자.

"SQL > H2 Database" 체크표시 하고 "OK"를 눌러준다.

해당 의존성은 프로젝트에서 DB 연동과 설정을 위함이다.

H2 Database 의존성 추가 - 3

 

이후 프로젝트에서 사용을 위해

application.properties에 H2 Database의

여러 정보를 추가해줘야한다.

application.properties 위치

 

아무런 설정을 하지 않은 application.properties에는

spring.application.name에 프로젝트 명이 설정 되어 있음을 확인할 수 있다.

application.properties 설정 초기

 

Database Driver를 

spring.datasource.driver-class-name="driverName"

로 추가해 주면 된다.

해당 설정은 어느 DB와 연결을 할때 필요하고,

driverName은 각 DB문서를 확인하면 된다.

H2 Database Driver 추가

 

이후 Databasse에 대한 URL 설정을 진행하는데

spring.datasource.url={DB url}로 연결할 URL을 입력한다.

해당 url은 대부분 ip:port 형식으로 구성되어 있지만,

H2 Database의 경우 방식 다르므로 확인이 필요하다.

 

그러므로 잠깐 설명을 해보려고 한다.

(필요 없으면 넘어가시면 됩니다.)

더보기

1. Embedded

2. Server

3. mixed

 

Embedded의 경우 로컬 환경에서의 JDBC 연결을 위해 사용하고

Server는 외부 JDBC 접속과 TCP/IP의 ODBC 연결을 위해 사용한다.

마지막으로 mixed는 로컬과 외부의 같은 시간에 연결하기 위해 사용한다.

 

이중 In-Memory로 사용할 것이므로 Embedded를 사용한다고 보면 된다.

 

URL을 jdbc:h2:mem:{name}으로 사용한다.

name의 경우 단일 연결에 사용될때는 작성 하지 않아도 되지만,

다수 연결에는 작성해주어야 한다.

H2 Database 설정 - 1

 

 

추가로 DB에 접속해서 데이터를 확인하고 싶으면

spring.h2.console.enabled=true로 설정하면 된다.

H2 Database 설정 - 2

 

DB 초기 설정을 확인을 위해 프로젝트를 실행하여

H2-Database의 웹 콘솔에 접속해 보려고 한다.

 

웹브라우저를 열고서 "localhost:8080/h2-console"로 접속

h2-console

 

 

Driver Class부터 차례로 아래 처럼 입력하자.

구분 작성 내용
Driver Class org.h2.Driver
JDBC URL jdbc:h2:mem:test
User Name sa
Password  

 

아이디와 패스워드는 따로 설정하지 않았기 때문에

기본 아이디인 "sa"로 패스워드 없이 접속하면 된다.

 

h2-console 접속 정보

 

h2-console 접속 성공

 

 

만약 User Name과 Password를 변경하고 싶으면,

applicaiton.properties에서 설정해주면 된다.

H2 Database 설정 - 2

 

 

변경을 완료하면 프로젝트를 재기동해야 적용된다.

h2-console 변경된 ID, PW 접속
h2-console 접속 성공

 

 

마지막으로 In-memory에서 가장 중요한 내용으로

애플리케이션을 재기동하면 스키마와 데이터가 삭제된다.

매번 콘솔에 접속하여 스키마, 테이블, 데이터를 넣기에는 무리가 있다.

 

이에 spring은 응용프로그램 시작과 동시에 데이터를 넣을 수 있도록 제공하고 있다.

spring.sql.init.schema-location으로 DDL 처리,

spring.sql.init.data-location으로 DML 처리

라고 생각 후 작업하면 편할것 같다.

 

resources에 각자 원하는 방식으로 *.sql을 생성하면 되고,

여기에서는 sql 폴더에 생성을 해 보았다.

.sql 폴더 구조

 

 

생성된 *.sql을 application.properties에 설정이 필요하며,

아래와 같이 작성해주면 된다.

SQL 설정

 

이후 애플리케이션 재기동을 진행해 직접 h2-console에 접속해서 확인한다.

'IT Study > SpringBoot' 카테고리의 다른 글

Spring Security 인증 구조 - 3  (2) 2025.07.12
Spring Security 인증 구조 - 2  (0) 2025.06.28
Servlet 인증 구조  (2) 2025.06.14
Spring Security(4)  (1) 2025.05.09
Spring Security(3)  (0) 2025.04.26