[swift] DispatchOnce를 이용한 단일 실행 처리 방법

단일 실행 처리는 Swift 및 Objective-C에서 매우 일반적인 요구 사항입니다. 특히 앱 초기화 논리나 싱글톤 객체 생성과 같은 상황에서 단일 실행 처리가 필요합니다. 이러한 상황에서는 DispatchOnce를 사용하여 단일 실행을 보장할 수 있습니다.

DispatchOnce란 무엇인가요?

DispatchOnce는 Grand Central Dispatch(GCD)의 함수 중 하나로, 특정 코드 블록이 단 한 번만 실행되도록 보장합니다. 이를 통해 여러 스레드에서 동시에 실행되더라도 해당 코드가 한 번만 실행되도록 할 수 있습니다.

DispatchOnce를 이용한 단일 실행 처리 방법

아래는 Swift에서 DispatchOnce를 이용하여 단일 실행 처리를 구현하는 방법입니다.

private var onceToken: Int = 0

func performTaskOnce() {
    DispatchQueue.once(token: &onceToken) {
        // 단일 실행이 보장되어야 하는 코드 블록
        print("This code will only be executed once")
    }
}

위의 코드에서 performTaskOnce 함수는 단일 실행이 보장되어야 하는 로직을 포함하고 있습니다. onceToken을 사용하여 해당 코드 블록이 한 번만 실행되도록 보장합니다.

결론

DispatchOnce를 사용하면 어플리케이션에서 단일 실행이 보장되어야 하는 상황에서 간편하게 처리할 수 있습니다. 이를 통해 코드의 안정성을 높일 수 있으며, 다중 스레드 환경에서의 문제를 방지할 수 있습니다.

위의 예시는 Swift를 기준으로 하였지만, Objective-C에서도 비슷한 방법으로 DispatchOnce를 활용할 수 있습니다.

참고자료: