Home 자바 ORM 표준 JPA 프로그래밍(희망편00)
Post
Cancel

자바 ORM 표준 JPA 프로그래밍(희망편00)

JPA란?

JPA(java persistence API)는 자바 진영의 ORM(Object Relational Mapping) 기술 표준이다.

ORM이란?

ORM이란 객체와 관계형 데이터베이스는 매핑해주는 기술이다. ORM 기술은 패러다임의 불일치 문제를 해결해 준다

패러다임의 불일치

개발을 시작하면 가장 먼저 객체를 접하게 된다. 이후 개발을 진행하여 RDB 즉, 관계형 데이터 베이스를 접한다. 이 두가지 패러다임은 차지를 가지고 있다 우리가 객체를 생성하려면 먼저 클래스를 만들어야 할것 이다.

1
2
3
4
public class Member{
    private String name;
    private int id;
}

그런다면 동일한 내용을 RDB는 어떻게 생성하나? 테이블을 생성한다.

1
2
3
4
create table Member(
    name varchar(10),
    id int
)

어떤가? 비슷해보이는가?

왜 알아야하지

CRUD 기능을 추가한다고 생각해보자. 객체에서 생각하면 생성과 변경은 아래와 같을것이다.

1
2
3
4
Member member = new Member(); //생성
List<Member> list = new ArrayList<Member>();
list.add(Member); //등록
Member.name = 'banana'; // 수정

이번엔 RDB에서 보자

1
2
3
4
5
6
insert into Member(name, id)
values ('bean', 1) // 등록

update from Member
set name = 'banana'
where id = 1 // 수정

다를수 있는거 아닌가?

맞다 어느것이 우월하다고 할 수는 없다. 하지만 중요한건 변경사항이 생기면 개발자가 패러다임의 불일치를 해결해야 한다는 것이다. 쉽게 생각 할 수 있지만, 사람은 기계가 아니다 언제든이 실수 할 수 있다. 때문에 둘중에 더 쉬운쪽을 관리하는 것은 선택하고 그 결과가 ORM이다

그래서 어떻게 쓰지

놀랍게도 우리는 객체관리와 동일하게 사용만하면 JPA를 구현한 라이브러리에서 알아서 처리해준다. 알아서 에는 패러다임의 불일치 뿐 아니라 성능이나 벤더에 독립적으로 사용 할 수 있는 기능도 제공한다. 주요 기능은 아래와 같다.

  • 등록 : jpa.persist(객체)
  • 조회 : jpa.find(객체.class , pk)
  • 수정 : 객체 정보 변경

번외

패러다임의 차이에 대해 좀더 알아보자

  • 상속
  • 연관관계
  • 객체 그래프 탐색
  • 동등성과 동일성

사용된 디자인 패턴을 확인해 보자

  • 팩토리 패턴
This post is licensed under CC BY 4.0 by the author.

elegant object

전각반각

Comments powered by Disqus.

Trending Tags