인프런 - 스프링부트 개념 정리(이론) - 정리

4강 - JPA란 무엇인가요?

달팽이포뇨 2023. 3. 1. 13:02

Inflearn 최주호 강사님의 스프링부트 개념정리(이론) 강의를 듣고 정리한 내용입니다.

 

1. JPA는 Java Persistence API 이다.

JPA란?

1. JPA는 Java Persistence API 이다.

Persistence: 영속성 - 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미

ex. RAM - 휘발성 - 컴퓨터가 꺼지면 데이터가 다 사라진다. -> 하드디스크(비휘발성)에 영구적으로 기록한다.

 

API: Application Programming Interface - 프로그램을 만들기 위한 인터페이스

프로토콜 vs 인터페이스

프로토콜 - 동등한 관계에서 하는 약속 - 서로 합의하에 약속을 한다.

인터페이스 - 상하관계가 존재하는 약속 - 이 약속에 꼭 맞춰서 사용해야한다.

 

즉, JPA: Java 프로그래밍을 할 때, 영구적으로 데이터를 저장하기 위한 인터페이스

 

------------------------------------------------------------------------------------------------

(다음)

2. JPA는 ORM 기술이다.

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

4. JPA는 영속성 컨텍스트를 가지고 있다.

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

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

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

8. JPA는 쉽지만 어렵다.