[스프링-입문] JPA

박준수·2022년 11월 6일
0

[스프링-입문]

목록 보기
2/4
  1. JPA는 java Persistence API이다.

데이터를 생성한 프로그램의 실행이 종료되더라도 영구히 데이터를 저장할 수 있도록 환경을 조성해준다.

API란 ...
애플리케이션 <-프로그래밍 <-인터페이스

프로토콜 / 인터페이스
(약속) (약속)

인터페이스:
a데이터 사용을 원하면 밤 12시 ~ 6시까지야!!
<상하관계가 존재하는 약속>

프로토콜:
싫어! -> 싫다면 email로 연락하자!
<동등한관계 존재하는 약속>

즉 JPA는 자바프로그램을 할때 영구적으로 데이터를 저장하기 위한 인터페이스이다.


  1. JPA는 ORM 기술이다.

ORM이란 ...
Object Relational Mapping -> 나의 하인!

원래는 DB세상에 있는 데이터(테이블)를 자바세상(object)에 모델링한다.
그러나 자바세상(object)에서 DB세상에 있는 데이터(테이블)로 JPA의 인터페이스를 지키며 모델링할 수 있다 --> ORM


  1. JPA는 반복적인 CRUD 작업을 생략하게 해준다.

자바 --> DB (세션 오픈, 쿼리 전송)
DB --> 자바 (connction하고 자바가 읽기 좋게 자바 object로 변환)

이 모든것들이 단순한 반복적인 일(Create, Read, Update, Delete) 그러나 JPA는 함수 하나로 CRUD작업을 생략한다.


  1. 자바는 영속성 컨테스트를 가지고 있다.

영속성 : 데이터를 영속적으로 저장!
컨테스트 : 대상에 대한 모든 정보


  1. JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다.(DB는 객체저장 불가능)

ORM을 통해서! 자바는 객체저장이 가능하다! 이것을 DB로 밀어넣을때는 JPA가 자동으로 집어넣준다.


  1. JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계)

  1. 방언 처리가 용이하여 Mirgration 하기 좋음. 유지보수에도 좋음.

스프링 -> JPA -> DB(추상화 객체가 붙어 있음) 오라클, 마리아, MSSQL, MYSQL 무엇을 갈아 끼워도 상관없음 DB랑 연결해서 사용

profile
방구석개발자

0개의 댓글