WebServer/Spring Boot

[Spring/JPA] Spring Data JPA란?

gangintheremark 2023. 11. 22. 13:26
728x90

JPA(Java Persistence API)는 자바를 이용하여 데이터베이스와의 상호 작용을 쉽게 만들어주는 프로그래밍 인터페이스이다. JPA를 사용하면 객체와 관계형 데이터베이스 간의 매핑을 쉽게 처리할 수 있으며, 데이터베이스에서 객체를 저장하고 검색하는 등의 작업을 보다 간편하게 수행할 수 있다.

💡 JPA는 JAVA에서 ORM(Object-Relational Mapping)기술 표준으로 사용하는 인터페이스 모음

JPA를 사용하는 이유

  • 객체 지향적인 방식으로 데이터를 다루면서 데이터베이스를 효과적으로 활용
  • SQL 쿼리를 직접 작성하는 대신 JPA가 데이터베이스 간의 매핑을 처리 ➜ 개발자가 비즈니스 로직을 구성하는데만 집중 가능
  • RDB를 변경하더라도 SQL에 의존적이지 않기 때문에 변경 용이

MyBatis와 JPA의 차이

<mapper namespace="member">
    <select id="findAllByName" parameterType="string" resultType="UserDTO">
    select * from user
    where name = #{name}
    </select>
</mapper>

MyBatis는 Mapper에 SQL 쿼리문을 작성하고 SqlSessionTemplate 을 통해 호출해서 해당 쿼리를 실행하여 객체와 매핑을 진행하였다. JPA와 다르게 쿼리를 모두 작성해야한다.

@Repository
public interface UserRepository extends JpaRepository<UserEntity, Long>, TestRepositoryCustom { 
    public List<UserEntity> findAllByName(String name);
}

Spring Data JAP를 사용하면 대다수의 것들이 자동설정되기 때문에 편리하게 사용할 수 있고, 복잡한 네이티브 쿼리를 사용하는게 아니라면 CRUD SQL을 직접 작성할 필요가 없다.

728x90