앞선 편에서 살펴본 synchronized와 Lock은 배타성을 통해 동시성 문제를 해결했다.하지만 배타성에는 항상 비용이 따른다.락 경합컨텍스트 스위칭대기 시간 증가이 비용을 줄이기 위한 시도로 등장한 것이 Atomic 클래스와 그 기반이 되는 CAS(Compare-And-Swap)다.이 글에서는 락 없는 동시성이 무엇을 의미하는지, 그리고 Atomic 클래스가 어디까지 안전한지를 공식 문서 기준으로 정리한다.1. Atomic 클래스는 왜 등장했는가?멀티스레드 환경에서 다음과 같은 연산은 매우 흔하다.count++;하지만 이 연산은읽기계산쓰기의 세 단계로 이루어지며, 원자적이지 않다.synchronized로 보호하면 안전하지만, 매번 락을 거는 것은 비용이 크다.Atomic 클래스는 “단일 변수에 대한..