본문 바로가기
C#

1. yield return 에 대해 (개념)

by Oz Driver 2025. 3. 9.

이번 시리즈에서는 C# 의 yield return 에 대해 자세히 소개하려고 합니다.
처음 접하는 분들도 차근차근 이해할 수 있도록 예제를 중심으로 풀어갈 예정입니다.

그럼 첫 번째 이야기부터 시작해 보겠습니다.

 

 

일반적인 함수는 중간에 멈출 수 없다

일반적인 함수는 실행 중에 빠져나갔다가 다시 돌아올 수 없습니다.

예를 들어, 아래 코드를 보면 ...

void MyFunc()
{
    Console.WriteLine(1);
    Console.WriteLine(2);
    Console.WriteLine(3);
}

 

이 함수는 한 번 실행되면 끝까지 실행되며, 중간에 멈출 방법이 없습니다. 즉, 1을 출력하고 멈추고 싶어도 그럴 수 없으며, 무조건 2, 3까지 실행됩니다.

 

 

yield return 을 사용하면 중간에 멈추고 다시 실행할 수 있다

C# 에서는 yield return을 사용하면 함수 실행을 중단하고 나중에 다시 이어서 실행할 수 있습니다.

아래 코드를 보면 ...

IEnumerator MyCoroutine()
{
    Console.WriteLine(1);
    yield return null;
    Console.WriteLine(2);
    yield return null;
    Console.WriteLine(3);
}

 

이 함수는 1을 출력한 후 yield return null 에서 멈춥니다.
그리고 다음 frame 에서 2 를 출력하고 또 멈추고, 그 다음 frame 에서 3 까지 순서대로 실행됩니다.
즉, 함수가 한 번에 끝나는 게 아니라 중단과 재개 가 가능한 구조입니다.

 

 

yield return 은 어디에 사용될까?

일정 주기마다 실행될 필요가 있는 로직을 구현하거나, 특정 이벤트가 발생할 때까지 실행을 멈추고 싶은 경우 등  yield return 을 사용하면 함수가 한 번에 실행될 필요 없이, 원하는 곳에서 잠깐 멈출 수 있도록 도와주는 기능입니다.