JPA(Java Persistence API)

2023. 6. 10. 19:34·API

Java Persistence API
  • Java 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용하는 인터페이스 모음
  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • 인터페이스 이기 때문에 Hibernate, OpenJPA 등이 JPA를 구현함

 

JPA를 사용하는 이유 -

JPA는 반복적인 CRUD SQL을 처리해준다. JPA는 매핑된 관계를 이용해서 SQL을 생성하고 실행하는데, 개발자는 어떤 SQL이 실행될지 생각만하면 되고, 예측도 쉽게 할 수 있다. 추가적으로 JPA는 네이티브 SQL이란 기능을 제공해주는데 관계 매핑이 어렵거나 성능에 대한 이슈가 우려되는 경우 SQL을 직접 작성하여 사용할 수 있다.

 

JPA를 사용하여 얻을 수 있는 가장 큰 것은 SQL아닌 객체 중심으로 개발할 수 있다는 것이다. 이에 따라 당연히 생산성이 좋아지고 유지보수도 수월하다. 또한 JPA는 패러다임의 불일치도해결하였다. 예를 들면 JAVA에서는 부모클래스와 자식클래스의 관계 즉, 상속관계가 존재하는데 데이터베이스에서는 이러한 객체의 상속관계를 지원하지 않는다(상속 기능을 지원하는 DB도 있지만 객체 상속과는 다름). 이런 상속관계를 JPA는 아래와 같은 방식으로 해결하였다.

 

ORM(Object-Realation Mapping)

 

 

객체랑 알디비랑 서로 매핑을 해주는 기술

Class와 RDB의 테이블을 매핑해준다는 뜻이며, 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것 이라고 한다.

 

ORM은 개발자가 SQL 쿼리를 직접 작성하지 않고도 객체를 통해 데이터베이스에 접근하고 조작할 수 있도록 도와줍니다. 객체와 데이터베이스 간의 변환 작업은 ORM 프레임워크가 자동으로 처리해주며, 개발자는 객체 지향적인 코드를 작성함으로써 데이터베이스 조작을 추상화할 수 있습니다.

 

JPA의 장점

 

SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있다

.Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어, 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높인다.

 

 

'API' 카테고리의 다른 글

API, REST API, REST FUL API  (0) 2023.05.11
'API' 카테고리의 다른 글
  • API, REST API, REST FUL API
JAVALA
JAVALA
워니‘s Diary
  • JAVALA
    정신줄 JAVA라
    JAVALA
  • 전체
    오늘
    어제
    • 분류 전체보기 (87)
      • Codding_Test (11)
        • BaekJoon (7)
        • Programmers (3)
      • Algorithm (11)
      • Daily (4)
        • memoir (4)
      • TroubleShooting (8)
        • InteliJ (1)
        • Server (1)
        • Infra (0)
        • DB (0)
      • Computer Science (1)
      • JAVA (8)
      • Javascript (0)
      • Spring Boot (7)
      • API (2)
      • Server (0)
      • DB (3)
        • ORACLE (1)
      • Infra (2)
      • Refactoring (1)
      • Plugin (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딩테스트
    개발자 국비
    백준
    개발자 비전공자
    자바 클래스
    백엔드 개발자
    제로베이스
    자바 알고리즘
    트리 자료구조
    spring boot
    개발자
    자바 스프링
    개발자 부트캠프
    자바 스프링부트
    자바 메소드
    springboot
    프로그래머스
    스프링부트
    프론트엔드 개발자
    자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JAVALA
JPA(Java Persistence API)
상단으로

티스토리툴바