안녕하세요, 오늘은 JPA에 대해서 자세히 이해해보는 시간을 가지고자 합니다, JPA 같은 경우에는 Spring으로 백엔드 개발을 자주 하시는 분들이라면 무조건 한 번쯤 접해보실 수 있는 기술이며, 저 역시 JPA를 통해서 개발을 하지만 정확하게 JPA가 무엇인지, JPA가 어떻게 동작되는지, JPA의 장점이 무엇인지 등등 제대로 된 이해를 하고자 오늘 포스팅을 하게 됐습니다.
JPA는 Java Persistence API 의 약자로, 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 표준화한 API 입니다, 이를 통해서 개발자는 데이터베이스 작업을 보다 쉽고 효율적으로 할 수 있으머 JPA를 사용 함으로써 객체 지향 프로그래밍과 관계형 데이터베이스 간의 간격을 있는 ORM 기술을 활용할 수 있습니다.
즉, JPA는 ORM 사용을 위한 표준화된 API입니다.
ORM(Object-Relational Mapping)이란?
: ORM은 객체와 관계형 데이터베이스 테이블 간의 매핑을 자동화해주는 기술입니다.
이를 통해 객체 지향 프로그래밍을 사용하여 데이터베이스를 더 쉽게 관리할 수 있습니다.


그러면 JPA는 왜 필요한 걸까요?
Spring Data JPA는 JPA를 기반으로 하여 데이터 접근 계층을 구현하는데 필요한 반복적인 코드를 줄이고, 데이터베이스 작업을 더욱 효율적으로 할 수 있도록 여러 편리한 기능을 제공하는 기술입니다, Hibernate같이 JPA의 구현체를 직접 다루는 것이 아닌, 구현체들(JPA 기술)을 더 쉽게 사용할 수 있도록 추상화 시킨 기술입니다.
즉, Spring Data JPA는 Spring에서 JPA를 편리하게 사용할 수 있도록 하는 기술입니다.

Member 클래스는 회원 정보를 나타내며, JPA 엔티티로 사용됩니다.

MemberRepository 는 Spring Data JPA의 JpaRepository 인터페이스를 확장하여 데이터베이스와의 상호작용을 위한 메서드들을 자동으로 사용할 수 있습니다.

MemberService는 비즈니스 로직을 처리하는 서비스 계층이며, MemberRepository를 사용하여 데이터베이스 작업을 수행할 수 있습니다.
이렇게 해서 위 예제들은 Spring Data JPA를 사용하여 간단한 회원 관리 시스템 을 구현하는 방법으로 여러에는 에니팉 클래스 정의, 레포지토리 인터페이스 생성, 서비스 게층을 통한 데이터베이스 작업 수행과 관련된 내용을 확인할 수 있었습니다.
자 그러면 Spring Data JPA 와 그냥 JPA 는 어떠한 차이가 있을까요?
JPA는 앞서, Java Persistence API의 약자로 ORM 사용을 위한 표준화된 API라고 말씀드렸습니다, 그리고 Spring Data JPA는 Spring Freamework의 일부로, JPA를 기반으로 하는 저장소 계층에 대한 접근을 단순화합니다, 즉 JPA 기반 애플리케이션 개발을 보다 간편하게 만들어주는 기술입니다.
정리하면 아래와 같습니다.
오늘은 이렇게 해서 Spring Data JPA와 JPA가 무엇인지 그리고 이 두가지의 차이점이 무엇인지에 대해서 알아봤습니다, 마지막으로 이 두가지에 대해서 정리를 해보며 오늘 포스팅을 마치도록 하겠습니다.
JPA (Java Persistence API)
Spring Data JPA
이렇게 JPA는 ORM을 위한 표준 API를 제공하는 반면, Spring Data JPA는 이를 활용하여 개발자의 생산성을 더욱 향상시키는 Spring의 방법론입니다.

감사합니다.