데이터 레이스 방지 기법
-
Swift에서의 데이터 레이스 방지를 위한 동기화 기법Apple🍎/Swift 2025. 4. 16. 23:09
1. NSLock (Foundation 프레임워크)NSLock은 Swift에서 사용할 수 있는 가장 기본적인 락 메커니즘입니다.임계 구역(Critical Section)이란?임계 구역은 여러 스레드가 동시에 접근하면 문제가 발생할 수 있는 코드 영역을 말합니다. 예를 들어, 다음과 같은 상황을 생각해봅시다.두 개의 스레드가 동일한 변수에 동시에 접근하여 값을 변경하려고 할 때여러 스레드가 동일한 파일에 동시에 쓰기를 시도할 때다수의 스레드가 공유 자료구조(배열, 딕셔너리 등)를 동시에 수정하려고 할 때이런 상황에서 적절한 동기화 없이 동시 접근이 일어나면 '경쟁 상태(Race Condition)'가 발생합니다. 이는 프로그램이 예측 불가능한 결과를 내거나 크래시를 일으키는 원인이 됩니다.NSLock을 사..