코루틴(Coroutine) 작동 원리

2022. 3. 24. 14:26기술 면접

코루틴

코루틴은 실행을 중지하여 유니티에 제어권을 돌려주고, 그 위치를 기억하고 다음 호출 때 부터 그곳부터 다음을 실행 할 수 있도록 하는 기능을 말한다. 유니티는 단일 스레드로 동작 하기 때문에 멀티 스레드 처럼 비슷하게 작동하게 해주는 것이 이 코루틴이다.

 

작동원리

코루틴은 IEnumerator와 같이 사용한다. 진입하는 지점을 여러개 가질 수있고, yield return을 통해 그 바로전 시점을 기억하고 다음 호출하게 될때 그 다음부터 실행이 되는것이다. 유니티에서는 대부분 그 시점을 Update에서 체크한다.

여기서 IEnumerator는 데이터의 목록을 하나씩 넘겨줄 때 사용되는 인터페이스인데, 코루틴은 호출한 함수와 서로 상호작용하면서 진행하도록 설계되어 있다. 코루틴은 자신을 호출한 함수에 데이터를 하나 넘겨주고 쉬게되는데. 받은 측에서는 데이터를 받고 처리한 후에 코루틴에게 다음 데이터를 달라고 깨운다. 이 과정을 반복하고 이러한 작업에 적절한 인터페이스가 바로 IEnumerator이다.

 

 

 

코루틴 작동원리에 대해 설명해보세요

코루틴은 실행을 중지하여 유니티에 제어권을 돌려주고, yield return을 통해 그 위치를 기억해 다음 호출 때부터 그 다음부터 실행하게 되는 기능을 말합니다. 유니티에서는 대부분 그 시점을 Update에서 체크합니다.  코루틴은 기본적으로 IEnumerator와 같이 사용하게 됩니다.  IEnumerator는 데이터의 목록을 하나씩 넘겨줄 때 사용되는 인터페이스인데, 코루틴은 호출한 함수와 서로 상호작용을 하면서 진행하도록 설계가 되어 있습니다. 코루틴은 자신을 호출한 함수에 데이터를 하나 넘겨주고 쉬게되는데, 받은 측에서는 데이터를 받고 처리한 후 코루틴에게 다음 데이터를 넘겨달라고 깨웁니다. 이 과정을 반복하게 되는데 이러한 작업에 적절한 인터페이스가 바로 IEnumerator입니다. 

 

 

 

'기술 면접' 카테고리의 다른 글

델리게이트(delegate)  (0) 2022.03.24
유니티 이벤트 함수 실행 순서  (0) 2022.03.24
내적과 외적이 게임에 어떻게 적용되는지  (0) 2022.03.24
TCP/UDP  (0) 2022.03.24
C++과 C#의 차이  (0) 2022.03.23