Java에서 멀티스레드 환경을 다루다 보면, 가장 먼저 떠올리는 동기화 방식은 synchronized이다.하지만 실무에서는 synchronized만으로 해결할 수 없는 더 세밀한 락 제어가 필요한 경우가 많고,이때 선택하게 되는 도구가 바로 ReentrantLock이다. 단순한 전역 락이 아니라 자원별 락이 필요하다.이때 사용할 수 있는 패턴 중 하나가 ConcurrentMap + ReentrantLock 기반의 동적 락 관리 기법이다. 1. ReentrantLock이란ReentrantLock은 Java의 java.util.concurrent.locks 패키지에서 제공하는 명시적 락(Explicit Lock)이다.synchronized가 자동으로 락을 걸고 해제하는 구조라면, ReentrantLock은 ..