New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. 급전을 친구에게 빌렸는데 오늘이 돈을 주기로 한날.. 그런데 카드값을 내야하는 날도 오늘인데... 이걸 어쩌나...
4. 우리 회사는 중요한 의사 결정을 할때?
5. 열심히 일한 나를 위한 선물을 주고싶다. 어떤게 좋을까?
6. 은행에서 투자상품을 추천받았다. 어떤걸 가입하지?
7. 회사에서의 나는?
8. 꿈에서 깨어나니 20년 전으로 돌아갔다. 당신이 제일 먼저 하는일은?
9. 내가 인사 담당자라면 신규 입사자 채용 시 제일 중요하게 보는것은?
10. 회사에 정말 싫어하는 동료가 있다면?
11. 가난한 집의 가장이 되었다.. 자녀의 생일 날 선물은?
12. 평소 회사 출근 스타일은?
13.회사 체육대회 하는 날이다. 오늘 뭐하지?
14. 나의 업무 스타일은?
JPA(Java Persistence API)는 자바 ORM 기술 표준입니다.
JPA는 아래 그림처럼 애플리케이션과 JDBC 사이에서 동작합니다.
ORM(Object-Relational Mapping)은 이름 그대로 객체와 데이터베이스를 매핑한다는 뜻입니다.
ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 데이터 베이스에 저장할 때, Insert SQL을 직접 작성하는 것이 아니라 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 됩니다.
JPA 소개
과거 자바 빈즈(EJB)라는 기술 표준을 만들었는데 그 안에는 엔티티 빈이라는 ORM 기술도 포함되어 있었습니다.
하지만 너무 복잡하고 기술 성숙도도 떨어졌으며 자바 엔터프라이즈(J2EE) 애플리케이션 서버에서만 동작 했습니다.
이때 하이버네이트(Hibernate)라는 오픈 소스 프레임워크가 등장하며 EJB와 비교해서 가볍고 실용적인 데다 기술 성숙도도 높았습니다.
또한 자바 엔터프라이즈 애플리케이션 서버 없이도 동작해서 많은 개발자가 사용하기 시작했습니다.
결국 EJB 3.0에서 하이버네이트 기반으로 새로운 자바 ORM 기술 표준이 만들어졌는데 이것이 바로 JPA입니다.
JPA는 자바 ORM 기술에 대한 API 표준 명세입니다. 따라서 JPA를 사용하려면 JPA를 구현한 ORM 프레임워크를 선택해야 합니다.
-
JPA 1.0(JSR 220) 2006년 : 초기 버전, 복합 키와 연관관계 기능이 부족했습니다.
-
JPA 2.0(JSR 317) 2009년 : 대부분의 ORM 기능을 포함하고 JPA Criteria가 추가 되었습니다.
-
JPA 2.1(JSR 338) 2013년 : 스토어드 프로시저 접근, 컨버터(Converter), 엔티티 그래프 기능이 추가되었습니다.
-
JPA 2.2(JSR 338) 2017년 (출처 : https://en.wikipedia.org/wiki/Java_Persistence_API#JPA_2.2)
-
Add @Repeatable to all relevant annotations
-
Allow all JPA annotations to be used in meta-annotations.
-
Add ability to stream a query result
-
Allow AttributeConverters to be CDI injectable
-
Support Java 8 Date and Time types
-
DataNucleus (from version 5.1)
-
EclipseLink (from version 2.7)
-
Hibernate (from version 5.3)
-
왜 JPA를 사용해야하는가?
-
생산성
-
유지보수
-
패러다임의 불일치 해결
-
성능
-
데이터 접근 추상화와 벤더 독립성
-
표준
성능이 느리다는 의견에 대해
지금 시대에 자바가 느리다고 말하는 것과 비슷하다고 생각합니다.
JPA는 다양한 성능 최적화 기능을 제공해서 잘 이해하고 사용하면 SQL을 직접 사용할 때보다 더 좋은 성능을 낼 수도 있습니다.
또한 JPA의 네이티브 SQL 기능을 사용해서 SQL을 직접 호출하는 것도 가능합니다.
출처 : 자바 ORM 표준 JPA 프로그래밍 / 김영한 지음