본문 바로가기
개발공부/JAVA Spring

[Spring Boot] DB 관련 용어 정리

by bzerome240 2023. 1. 25.

DB를 비유하자면 집도 되지않을까?....

 

ORM(Object Relation Mapping) 

 

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑하는 방법

ORM을 이용하면 쿼리문 작성이 아닌 코드로 데이터를 조작할 수 있다.

 

장점

  • 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다.
    • 쿼리문 작성 양이 줄어들어 개발 비용이 줄어들고, 가독성이 높아진다.
  • 매핑된 객체는 독립적으로 작성돼있어서 재사용 및 유지보수가 편리하다.
  • 데이터베이스에 대한 종속성이 줄어든다.
    • 데이터베이스 교체 시 리스크가 적다.

 

단점

  • ORM만으로 온전한 서비스 구현에는 한계가 있다.
    • 복잡한 코드를 정확한 설계 없이 ORM 구성하면 속도 저하 등의 문제가 발생할 수도있다.
  • 애플리케이션의 객체 관점과 데이터베이스 관계 관점의 불일치가 발생한다.
    • 설계 방법에 따라 데이터베이스에 있는 테이블 수와 Entity 클래스의 수가 다른 경우가 생긴다. (클래스의 수 > 테이블 수)

 

JPA(Java Persistence API)

 

자바에서의 ORM 기술 표준으로 채택된 인터페이스의 모음, 어떻게 동작해야 하는지 메커니즘을 정리한 표준 명세

인터페이스이기 때문에 구현체 ex) Hibernate 등 이 필요하다.

ORM이 큰 개념이라면 JPA는 더 구체화된 스펙을 포함한다.

 

 

H2 데이터베이스

 

자바 기반 오픈소스 RDBMS

인메모리 데이터베이스로 사용되며 기능 테스트 시 유용하다. (서버를 종료하면 모든 데이터가 삭제된다)

 

Hibernate

 

ORM 프레임워크, 대표적인 JPA 기반의 구현체

객체로 DB 테이블을 조작할 수 있다.

 

 

Spring Data JPA

 

하이버네이트의 기능을 더욱 편하게 사용되도록 모듈화한 것

JPA를 편하게 사용할 수 있는 모듈

내부적으로 Hibernate를 사용한다.

CRUD 처리에 필요한 인터페이스를 제공한다.

 

Repository

 

Spring-data-jpa 모듈에서 제공하는 JPA를 추상화시킨 인터페이스

엔티티가 생성한 데이터베이스에 접근하는데 사용된다.

 

조회 메서드 조건

  • FindBy
  • AND, OR
  • Like / NotLike
  • StartsWith / StartingWith
  • EndsWith / EndingWith
  • IsNull / IsNotNull
  • True / False
  • Before / After
  • LessThan / GreaterThan
  • Between
  • OrderBy
  • countBy

 

 

 

728x90
반응형

댓글