Dev/Java
-
@Async와 스레드 풀 - ThreadPoolTaskExecutor가 기본 설정이다!Dev/Java 2023. 12. 12. 23:55
회사에서 프로젝트를 진행하며 @Async를 사용할 일이 있었다. 기존 프로젝트의 설정이 완료된 상태였기 때문에 비동기로 동작해야 하는 메소드 위에 @Async만 붙이기만 하면 간단하게 지나갈 수 있었지만 의문이 생겼다. 비동기로 메소드가 실행되면 스레드의 개수는 누가 관리하는 거지? 자바 커뮤니티에서 유명한 baeldung의 글을 포함해서 여러 블로그들을 찾을 수 있었다. 기본적으로 SimpleAsyncTaskExecutor을 사용하기 때문에 ThreadPoolTaskExecutor을 사용하도록 하는 추가적인 설정을 하지 않으면 스레드의 개수가 무한대로 늘어날 수 있다. 결론부터 말하면 이것은 틀렸다. 1. @Async 적용하기 우선 Spring에서 @Async 어노테이션을 이용한 비동기 처리 방법은 매..