JPA : ORM 기술
- 자바 ORM의 기술 표준
- 대표적인 오픈소스로 Hibernate
- CRUD 메서드 기본 제공
- 퀴리를 만들지 않아도 됨
- 1차 캐싱, 쓰기지연, 변경감지, 지연로딩 제공
- MyBatis는 쿼리가 수정되어 데이터 정보가 바뀌면 그에 사용되고 있던
DTO와 함께 수정해주어야 하는 반면, JPA는 객체만 바꾸면 된다.
- 즉, 객체 중심으로 개발 가능함
- 하지만, 복잡한 쿼리는 해결이 어려움
* ORM (Object Relational Mapping)
- Object와 DB 테이블을 매핑하여 데이터를 객체화 하는 기술
- 개발자가 반복적인 SQL을 직접 작성하지 않는다.
- DBMS에 종속적이지 않는다.
- 복잡한 쿼리의 경우, JPQL을 사용하거나 SQL Mapper를 혼용하여 사용이 가능하다.
MyBatis : Object Mapping 기술
- 자바에서 SQL Mapper를 지원해주는 프레임워크
- SQL문을 이용해서 RDB에 접근, 데이터를 객체화 시켜줌
- SQL을 직접 작성하여 쿼리 수행 결과를 객체와 매핑
- 쿼리문을 xml로 분리 가능
- 복잡한 쿼리문 작성 가능
- 데이터 캐싱 기능으로 성능 향상
- 하지만 객체와 쿼리문 모두 관리해야함, CRUD 메서드 직접 다 구현해야함
* SQL Mapper
- Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술
- 객체와 테이블 간의 관계를 매핑하는 것이 아님
- SQL문을 직접 작성하고 쿼리 수행 결과를 어떠한 객체에 매핑할지 바인딩 하는 방법
- DBMS에 종속적인 문제
- ex) JdbcTemplate, MyBatis ...
참고 : https://velog.io/@rladuswl/ORM%EC%9D%98-%EA%B0%9C%EB%85%90-JPA%EC%99%80-MyBatis-%EC%B0%A8%EC%9D%B4
ORM의 개념, JPA와 MyBatis 차이
데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 개념을 영속성(Persistence) 이라고 한다.자바에서는 데이터의 영속성을 위한 JDBC를 지원해주는데, 이는 매핑 작업을 개발자
velog.io
https://sdesigner.tistory.com/101
JDBC, SQLMapper, ORM 비교
최근 유튜브 우아한Tech라는 채널에서 우아한테크캠프, 우아한테크코스 크루분들이 여러 기술을 공부하시면서 내용을 잘 정리한 영상을 올려주셔서 매우 유익하게 보고있습니다. 기존에 헷갈리
sdesigner.tistory.com
'Studying' 카테고리의 다른 글
Rest vs Restful (2) | 2024.01.02 |
---|---|
HTTP 상태 코드 (2) | 2023.10.30 |
클라우드 서비스 개념 공부 (2) | 2023.07.17 |
코딩테스트_SQL공부(업데이트중) (2) | 2023.07.12 |
Math, Random, Date, Calender 클래스 (1) | 2022.11.30 |