Spring 3

[QueryDSL] QueuryDSL vs JPQL

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

공부/Spring 2023.12.18

[스프링]Spring Security - SecurityFilterChain

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

공부/Spring 2023.11.22

스프링 IoC , DI

스프링 IoC ( Inversion Of Control) : 제어의 역전 제어의 역전 ? 보통은 개발자가 원하는 객체를 생성하고 제어하는 스타일로 개발을 하는데 , 개발자가 호출하는것이 아니라 프레임워크 같은것이 호출해주는것 . 기존 프로그램은 클라이언트의 구현객체가 스스로 필요한 구현객체를 생성하고 사용하는 구조였다. 한마디로 구현객체가 프로그램의 제어흐름을 조절했다. 제어의 역전이 사용된 경우 AppConfig가 등장후 구현객체는 자신의 로직을 실행하는 역활만 가지고 있다. 프로그램 제어흐름을 AppConfig가 가져가게 된다. 스프링 IoC ? 스프링은 스프링 프레임워크에서 위의 제어의 역전을 관리해준다. @Bean 어노테이션으로 빈을 등록해주면 스프링 컨테이너에 해당 빈이 등록되게 된다. 기본적으..

공부/Spring 2022.03.03