* 해당 포스팅은 김영한님의 고급 자바편 멀티스레드 강의를 보고 정리한 내용입니다. 지난 시간 우리는 멀티스레드에 대해서 알아보고 멀티스레드 기능을 활용해서 성능최적화를 할 수 있다고 말했습니다. 다만 멀티스레드 개념없이 코드를 가져다가 쓰게 된다면 디버깅 하기도 어려운 엄청난 버그를 만날 수 있다고도언급했습니다. 오늘은 바로 그 이야기를 하고자합니다. 메모리 가시성 (Memory Visibility)우선 메모리 가시성이라는 단어부터 굉장히 낯선용어네요 사전에 따르면 "눈에 쉽게 보이는 정도"를 뜻하는데 컴퓨터 과학에서는 다음과 같이 말합니다.* 각각의 스레드가 공유자원에 대해서 모두 같은 상태를 바라보고 있는 것 흠.. 아직 용어가 어렵군요 여기서 말하는 공유자원이 뭘까요?멀티스레드 개념으로 바라본다면..