[GCD] 메인 스레드에서 DispatchQueue.main.sync를 사용하면 안되는 이유
☑️ 데드락 (Deadlock) 발생 상황을 이해해보자메인 스레드에서 DispatchQueue.main.sync를 호출할 때 아래와 같은 데드락 (Deadlock, 무한 대기 상태) 에러가 발생합니다.우선 데드락이 발생하는 아래 코드의 의미를 정확하게 이해해보겠습니다.별도의 설정을 하지 않으면, 기본적으로 우리의 코드는 메인 스레드 (main)에서 동작합니다. -> 해당 코드도 메인 스레드 위에서 동작 중!DispatchQueue.main : main Queue로 작업을 전달한다는 의미입니다. 메인 큐는 기본적으로 Serial Queue (직렬 큐)이기에 동일한 스레드인 자기자신, 메인 스레드 (main)로 작업 (Task)이 할당되겠군요.sync : 동기적인 작업 (= 작업을 보내고 끝날 때까지 기다림..
2025.06.06