일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
31 |
Tags
- java 1509
- 백준 연결요소 자바
- 전략 패턴이란
- 자바 백준 팩토리얼 개수
- kotiln functional interface
- rabbitmq 싱글톤
- 백준 2252 줄세우기
- 자바 1676
- Spring ipfs
- go
- spring mongoTemplate
- 백준 1504 java
- nodejs rabbitmq
- spring mongodb
- 백준 특정한 최단 경로
- 안정해시
- kotiln const val
- spring mongoTemplate switch
- ipfs singletone
- ipfs bean
- 익명 객체 @transactional
- java 백준 1509
- mongodb lookup
- Java Call By Refernce
- java 1238
- javav 1676
- spring mongodb switch
- java 파티
- kotiln const
- java 팩토리얼 개수
Archives
- Today
- Total
공부 흔적남기기
JPA를 사용하는 이유와 특징 본문
728x90
반응형
JPA란?
JPA는 ORM 기술 표준으로 객체를 관계형 데이터베이스 매핑해주는 기술입니다.
JPA를 사용하는 이유
- 생산성
지루하게 짜던 반복전인 SQL을 JPA를 통해 대신 처리할 수 있습니다.
SQL 중심적인 개발을 객체 중심으로 개발할 수 있습니다. - 유지보수
SQL을 직접 다루면 엔티티에 필드를 하나만 추가해도 등록,수정,조회 SQL과 결과를 매핑하기 위한 JDBC API코드를 작성해야하는데 JPA가 대신 처리해주므로 유지보수해야 하는 코드수가 줄어듭니다. - JPA 성능 최적화 기능
1차 캐시와 동일상 보장 (캐싱 가능)
트랜잭셕을 지원하는 쓰기지연(버퍼링 기능)
지연로딩
즉시로딩 - 패러다임 불일치 해결
JPA는 상속, 연관관계, 객체 그래프 탐색, 비교하기와 같은 패러다임의 불일치 문제를 해결해줍니다. - 데이터 접근 추상화와 벤더 독립성
database가 변경되어도 데이터베이스에 종속되지 않게 코드를 짤 수 있습니다. - 마이바티스와의 차이점은?
마이바티스나 스프링 JDBCTemplate는 보통 SQL 매퍼라고 부른다. 이것은 이름 그대로 객체와 SQL을 매핑한다. 따라서 SQL과 매핑할때 객체만 지정하면 지루하게 반복되는 JDBC API사용과 응답 결과를 객체로 매핑하는 일은 SQL매퍼가 대신 처리해준다. 이런 SQL 매퍼가 편리하긴 하지만 결국 개발자가 SQL을 직접 작성해야하므로 SQL에 의존하는 개발을 피할 수가 없다. 반면에 ORM은 객체와 테이블을 매핑만하면 ORM 프레임워크가 SQL을 만들어서 데이터베이스와 관련된 처리를 해주므로 SQL에 의존하는 개발을 피할 수 있다.
참조글: https://itkjspo56.tistory.com/244 [로춘남의 IT이야기]
728x90
반응형
'web study > Spring' 카테고리의 다른 글
Sppring IPFS CLIENT 싱글톤으로 사용시 주의점 (0) | 2023.11.16 |
---|---|
스프링 json 직렬화의 함정 (is가 prefix일 경우 사라짐) (0) | 2023.03.16 |
객체와 캡슐화에 대해서(객체지향적 코드를 짜는 이유) (0) | 2022.04.10 |
단일책임원칙 위배 트러블 슈팅 ApplicationEventPublisher와 EventListner (0) | 2022.04.05 |
JPA N+1문제 트러블슈팅 (0) | 2022.04.05 |