JPA 란 무엇인가

K4keye·2022년 1월 18일
0

JPA(Java Persistence API)

JPA

먼저 JPA 란 JAVA에서 제공하는 API로 ORM 기술의 표준 기술이다.
즉 자바에서 관계형 데이터베이스를 사용하는 방식인데
자바 클래스와 DB 테이블을 매핑하여 데이터베이스를 조작할 수 있게 해 준다.

ORM

ORM 은 자바 객체와 DB 테이블을 맵핑하여 SQL을 작성하지 않고도 객체지향 언어에서 그대로 사용하는 것으로
DBMS 를에대한 종속성을 줄일 수 있다.

그대로 사용한다는 것은 SQL 쿼리를 직접 작성하는 것이 아닌 자동으로 생성하여 사용한다는 것이다.

JPA를 사용하는 이유

대부분의 프로그램이 어느 정도 기능을 하기 위해서는 당연하게도 데이터베이스를 사용해야 만한다.

결국 프로그램은 밖에서 데이터를 잘 보여줄 뿐이고 직접적인 데이터의 CRUD를 데이터베이스에서 수행해야만 하는데

점점 개발을 하다 보면 서비스 로직을 구현하는 것보다는 SQL 쿼리문을 작성하는 일이 메인인 것처럼
쿼리문만 작성하고 있는 모습은 흔한 모습이다.

간단한 데이터를 추가한다고 하여도 CRUD를 모두 만들어줘야 하는데
JPA를 사용하게 되면 자동으로 CRUD를 생성해주니 쿼리를 직접 작성하지 않아도 된다.

즉 개발자는 서비스에 대한 로직만을 작성하는데 집중할 수 있으니 생산성이 올라가게 된다.

JPA 동작

JPA는 애플리케이션과 JDBC 사이에서 동작하게 된다.

JAVA 애플리케이션이 DB에 접근하기 위해서는 당연히 JDCB API를 활용하여 사용해야 만한다.
즉 개발자가 직접 API를 사용하여 구현했어야 했다면

이제는 JPA를 통해 JDBC를 사용하게 된다.
즉 JPA는 JDBC를 사용하기 쉽게 만들어놓은 라이브러리라고 볼 수 있다.

조금 더 상세히 동작방법에 대해 알아보자.
애플리케이션에서 DB로 데이터를 조회한다고 예로 들어서 보자

애플리케이션이 DB에 있는 데이터를 조회하려고 하면
JPA는 조회에 해당하는 SQL을 작성하고 JDBC API를 사용하여 요청하게 된다.
요청에 맞는 결과를 객체로 생성하여 애플리케이션에게 반환해주게 된다.

JPA의 패러다임 불일치 해결

패러다임의 불일치 해결이라는 게 무슨 말일까
데이터베이스의 테이블들은 관계를 가지게 된다.

User라는 테이블은 Auth라는 테이블과 관계를 가지고 있다고 볼 때
기존의 방식으로 Auth의 데이터를 가지고 오고 싶다면 User와 Auth의 테이블을 조인해서 가지고 와야 했다.

하지만 JPA를 사용할 때는 Auth의 데이터를 가지고 올 때 타입과 ID 등 필수 데이터를 가지고 요청을 하게 되면

자동으로 User와 Auth를 조인하여 요청한 결괏값을 반환해준다.

profile
쉬엄쉬엄 마치 취미처럼 공부하자

0개의 댓글