본문 바로가기

Develop/Spring

Springboot, Spring 개념정리 2

JPA란?

  • JPA는 Java Persistence(영속성) API이다.
  • JPA는 ORM 기술이다.
  • JPA는 반복적인 CRUD 작업을 생략하게 해준다.
  • JPA는 영속성 컨텍스트를 가지고 있다.
  • JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. (DB는 객체저장 불가능)
  • JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계)
  • 방언 처리가 용이하여 Migration하기 좋고 유지보수에도 좋다.
  • JPA는  쉽지만 어렵다..?

 

JPA는 Java Persistence(영속성) API이다.

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

JPA : Java 진영에서 ORM(Object-Relational-Mapping) 기술 표준으로 사용하는 인터페이스 모음 → class로 만들어진 데이터를 바탕으로 DB를 만들어 준다.

 

JPA는 ORM 기술이다.

ORM(Object-Relational-Mapping) : 객체와 DB의 테이블이 매핑을 이루는 것 → 즉, 객체가 테이블이 되도록 매핑 시켜주는 것

ORM을 사용하면 SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작하고 관리할 수 있게 된다.

 

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

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

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

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

방언(dialect) 처리가 용이하여 Migration하기 좋고 유지보수에도 좋다.

다양한 dialect(방언)을 사용해 Mysql을 사용하다가 오라클을 사용해야 한다고 하더라도 손쉽게 옮길 수 있다. 

'Develop > Spring' 카테고리의 다른 글

'코드로 배우는 스프링 웹 프로젝트' 정리(Controller)  (0) 2022.06.23
Spring 궁금했던거  (0) 2022.03.25
Springboot, Spring 개념정리 3  (0) 2022.03.22
Springboot, Spring 개념정리 1  (0) 2022.03.22
Spring 웹 개발 기초  (0) 2022.03.22