JPA 시작하기

Jehyun·2023년 11월 13일
0

JPA

목록 보기
1/3

spring JPA

JPA(Java Persistence API)란

JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다.

  • ORM??
    ORM(Object Relational Mapping)'은 '객체로 연결을 해준다'는 의미로, 어플리케이션과 데이터베이스 연결 시 SQL언어가 아닌 어플리케이션 개발언어로 데이터베이스를 접근할 수 있게 해주는 툴입니다

장점

  1. SQL문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있다.(Query문을 사용하는 JPQL(Java Persistence Query Language)도 존재하기도 한다.)
  2. Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어, 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높인다.
  3. 객체지향적인 코드 작성이 가능하다. 객체들 끼리의 연관관계에 대한 매핑만 잘 해주면 된다.
  4. DB의 종류에 상관없이 작성이 가능하다.
    예를 들어 Mysql에서 Oracle로 DB가 바뀐다고 할지라도 설정값만 변경해주면 Query문을 수정하지 않아도 된다.

단점

  1. 프로젝트의 규모가 크고 복잡하여 매핑을 제대로 해주지 않을경우 문제가 생길 수 있다.
  2. 복잡하고 무거운 Query는 속도를 위해 별도의 튜닝이 필요하기 때문에 결국 SQL문을 써야할 수도 있다.

왜 공부하는가?

프로젝트를 진행하면서 RDBMS에 대한 지식 부족과 Query문을 작성하는데 들어가는 시간이 생각보다 많았고, DB설계를 하고 들어갔음에도 수정하는 일이 발생했다. DB에 시간을 줄이고 기능구현에 좀 더 집중하기 위해서 과거 Django에서 사용했던 ORM기술이 Java에서 JPA로 있다는 것을 알게되었다. 새로운 기술을 공부하면서 프로젝트에 적용해보기 위해서 공부하려고 한다.

어떻게 공부할 것인가?

혼자 공부하려고 구글링도 많이하고 JPA관련 예제들도 많이 봤는데 ORM이라고 하는 기술 자체가 혼자 공부하기에는 찾아봐야할 것들이 너무 많은 것 같아서 인프런에서 "김영한"님 영상을 보면서 공부하는 내용들을 정리해두려고 한다.

미래에 내가 다시 봐도 혹은 새로 시작하는 사람이 봐도 따라할 수 있도록 정리하길 희망함

profile
주니어 개발자

0개의 댓글