H2 DB

두별·2021년 12월 6일
1

Spring Framework

목록 보기
14/18
post-thumbnail

패스트캠프 초격차 Part1. Spring Framework-Ch.03 필기노트

H2 DB란?

My SQL, Oracle 같은 relational DB이다.
위와 같은 rDB는 설치해야 하고 무겁고 테스트하기 어렵지만
내가 만든 애플리케이션을 기계에 빨리 띄울수 있어야 할때 H2 DB를 사용해볼 수 있다.

H2 DB라는것은 메모리 DB로 많이 사용된다.
메모리에도 쓸 수 있고 파일에도 쓸 수 있는데 주로 메모리 DB로 많이 사용된다.

build할때 H2 DB를 같이 넣은 이유는 H2 DB를 이곳에 임베디드로 같이 띄워주기 위함이다.(애플리케이션과 H2 DB를 똑같은 8080 port에 띄워주기 위한 셋팅)

H2 DB를 따로 띄워주는 필요 없이 애플리케이션만 띄워주면 같이 뜬다.
편리하게 테스트가 가능하고 주의할 점은, 애플리케이션이 죽을때 메모리에 남는 db이기 때문에 데이터가 다 삭제된다.
사이드 프로젝트, 과제할때 테스트용으로 편리하게 사용하기 좋다.

사용하기 위한 셋팅

application.properties 파일을 yml 로 바꾸고 위와 같이 입력.
애플리케이션을 다시 실행하고 H2 console 검색.

Database available at '...'

'' 안의 난수 복사

http://localhost:8080/h2-console/ 접속

복사해둔 부분을 JDBC URL에 붙여넣기

ORM이란?

Object-Relational Mapping
(객체-관계 매핑)
객체와 데이터의 매핑을 도와주는 프레임워크이다.

Entity란?

JPA에서는 엔티티는 테이블에 대응하는 하나의 클래스
@Entiy 어노테이션을 붙이면 테이블과 클래스가 매핑됨.

Auditing이란?

Java에서 ORM 기술인 JPA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재
DB값이 변경했을 때 누가 값을 변경했고, 언제 변경했는지 Audit(감사)하는 용도로 사용
@CreatedDate, @LastModifiedDate, @CreatedBy, @LastModifiedBy 와 같은 어노테이션을 제공

H2 DB 데이터가 생성된 모습

정리

  1. H2 DB라는 메모리DB를 이용해서 데이터 저장이나 조작을 테스트 해볼 수 있다.

  2. 1을 하기 위해서 엔티티라는 특수한 타입의 클래스를 만들어주고 셋팅한다. @Entiy, @EntityListeners

  3. Repository 엔티티를 영속화하기 위한 인터페이스를 만들어준다.

  4. 서비스에서 Repository 호출

  5. 컨트롤러에서 요청을 받앗을때 create-developers를 호출

  6. developer라는 엔티티 객체를 Repository에 save하여 영속화를 해주면 우리가 띄워준 H2 DB에 저장이 된다.

  7. 저장된 데이터를 H2 console을 이용해서 손쉽게 확인해볼 수 있다.

0개의 댓글