Home JPA는 언제 필요하고 언제 필요하지 않을까?
Post
Cancel

JPA는 언제 필요하고 언제 필요하지 않을까?

JPA란?

JPA는 자바 진영의 ORM 기술 표준으로 애플리케이션과 JDBC 사이에서 동작하며 JPA를 구현한 대표 ORM 프레임워크는 hibernate이다.

image

JPA는 지루하고 반복적인 CRUD SQL을 알아서 처리해줄 뿐만 아니라 객체 모델링과 관계형 데이터베이스 사이의 차이점도 해결해준다. CRUD SQL을 작성할 필요가 없고, 조회된 결과를 객체로 매핑하는 작업도 대부분 자동으로 처리해주다보니 코드의 양을 많이 줄일 수 있게 된다. 가장 중요한 것은 애플리케이션을 SQL이 아닌 객체 중심으로 개발하니 생산성과 유지보수가 확연히 좋아지고 테스트를 작성하기도 편리해진 점이다.


정리하자면, JPA를 사용했을 때 이점은?

  • 반복적인 CRUD SQL을 작성하지 않아도 된다.
  • 조회된 결과 객체 매핑을 자동으로 처리해준다.
  • 객체중심의 개발을 통해 생산성을 증가시킨다.
  • 성능 최적화가 가능하다. (같은 트랜잭션 안에 같은 회원 2번 조회시 한번의 쿼리만 전송)
  • 벤더독립성(다른 DB를 사용해도 이를 JPA에 알려주기만 하면 된다.)

JPA가 필요한 경우

JPA는 객체 지향 프로그래밍과 관계형 데이터베이스 간의 매핑을 담당하는 자바의 표준 기술로, 객체와 데이터베이스 간의 불일치를 해소하고 생산성을 높일 수 있습니다. 따라서 객체-관계 매핑이 필요하거나 데이터베이스 독립성이 중요한 경우에 JPA를 도입할 수 있습니다

JPA가 필요하지 않은 경우

간단한 프로젝트나 성능이 매우 중요한 경우에는 JPA를 도입하지 않을 수 있습니다. 또한, 직접 SQL을 사용하거나 특정 데이터 액세스 기술을 사용하고자 하는 상황에서는 JPA를 선택하지 않을 수 있습니다.

실제 경험

저는 jpa를 사용하는 것과 사용하지 않는 것의 차이를 알아보기 위해 간단한 프로젝트를 진행해보았습니다. 프로젝트를 진행할 때 JPA를 사용하지 않았을 때는 sql문을 적어주며, jdbcTemplate을 사용하여 코드가 길어졌지만 JPA를 사용함으로써 코드가 짧아지고, 좀 더 쉽고 빠르게 이해가 가능했습니다.


핵심 키워드 : ORM, SQL, 영속성, 더티 체킹, 객체 지향


나의 답변
JPA가 필요한 경우
JPA는 객체 지향 프로그래밍과 관계형 데이터베이스 간의 매핑을 담당하는 자바의 표준 기술로, 객체와 데이터베이스 간의 불일치를 해소하고 생산성을 높일 수 있습니다. 따라서 객체-관계 매핑이 필요하거나 데이터베이스 독립성이 중요한 경우에 JPA를 도입할 수 있습니다.
JPA가 필요하지 않은 경우
간단한 프로젝트나 성능이 매우 중요한 경우에는 JPA를 도입하지 않을 수 있습니다. 또한, 직접 SQL을 사용하거나 특정 데이터 액세스 기술을 사용하고자 하는 상황에서는 JPA를 선택하지 않을 수 있습니다.
실제 경험
저는 jpa를 사용하는 것과 사용하지 않는 것의 차이를 알아보기 위해 간단한 프로젝트를 진행해보았습니다. 프로젝트를 진행할 때 JPA를 사용하지 않았을 때는 sql문을 적어주며, jdbcTemplate을 사용하여 코드가 길어졌지만 JPA를 사용함으로써 코드가 짧아지고, 좀 더 쉽고 빠르게 이해가 가능했습니다.