WEB BE Repository 24

Java Thread Model 의 역사

Java 1.0~1.4: 초기 스레드 모델Thread 클래스와 Runnable 인터페이스 도입기본적인 스레드 생성 및 실행 메커니즘이 제공됨.synchronized, wait(), notify(), notifyAll() 메서드를 사용한 동기화가 가능.초기 문제점동기화 블록의 관리가 어려움.스레드 풀과 같은 고급 API 부재.비효율적인 스레드 관리.Java 5 (2004): java.util.concurrent 패키지 도입새로운 기능Executor Framework스레드 관리를 단순화하는 스레드 풀 및 작업 실행 프레임워크.ExecutorService executor = Executors.newFixedThreadPool(4);executor.execute(() -> System.out.println("T..

스프링 시큐리티 stack overflow

느낀점진짜 단위테스트 통합테스트가 진짜 중요하구나버그 찾기 진짜 까다로워지네문제 분석java.lang.StackOverflowError: null at java.base/java.lang.Exception.(Exception.java:103) ~[na:na] at java.base/java.lang.ReflectiveOperationException.(ReflectiveOperationException.java:90) ~[na:na] at java.base/java.lang.reflect.InvocationTargetException.(InvocationTargetException.java:68) ~[na:na] --------무한루프 시작-------- at java.base..

스프링 시큐리티 인증 아키텍처

전체 구조AuthenticationFilter : AuthenticationManager = N : 1AuthenticationManager : AuthenticationProvider = 1 : NSecurityContextHolder - Spring Security에서 인증된 사용자의 세부 정보를 저장하는 곳입니다. 이는 현재 애플리케이션의 보안 컨텍스트에 대한 중앙 저장소 역할을 합니다.SecurityContext - SecurityContextHolder에서 얻을 수 있으며, 현재 인증된 사용자의 Authentication 객체를 포함합니다. 이는 현재 실행 중인 스레드와 연관된 보안 정보를 담고 있습니다.Authentication - 두 가지 주요 목적으로 사용됩니다:AuthenticationM..

스프링 시큐리티 아키텍처

Spring Security 아키텍처Spring Security는 서블릿 기반 애플리케이션에서 서블릿 필터를 사용합니다.HTTP 요청이 들어오면 컨테이너는 FilterChain을 생성합니다.FilterChain은 요청 URI 경로를 기반으로 처리할 Filter 인스턴스들과 Servlet을 포함합니다.여러 Filter가 요청을 가로채거나 수정할 수 있으며, 최종적으로 하나의 Servlet이 요청을 처리합니다.Filter의 순서가 매우 중요하며, 이는 보안 로직의 순서를 결정합니다.DelegatingFilterProxy서블릿 컨테이너의 생명주기와 Spring의 ApplicationContext를 연결하는 역할을 합니다.서블릿 컨테이너에 표준 방식으로 등록되지만, 실제 작업은 Spring Bean으로 등록된 ..