[c#] C# yield 키워드와 Lazy Loading

최근에 C#을 사용하면서 yield 키워드와 Lazy Loading의 중요성을 알게 되었습니다. 이번 포스트에서, 이 두 가지 개념의 역할과 사용 사례에 대해 알아보겠습니다.

yield 키워드

C#의 yield 키워드는 지연된 반환을 구현할 때 사용됩니다. 이는 IEnumerable 또는 **IEnumerable**를 구현할 때 유용하며, 메모리를 효율적으로 사용하면서 데이터를 반환할 수 있습니다.

예를 들어, 다음과 같이 yield 키워드를 사용하여 숫자 리스트를 생성할 수 있습니다.

public IEnumerable<int> GetNumbers()
{
    for (int i = 0; i < 10; i++)
    {
        yield return i;
    }
}

위 코드는 0부터 9까지의 숫자를 반환합니다. 여기서 중요한 점은 실제로 값을 계산하는 시점까지 기다렸다가 값을 반환한다는 것입니다.

Lazy Loading

Lazy Loading은 프로그램이 필요한 시점까지 데이터를 로드하지 않고, 늦게나마 데이터를 로드하는 기법입니다. 이는 애플리케이션의 성능을 향상시키고, 메모리를 효율적으로 사용할 수 있도록 도와줍니다.

예를 들어, 다음과 같이 Lazy를 사용하여 값을 지연 로딩할 수 있습니다.

private Lazy<Data> _lazyData = new Lazy<Data>(() => GetDataFromDatabase());
public Data MyData => _lazyData.Value;

위 예제에서는 Lazy를 사용하여 데이터를 실제로 필요한 시점까지 로드하지 않고, 필요한 경우에만 데이터를 로드합니다.

결론

yield 키워드와 Lazy Loading은 C#에서 효율적인 데이터 처리를 위해 중요한 기술입니다. 이를 올바르게 활용하면 성능 향상과 자원 관리 측면에서 이점을 얻을 수 있습니다. 이러한 개념을 잘 숙지하고 적절하게 활용하여 안정적이고 효율적인 코드를 작성하는 데 도움이 될 것입니다.