본문 바로가기
728x90

Spring23

[Spring] Querydsl exists 성능 개선 테스트용 테이블 test1 생성하고 Date 값을 300만건 생성하였다. 조회 대한 테스트는 test1 테이블로 진행해보겠다. 조건에 대한 데이터가 존재하는지에 대한 쿼리 1. count로 조회하여 count > 0 조건으로 존재 여부를 파악할 때 select COUNT(*) > 0 from test1 where create_at > '2022-11-01'; 실행시간 : 331 ms 2. exist로 존재 여부를 파악할 때 select exists(select * from test1 where create_at > '2022-11-01'); 실행시간 : 10ms 두 가지 방식은 실행시간 차이가 많이 난다. 데이터양이 많아질수록 실행시간에 대한 차이는 더 커질 것이다. 이유는 정말 간단하다. 1번 방식은 .. 2022. 11. 20.
[Spring] Querydsl Repository 구현 Querydsl 설정은 Querydsl Gradle 설정 참고 이전 글 작성할 때 테스트했던 player table로 querydsl을 적용해보자. Player Table QuerydslConfiguration @Configuration public class QuerydslConfig { @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory jpaQueryFactory() { return new JPAQueryFactory(entityManager); } } JPAQueryFactory를 서비스에서 주입받아 사용하기 위해 Configuration을 설정해야 한다. Entity Class 생성 player.. 2022. 11. 19.
[Spring] Querydsl Gradle 설정 (Gradle 7.X) Gradle에 Querydsl Dependencies 설정 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.querydsl:querydsl-jpa' // Querydsl 추가 annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // 아래는 NoClassDefFoundError 발생 시 추가 고려사항.. 2022. 11. 18.
[Spring] Dispatcher Servlet 이전 글인 HttpReqeust부터 HttpResponse까지 동작 과정을 살펴보다 Spring Framework에서 동작되는 과정도 정리할 필요성이 있어서 Dispatcher Servlet에 대한 내용도 기록해 보려고 한다. Dispatcher Servlet Servlet Request에 특정 Controller로 매핑하기 위해 Front Controller 패턴을 적용한 Servlet이다. Front Controller 패턴은 웹 애플리케이션에서 주로 사용되는 디자인 패턴으로 컨트롤러에서 중복으로 처리해야 하는 사항을 공통 기능을 한 곳에서 관리하는 입구 역할을 하는 컨트롤러의 개념이다. 다수의 Servlet이 아닌 하나의 Servlet으로 클라이언트로부터 요청을 받을 수 있고 Http 요청에 대한 .. 2022. 11. 13.
300x250