Close
Close full mode
logo만렙 개발자 키우기

1장. JPA 소개

Git RepositoryEdit on Github
Last update: a year ago by nowwaterReading time: 2 min

🤸‍♂️목차

  • SQL을 직접 다룰 때 발생하는 문제점
  • 패러다임의 불일치
  • JPA란 무엇인가
  • 정리

자바로 애플리케이션 개발에서 데이터베이스 이용

초기에는 JDBC API를 직접 사용해서 코딩 => 애플리케이션의 비즈니스 로직보다 SQLJDBC API 작성에 더 많은 시간 소비

이후 MyBatis나 스프링의 Jdbc Template 같은 SQL 매퍼를 사용하면서 JDBC API 사용 코드를 많이 줄일 수 있었다.

하지만 여전히 등록, 수정, 삭제, 조회(CRUD) 용 SQL은 반복해서 작성해야 했고, 이런 과정은 너무 지루하고 비생산적이었다.

관계형 데이터베이스에서 객체 지향의 장점을 살려서 객체 모델링을 적용하여 진행한다면, 객체와 관계형 데이터베이스의 차이를 메우기 위해 더 많은 SQL문을 작성해야하는 단점이 존재한다.

즉, 객체 모델링을 SQL로 풀어내는데 많은 코드와 노력이 필요하며, 객체 모델은 점점 데이터 중심의 모델로 변한다.

이러한 객체와 관계형 데이터베이스 간의 차이를 해결해주는 것이 바로 ORM Objected-Relational Mapping 프레임워크이다.

이 책에서 학습할 JPA는 자바 진영의 ORM 기술 표준이다.

JPA는 지루하고 반복적인 CRUD SQL을 알아서 처리해줄 뿐만 아니라 객체 모델링과 관게형 데이터베이스 사이의 차이점도 해결해준다.

JPA를 사용하는 개발자는 SQL을 직접 작성하는 것이 아니라 어떤 SQL이 실행될지 생각만 하면 된다.

장점

  • CRUD SQL을 작성할 필요가 없다.
  • 조회된 결과를 객체로 매핑하는 작업도 대부분 자동으로 처리한다.
  • 데이터 저장 계층에서 작성해야 할 코드가 대폭 줄어든다.
  • 애플리케이션을 SQL이 아닌 객체 중심으로 개발하여 생산성과 유지보수가 뛰어나다.
  • 테스트를 작성하기 편리하여 버그를 줄일 수 있다.
  • 사용하는 DBMS 종류를 쉽게 변경할 수 있다.
Previous
11장. 시스템
Next
(1) SQL을 직접 다룰 때 발생하는 문제점