[Java] 쓰레드 로컬 (ThreadLocal)
✍️ Stack, Heap, Thread 결론부터 말하면 ThreadLocal이란 Thread마다 독립적인 변수를 갖도록 지원하는 클래스이다. 쉽게 말하면 Thread마다 독립적으로 읽고 쓰는 변수를 제공하는 클래스이다. ThreadLocal을 이해하기 전에 JVM 메모리 정책을 가볍게 짚고 넘어갈 필요가 있다. Java 8 이후 기준, 메서드 파라미터와 지역 변수는 Stack에 할당되고 그 외의 것들은 Heap에 할당된다. 엄밀히 말하면 틀린 설명이지만 메서드에 정의된 것들은 Stack, 그 외의 것들은 Heap 영역이라고 생각하자. Thread(이하 쓰레드)란 한 프로세스 내에서 실행되는 흐름의 단위이다. 한 프로세스당 기본적으로 하나의 쓰레드를 갖는데 이를 메인 쓰레드라고 부른다. 만약 별도의 쓰레..