Spring

Spring 개념

한 면만 쓴 종이 2022. 8. 8. 16:34

ORM: Object Relational Mapping

객체지향 패러다임을 관계형 데이터베이스에 보존하는 기술

ORM은 객체지향의 구조관계형 데이터베이스와 유사하다는 점에서 시작

객체지향 class 인스턴스 참조
관계형 데이터 베이스 table row(레코드 or 튜플) 관계

=> 객체지향을 자동으로 관계형 데이터베이스에 맞게 처리해주는 것을 의도

 

JPA: Java PersistenceAPI

ORM을 Java 언어에 맞게 사용하는 스펙

JPA는 스펙이기 때문에 스펙을 구현하는 구현체마다 회사의 이름이나 프레임워크의 이름이 다름

=> 대표적으로 Hibernate가 있음

(ORM(JPA(Hibernate))) 의 구조

 

Spring Data JPA가 개발에 필요한 것

• JPA를 통해서 관리하게 되는 객체(엔티티 객체)를 위한 엔티티 클래스

• 엔티티 객체들을 처리하는 기능을 가진 Repository

 

JpaRepository 인터페이스 : Hibernate를 이용하기 위해 제공하는 API

JpaRepository를 사용할 때는 엔티티의 타입 정보와 @Id의 타입을 지정

=> 인터페이스 선언만으로 자동으로 스프링 빈에 등록됨

< 메서드 >

insert : save(엔티티 객체)

select : findById(키타입), getOne(키타입)

update : save(엔티티 객체)

delete : deleteById(키 타입), delete(엔티티 객체)

 

테스트 코드는 작성한 적 없는 클래스의 이름이 출력됨 => 동적 프록시라는 방식으로 만들어짐