-
23/12/12 JPA와 QueryDSL 의 차이오늘/Today I.. 2023. 12. 13. 00:11
JPA (Java Persistence API)
- 자바표준 ORM 기술.
- SQL이 아닌 자바코드로 DB CRUD를 처리할 수 있게 도와줌
- 개발자가 SQL을 직접 작성하지 않아도 되어 편리
- DB 간 호환성을 높여줌
- 다만 쿼리에 오류가 있을 경우, 런타임에서만 확인가능
QueryDSL
- Type-Safe한 쿼리를 작성할 수 있게 해주는 프레임워크
- 쿼리를 자바코드로 작성하기 때문에 컴파일 시점에 쿼리의 문법 오류를 잡아낼 수 있다.
- 동적 쿼리 작성이 용이
- 코드 자동완성 등의 IDE 도움을 받을 수 있다.
선택
JPA는 쿼리작성의 편리성과 DB간 호환성 중요시 적합
QueryDSL은 Type - Safe한 쿼리 작성과 동적쿼리 필요시 적합
그렇지만 JPA로 기본적인 CRUD 연산을 하고, 복잡한 쿼리는 QueryDSL로 작성하면서
둘 다 사용하는 것 또한 가능하다.
Type - Safe 란?
타입에 안정적이라는 것.
Type - Check를 할 수 있어 컴파일시 문제를 잡을 수 있다는 것.
일반적으로 SQL 쿼리는 문자열 형태로 작성되므로, 쿼리의 문법 오류나 데이터 타입 불일치 등의 문제가
런타임에서 발견된다.
그래서 Type - Safe한 QueryDSL를 사용하면 훨씬 더 안정적
'오늘 > Today I..' 카테고리의 다른 글
23/12/14 스프링에서 static 사용을 지양하는 이유 (2) 2023.12.14 23/12/13 Docker란? (2) 2023.12.13 23/11/29 프로젝트가 끝난 후의 TIL (0) 2023.11.29 23/11/20 프로젝트 끝 (0) 2023.11.20 23/11/16 막히는 프로젝트 (0) 2023.11.16