[Spring] Spring에서 지원하는 JPA에 대해...

JY·2025년 3월 17일
0

Spring

목록 보기
1/5
post-thumbnail

💡JPA란?

Java Persistence API 의 약자로 ORM기술을 사용하기 위한 인터페이스를 제공하는 API이다. ORM프레임워크(ex. Hibernate, EclipseLink 등)를 사용하여 구현할 수 있는 공용 API를 제공한다.
여기서 중요한점은 기본적으로 인터페이스이기에 JPA자체만으로 실체 구현체는 없다는 것이다.

❓ ORM

Object-Relational-Mapping 의 약자로써 의미그대로 Java에서 사용되는 객체DB에서 사용하는 Table간의 구조를 연결시켜주는 것을 의미한다.

⁉️ Hibernate

대표적인 JPA의 구현체로써 java로 따지면 interface와 class의 관계에서 class의 역할이라고 생각하면 된다.


💡Spirng-data-JPA란?

Spring에서 제공하는 라이브러리 중 하나로, JPA 위에 추가적인 기능을 제공하여 JPA를 사용한 개발을 더욱 쉽고 간편하게 해주는 기술이다.

대표적으로 Repository라는 인터페이스를 제공하는데, 라이브러리에 정의된 규칙대로 메서드를 입력하면 Spirng이 알아서 해당 메서드 이름에 적용되어 있는 쿼리를 날리는 구현체를 만들어 Bean으로 등록해준다.

단순히 저장된 쿼리만 사용하는것이 아니라 사용자 정의 쿼리 또한 가능하다.


💡JPA를 왜 사용하는가?

JPA를 사용하는 이유는 장점과 직결된다.

  1. 불필요한 CRUD과정을 API로 처리할 수 있다.
    • JPA는 연결된 관계를 이용하여 테이블의 생성, 조회, 수정, 삭제를 쿼리문 없이 관리해준다.
  2. 테이블의 엔티티 값들을 Java 객체로 처리함으로써 좀 더 객체지향적으로 개발이 가능하다.
    • DB에서 쿼리를 작성하지 않아 종속적이지 않고, 생산성 및 유지보수 측면에서도 뛰어나다.

❓ Spring-data-JPA를 사용하지 않고 JPA만 사용한다면?

Spring에서 JPA를 사용하려면 EntityManager라는 정의된 클래스를 사용하여 데이터베이스 기능을 사용해야하는데 EntityManager는 영속성콘텍스트를 관리한다.
이는 다음 포스팅에서 알아보자...

0개의 댓글