JPA (Java Persistence API)
JAVA에서 제공하는 API / 자바 어플리케이션에서 RDB를 사용하는 방식을 정의한 인터페이스
자바 ORM 기술에 대한 표준 명세 (스프링 X)
데이터를 객체지향적으로 관리 > 개발자가 비즈니스 로직에 집중
동작 과정

Java 애플리케이션과 JDBC 사이에서 동작
개발자가 JPA 사용 (개발자가 JDBC API 사용 X) > JPA 내부에서 JDBC API 사용 > SQL호출 > DB 통신


ORM (Object-Relation Mapping) : DB데이터 <-mapping-> Object 필드
객체-관계 매핑 = 자바 클래스와 DB 테이블을 매핑
SQL 매핑 X, SQL 자동 생성됨 (JPA, Hibernate)
필드 변경 시 JPA에 추가만 하면 됨

JPA : 자바객체-DB 매핑 위한 인터페이스 제공
JPA 구현체(인터페이스) : Hibernate, EclipsLink, DataNucleus, OpenJPA, TopLink Essentials
Spring Data JPA : 스프링에서 제공하는 JPA 프레임워크
> Spring Data JPA가 Hibernate보다 구현체 교체/ 저장소 교체 용이
SQL Mapper : SQL <- mapping -> Object 필드
SQL로 DB 조작 (Mybatis, jdbcTemplate)
필드 변경 시 모든 SQL 수정해야 함
JDBC : Java Data Access 기술의 근간 (자바 API)

계층화 아키텍처

Reference
JPA는 도대체 뭘까? (orm, 영속성, hibernate, spring-data-jpa)
JPA는 도대체 무엇일까요? orm, jdbc, 영속성, hibernate, ... 관련 지식까지 모두 파해쳐봅니다.
velog.io
@hgraca
herbertograca.com
'CS Interview > etc' 카테고리의 다른 글
SOLID : 객체지향 설계 원칙 (+ is-a, has-a) (0) | 2022.07.24 |
---|---|
gRPC 란 : RPC, gRPC 작동원리, HTTP API (json) 비교 (0) | 2021.06.16 |
교차 출처 리소스 공유 (CORS : Cross-Origin Resource Sharing) (2) | 2021.06.16 |
DevOps에 대한 칼럼 (조대협의 서버사이드) (2) | 2021.06.16 |
마이크로 서비스란 (MSA) - 모놀리식 아키텍처, API Gateway vs ESB (0) | 2021.06.16 |