멀티스레드 동시성 이슈를 해결하는 Atomic 변수와 Concurrent 컬렉션
·
자바
0. 들어가며 자바에서 스레드를 공부하다 보니 단일 스레드 환경에서는 문제없이 동작하던 코드가 멀티스레드 환경으로 확장되는 순간 예상치 못한 문제가 발생할 수 있다는 사실을 알게 되었습니다.여러 스레드가 동시에 하나의 자원에 접근하면서 값이 꼬이거나, 실행할 때마다 결과가 달라지는 동시성 이슈(Concurrency Issue) 가 발생하는 것입니다. 이러한 문제는 단순히 코드 문법의 문제가 아니라, 멀티스레드 환경에서 데이터를 어떻게 안전하게 공유하느냐와 깊은 관련이 있었습니다.처음에는 synchronized 키워드만으로 해결할 수 있을 것이라 생각했지만, 실무 코드와 자료들을 살펴보면서 성능 저하, 코드 복잡도 증가 같은 한계도 함께 존재한다는 점을 알게 되었습니다.이 과정에서 자바가 제공하는 Atom..