블로그 만들기 2. H2 DB 연결하기

Feb 05, 2024
블로그 만들기 2. H2 DB 연결하기

1. build Gradle의 의존성 확인하기

dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-mustache' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
  • jpa : Spring Data JPA를 사용하는 데 필요한 기본 의존성을 포함되어 있음
JPA(Java Persistence API)를 사용하여 데이터베이스와의 상호 작용을 지원
  • mustache : Mustache 템플릿 엔진을 사용
Mustache는 간단하면서도 강력한 템플릿 언어를 제공
  • web : 스프링 부트 웹 애플리케이션을 개발하는 데 필요한 기본 의존성
Spring MVC와 내장된 톰캣 서버를 사용하여 웹 애플리케이션을 구성
  • lombok : 롬복 라이브러리의 컴파일 타임 의존성
어노테이션을 통해 getter, setter, equals 등을 자동 생성
  • devtools : 스프링 부트 애플리케이션의 개발을 도우는 도구
코드 변경 감지, 자동 재시작 및 다양한 개발 환경을 지원
  • h2 : 인메모리 데이터베이스 H2의 런타임 의존성
개발 및 테스트 목적으로 사용, 휘발성이기 때문에 전원이 꺼지면 데이터가 날라감
  • mysql-connector-j : MySQL 데이터베이스에 연결하기 위한 런타임 의존성
MySQL 데이터베이스와의 상호 작용을 지원
  • test : 스프링 부트 테스트를 위한 기본 의존성을 제공
JUnit, Spring Test 등을 사용하여 애플리케이션을 테스트할 수 있음
 

2. H2 DB

  • 자바로 작성된 관계형 데이터베이스 관리 시스템 / 서버 실행시 자동 설치
  • 자바 애플리케이션에 임베드(장착)하거나 클라이언트-서버 모드에서 구동할 수 있음
  • 인메모리 데이터 베이스 : 킬 때마다 똑같은 상태로 셋팅 가능
  • DB는 종료되면 데이터가 다 날아감 / 휘발성
  • 메모리에 데이터를 저장 / 설치가 필요없음
  • 방언 설정이 가능 : 무슨 데이터 모드(Mysql인지 다른 것인지)로 실행할 것인지 설정이 가능함
 

3. JPA(Java Persistence API)

  • Java를 사용하여 DB와의 관계형 데이터를 영구적으로 저장하고 검색하기 위한 API
  • Java의 객체를 관계형 DB에 매핑하는 기술을 제공
객체와 DB 간의 매핑 작업을 간소화
  • SQL 쿼리를 직접 작성하는 대신 Java 객체를 사용하여 DB와 상호 작용 가능
  • 다양한 인터페이스와 메서드를 제공
  • 내가 만든 오브젝트로 바로 받을 수 있음 // 굉장히 편함
ex) 서버(자바) - - - - - - - 디비
셀렉트 요청 : ResultSet 테이블 형태 데이터(rs)를 응답 받음
커서를 내리면서 파싱 → 자바 오브젝에 넣음 // 이 과정이 항상 필요함
 

4. dev.yml에 설정하기

server: servlet: encoding: charset: utf-8 force: true session: timeout: 30m port: 8080 spring: mustache: servlet: expose-session-attributes: true expose-request-attributes: true datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test;MODE=MySQL username: sa password: h2: console: enabled: true jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true
💡
조심해야 할 것 : 띄워 쓰기, 들여쓰기 위치!
 

5. H2 DB 연결 확인하기

notion image
notion image
 
Share article

vosw1