Spring-Boot

ORM이란?

뚜코맨 2023. 10. 25. 21:07

 

 

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

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

 

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

대표적으로 JPA, Hibernate등이 있음

 

ORM의 장점

1. SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있다

2. 재사용 및 유지보수가 편리하다

3. DBMS에 대한 종속성이 줄어듬

 

ORM의 단점

1. 복잡성이 커질 경우 ORM만으로 구현하기 어려움
 - 직접 쿼리를 구현하지않아 복잡한 설계가 어렵다

2. 대형 쿼리는 별도의 튜닝이 필요할 수 있음

 

JPA란?

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

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

 

Hibernate?
ORM Framework중 하나

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

 

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

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

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

 

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

 

'Spring-Boot' 카테고리의 다른 글

[Spring-Boot] 테스트케이스의 @Transactional  (0) 2024.01.12
메이븐(maven) vs 그래들(gradle) 비교  (1) 2023.12.20
OAuth란?  (0) 2023.07.27
스프링 시큐리티(Spring Security)  (0) 2023.07.15
스프링 부트란?  (1) 2023.07.08