Spring/게시판 만들기 프로젝트

[Spring Boot]JPA

sujin7837 2020. 12. 7. 13:42
반응형

JPA의 등장 배경

-SQL 단순 반복 작업:

Oracle, MySQL, MSSQL 등 관계형 데이터베이스를 사용하지 않는 웹 애플리케이션이 거의 없기 때문에, 객체를 관계형 데이터베이스에서 관리하는 것이 매우 중요합니다. 그런데 관계형 데이터베이스는 SQL만 인식할 수 있기 때문에 반복적인 SQL 생성 작업을 피할 수 없습니다.

 

-패러다임 불일치:

관계형 데이터베이스는 '어떻게 데이터를 저장할지에 초점이 맞춰진 기술'이고, 객체지향 프로그래밍 언어는 '메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술' 입니다. 이 둘은 이렇듯 패러다임이 서로 다른데, 객체를 데이터베이스에 저장하려고 하니 문제가 발생합니다.

 

-데이터베이스 모델링에만 집중:

상속, 1:N 등 다양한 객체 모델링을 데이터베이스로 구현할 수 없는 문제가 발생합니다.

 

-위의 문제들을 해결하기 위해 등장하게 된 것이 JPA입니다.

 

JPA의 역할

-중간에서 패러다임 일치:

개발자는 객체지향적으로 프로그래밍을 하고, JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행하므로, SQL 종속적인 개발을 하지 않아도 됩니다.

 

-객체 중심의 개발을 가능하게 하여 생산성 향상은 물론이고 유지 보수도 편리해집니다.

 

Spring Data JPA

-JPA <- Hibernate <- Spring Data JPA

-구현체 교체의 용이성: Spring Data JPA 내부에서 구현체 매핑을 지원해주기 때문에 Hibernate 외에 다른 구현체로 쉽게 교체할 수 있습니다.

-저장소 교체의 용이성: Spring Data의 하위 프로젝트들은 기본적인 CRUD의 인터페이스가 같기 때문에 관계형 데이터베이스 외에 다른 저장소로 쉽게 교체할 수 있습니다.

반응형