ThreadLocal 은 Java 프로그램에서 사용되는 공통 클래스 중 하나로 이름에서 알 수 있듯이 스레드에 대한 로컬 변수를 저장하는 기능을 제공합니다.
ThreadLocal 에 저장된 변수는 서로 다른 스레드간에 간섭이 불가능하도록 격리되며 자체 스레드에서만 접근할 수 있습니다.
Spring Webflux 와 같이 Worker Thread 에 대한 변경이 자주 발생할 수 있는 환경에서는 사용가치가 떨어지지만,
Servlet 기반 웹서버나 Spring Batch 와 같은 단일 스레드로 로직을 수행할 수 있을때는 유용하게 쓰일수가 있습니다.(단, NIO 기반으로 웹서버를 운영하거나 내부적으로 병렬처리를 하는 솔루션을 쓴다면 일부 제대로 된 동작을 기대하기 어렵습니다)
첨부드린 링크에 ThreadLocal 에서 제공하는 API 와 사용 방법, 동작 원리등이 기술되어 있으니 궁금하신 분들께서는 참고하시면 좋겠습니다.