데브허브 | DEVHUB | The Hidden Cost of IEnumerable #csharp #dotnet #codingThe Hidden Cost of IEnumerable #csharp #dotnet #coding
IEnumerable는 지연 평가(lazy-evaluated)되어, 실제 데이터에 접근할 때마다 내부 로직이 실행됩니다. ⏳
- 동일한
IEnumerable를 여러 번 열거(enumerate)하면, 데이터 생성 로직이 매번 다시 실행됩니다. 🔄
- 이는 파일 읽기나 데이터베이스 쿼리 등 비용이 큰 작업에서 심각한 성능 저하를 유발할 수 있습니다. 📉
- 예시에서는 'generating numbers' 메서드가 세 번 호출되어 비효율성을 명확히 보여줍니다. 🔢
- 이 문제를 해결하려면
.ToList()와 같은 메서드를 사용하여 IEnumerable를 List<T>와 같은 구체적인 컬렉션으로 즉시 변환해야 합니다. ✅
.ToList()를 사용하면 데이터가 한 번만 생성되어 메모리에 저장되므로, 이후 접근 시 로직 재실행을 방지하여 효율성을 높입니다. 💾