[Spring] JPA란 무엇인가요? (스프링부트 개념정리 / 인프런 최주호님 강의)
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
자바 프로그램을 할때 영구적으로 데이터를 저장하기 위해서
필요한 인터페이스 이다