참조 : https://www.youtube.com/watch?v=VTqqZSuSdOk
https://changrea.io/jpa/orm/
ORM 을 사용해야 하는 근본원 적인
--> 패러다임 불일치 문제
객체지향 언어가 추구하는 방향성 : 추상화 , 상속 다형성
RDB (관계형 데이터 베이스) : 데이터 중심의 구조
EX) MySQL, ORACLE, Postgres
-> {key:value}의 관계로 2차원 표(테이블)형식으로 나타낸 데이터베이스.
-> Client-Sever 구조 따라서 클라이언트가 요청을 보낼 때 쓰는 언어가 SQL(Structured Query Language)
각자 지향하는 방향이 다르므로 간극 발생
백엔드 언어로 개발을 하면서도 DB를 사용하기 위해서 SQL 까지 신경을 써줘야 한다는 점.
매 기능 개발시 해당 기능에 맞춤 데이터를 가져와야 하는 그에 맞는 SQL Query를 매번 작성해야한다.
영속성 (persistence)
데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 특성을 영속성이라고 한다.
흔히 말하는 MVC(Model , View , Controller) 모델은 4개의 층으루 구성됨
Persistence Layer
데이터베이스에서 데이터를 빼내어(Read) 객체화하거나 데이터 베이스에 데이터를 저장 (Create), 수정(Update), 삭제(Delete)하는 역할.
Persistence Layer 구현시 Persistence Framework 사용
-> Persistence Framework는 SQL Mapper와 ORM으로 나뉜다.