springboot 2.JPA 란?

해당 게시물은 이 강의를 보고 제작하게되었습니다.

※ JPA 란?

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

1. Java Persistence API 이다.

Persistence 란?

  • 영속성(persistence)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미합니다

API 란

  • Application Programming Interface 의 약자로 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻합니다.

Interface 란

  • 인터페이스(interface)는 자바 프로그래밍 언어에서 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형입니다.
  • 상하관계가 존재하는 약속이라고 볼 수 있습니다.
  • 이들은 프로토콜과 비슷합니다.

protocol 란

  • 동등한 관계의 약속이라고 볼 수 있습니다.

2. ORM 기술이다.

ORM 이란

  • Object Relational Mapping의 약자로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말합니다.

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

  • Select, Select All, Delete, Update, Insert와 같은 단순 반복적인 CRUD를 메소드 하나로 실행 가능합니다.

4. 영속성 컨텍스트를 가지고 있다.

영속성 컨텍스트 란?

  • 엔티티를 영구 저장하는 환경이라는 뜻입니다.
  • 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 합니다.
  • 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리합니다.

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

  • DB는 객체 타입의 데이터를 가질 수 없습니다.
  • 그러나 테이블을 클래스로 모델링할 때, ORM을 이용하면 모델링된 클래스는 객체를 가질 수 있습니다.

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

상속 이란

  • 상속 받은 클래스를 모델링할 때, 상속 받은 필드도 테이블의 컬럼에 추가됩니다.

컴포지션 이란

  • 상속과 다르게 클래스를 결합하는 것으로 기존의 클래스가 새로운 클래스에 포함됩니다.

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

  • 방언(dialect) 처리가 용이하다는 뜻은 연결할 수 있는 DB의 종류가 다양하다는 뜻입니다.
  • JPA에는 추상화 객체가 있는데, 이 추상화 객체를 통해서 여러 DBMS에 연결 할 수 있기 때문에 Migration도 쉽고 유지보수 하기도 좋습니다.

Written by@kilhyeonjun
Java SpringBoot로 시작해서 TypeScript Express.JS/NestJS를 하는 주니어 백엔드 개발자입니다.

GitHubLinkedIn