개념 Self Study📝/Java
-
QueryDsl과 JPQL어떤것을 써야할까?개념 Self Study📝/Java 2023. 5. 1. 17:50
개요 - 최근 프로젝트간 대량의 데이터 조회에 대해서 많은 고충이 있었다. 우선적으로 검색 조건이 많다보니 어떻게 설정해주어야 할지 감이 오지 않았고 데이터 정렬은 잘될지 걱정하게 되었는데 QueryDsl과 JPQL두가지 방법이 있다는것을 알게되어 정리를 한번 해보자 JPQL이란? 객체지향 쿼리언어이다.-> 주로 정적쿼리를 작성한다. 엔티티 객체를 대상으로 쿼리를 작성한다. 문자열로 쿼리를 작성하므로, 쿼리의 오타나 문법 오류를 런타임 시점에 발견할수 없는 단점이 있다. JPA의 내부적 기능으로 지원된다. QueryDsl이란? 자바코드로 쿼리를 작성하는 방법이다. 컴파일 시점에 쿼리 작성 오류를 검출할수 있다. IDE자동완성 기능을 사용할 수 있어 개발 편의성이 높다 라이브러리를 추가해주어야한다. 성능적..
-
Exception Handler and Validate는?개념 Self Study📝/Java 2023. 4. 29. 14:15
Exception Handler의 단점 Overuse: Exception handler는 예기치 않은 상황에 대처하기 위한 것인데 일부러 예외 발생시키게 되면 오히려 코드의 가독성을 떨어트리게 된다. -> 프로젝트 코드 확인 비용: Exception handler를 사용하면 try-catct문이 실행되기 때문에 비용이 발생하게 된다. 매우 빈번히 예외가 발생하는 상황에서는 다른 방법을 사용하여야한다. 보안: 예외 처리시 보안 문제가 발생할 수 있다. 잘못된 입력에 대한 예외 처리를 하지 않으면 코드가 취약해진다. validate의 단점 코드 반복: 데이터 검증을 위한 코드가 반복적으로 등장하게 되고 코드의 가독성과 유지 보수성을 떨어뜨릴 수 있다. 복잡성: 데이터 유효성 검증 로직이 복잡해질수록, 코드의..
-
QueryDsl을 살짝 뜯어보자개념 Self Study📝/Java 2023. 4. 28. 23:03
개요 이번 final project간 JPQL을 통한 QueryDsl을 사용하였으나, 어떻게 사용하는지는것에 대해서만 파악하였고 장,단점,한계점 을 파악하지는 못하였다. 게시물을 통해서 장,단점, 한계점등을 파악해보자 장점 JPA의 JPQL을 만들어주는 빌더이며, 더 자세하게 JPA를 사용할수 있다. 생성하기 어렵거나 복잡한 상황에서 쿼리를 작성하고 데이터를 영속하게 된다. 코딩 과정에서 문법에러를 미리 알 수 있어며 상황에 따라 유동적인 쿼리를 작성할수 있다. 많은 경우의수의 쿼리를 작성하여야할때 QueryDsl을 통해 변수값을 활용한 간략한 동적쿼리를 만들수 있다. ※주의점 존재: 가독성이 떨어질수 있다. 단점 JPA를 이용한 JPQL JPQL은 문자열 형태이기 때문에 개발자 의존적 형태이다. Co..
-
Spring Boot JPA Update 방법은 다양하다?개념 Self Study📝/Java 2023. 4. 27. 02:32
1.개요 Final Project를 진행하는 도중 C,U,D기능에서 U기능이 에러(NullPointExceptionError)가 발생하였다. 그 이유로는 게시물에 대해서 삽입해야하는 값들이 많은데 값 삽입 도중 원치 않는값들을 입력하지 않으면 자체적으로 null값으로 넘김에 따라서 에러가 발생하였다. 문제 풀이 서비스를 만들었는데 문제 풀이 특성상 객관식,주관식 구분하면 조건도 달라 에러(NullPointExceptionError)가 자주발생 하여 다른 방법의 Update JPA를 모색하였다. 2. Update 방법의 다양성 Builder를 통한 Update Builder패턴을 이용하여 build를 한 후 기존에 있던 엔티티를 조회한 후 조회한 Entity에 JPA의 save메서드를 이용하여 기존에 있던..