본문 바로가기
Spring/Spring Basic

[Spring boot | 개념 정리] JPA

by seoyamin 2023. 1. 27.

[참고]  https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC/dashboard

 

[무료] 스프링부트 개념정리(이론) - 인프런 | 강의

스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, - 강의 소개 | 인프런...

www.inflearn.com

 

 

1. JPA ?

1-1. Java Persistence API

※ Persistence (영속성) : 데이터를 생성한 프로그램이 실행 종료되어도 사라지지 않는 데이터의 특성

RAM은 휘발성 저장소이므로, 전기 공급이 끊기면 데이터가 전부 삭제되어버린다. 반면, HDD는 비휘발성 저장소이므로 전기 공급과 상관없이 데이터가 영구적으로 저장된다. (persistence)

 

따라서 JPA는 Java 프로그램상의 데이터를 DBMS에 영구적으로 기록할 수 있는 API를 말한다.

 

※ API (Application Programming Interface)

 Application을 Programming 하기 위해 지켜야 할 Interface (약속)

이때 Interface는 상하관계가 존재하는 약속이라, 강자가 정한 규칙을 약자들이 무조건 지켜야 함

 

1-2. ORM 기술

※ Mapping : 추상적인 설계도 → 구체적인 실물

ORM (Object Relational Mapping) 이란 객체를 DB에 연결하는 방법론 중 하나이다.

즉, Java에서 만든 클래스 객체가 실제 DB에 저장되게 하는 기술이다.

원래는 DB의 도메인(추상적 설계도)를 이용해서 Java 객체(구체적 실물)를 만드는 것인데,

ORM은 역으로 Java 객체를 이용해서 DB를 자동 생성할 수 있다.

 

1-3. 반복적인 CRUD 작업 생략해준다.

select, selectAll, delete, update, insert와 같은 반복적 작업을 JPA의 함수가 대신 실행해준다.

 

1-4. 영속성 Context를 가지고 있다.

※ Context : 해당 대상에 대한 모든 정보

 

 

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

DB는 객체 저장이 불가능하지만, ORM 기술을 이용하면 Java가 주도권을 가지는 모델(객체 저장 ok)을 만들 수 있다.

이때 JPA가 자동으로 객체를 매핑해서 넣어준다.

 

1-6. OOP 관점에서 모델링을 할 수 있게 도와준다. (상속, Composition, 연관)

(1) Composition

 

(2) 상속

 

 

1-7. SQL 방언 처리가 용이해서 Migration하기 좋다, 유지보수에 좋다.

JPA는 추상화 객체를 이용해서 MySQL, MariaDB, Oracle 등 다양한 방언 처리가 가능하다.

 

'Spring > Spring Basic' 카테고리의 다른 글

[Spring boot | 개념 정리] 스프링의 특징  (0) 2023.01.25