#4. Spring_ JPA

박주현·2023년 10월 8일
0

Spring

목록 보기
5/12
post-thumbnail

JPA를 활용해서 스프링 프로젝트를 시작하였다.
기본적인 CRUD 작업을 통해서 쇼핑몰은 제작해보는 개발 경험을 쌓고 있는데

내가 헷갈렸던 내용과 몰랐던 내용들을 정리해보면서 부족함을 채워나가기로 했다.

1. JPA란

자바 ORM 기술에 대한 API 표준이다.
ORM이란 , 객체와 관계형 데이터베이스를 매핑해주는 것을 말한다.

자바를 사용하다보면 자바 객체를 SQL을 통해서 데이터베이스를 관리하게 되고 데이터베이스에 저장된 데이터를
자바 애플리케이션에서 사용하려면 SQL을 통해서 다시 자바 객체로 변환해야하는 작업이 필요하다.
이러한 작업을 개발자가 반복해야하기에 번거롭다는 단점이 있다.
하지만, ORM을 사용하게 되면 이러한 번거로운 일을 안해도 된다.

ORM을 사용할 시,
객체는 객체대로, 데이터베이스는 데이터베이스대로 설계를 하고 ORM은 중간에소 매칭하는 역할을 한다.

즉 JPA는 이러한 기술의 표준 명세로 자바에서 제공하고 있으며 인터페이스 로서 대표적으로 Hibernate가 오픈소스이다.

2. 장점

  1. 특정 데이터베이스에 종속되지 않음
    : 어느정도 개발자를 위해 달려가고 있는 사람들은 알다시피 예를 들자면 Oracle은 Mysql과 쿼리문이 다르다.
    따라서 데이터베이스를 중간에 변경하는 일은 매우 복잡한 일이 될 수 있다. 하지만 JPA를 사용하면 추상화된 데이터 접근이 가능하다.
  2. 객체지향적 프로그래밍
    : 데이터베이스 설계 중심의 패러다임에서 객체지향적 설계가 가능하기에 직관적이고 비즈니스 로직에 집중할 수 있도록 도와준다.
  3. 생산성 향상
    : 테이블에 컬럼이 추가되는 경우에 DTO의 컬럼 또한 모두 변경해야 한다.
    하지만 JPA는 클래스에 필드만 추가하고, SQL을 직접 작성하지 않고도 유지보수 측면에서 좋고 재사용성이 좋다

3. 단점

  1. 복잡한 쿼리 처리
    : 만약, 프로젝트에서 통계처리를 사용한다면 SQL문을 사용하는 것을 추천한다.
  2. 성능 저하
    : 개발자가 의도하지 않는 쿼리로 인해서 성능이 저하된다는 단점이 있는데, 자동으로 생성되는 쿼리를 너무 의존하는 것은 독이 될 수 있다.

4. 마무리

JPA 의 기본적인 내용을 학습하였고, 그에 따른 프로젝트 틀도 잡을 수 있었다.
내일은 JPA 동작방식을 배우고 프로젝트 셋팅을 마무리하는걸로!

profile
빌드업 막 시작하는 개발자

0개의 댓글