C# 코드 컴파일
C#은 강력한 형식(strongly typed), 어휘 범위(lexically scoped), 함수형(functional), 객체 지향(object-oriented) 및 구성 요소 지향(component-oriented) 프로그래밍 언어입니다. C# 코드는 어떻게 컴파일되고 실행되는지 알아봅시다.
C# 코드 컴파일의 단계별 프로세스
- C# 코드 작성
- C# 컴파일러를 사용해서 코드 컴파일
- 컴파일러는 코드에 오류가 있는지 여부를 확인합니다.
- 소스 코드는 Common Intermediate Language (공통 중간 언어, CIL) 또는 Intermediate Language Code (중간 언어 코드, ILC 또는 IL코드)라고 하는 중간 코드로 변환됩니다. C#은 플랫폼 독립적 언어이므로 CIL, IL 코드는 모든 운영체제에서 실행할 수 있습니다.
- Common Language Runtime(공통 언어 런타임, CLR)이라고 알려진 가상 머신 구성요소를 이용하여 CIL 또는 IL 코드를 네이티브 코드 또는 기계가 이해가능한 코드로 변환합니다. 이 과정을 Just-In-Time(JIT) 컴파일이라고 부릅니다. Dynamic Compilation이라고도 불리며 이 방식은 프로그램이 실행되는 런타임 동안에만 코드를 컴파일합니다.
- C# 프로그램이 컴파일되면 이는 물리적 어셈블리로 패키지 됩니다. 어셈블리는 일반적으로 응용 프로그램 또는 라이브러리를 각각 구현하는지 여부에 따라서 파일 확장자명이 .exe 또는 .dll로 나뉘며 여기서 EXE는 실행 파일을 나타내고 DLL은 동적 연결 라이브러리를 나타냅니다.
- 이제 C# 컴파일러는 주어진 C# 코드에 대한 결과를 반환합니다.
C++은 중간 단계인 Intermediate Code 단계를 거치지 않고 바로 Native Code로 변환되서 실행 속도가 빠르다.
C#은 중간 단계를 거쳐서 상대적으로 느린 대신 높은 확장성과 이식성을 갖는다. 중간 지점에서 CLR이 각 플렛폼과 환경에 맞게 코드를 변환해준다.
'프로그래밍 > C#' 카테고리의 다른 글
C# 확장 메서드(Extension Method) (2) | 2023.04.03 |
---|---|
Boxing, UnBoxing에 대해서 알아보자 (1) | 2023.03.31 |
C# Discards _의 정체 (9) | 2023.03.23 |
C# Equals()과 GetHashCode()를 함께 재정의 해야하는 이유 (4) | 2023.03.23 |
C# 괄호 알아보기 (19) | 2023.03.20 |
댓글