Object-Relational Mapping
객체와 관계형 데이터 베이스의 데이터를 매핑하는 기술
Java Persistence API 데이터베이스를 쉽게 다루기 위한 데이터 엑세스 기술로 ORM기법을 사용하여 자바 어플리케이션에서 사용하는 객체와 관계형 데이터베이스 사이의 매핑을 관리하는 ORM에 대한 API 표준 명세서.
JPA는 표준화된 API를 제공함으로써, 다양한 ORM 프레임워크(Hibernate,OpenJPA, EclipseLink) 와의 호환성을 보장한다.


public interface UserRepository extends JpaRepository<UserEntity, UUID> {
Optional<UserEntity> findByUserNickname(String nickname);
boolean existsByUserEmail(String email);
boolean existsByUserNickname(String nickname);
}
✔️ 인터페이스에 약속된 규칙대로만 메서드를 쓰면, 구현체와 SQL이 자동으로 생성된다.
SELECT * FROM users WHERE nick_name='user3' 이라는 쿼리를 직접 쓰지 않고
userRepository.findByUserNickName('user3')
이렇게 간편하게 쿼리 작업을 할 수 있다.
또한 반환값은 다시 매핑해줄 필요가 없는 객체(혹은 반대는 테이블)에 매핑해줄 필요가 없다.
만약 JPA가 없었다면 어떻게 해야 했을까?