멀티스레드 환경에서 공유 컬렉션은 동시성 문제의 단골 원인이다.단순히 “락으로 감싸면 안전하다” 는 접근은 성능과 확장성 측면에서 곧 한계에 부딪힌다.이 글에서는 Java의 Concurrent Collections가 어떤 설계 철학으로 만들어졌는지, 그리고 락을 어디까지 분해했는지를 공식 문서 기준으로 정리한다.1. 왜 일반 컬렉션은 위험한가?HashMap, ArrayList 같은 일반 컬렉션은 스레드 안전하지 않다.여러 스레드가 동시에 접근하면데이터 손상무한 루프예측 불가능한 결과가 발생할 수 있다.이 문제를 피하기 위해 synchronized로 전체를 감싸는 방법이 가장 먼저 떠오른다.하지만 이는 모든 접근을 직렬화하며, 동시성의 장점을 스스로 포기하는 선택이다.2. synchronized 컬렉션의 ..