동시성
메인 스레드와 UI
UIKit 화면에서 네트워크 응답 콜백에 label.text = result를 했더니 가끔 화면이 늦게 바뀌거나 아예 안 바뀝니다. 원인이 무엇인가요?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
UIKit 화면에서 네트워크 응답 콜백에 label.text = result를 했더니 가끔 화면이 늦게 바뀌거나 아예 안 바뀝니다. 원인이 무엇인가요?
URLSession 콜백은 백그라운드 큐에서 오므로 UI를 다른 스레드에서 건드린 것이다. UIKit은 스레드 안전하지 않고 렌더링이 메인 RunLoop에 묶여 있어 갱신이 누락·지연되거나 크래시한다.
동시성주관식기초
스크롤하는 동안 화면의 카운트다운 Timer가 멈췄다가 스크롤이 끝나면 한꺼번에 따라잡습니다. RunLoop 관점에서 원인이 무엇인가요?
#main-thread #runloop
성능·디버깅주관식심화
사내 APM에 "메인 스레드가 일정 시간 이상 멈추면 스택을 남기는" 기능을 넣으려 합니다. 앱 안에서 렉(卡顿)을 어떻게 감지하겠습니까?
#main-thread #runloop
동시성주관식심화
Swift Concurrency에서 @MainActor를 뷰모델 클래스 전체에 붙이는 것과 특정 메서드에만 붙이는 것은 무엇이 다른가요?
#ui
CS 기초·알고리즘주관식기초
프로세스와 스레드의 차이를 설명해 주세요. 스레드끼리는 무엇을 공유하고 무엇은 따로 갖나요?
#main-thread