Develop Dairy/C#

Csharp은 어떻게 실행 되는걸까..? (2021. 05. 11)

개발자_옹이양 2021. 5. 11. 09:32

📖C# 컴파일 과정?

C#으로 만든 프로그램은 CLR (Common Language Runtime)위에서 실행됩니다.

C#은 컴파일러 언어입니다.

과정은 다음과 같습니다.

  1. C# 컴파일러가 C# 코드 컴파일
  2. 컴파일 결과로 IL(Intermediate Language) 중간언어로 작성된 파일 생성
  3. 사용자가 IL파일 실행하여 CLR이 코드를 읽어 네이티브 코드(하드웨어가 읽을 수 있는 코드)로 컴파일

네이티브 코드로 컴파일하는 과정을 JIT라 부르며 JIT는 실행에 필요한 코드(IL)를 실시간으로 컴파일(네이티브 코드 생성)하는 과정을 말합니다.

눈여겨 보아야 할 것은 컴파일이 2번이나 된다는 것입니다. CLR은 C#뿐만 아니라 다른언어도 지원하도록 설계되어 있습니다. IL이 서로 다른언어를 이어주는 역할을 하고, CLR이 설치된 플랫폼에서(하드웨어, 운영체제에 따른) 최적화하여 컴파일한 후 실행되는 것입니다. CLR은 마이크로소프트 닷넷 이니셔티브의 가상 머신 구성 요소입니다.

CLR의 역할

  1. 언어를 동작시키
  2. 프로그램의 오류가 발생했을때 이를 처리하도록 도와주는 기능, 언어간의 상속 지원
  3. COM(Componet Object Model)과의 상호 운영성 지원
    COM의 예 (.ocx, .dll, .exe )
  4. 자동 메모리 관리 (Garbage Collection)
    프로그램에서 더 이상 쓰이지 않는 메모리를 쓰레기(Garbage)로 간주하여 수거(Collection)하는 기능

CLR의 장단점

장점: 플랫폼에 최적화된 코드를 만들어 낸다.

단점: 컴파일 비용이 든다 (IL에서 컴파일되고 또 생성된 파일을 네이티브 코드로 컴파일 하는 과정을 뜻함.)

 

 

아래 경로는 컴파일러가 설치된 경로입니다.

C:\Windows\Microsoft.NET\Framework64\v4.0.30319