21.8.1(일) JPA 개념

민국·2021년 8월 1일

Spring

JPA

: 자바 ORM 기술에 대한 표준 명세로, JAVA에서 제공하는 API이다.(스프링 제공 x)
자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.

여기서 중요하게 여겨야 할 부분은, JPA는 말 그대로 인터페이스라는 점이다. JPA는 특정 기능을 하는 라이브러리가 아니다. 스프링의 PSA에 의해서(POJO를 사용하면서 특정 기술을 사용하기 위해서)표준 인터페이스를 정해두었는데, 그중 orm을 사용하기 위해 만든 인터페이스가 바로 jpa이다.
기존 EJB에서 제공되던 엔티티 빈을 대체하는 기술이다.
ORM이기 때문에 자바 클래스와 DB테이블을 매핑한다.(sql을 매핑하지 않는다)

🤔 ORM이 뭐죠? SQL Mapper와 ORM
자바에서 db를 건드린다 = jdbc를 쓴다 라고 고정관념? 그렇게만 써봤어서 jpa와 jdbc의 차이점이 궁금했다.

  • ORM은 DB 테이블을 자바 객체로 매핑함으로써 객체간의 관계를 바탕으로 SQL을 자동으로 생성하지만 Mapper는 SQL을 명시해주어야 한다.
    ORM은 RDB의 관계를 Object에 반영하는 것이 목적이라면, Mapper는 단순히 필드를 매핑시키는 것이 목적이라는 점에서 지향점의 차이가 있다.

SQL Mapper

  • SQL ←mapping→ Object 필드
  • SQL 문으로 직접 디비를 조작한다.
  • Mybatis, jdbcTemplate

ORM(Object-Relation Mapping/객체-관계 매핑)

  • DB 데이터 ←mapping→ Object 필드
  • 객체를 통해 간접적으로 디비 데이터를 다룬다.
  • 객체와 디비의 데이터를 자동으로 매핑해준다.
  • SQL 쿼리가 아니라 메서드로 데이터를 조작할 수 있다.
  • 객체간 관계를 바탕으로 sql을 자동으로 생성한다
  • Persistant(영속성, 지속성) API라고 할 수 있다.
  • JPA, Hibernate
profile
새싹개발자

0개의 댓글