JPA란?

JPA의 특징

<aside> 💡 영속성 컨텍스트란? 엔티티를 영구 저장하는 환경이라는 뜻 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리함

</aside>

JPA의 장점과 단점

[ 장점 ]

  1. 객체지향과 관계지향이라는 서로다른 패러다임 불일치를 해소해 주며 SQL 중심이 아닌 객체지향 패러다임 중심의 개발이 가능
  2. 개발자가 직접 SQL을 따로 작성하지 않아도 SQL문을 작성해 주므로 생산성이 향상
  3. SQL을 수정할 필요가 없으므로 설정 및 필드 변경 시 SQL이 자동 수정되어 유지보수가 향상
  4. DB의 종류에 따라 SQL문에 있어 다소 차이가 있지만 JPA는 개발자 대신 이를 판단하고 해당 DB에 맞는 SQL을 작성해 준다.
  5. 캐시를 활용한 성능 최적화로 인해 트랜잭션을 처리하는 시간이 굉장히 많이 단축된다.