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
반응형
'개발공부 > JAVA Spring' 카테고리의 다른 글
JPA ddl-auto 옵션 종류 (0) | 2023.01.25 |
---|---|
Spring 웹 계층 (0) | 2023.01.25 |
spring 포트 번호 관련 에러 - Only one usage of each socket address (protocol/network address/port) is norm ally permitted. (0) | 2023.01.25 |
템플릿엔진 Handlebars 라이브러리 (0) | 2023.01.25 |
Java 거리 계산 알고리즘 - Haversine formula (0) | 2023.01.24 |
댓글