All Honey Tip

[기술 면접] 12. volatile 키워드가 무엇인가요?

수정 일:

발행 일:

volatile 키워드가 무엇인가요?

저번 시간에 이어, 이번엔 volatile 키워드가 무엇인지에 대한 질문을 알아보겠습니다. 이 질문은 상대적으로 자주 나오는 질문은 아닙니다. 하지만, Java에 대해 깊게 탐구해본 경험이 있는지 확인할 수 있는 질문이기 때문에, 실전에서 대답할 수 있게 된다면, 충분한 강점으로 어필될 수 있을 것으로 생각합니다.

Java Generic 타입에 대해서 설명해주세요.


Q: volatile 키워드가 무엇인가요?

Java 변수를 Main Memory에 저장한다는 것을 명시합니다. 변수의 값을 Read할 때, CPU cache에 저장된 값이 아닌 Main Memory에서 읽어옵니다.









Q: volatile은 언제 사용하나요?

CPU Cache의 변수 값 불일치 문제를 해결하기 위해 사용합니다. Multi Thread 환경에서 하나의 Thread만 read & write하고 나머지 Thread가 read하는 상황에서 가장 최신의 값을 보장합니다.








Q: volatile 변수를 사용할 때 주의사항이 있나요?

  1. volatile 변수는 원자적인 연산만 보장하기 때문에 복합적인 연산에는 적합하지 않습니다.
  2. volatile 변수는 스레드 간의 순서를 제어할 수 없으므로, 별도의 동기화 메커니즘을 사용해야 합니다.







Volatile은 현업 개발자 분들도 생소하게 느끼시는 분들이 계실겁니다.
아래 서적을 통해 상세 내용을 확인하시길 바랍니다 🙂







마치며

이번 시간엔 volatile 키워드에 대해 알아보았습니다.

다음 시간에는, Reflection에 대한 면접 질문들을 알아보겠습니다.

Java Generic 타입에 대해서 설명해주세요.








코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다