TIL

9/4

iksadnorth 2023. 9. 4. 23:37

👣 개요

오늘은 Lv 3 과제를 시작하는 날이었으나 
Spring Security에 대한 공부가 필요하다는 페어 분의 의견에 따라
하루 정도는 원하는 공부를 하도록 했다.

나 또한 QueryDSL에 대한 공부를 하길 원했기도 했고
상대방이 기술에 대한 이해도가 높은 것은 여러모로 이점이 많은 일이었기에
해당 방식에 동의했다.

그리하여 오늘은 JPQL에 대한 깊은 공부를 함과 동시에
QueryDSL에 대한 공부도 진행했다.

하지만 역시 만만치 않았다.
항상 쿼리를 JPQL을 이용해서 복잡한 쿼리도 만들어 봤고
QueryDSL도 얕게 나마 프로젝트에서 사용해본 적도 있었기에
어렵지 않게 코드로 구현할 거라 생각했다.

하지만 지식에 구멍이 매우 많았고 이것을 코드로 구현하기 까지 문제가 너무 많았다.

우선 JDBC로 JpaRepository의 메서드들을 직접 구현한 git repo에서 
새로이 Branch를 따서 JPA로 구현해보고 그 와중에 복잡한 쿼리를 JPQL로 해결하는 활동을
수행해봤다. 여태까지 Spring Data JPA에 크게 의존해 문제를 해결해왔기에 
이는 다소 시행착오를 겪을 수 밖에 없었다.

 

GitHub - iksadNorth/Lab_JDBC

Contribute to iksadNorth/Lab_JDBC development by creating an account on GitHub.

github.com

JPQL까지는 그래도 크게 어렵지 않았으나 문제는 QueryDSL이었다.
해당 방법은 체계적으로 문법을 배워서 사용했다기 보다 
블로그글들의 조각 지식들에 의존해 사용했던 것이라
지금은 거의 아는 문법이 없었다.

차근차근 '자바 ORM 표준 JPA 프로그래밍' 책을 읽으며 위 git repo 내용을 그대로 QueryDSL로 바꾸는 
활동을 진행하고 있지만 이것이 오늘 안으로 해결을 하지 못했고
아래 링크의 게시물도 현재[23/09/04] 기준으로 미완성 상태다.

 

10장 객체지향 쿼리 언어

👣 개요 여태까지의 JPA로는 제한적인 쿼리만 수행할 수 있었다. 때문에 복잡한 검색 조건을 사용하기 위해 다양한 쿼리 기술을 지원한다. JPQL, Criteria, QueryDSL 등등이 이것에 속한다. 👣 JPQL JPQL

ikadnorth.tistory.com

내일은 Lv 3 과제를 수행함과 동시에 QueryDSL 내용을 마저 끝낼 계획이다.

'TIL' 카테고리의 다른 글

9/6  (0) 2023.09.06
9/5  (0) 2023.09.05
WIL - 8/28 ~ 9/3  (0) 2023.09.03
9/2  (0) 2023.09.02
9/1  (0) 2023.09.01