FOREST_CHOI's BLOG

JPA? 본문

프로그래밍/JPA

JPA?

Forest_Choi 2022. 10. 16. 15:09
728x90

3. JPA

JPA

  -      Java Persistence API

  -      자바 ORM 기술에 대한 표준 명세로, 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.

  -      개발자가 직접 SQL을 작성하지 않고, JPA API를 활용해 DB를 저장하고 관리 할 수 있다.

 

ORM

  -      Object Relational Mapping

  -      ORM 프레임워크는 자바 객체와 관계형 데이터베이스를 매핑힌다. , 객체가 DB테이블이 되도록 만들어 주는 것이다. ORM을 사용하면, SQL을 작성하지 않아도 직관적인 메소드로 데이터를 조작할 수 있다는 장점이 있다.

 

 

 

특징

1)     객체중심 개발 가능

  -      SQL중심의 개발이 이루어진다면, CURD작업이 반복해서 이루어져야 한다.

  -      하나의 테이블을 생성해야 할 때 이에 해당하는 CURD를 모두 만들어야 하며, 추후에 컬럼이 생성되면 관련 SQL을 모두 수정해야하는 번거로움이 있다. 또한 개발과정에서 실수한 가능성이 높아진다.

2)     생산성 증가

  -      SQL쿼리를 직접 생성하지 않고, 만들어진 객체에 JPA메소드를 활용해 데이터베이스를 다루기 때문에 개발자에게 편리성을 제공해준다.

3)     유지보수 용이

  -      쿼리 수정이 필요할 때, 이를 담아야 할 DTO 필드도 모두 변경해야 하는 작업이 필요하지만 JPA에서는 엔티티 클래스 정보면 변경하면 되므로 유지보수에 용이하다.

4)     성능증가

  -      사람이 직접 SQL을 짜는 것과 비료해서 JPA는 동일한 쿼리에 대한 캐시기능을 지원해 주기 때문에 비교적 높은 성능을 경험 할 수 있다.

 

제약사항

  -      JPA는 복잡한 쿼리보다는 실시간 쿼리에 최적화 되어있다. 복잡한 작업이 필요한 경우에는 기존의 MyBatis와 같은 Mapper 방식이 더 효율적이다.

          * Spring에서는 JPAMyBatis를 같이 사용할 수 있기 때문에, 상황에 맞는 방식을 택하여 개발하면 된다.

728x90
Comments