[#2. SpringBoot 개념 이해하기!] JPA 동작원리, ORM, SQL Mapping 의 차이 이해하기.

BlackBean99·2022년 1월 15일
1

SpringBoot

목록 보기
7/20
post-custom-banner

저번 포스팅에서 다뤘듯이 JPA는 Spring과 다른 개념입니다!

이제 JPA 의 동작 원리에 대해 설명드리도록 하겠습니다!

JPA (Java Persistence API)

JAVA에서 제공하는 API / 자바 어플리케이션에서 RDB를 사용하는 방식을 정의한 인터페이스 입니다.

쉽게 말해서 자바에서 연관형 데이터베이스를 다루는 인터페이스!

자바 ORM 기술에 대한 표준 명세 (스프링 X)

데이터를 자바 안에서 객체지향적으로 관리 > 개발자가 비즈니스 로직에 집중할 수 있다.

동작 과정

이 그림을 이해해봅시다. JPA의 위치가 어디죠? JAVA Application 과 JDBC API 사이에 있습니다.

JPA -> JPA 내부에서 JDBC API 사용 -> SQL문 호출 -> DB 통신

예시를 통해서 더 자세히 이해해봅시다.

1. JPA insert 시행 ( 개발자 -> JPA에 member 객체를 넘김)

2. JPA find 시행 ( 개발자 -> member의 PK값 넘김)

명령어의 동작방식을 이해하니 JPA가 무슨 기능을 하는지 이해하셨죠??

ORM (Object-Relation Mapping)

DB데이터 <- mapping -> Object 필드

객체-관계 매핑 - 자바 클래스와 DB 테이블을 매핑
SQL 매핑하지 않고 자동 생성 (JPA, Hibernate)

  1. JPA : 자바객체-DB 매핑 위한 인터페이스 제공 ORM을 구현한 인터페이스.
  1. JPA 구현체(인터페이스) : Hibernate, EclipsLink, DataNucleus, OpenJPA, TopLink Essentials
  2. Spring Data JPA : 스프링에서 제공하는 JPA 프레임워크
  • Spring Data JPA가 Hibernate보다 구현체 교체/ 저장소 교체 용이

SQL Mapper :SQL <- mapping -> Object 필드

위 ORM 에서는 DB데이터를 매핑해준다는 것과 달리 SQL Mapper 에서는 SQL을 매핑해줘서 SQL로 DB를 조작함.(Mybatis, jdbcTemplate)

JDBC : Java Data Access 기술의 근간 (자바 API)

계층화 아키텍쳐

출처: https://rokroks.tistory.com/50 [코딩하는 노든씨]

profile
like_learning
post-custom-banner

0개의 댓글