RunLoop

    [Swift] RunLoop.Mode

    [Swift] RunLoop.Mode

    오늘은 미루고 미룬 런 루프 모드에 관해 정리해 보고자 한다. 조금 심화적인 내용을 다룰 것이기 때문에 Run loop의 개념 정도는 알고 있어야 읽기 수월하다. Run loop의 기본적인 개념을 정리한 글은 여기 그럼 시작 RunLoop.Mode? Run Loop 모드는 루프를 통과하는 동안 특정 소스만 모니터링하기 위해 사용한다. 즉, 모드를 사용하여 루프를 통과하는 동안 원치 않는 소스에 대한 이벤트를 필터링할 수 있다. 예를 들어 마우스나 키보드와 같은 입력 소스에 대한 이벤트만 처리하고 싶을 때나, 입력 소스와 타이머 소스 모두 처리하고 싶을 때 특정 모드로 설정하여 제어할 수가 있다. 주의: 모드는 이벤트가 발생하는 소스를 기준으로 구별하기 위함이지, 이벤트의 타입을 구별하는 용도는 아님 예를..

    [Swift] Run Loop

    [Swift] Run Loop

    오늘은 Run loop에 대해서 공부해 볼 것이다. 이전 플젝에서 combine을 사용했었는데, 서버에서 가져온 데이터를 ui에 반영해 주기 위해 receive(on: Runloop.main) 메서드를 썼던 경험이 있다. 그때는 뭣도 모르고 ui 관련 동작이니 main 스레드에서 돌릴 때 쓰는 거구나 했는데 이번 기회에 자세히 알아볼 생각이다. Run Loop? 우선 Run loop가 뭔지부터 알고 가자 apple document를 토대로 정리해 보면 Run loop는 파일, 키보드, 마우스 등의 입력 소스를 처리하는 이벤트 처리 루프이다. Run loop의 관점에서는 특수한 케이스지만 Timer의 이벤트 또한 처리한다. 특정 이벤트가 왔을 때 Thread가 일해야 할 때는 일하고, 일이 없으면 쉬도록 ..