Spring은 비동기 처리를 한 후에 어떻게 응답할까? - 1 : 요청 쓰레드의 반환
Spring의 동기와 비동기Spring에서는 @Async 애노테이션을 사용하면 내부에서 ThreadExecutorTaskPool을 사용해 비동기 처리를 위한 쓰레드 풀을 관리한다. 비동기 처리를 사용하지 않으면 서블릿 컨테이너가 요청부터 응답까지의 처리를 수행하게 된다. DispatcherServlet에 Request가 들어와서 DAO를 통해 데이터를 받아 응답할 때까지 서블릿의 쓰레드는 결과를 기다리고 있다가 응답값을 반환하게 된다. @Async 애노테이션을 사용하면 조금 다르게 동작한다. 요청은 비동기 처리를 수행하는 쓰레드 풀에게 위임하고 서블릿의 쓰레드는 다시 서블릿 쓰레드 풀로 반환되게 된다. 이때, 서블릿의 쓰레드는 비동기 처리를 하는 쓰레드 풀로 요청에 대한 처리를 위임하고 Completab..