Spring

Sping) ORM, JPA, Spring Data JPA

김코식 2022. 12. 7. 23:26


ORM이란 ? 

Object-Relational Mapping의 약자로 객체와 관계형 데이터를 매핑하기 위한 기술

이러한 기술이 필요한 이유는 객체 지향 언어 Vs 관계형 데이터베이스 사이의 패러다임의 불일치 때문

 

패러다임 불칠치

객체 지향 필드와 메서드 등을 묶어 객체로 만들어 사용
추상화,캡슐화, 정보은닉, 상속, 다형성 등의 시스템 복잡성을 제어 할 수 있는 장치 제공
관계형 데이터베이스 데이터를 정규화시켜 보관

JPA란 ? 

.Java Persistence API의 약자로 자바 ORM기술에 대한 API표준 명세 즉, 인터페이스의 모음으로

애플리케이션과 JDBC사이에 동작하는데 JPA를 사용하면 JPA내부에서 JDBC API를 사용하여 SQL호출하여 DB와 통신

개발자가 직접 JDBC를 사용할 필요가 없음


Spring Data JPA란 ? 

  • 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도록 지원하는 모듈
  • JPA를 사용할 때 필수적으로 생성 해야하지만 예상이 가능하고 반복적인 코드를 대신 작성해줘 코드를 줄여줌
  • CRUD 처리를 위한 공통 인터페이스 제공
  • JPA를 추상화시킨 Repository라는 인터페이스를 제공하면서 이루어짐
    (Repository 개발 시 인터페이스만 작성하면 실행 시점에 Spring Data JPA가 구현 객체를 동적으로 생성하여 주입)
  • 데이터 접근 계층을 개발할 때 구현 클래스 없이 인터페이스 작성으로도 개발을 완료할 수 있도록 지원

Spring Data JPA를 사용하기 위해서는 항상 JAP provider사 필요하다

 


 참고자료 

https://doing7.tistory.com/105

https://data-make.tistory.com/621