인프런 Querydsl 완강 및 JPA 커리큘럼 후기

jihunnit·2023년 1월 9일
0

spring-inflean

목록 보기
5/5


인프런에서 이번 실전! Querydsl 강의를 끝으로, 김영한님의 JPA 관련 로드맵을 끝냈다. 사실 기본편 복습이 필요하다

1. Querydsl

일단 이번 Querydsl에 대해 얘기를 하자면, 예전에 들었던 몇몇 강의들에서도 영한님이 동적 쿼리 얘기를 하면 꼭 언급되는 라이브러리였기에, 당연히 이걸 이용해 동적 쿼리를 어떻게 처리하는가? 에 주안점을 두고 있었다.

Querydsl의 장점중에는 물론 쿼리가 아닌 JAVA 코드를 이용하니까, 런타임이 아닌 컴파일 시점에 휴먼 에러를 잡아낼 수 있다는 점이 있으나, 위대하신 Jetbrains의 IntelliJ가 사실 워낙 뛰어난 나머지 쿼리 문자열도 자동 완성 시켜주고 오타를 잡아주고 하는 부분이 있어, 조금은 빛바래는 느낌이 있다.

하지만 나는 누구인가, 이런 그 인텔리한 인텔리제이도 따라잡지 못한 바보같은 개발자이기에, 그럼에도 불구하고 수많은 오류를 만들어왔다. 예를 들자면, 메서드 이름으로 쿼리를 만들어주는 Spring Data Jpa를 이용해서 진행한 저번 프로젝트에서는, 메서드 이름의 수많은 오타를 통해 다양한 런타임 에러를 출몰시켰다.
Querydsl의 사용은 이런 측면을 어느정도 보완하는데 도움이 되지 않을까 싶다. 물론 내가 정신차리고 코드 짜는게 먼저

2. JPA에 대한 단상

일단 다양하고 강력한 추상화 등을 통해 훨씬 더 편하게 백엔드 개발을 할 수 있게 해주는 것은 맞다고 생각한다.
다만, JPA를 곰곰히 생각해보매.. 나의 짧은 견문은 이렇다.

JPA가 객체지향적 백엔드 개발을 도와주는건 맞지만..
항상 적용할 수 있을까?

일단 내 생각에는, JPA가 정말 힘을 쓰기 위해선 처음 테이블을 설계할 당시부터 매우 공을 들여야 할 것 같은데, 문제는 웬만하면 어떤 회사에 취업하게 될 경우 레거시를 다룰 확률이 매우 높다는 것이다. 그러면 당연히 데이터 중심으로 백엔드 설계가 이뤄진 상황일거고.. JPA를 적용하기 어려울 것이다. 쓸모가 없을지도.

그렇기에 역설적이게도 이런 결론이 났다.

MyBatis도 열심히 공부해야지!

그래도 내가 개인적으로 프로젝트를 진행하거나, 만약 취업한 회사가 JPA를 이미 이용하고 있다거나, 신규 프로젝트의 일원이 된다면.. 나는 주저없이 JPA를 사용할 것이다. 그만큼 매력적이고 훌륭한 데이터 접근 기술이라는 생각이 든다.

총평하자면, 정말 좋은 로드맵이었고, 김영한님께 감사드립니다.
MyBatis 공부도 열심히 해야지.

profile
인간은 노력하는 한 방황한다

0개의 댓글