스프링 시큐리티에서 SecurityContext를 비동기 스레드에 전파하는 방법
·
Spring/Spring Security
시작하며안녕하세요. 개발자 Stark입니다.오늘은 스프링 시큐리티를 사용할 때 http 메인 호출 내부에서 비동기 메서드를 호출했을 때(한 호출에서 부모-자식 스레드가 함께 동작하는 경우)에 스프링 시큐리티에서는 SecurityContextHolder(ThreadLocal)의 데이터를 어떻게 처리하는지와 이 데이터를 비동기 스레드에 전달 가능한지에 대해 함께 알아봅시다. 저의 경우 업무를 하다 보니 일반 스레드풀을 사용하는 메서드 내부에서 비동기 메서드를 호출하게 되는 경우가 있었는데 이때 유저의 정보가 그대로 전달되어야만 했습니다. 근데 비동기 스레드의 기본 설정 스레드풀인 SimpleTaskExecutor와 일반 스레드에서 사용하는  ThreadPool은 각각 다른 스레드풀이기에 ThreadLocal..
[Spring] Spring Event 스레드의 동작원리 (동기/비동기)
·
Spring/Spring 기초 지식
Spring Event 스레드의 동작원리를 이해해 보자 📌 서론 스프링 이벤트(Application Events)는 기본적으로 발행자(publisher)와 리스너(listener)가 같은 스레드에서 동작한다. 즉, 이벤트를 발행하는 메서드를 호출하면 그 호출을 처리하는 스레드가 이벤트 리스너도 처리하는 것이 기본 동작이다. 이번 포스트에서는 스프링 이벤트와 스레드의 동작 방식을 자세히 알아보자 1. 스프링 이벤트와 스레드 동작 방식 (1개의 이벤트 리스너) 스프링 이벤트의 스레드 동작(동기) 기본적으로, 스프링에서 이벤트를 발행하면, 그 이벤트는 기존 로직을 처리하고 있던 같은 스레드에서 처리된다. 예를 들어 어떤 컨트롤러 메서드에서 이벤트를 발행했다면, 그 이벤트에 대한 처리도 요청을 처리하고 있던 그..