Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 동적 바인딩(Dynamic Binding)이란 무엇일까?

C# 동적 바인딩의 개념

동적 바인딩(Dynamic Binding)은 컴파일 시점이 아닌 런타임(실행 시점)에 타입 검사가 수행되는 방식을 말합니다. 즉, 컴파일러는 코드를 컴파일하는 단계에서 변수나 표현식의 타입을 확인하지 않고, 프로그램이 실제로 실행될 때 해당 타입을 검사합니다.

C#에서는 dynamic 키워드를 사용해 이러한 동적 바인딩을 구현할 수 있습니다.

동적 바인딩이 필요한 이유

동적 바인딩은 익명 타입(Anonymous Type)의 제약을 우회할 때 특히 유용합니다. 일반적으로 익명 타입은 하나의 메서드 내부에서만 사용할 수 있는데, 그 이유는 익명 타입의 이름이 오직 컴파일러에게만 보이기 때문입니다. 따라서 개발자는 익명 타입을 메서드의 반환 값으로 직접 선언할 수 없습니다.

하지만 메서드의 반환 타입을 dynamic으로 지정하면, 컴파일러가 컴파일 시점에 타입 검사를 수행하지 않기 때문에 익명 타입 객체를 반환 값으로 사용할 수 있습니다.

예제 코드

다음 예제를 살펴보겠습니다.

public dynamic GetAnonymousType() {
    return new {
        StudentName = "Jack",
        Subject = "Maths",
    };
}

위 코드에서 메서드의 반환 타입이 dynamic으로 설정되어 있습니다. 이는 곧 컴파일러가 컴파일 시점에 타입 검사를 수행하지 않는다는 의미입니다.

public dynamic GetAnonymousType() {}

정리

  • 동적 바인딩에서는 컴파일 시점에 타입 검사가 이루어지지 않습니다.
  • 타입 검사는 런타임에 수행됩니다.
  • 익명 타입처럼 이름이 컴파일러에게만 노출되는 타입도 dynamic을 활용하면 메서드의 반환 값으로 사용할 수 있습니다.