Spring SecurityArchitecture일단 기본적으로 Spring Security는 Servlet Filter layer에서 동작하는 것을 기억하자.How does Servlet Filter work?Client에서 애플리케이션에 요청을 하게되면 서블릿 컨테이너에서 서블릿 인스턴스들과 HttpServletRequest 를 처리하는 서블릿으로 이루어진 필터 체인을 생성한다.Filter Chain = ((Filter Instance1 → Filter Instance2 → Filter Instances . . . → Servlet (Spring Applictation을 사용한다면 Dispatcher Servlet))public void doFilter(ServletRequest request, Se..
spring
Servlet 컨테이너가 생성되면 어떻게 AbstractAnnotationConfigDispatcherServletInitializer 을 상속받아 작성한 클래스를 읽고 Dispatcher Servlet을 등록하고 초기화 작업을 할 수 있을까?ServletContainerInitializer 를 구현한 SpringServletContainerInitializer 클래스를 잘 살펴보자@HandlesTypes({WebApplicationInitializer.class})public class SpringServletContainerInitializer implements ServletContainerInitializer { public SpringServletContainerInitializer() {..
웹 어플리케이션과 싱글톤 패턴 보통 웹 어플리케이션에서는 여러 고객이 동시에 요청을 보내는 경우가 많다. 만약 한 고객마다 서비스를 담당하는 객체를 새로 생성하면 어떻게 될까? TPS가 많은 서비스라면 엄청난 메모리 비용이 생길 것이다. 이를 해결하기 위해 해당하는 객체를 하나만 생성하고 이를 여러 프로세스에서 공유하도록 설계하면 된다. 싱글톤 패턴 싱글톤 패턴이란 클래스의 인스턴스가 1개만 생성되도록 보장하는 디자인패턴이다. 코드를 사용해서 알아보자. public class Singleton { private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; }..