◆ SPRING BOOT/정리

[SpringBoot] JPA 개념 잡기 - 4강

쿠키린 2023. 2. 12. 03:42

1. JPA란?

- JPA는 Java Persistence API 이다.

- JPA는 ORM 기술이다.

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

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

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

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

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

- JPA는 쉽지만 어렵다.

 

RAM은 전기로 데이터를 저장하는 휘발성 메모리

ㄴ 컴퓨터가 꺼지면 사라짐

ㄴ 정전 등

ㄴ 데이터가 날라가지 않도록 하드디스크에 기록 하게되면 하드디스크는 비활성이기에 영구적으로 저장이 된다.

ㄴ 영속성 :  어떤 하나의 데이터가 영구히 기록될 수 있게 해주는 것.

ㄴ 자바는 데이터 저장을 하드디스크가 아닌(하드디스크에 하긴 하지만 시스템이 달라)

 ㄴ DBMS라 불리는데

     ㄴ 하드디스크에 특정영역을 잘라서 데이터를 관리한다.

      ㄴ 데이터베이스 관리 시스템

 

ㄴ 데이터는 하드디스크가 아닌 DBMS로 관리를 한다. 

ㄴ JPA : 자바에 데이터를 영구히 기록할 수 있는 환경을 제공

 

API

API를 사용한다는 건 상하관계가 있다는 뜻.                                             (인터페이스를 사용하여 프로그래밍을 하고 프로그램이 만들어진다)

여기서 잠깐!! 프로토콜과 인터페이스는  뜻은 같지만 의미하는 바가 다르다

1. 프로토콜(약속) 

- 권리가 동등하다.

- B : 이제부터 나에게 연락을 할때는 전화로 하지말고 직접 찾아와!

- A,C : 싫어!

- B : ...

- 프로토콜은 동등한 관계이니 B가 뭐라 못해

- 세명이 동의할 수 있는 프로토콜을 만든다.

 

 

2. 인터페이스(약속)

- B : 이제부터 나에게 연락을 할때는 전화로 하지말고 직접 찾아와!

ㄴ A와 C는 이 인터페이스(B)에 연락을 할때 직접 걸어와서 연락을 해야해.

ㄴ 왜 그럴까?  프로그램 하나를 만들때 좋은 기능이 2개가 있는데 다른 사람과 공유를 하고 싶은데

ㄴ 공유를 해주니까 사용할 수 있는데

ㄴ B개발자가 a데이터를 사용하고자하려는데 개발자 A가 a데이터 사용을 원하면 밤12시까지 ~ 새별 6시까지 사용가능해       (A개발자가 파워가 있는거지 규칙)

ㄴB개발자가 A개발자의 a데이터를 사용하여 프로그램을 짜면 그게 바로 API이다.

결론 : 인터페이스는 상하관계가 존재하는 약속이다

 

JPA

- JAVA

- Persistence : 영구적

- Application Programing interface

 

JPA => 자바를 영구적으로 보관할 수 있게 해주는 인터페이스이다.

 


 


출처 : 스프링부트 개념정리 4강 - JPA란 무엇인가요? - 최주호 강사