Spring Boot) ORM, JPA, Spring Data JPA 적용

나나·2022년 3월 26일
0

스프링 부트

목록 보기
6/12
post-thumbnail

ORM

ORM은 어플리케이션의 객체와 고나계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미한다. Java의 데이터 클래스와 관계형 데이터베이스의 테이블 매핑 개념을 뜻한다.

객체지향 프로그래밍과 관계형 데이터베이스의 차이로 발생하는 제약사항을 해결해주는 역할을 수행하며, 대표적으로 JPA, Hibernate 등이 있다. 일반적으로 Persistent API라고도 부른다.

😊 장점

1. SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있다. (사실 단점이 될 수도 있다)
개발자가 보다 비즈니스 로직에 집중할 수 있다.
2. 재사용 및 유지보수가 편리하다.
ORM은 독립적으로 작성되어 있기 때문에 재사용이 가능하며, 매핑정보를 명확하게 설계하기 때문에 따로 데이터베이스를 볼 필요가 없다.
3. DBMS에 대한 종속성이 줄어든다.
DBMS를 교체하는 작업을 비교적 적은 리스크로 수행할 수 있다.

😔 단점

1. 복잡성이 커질 경우 ORM만으로 구현하기 어렵다.
직접 쿼리를 구현하지 않아 복잡한 설계가 어렵다.
2. 잘못 구현할 경우 속도 저하가 발생한다.
3. 대형 쿼리는 별도릐 튜닝이 필요할 수 있다.

JPA

JPA는 Java Persistence API의 줄임말이며, ORM과 관련된 인터페이스의 모음이다.

Java 진영에서 표준 ORM으로 채택되어 있다.

ORM이 큰 개념이라 한다면, JPA는 더 구체화시킨 스펙을 포함하고 있다.

Hibernate

ORM Framework 중 하나이다.

JPA의 실제 구현체 중 하나이며, 현재 JPA 구현체 중 가장 많이 사용된다.

Spring Data JPA

Spring Framework에서 JPA를 편리하게 사용할 수 있게 지원하는 라이브러리이다.

  • CRUD 처리용 인터페이스 제공
  • Repository 개발 시 인터페이스만 작성하면 구현 객체를 동적으로 생성해서 주입한다.
  • 데이터 접근 계층 개발 시 인터페이스만 작성해도 된다.

Hibernate에서 자주 사용되는 기능을 좀 더 쉽게 사용할 수 있게 구현해놓았다.

참고)
어라운드허브 스튜디오

profile
코린이의 둥당둥당 개발일지

0개의 댓글