Spring boot 3

[QueryDSL] QueuryDSL vs JPQL

JPQL(Java Persistence Query Language)은 무엇인가? JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다. 따라서 테이블을 대상으로 하는게 아닌, 엔티티 객체를 대상으로 쿼리를 수행하는 언어이다. QueryDSL은 무엇인가 Querydsl은 타입에 안전한 방식으로 HQL 쿼리를 실행하기 위한 목적으로 만들어졌다. 타입에 안전하도록 도메인 모델을 변경하면 소프트웨어 개발에서 큰 이득을 얻게 된다. 도메인의 변경이 직접적으로 쿼리에 반영되고, 쿼리 작성 과정에서 코드 자동완성 기능을 사용함으로써 쿼리를 더 빠르고 안전하게 만들 수 있게 된다. JPQL의 사용방법 JPQL은 쿼리문을 직접 작성하고, 파라미터 바인딩도 직접해주어야한다. @SpringBootTest..

공부/Spring 2023.12.18

[스프링] AuditorAware

AuditorAware란 요청이 왔을때, 해당 사용자의 정보를 등록해주는 기능을하는 컴포넌트이다. 아래는 AuditorAware를 빈으로 등록해준다. ApplicationAuditAware는 실제로 동작하는 기능을 정의했다. @Bean public AuditorAware auditorAware() { return new ApplicationAuditAware(); } ApplicationAuditAware에서는 요청이 왔을때, SecurityContextHolder에서 사용자 정보를 불러와서, 사용자번호를 리턴해준다. 간략한 프로세스는 이것이 전부이지만, 그전에 수행해야할 프로세스가 있다. 물론 이전에 SecurityContextHolder에서 setAuthentication을 해주어야한다. 나의 경우 ..

공부/Spring 2023.11.22

[스프링]Spring Security - SecurityFilterChain

스프링 필터 아키텍처 필터는 무엇인가 스프링 필터의 이해 스프링 시큐리티의 이해 필터는 무엇인가 필터는 클라이언트의 요청을 수행하기 전 공통으로 거치는 검사이다. 클라이언트가 응용프로그램에 요청을 보내면, 톰캣 서블릿 컨테이너에서 요청을 받는다. 요청은 서블릿 컨테이너의 필터를 거치고 서블릿을 통해 요청이 수행된다. 스프링 필터의 이해 스프링은 기존 필터에 위임 필터 프록시를통해 커스텀 필터를 적용할 수 있다. 오른쪽 이미지와 같이 필터를 Bean으로 등록하면 필터를 등록할 수 있다. 스프링 시큐리티의 이해 스프링에서는 위임 필터 프록시(Delegating Filter Proxy)를 통해 필터를 추가할 수 있다. 스프링 시큐리티는 위임 필터 프록시에서 시큐리티 필터 체인을 통해 인증을 할 수 있도록한다...

공부/Spring 2023.11.22