카테고리 없음

Spring boot #10 ORM,JPA

가든링 2023. 1. 29. 22:48

ORM이란?


어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미

-java의 데이터 클래스와 관계형 데이터 베이스의 테이블을 매핑

 

객체지향 프로그래밍과 관계형 데이터베이스의 차이로 발생하는 제약사항을 해결해주는 역할을 수행함.

 

대표적으로 JPA, Hibernate등이 있음(Persistent API)

 

  • ORM장점
  1. SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있음
  2. 재사용 및 유지보수가 편리함
  3. DBMS에 대한 종속성이 줄어듬
  • ORM 단점
  1. 복잡성이 커질 경우 ORM만으로 구현하기 어려움
  2. 잘못 구현할 경우 속도 저하 발생
  3. 대형 쿼리는 별도의 튜닝이 필요할 수 있음
  • JPA란 ?

JPA는 java Persistance API의 줄임말로, ORM과 관련된 인터페이스의 모음

JAVA진영에서 표준 ORM으로 채택되어 있음

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

 

  • Hibernate

ORM Framework 중 하나

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

출처 : https://www.studytonight.com/spring-framework/hibernate-configuration

  • Spring Data JPA

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

- CRUD처리용 인터페이스 제공

- Repository개발시 인터페이스만 작성하면 구현 객체를 동적으로 생성해서 주입

- 데이터 접근 계층 개발시 인터페이스만 작성해도 됨

 

Hibernate에서 자주 사용되는 기능을 조금 더 쉽게 사용할 수 있도록 구현

 

 

*JPA Repositroy interface 작성시 extends JpaRepository를 하게되면 @Repository어노테이션을 붙히지 않아도됨.