Menu
Coddy logo textTech

코루틴이란 무엇인가요?

Coddy Lua 여정의 Logic & Flow 섹션에 포함된 레슨 — 54개 중 48번째.

비디오 게임을 하는 것을 생각해 보세요. 언제든지 게임을 일시 중지하고, 다른 일을 하다가 다시 돌아와서 멈췄던 지점부터 정확히 다시 시작할 수 있습니다. Lua의 코루틴(Coroutines)도 이와 비슷한 방식으로 작동합니다.

코루틴은 실행 중간에 스스로를 일시 중단했다가 나중에 정확히 그 지점부터 다시 시작할 수 있는 특별한 함수와 같습니다. 처음부터 끝까지 멈추지 않고 실행되는 일반적인 함수와 달리, 코루틴은 언제 일시 중단하고 재개할지에 대한 제어권을 제공합니다.

이 능력은 협력적 멀티태스킹이라 불리는 것을 가능하게 합니다. 여러 작업을 정확히 동시에 실행하는 대신, 코루틴은 자발적으로 서로 다른 작업 사이를 전환할 수 있게 해줍니다.

하나의 코루틴이 잠시 실행되다가 스스로 일시 중단되면, 다른 코루틴이 제어권을 넘겨받는 식으로 진행됩니다. 각 코루틴은 언제 제어권을 반환할지 스스로 결정함으로써 협력합니다.

코루틴은 오래 실행되는 작업을 분할하거나, 턴제 시스템을 관리하거나, 호출 간에 상태를 기억해야 하는 시퀀스를 생성해야 할 때 유용합니다. 이어지는 강의에서는 Lua에서 코루틴을 생성하고, 일시 중단하고, 재개하는 방법을 배우게 됩니다.

치트 시트

코루틴(coroutine)은 실행 중에 스스로를 일시 중단하고 나중에 정확히 동일한 지점에서 다시 시작할 수 있는 특별한 함수로, 중단 없이 처음부터 끝까지 실행되는 일반 함수와는 다릅니다.

코루틴은 협력적 멀티태스킹(cooperative multitasking)을 가능하게 하며, 여기서 작업들은 동시에 실행되는 대신 서로 자발적으로 제어권을 전환합니다. 하나의 코루틴이 실행되다가 스스로를 일시 중단하면, 다른 코루틴이 제어권을 넘겨받고 이 사이클이 계속됩니다.

코루틴은 오래 걸리는 작업을 분할하거나, 턴제 시스템을 관리하거나, 호출 간에 상태를 기억해야 하는 시퀀스를 만드는 데 유용합니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨