본문 바로가기

Backend/JPA

[JPA] 왜 JPA를 사용해야 할까?

728x90

개요

방학 동안 <자바 ORM 표준 JPA 프로그래밍> 책과 김영한 님의 강의를 같이 들으며 JPA 공부를 했다.

워낙 중요한 개념이기 때문에 이번에 2회독을 하면서 기록을 남기려고 한다.

강의와 책의 흐름 순서로 하되, 추가로 고민했던 것들과 공부했던 것들을 같이 기록할 예정이다.

 

본 글은 JPA가 무엇인지, 왜 사용해야 하는지에 대한 간단한 기록이다.

JPA란?

JPA를 왜 사용해야 하는지 고민하기 전에 JPA는 무엇일까? JPA는 자바 진영의 ORM 표준이다. 여기서 ORM(Object Relational Mapping)은 객체와 관계형 DB를 매핑해 주는 프레임워크를 말한다. ORM은 패러다임 불일치 문제를 해결한다.

 

객체지향 패러다임을 이용하는 이유는 추상화, 캡슐화, 다형성, 상속 등의 특징을 이용해 안전하고, 유지보수에 용이한 어플리케이션을 설계하기 위함이다. 하지만 관계형 데이터베이스는 데이터 중심으로 구조화되어 있다. 지향하는 목적이 다르니 둘의 기능과 표현 방법도 다르다. 이를 패러다임 불일치 문제라고 한다.

 

이런 문제를 해결하기 위해 어플리케이션은 객체지향적으로 설계하고, 영속화해야 하는 데이터들은 자동으로 테이블과 매핑되어 저장하는 작업이 필요하며 이 작업을 수행하는 것이 ORM, 자바 진영에서는 JPA인 것이다.

왜 JPA를 사용해야 할까?

JPA는 객체지향 패러다임과 관계형 데이터베이스의 패러다임을 해결함으로써 SQL 중심적인 개발이 아닌 객체 중심의 개발을 할 수 있게 해준다. JPA를 사용해야 하는 이유를 자세히 살펴보자.

생산성

만약 JPA를 사용하지 않으면, 간단한 작업에도 쿼리 실행 & 객체 매핑 등 반복되는 작업을 개발자가 처리해줘야 한다. JPA는 이러한 반복되는 작업을 대신 처리해 준다. 따라서 지루하고 반복적인 코드를 직접 작성하지 않아도 된다.

유지보수

반복되는 코드의 가장 큰 문제점은 유지보수가 힘들다는 것이다. 만약 엔티티 필드를 하나만 추가해도 관련 CRUD SQL과 매핑 코드를 모두 변경해야 한다. JPA는 이를 알아서 처리해 주기 때문에 개발자가 유지보수해야 하는 코드 수가 줄어든다는 장점이 있다.

패러다임 불일치 해결

위에서 말했던 객체 지향과 관계형 DB 간 패러다임 불일치를 해결해준다.

불일치가 일어나는 상속, 연관관계, 객체 그래프 탐색, 객체 비교를 해결해준다.

데이터 접근 추상화와 벤더 독립성

같은 관계형 DB라도 벤더마다 사용법이 다른 경우가 많다. 하지만 JPA는 추상화된 표준이기 때문에 특정 DB에 종속되지 않도록 해준다.

따라서 DB를 변경한다고 해도, JPA에게 어떤 DB를 사용하는지 알려주기만 하면 된다.

참고

 

 

자바 ORM 표준 JPA 프로그래밍 - 예스24

자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고

www.yes24.com

 

728x90