본문 바로가기
Programming/Spring JPA

[스프링부트와 AWS로 혼자 구현하는 웹서비스] JPA 소개

by 깐니 2020. 7. 22.

>> JPA를 사용하게 된 흐름 <<

웹 어플리케이션에서 관계형 데이터베이스 (Oracle, MySQL, MSSQL) 는 빠질 수 없다.
-> 객체를 관계형 데이터베이스에서 관리하는 것은 중요하다.

관계형 데이터 베이스 => 어떻게 데이터를 저장할까?
객체지향 프로그래밍 언어 => 기능과 속성을 한 곳에서 관리하는 기술.

서로 다른 사상을 가지고 있다. "패러다임 불일치 문제 발생"

JPA를 사용하자 !
-개발자는 객체지향적으로 프로그래밍을 한다.
-JPA는 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행한다.
-SQL에 종속적인 개발을 하지 않아도 된다.

JPA (Java Persistence API)
인터페이스이다.
자바 표준명세서이다.

JPA라는 인터페이스를 사용하려면 구현체가 필요하다.
대표적으로 구현체로는 Hibernate, EclipseLink 등이 있다.
하지만, Spring에서는 구현체를 쉽게 사용하고자 추상화시킨 Spring Data JPA 모듈을 사용한다.

JPA <- Hibernate.. <- SpringDataJPA
(인터페이스) (구현체) (추상화)

왜 SpringDataJPA를 사용해야하는가?
- 구현체 교체의 용이성
=> Hibernate 외의 다른 구현체로 쉽게 교체하기 위함
- 저장소 교체의 용이성
=> 관계형 데이터베이스 외에 다른 저장소로 쉽게 교체하기 위함.
만약, 트래픽이 많아져서 MongoDB로 교체가 필요하다면 개발자는 Spring Data MongoDB로 의존성만 교체.
=> Spring Data 의 하위 프로젝트들은 기본적인 CRUD 인터페이스가 같음.








참고 :
* 스프링부트와 AWS로 혼자 구현하는 웹서비스