공통 언어 런타임
공통 언어 런타임(Common Language Runtime, CLR)은 마이크로소프트 닷넷 이니셔티브의 가상 머신 구성 요소이다. 프로그램 코드를 위한 실행 환경을 정의하는 마이크로소프트의 공통 언어 기반 (CLI) 표준의 기능이다. 공통 언어 런타임은 공통 중간 언어(CIL, 이전에는 MSIL로 알려져 있었음)라고 불리는 바이트코드의 형태를 실행한다.
공통 언어 런타임을 사용하는 개발자들은 C#이나 VB 닷넷과 같은 언어로 프로그래밍하며, 해당 언어의 컴파일러가 소스 코드를 공통 중간 언어 코드로 변환한다. 일반적으로 런타임에 공통 언어 런타임의 JIT 컴파일러가 공통 중간 언어 코드를 운영 체제의 네이티브 코드로 변환한다. 하지만 마이크로소프트 닷넷 프레임워크에 포함된 NGen 같은 AOT 컴파일러를 사용하면 중간 언어 코드를 타겟 머신에서 실행 전에 네이티브 코드로 컴파일해 둘 수도 있다. 이 경우 JIT 컴파일로 인한 추가 CPU/메모리 부담을 없애고, 컴파일된 기계어를 여러 프로세스에서 공유할 수 있으며, 애플리케이션 시작 시간을 단축하는 장점은 있으나 컴파일한 코드의 크기가 크고 실행 시간 정보를 이용한 최적화가 불가능해 오래 실행되는 서버 프로그램에서 기대할 수 있는 추가적인 성능 향상을 꾀할 수 없다.[1]
마이크로소프트의 닷넷 프레임워크 구현이 아닌 다른 공통 언어 기반의 몇몇 구현(예: 마이크로소프트의 공유 소스 CLI 구현[2]이나 모노)은 윈도가 아닌 운영 체제에서 실행되는 반면, 마이크로소프트의 닷넷 프레임워크 구현은 마이크로소프트 윈도우 운영 체제에서만 동작한다.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Common_Language_Runtime_diagram_korean.png/400px-Common_Language_Runtime_diagram_korean.png)
공통 언어 런타임의 가상 머신은 프로그래머들이 CPU의 자세한 부분에까지 신경 쓰지 않아도 되게끔 해 주며, 다음과 같은 다른 중요한 서비스도 제공한다.
CLR 버전 | 닷넷 버전 |
---|---|
1.0 | 1.0 |
1.1 | 1.1 |
2.0 | 2.0, 3.0, 3.5 |
4 | 4, 4.5, 4.6, 4.7, 4.8 |
각주
[편집]- ↑ MSDN NGen.exe 설명서
- ↑ MSDN 공유 소스 CLI 구현 페이지
- ↑ “Common Language Runtime (CLR)”. 《MSDN Library》. 2013년 11월 14일에 확인함.
같이 보기
[편집]외부 링크
[편집]- 공통 언어 런타임 살펴 보기 (마이크로소프트 MSDN)
- 표준 ECMA-335, 공통 언어 기반 (CLI) ECMA International. 2007년 8월 17일에 확인.