JPA TIL #2

원종운·2021년 1월 7일
0

패러다임 불일치

  • 객체지향이 지향하는 추상화, 캡슐화,정보은닉, 상속, 다형성과 같은 구조와 데이터베이스가 지향하는 데이터 중심 구조가 서로 일치하지 않아 각각의 기능과 표현 방법이 다르게 되는데, 이러한 문제를 패러다임 불일치 문제라고 한다.

  • 위와 같은 문제로 객체지향적인 객체 구조를 데이터베이스의 테이블에 저장하는 것의 한계가 발생하며 이를 해결하는 기술이 ORM이며, JAVA 진영에서는 JPA라는 ORM 기술 표준을 내놓았다.

JPA란?

  • JAVA 진영의 ORM 기술 표준, Java Persistance API라고 한다.
  • ORM은 "Object-Relational Mapping" 객체를 관계형 데이터베이스에 매핑하여주는 기술을 말한다.
  • 이러한 ORM 프레임워크(기술)을 통하여 객체와 테이블을 매핑함으로서 앞서 살펴본 패러다임의 불일치 문제를 해결하여준다.

장점

  • 개발자가 작성하여야할 SQL을 대신하여 생성하여줍니다.
  • 패러다임 불일치 문제를 해결할 수 있습니다.
  • 객체 모델링을 정교하게 할 수 있게 되어 객체지향적인 어플리케이션 개발에 집중할 수 있습니다.

소개

기존에 엔터프라이즈 자바 빈즈(이하 EJB)라는 기술 표준이 있었고, 엔티티 빈이라는 ORM 기술도 존재하였지만 너무 복잡하고 정교하지 못하였다. 더군다나 J2EE 어플리케이션 서버에서만 동작한다는 큰 이슈가 존재했다.

이러한 시기에 우리가 현재 잘 아는 하이버네이트(hibernate)라는 오픈 소스 ORM이 나오게 되엇고, 큰 이슈였던 J2EE 어플리케이션 서버에서만 작동되는 것이 아니라 자유롭게 사용할 수 있게 되었다.

하이버네이트는 EJB에 비하여 간단하고 가벼우며 기술적으로도 정교하였고, 결국 JAVA 진영에서도 하이버네이트 기반으로 새로운 JAVA ORM 기술 표준을 만들게 되었는데, 그것이 JPA이다.

여기서 중요한 것은 JPA는 구현체가 아니라 JAVA ORM 기술에 대한 API 표준 명세라는 것이다.

이러한 표준을 구현한 구현체를 우리는 사용하게 되는데, 대표적인게 앞서 살펴본 하이버네이트이다.


참고서적 : 자바 ORM 표준 JPA 프로그래밍, 김영한, 에이콘출판사

해당 서적을 읽고 내용을 정리하여 작성하는 글이나, 혹시 저작권등의 문제가 있을 경우 연락을 주시면 바로 내리도록 하겠습니다

profile
Java, Python, JavaScript Lover

0개의 댓글