코딩하는 둥둥

[ Springboot ] JPA개념잡기 : JPA란 무엇인가요? 본문

Backend/스프링부트 개념정리(이론)

[ Springboot ] JPA개념잡기 : JPA란 무엇인가요?

둥둥 2022. 2. 10. 21:13
728x90
JPA란?

1. JPA는 Java Persistence API 이다.

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

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

= 어떤 데이터가 영구히 저장되도록 하는것(하드디스크와 유사)

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

                                 → 자바 프로그램을 할때 영구적으로 데이터를 저장하기위해 필요한 인터페이스

 

※ API

- Application : 프로그램

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

- Interface : 인터페이스

= 인터페이스를 통해서 프로그래밍을 하고 그렇게 프로그래밍을하면 프로그램이 만들어짐

 

Interface 인터페이스 VS Protocol 프로토콜

  Interface 인터페이스 Protocol 프로토콜
의미 약속 약속
방식


상하관계가 존재하는 약속 www(World Wide Web)은 수많은 프로토콜로 만들어짐

 

2. JPA는 ORM기술 이다.

 

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

 

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

 

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

 

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

 

7. JPA는 쉽지만 어렵다.

 

728x90