Spring/SpringBoot

[ SpringBoot ] JPA 간단 정리

따갓 2022. 7. 22. 21:42

 

먼저 RDBMS에 대해 간단하게 알아보자.

 

RDBMS(Relational DataBase Management System), 줄여서 RDB는 은 관계형 데이터베이스를 말하는 것으로, 컴퓨터에 정보를 저장하고 관리하는 기술이다. 성능/관리 면에서 매우 고도화된 엑셀 이라고 생각해도 좋고, 정보 저장소라고 생각해도 무방하다. 

예를 들어 쇼핑몰의 경우 주문 정보, 고객 정보 등을 컴퓨터에 저장해야 할텐데, 이걸 도와주는 것이 바로 RDB이다.

여기서 SQL은 데이터를 읽고, 저장하고, 변경하고, 삭제하는 구체적인 문법이다..

 

스프링 프레임워크로 프로젝트를 해본 사람이라면 간단하든 복잡하든 DB를 사용하면서 대부분의 객체들을 테이블에 매핑하는 데이터베이스 관련 작업을 Spring JDBC Template이나 Mybatis를 이용해보았을 것이다. 하지만 프로젝트 규모가 커지면서 객체와 테이블을 매핑하기 위해서 반복적인 JDBC API를 호출하게 되고 이 과정에서 코드의 가독성과 유지보수적 측면에서 많은 효율성이 떨어지게 된다.

 

자바 짜다가 갑자기 SQL 짜고, 그걸 잘 맞추어 넣어야 한다. 딱봐도 복잡해 보인다..

 

JPA란?

JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준으로, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기이다.

  • JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다.
  • JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다.
  • JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어진다.
  • 이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높인다.

명령도 그냥 자바로 깔끔하게 만든다.

[ Domain, Repository ] 

  • "테이블"은 JPA에서는 Domain, "SQL"은 JPA 에서는 Repository가 된다.

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

[ 항해 3주차 개인 과제 ] API 명세서 및 Q&A  (0) 2022.07.25
[ SpringBoot ] Gradle 사용하기  (0) 2022.07.22