이전에 진행하였던
Spring Security를 기반으로
DB와 연동 및 설정을 진행해 보려고 한다.
DB를 설치해주어야 하는데 여러가지 설치 방법이 있다.
1️⃣ PC 또는 노트북
2️⃣ 가상머신 or docker
3️⃣ 애플리케이션
이중 애플리케이션을 이용한 방법을 사용하려 한다.
애플리케이션으로 수행하게 되면,
DB 설치 과정은 생략 된다고 생각하여 진행하였다.
그래서 H2 Database를 사용할 것이고,
기본적인 방법만 설명할 예정이다.
첫 번째로 build.gradle에 의존성을 추가해 주어야 한다.

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

Edit Staters...를 누르게 되면
프로젝트를 생성할때의 의존성을 추가하는 창이 표출된다.

이제 우리가 H2 Database를 사용하기 위한 의존성을 추가해주자.
"SQL > H2 Database" 체크표시 하고 "OK"를 눌러준다.
해당 의존성은 프로젝트에서 DB 연동과 설정을 위함이다.

이후 프로젝트에서 사용을 위해
application.properties에 H2 Database의
여러 정보를 추가해줘야한다.

아무런 설정을 하지 않은 application.properties에는
spring.application.name에 프로젝트 명이 설정 되어 있음을 확인할 수 있다.

Database Driver를
spring.datasource.driver-class-name="driverName"
로 추가해 주면 된다.
해당 설정은 어느 DB와 연결을 할때 필요하고,
driverName은 각 DB문서를 확인하면 된다.

이후 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의 경우 단일 연결에 사용될때는 작성 하지 않아도 되지만,
다수 연결에는 작성해주어야 한다.

추가로 DB에 접속해서 데이터를 확인하고 싶으면
spring.h2.console.enabled=true로 설정하면 된다.

DB 초기 설정을 확인을 위해 프로젝트를 실행하여
H2-Database의 웹 콘솔에 접속해 보려고 한다.
웹브라우저를 열고서 "localhost:8080/h2-console"로 접속

Driver Class부터 차례로 아래 처럼 입력하자.
| 구분 | 작성 내용 |
| Driver Class | org.h2.Driver |
| JDBC URL | jdbc:h2:mem:test |
| User Name | sa |
| Password |
아이디와 패스워드는 따로 설정하지 않았기 때문에
기본 아이디인 "sa"로 패스워드 없이 접속하면 된다.


만약 User Name과 Password를 변경하고 싶으면,
applicaiton.properties에서 설정해주면 된다.

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


마지막으로 In-memory에서 가장 중요한 내용으로
애플리케이션을 재기동하면 스키마와 데이터가 삭제된다.
매번 콘솔에 접속하여 스키마, 테이블, 데이터를 넣기에는 무리가 있다.
이에 spring은 응용프로그램 시작과 동시에 데이터를 넣을 수 있도록 제공하고 있다.
spring.sql.init.schema-location으로 DDL 처리,
spring.sql.init.data-location으로 DML 처리
라고 생각 후 작업하면 편할것 같다.
resources에 각자 원하는 방식으로 *.sql을 생성하면 되고,
여기에서는 sql 폴더에 생성을 해 보았다.

생성된 *.sql을 application.properties에 설정이 필요하며,
아래와 같이 작성해주면 된다.

이후 애플리케이션 재기동을 진행해 직접 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 |