SpringBoot 개념정리(4) - 2. JPA란?

Jang Seowoo·2022년 8월 11일
1
post-thumbnail

인프런 스프링부트 개념정리(이론)
이 글은 다음 강의의 이론 정리 글 입니다.


JPA란 무엇인가요?

1) JPA는 Java Persistence API이다.

persistence는 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. RAM은 전기로 데이터를 저장하기 때문에 컴퓨터가 꺼지면 데이터가 사라지는 휘발성이다. 반면, 하드디스크는 비휘발성이다. 영속성이라는 것은 영구적으로 기록되게 한다. 자바에서는 하드디스크 안에 DBMS라고 하는 곳에 데이터를 기록한다.

💡 JPA란?
자바에 있는 데이터를 영구히 기록할 수 있는 환경(DBMS)을 제공하는 API다.

💡 API(Application Programming Interface)란?
인터페이스를 통해서 프로그래밍을 해서 만든 프로그램이다.

약속에는 두가지가 있는데, 하나는 프로토콜이고 다른 하나는 인터페이스다. 둘 다 약속이지만 약속의 방식이 조금 다르다.

인터페이스의 작동방식은 다음과 같다.

예시1)
A, B, C가 있고, B의 힘이 가장 세다고 할 때
B: 이제부터 나에게 연락을 할때는 전화하지 말고 직접 찾아와!
A, C: 힘이 없어서 어쩔 수 없이 B의 말에 따른다.

예시2)
어떤 프로그램에 a기능과 b기능이 있다. 두 기능이 너무 좋아서 다른 사람들과 공유하고 싶다. 프로그램 개발자는 다음과 같이 얘기할 수 있다.
개발자: a 데이터 사용을 원하면 밤 12시 ~ 새벽 6시까지만 가능해!

이 개발자에게는 다른 사람들에게 공유해도 되고 안해도 되는 파워가 있다. 이때, 공유를 원하는 사람의 의사는 중요하지 않다. 개발자가 정해주는대로 해야되는 것이다.

💡 따라서 인터페이스라는 것은 상하관계가 존재하는 약속이다.

반면, 프로토콜은 A, B, C가 동등한 관계에 있다. 만약 예시1 처럼 B가 명령한다고 해도 A, C는 거절할 수 있다. 따라서 A, B, C가 모두 동의하는 약속으로 정해야하는 것이다.

💡 다시 정리하면 JPA란?
Java 자바 프로그래밍을 할 때
Persistence 영구적으로 데이터를 저장하기 위해서 필요한
Application Programming Interface 인터페이스(규약)

profile
https://devseowoo.notion.site/Seowoo-Portfolio-b21365c3477345818913e8d8fe2e3b90

0개의 댓글

관련 채용 정보