[c#] C# yield 키워드와 메모리 관리

C#에서 yield 키워드는 메모리를 효율적으로 관리하는 데 유용합니다. 이 기능은 특히 대량의 데이터를 처리할 때 유용하며, 반복적인 작업을 수행하면서 메모리 사용을 최적화할 수 있습니다.

yield의 사용

yield 키워드는 메서드나 연산자가 호출자에게 반복 가능한 컬렉션을 반환할 때 사용됩니다. 이를 통해 호출자는 컬렉션의 요소를 하나씩 가져와 처리할 수 있습니다. 이때, yield return은 값을 반환하고 컬렉션의 나머지 부분을 유지하며, yield break는 반복을 중지하고 메서드에서 빠져나오게 됩니다.

아래는 yield 키워드를 사용하여 간단한 예시를 보여줍니다.

public IEnumerable<int> GetNumbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
}

위의 예시에서 GetNumbers 메서드는 호출될 때마다 순차적으로 1, 2, 3을 반환하게 됩니다.

메모리 관리

yield 키워드를 사용하면 메모리를 효율적으로 관리할 수 있습니다. 이는 한 번에 모든 데이터를 메모리에 저장하지 않고 필요한 시점에 값을 반환함으로써 가능합니다. 따라서 대량의 데이터를 다룰 때 많은 양의 메모리를 절약할 수 있습니다.

하지만, yield 키워드를 오용하면 오히려 성능에 부정적인 영향을 미칠 수 있으므로, 사용 시에는 주의가 필요합니다.

yield 키워드를 효율적으로 사용하면서 메모리를 효율적으로 관리할 수 있습니다. 한편으로는 데이터를 순차적으로 처리하며, 다른 한편으로는 메모리의 효율적인 활용을 도모할 수 있습니다.

참고 문헌: