Spring

[Spring] JPA란 무엇인가요? (스프링부트 개념정리 / 인프런 최주호님 강의)

펭귄코기 2022. 10. 6. 22:03

1. JPA는 Java Persistence API 이다

영속성(Persistence) : 데이터를 생성한 프로그램의 실행이 종료되더라도

사라지지않는 데이터의 특성을 의미한다

영속성은 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 구현한다

 

RAM이 있다고 보면 전기로 데이터를 저장하고 휘발성 이다

컴퓨터가 꺼지면 다 사라진다

 

하드디스크는 비휘발성이라 영구적으로 저장된다

이것을 Persistence 라고 한다

 

자바에서는 데이터 저장은 DBMS에서 하드디스크를 짤라서 관리한다

그곳에다가 기록을 한다고 보면된다

 

즉 JPA는 자바에 있는 데이터를 영구히 기록할 수 있는 환경을 제공하는 API이다

 

그렇다면 API는 뭔가요?

 

애플리케이션 (A) : 프로그램

프로그래밍 (P) : 프로그램을 만들기 위한 방법

인터페이스 (I) : 인터페이스

 

프로그램을 만들기 위해서 제공해주는 인터페이스

 

인터페이스라는건

 

프로토콜 : 약속

인터페이스 : 약속

둘다 약속이지만 방식이 다르다

 

A, B, C 에서 B가 가장 쎄다

B가 말한다 이제부터 나한테 연락을 할때는 전화하지말고 직접 찾아와

 

A와 C는 힘이없어서 B가 정한 규칙을 어쩔수없이 지킨다

 

그 규칙이 바로 인터페이스 이다

 

장보고가 a와 b라는 프로그램(기능)을 만들어서 공유하는데 너무 좋아서

 

홍길동이 사용하고 싶어서 한다

 

이때 장보고가 말한다 a 데이터를 사용하고 싶으면

밤 12시에서 새벽 6시까지만 가능하다 그때만 써라

라는 인터페이스를 만들 수 있다

 

왜 인터페이스냐면 장보고가 만든 프로그램이라

남한테 공유하고 말고 마음데로 할 수 있는 힘이잇어서

 

정 쓰고싶으면 규칙을 지켜서 쓰라고 말 할 수 있다

 

그러면 홍길동은 그 시간에 요청하고 받아서 프로그램을 만들 수 있다

 

 

홍길동이 인터페이스를 통해서 데이터를 받아서 프로그래밍을 하면

그게 API가 된다

 

그래서 인터페이스는 상하관계가 존재한다

 

반대로 프로토콜은

 

A, B, C 가 있을때 3명의 권리가 동등하다

그래서 B가 직접찾아오라고 말하면 단호하게 A, C는 싫어라고 할 수 있다

그랬을때 B는 그럼 하지말라고 하지 못한다

 

WWW 는 프로토콜로 만들어져있다

수많은 프로토콜이 모여서 만들어진게 WWW 이다

world wide web

 

그래서 프로토콜은 3명이 다 동의하는 방법 email로 연락하자

라고하는것이 프로토콜이다

 

최종 정리

JPA는

Java

Persistence

Application Programing Interface

 

자바 프로그램을 할때 영구적으로 데이터를 저장하기 위해서

필요한 인터페이스 이다