티스토리 뷰

한달쓰기

한달쓰기 9/30

ljh3259 2019. 10. 23. 23:41
반응형

한달쓰기 9일차


  JAVA ORM JPA 정리 1


1.2 패러다임의 불일치

- 패러다임?

- [명사] 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계. 또는 사물에 대한 이론적인 틀이나 체계.

- 객체 -> 파일 : 직렬화

- 파일 -> 객체 : 역직렬화


- 객체와 관계형 데이터베이스는 지향하는 목적이 서로 다르므로 둘의 기능과 표현 방법도 다르다.

- 이것을 객체와 관계형 데이터베이스의 패러다임 불일치 문제라 한다.

- 따라서 객체 구조를 테이블 구조에 저장하는 데는 한계가 있다.



1.2.1 상속

- 객체 : 상속이라는 기능을 갖고있다.

- 테이블 : 상속이라는 기능이 없다.

- 모델링 슈퍼타입 서브타입 관계를 사용하면 객체 상속과 유사한 형태로 테이블을 설계할 수 있다.



1.2.2 연관관계

- 객체는 참조를 사용해서 다른 객체와 연관관계를 가지고 참조에 접근해서 연관된 객체를조회한다.


- 반면 테이블은 외래 키를 사용해서 다른 테이블과 연관관계를 가지고 조인을 사용해서 연관된 테이블을 조회한다.


- 객체는 참조가 있는 방향으로만 조회할 수 있다.

- 반면 테이블은 외래키 하나로 member join team 도가능하지만 team join member도 가능하다.



객체지향 모델링

- 객체는 참조를 통해서 관계를 맺는다.

정리

- 패러다임의 불일치 문제를 해결하기 위해 많은 노력을 기울여왔고 그 결과물이 바로 JPA이다.


1.3 JPA란 무엇인가?

* JPA(Java Persistence API)는 자바 진영의 OR 기술 표준이다. 

* ORM(Object-Relational Mapping)이란 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. 

* ORM 프레임워크는 단순히  SQL을 개발자 대신 생성해서 데이터베이스에 전달해주는 것뿐만 아니라 패러다임의 불일치 문제들도 해결해 준다. 

* EJB 3.0에서 하이버네이트를 기반으로 새로운 자바 ORM 기술표준이 만들어졌는데 이것이 JPA이다. 

* JPA -> 쉽게 말해서 인터페이스를 모아둔 것이다. 

* JPA를 사용하려면 JPA를 구현한 ORM프레임워크를 선택해야 한다. 

* JPA는 버전 2.2, 하이버네이트는 5.5 까지 나온듯하다. 

* 하이버네이트 5.x참고 자료 :  [https://okky.kr/article/366954](https://okky.kr/article/366954)  

왜 JPA를 사용해야하는가?

* 생산성 

* 유지보수 

* 패러다임의 불일치 해결 

* 성능 

String memberId = "helloId"; 

Member member1 = jpa.find(memberId); 

Member member2 = jpa.find(memberId);

- JDBC API를 이용했다면 회원을 조회할 때마다 select sql을 사용해서 데이터베이스와 두번 통신을 할텐데 JPA를 사용하면 회원을 조회하는 select sql을 한 번만 데이터 베이스에 전달하고 두번째는 조회한 회원 객체를 재 사용한다.

* 데이터 접근 추상화와 벤더 독립성 

* 벤더마다(디비) 사용법이 다른경우가 많다 

* 예) 페이징 

* JPA는 데이터 베이스를 변경하면 JPA에게 다른 데이터 베이스를 사용한다고 알려주기만 하면 된다. 



PS. TODO tistory 마크다운 적용


참고 : 자바 ORM 표준 JPA 프로그래밍


반응형

'한달쓰기' 카테고리의 다른 글

한달쓰기 11/30  (0) 2019.10.25
한달쓰기 10/30  (1) 2019.10.24
한달쓰기 8/30  (1) 2019.10.22
한달쓰기 7/30  (1) 2019.10.21
한달쓰기 6/30  (1) 2019.10.20
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함