ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C# / .NET] CLR이란?
    .NET 2022. 4. 6. 11:03

    C#으로 만든 프로그램은 CLR(Common Language Runtime) 위에서 실행되며, 자바 가상 머신과 비슷한 역할을 합니다. 

     

     

    그림처럼 CLR은 .NET 라이브러리와 함께 OS 위에 설치됩니다. 

    네이티브 코드로 작성된 프로그램들은 운영체제가 직접 실행할 수 있지만, C# 컴파일러가 만들어낸 실행 파일은 하드웨어가 이해할 수 없는 코드로 구성되어 있기 때문에 실행할 수 없습니다. 

     

    C# 컴파일러는 C# 소스 코드를 컴파일해서 IL(Intermediate Language)이라는 중간 언어로 작성된 실행 파일을 만들어 냅니다.

    사용자가 이 파일을 실행시키면 CLR이 중간 코드를 읽어 들여 다시 하드웨어가 이해할 수 있는 네이티브 코드로 컴파일한 후 실행시킵니다.

     

    이것을 JIT(Just In Time) 컴파일이라고 부르며, 실행에 필요한 코드를 실행할 때마다 실시간으로 컴파일해서 실행한다는 뜻입니다. 

    CLR은 C#뿐만 아니라 다른 언어도 지원하도록 설계되어있기 때문에, 두번씩이나 컴파일하는 복잡한 과정을 거칩니다. 

     

    CLR은 이외에도 아래와 같은 기능을 제공합니다. 

    1. 언어간의 상속 지원
    2. COM과의 상호 운영성 지원
    3. 자동 메모리 관리(=가비지 콜렉션, Garbage Collection) 등의 기능

     

    댓글

Designed by Tistory.