중요한 C# 주제

C#에서 IDisposable과 using으로 자원 해제하기

이 레슨에서는 using 선언으로 오류가 생기더라도 자원이 항상 알맞은 때에 해제되도록 보장합니다.

소개

.NET에서 메모리는 가비지 컬렉터(garbage collector)가 자동으로 회수하지만, 파일, 네트워크 연결, 데이터베이스 연결 같은 자원은 필요 없어지는 즉시 해제해야 합니다. 이런 객체는 IDisposable 인터페이스를 구현하며, 그 Dispose 메서드가 자원을 해제합니다.

using var writer 선언은 프로그램이 그 선언을 감싼 범위를 벗어날 때, 중간에 예외가 생기더라도 writer의 Dispose 메서드가 자동으로 호출되도록 보장합니다. 그래서 자원을 정리하려고 try/finally 블록을 쓸 필요가 없습니다.

실행 가능한 C# 예제

C#
코드 실행 →
Program.cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using var writer = new StringWriter();
        writer.Write("resource-safe output");
        Console.WriteLine(writer.ToString());
    }
}
실행 결과
resource-safe output

디버거로 연습하기

중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.

챌린지로 연습하기

이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.

모든 챌린지