본문 바로가기

Programming/.NET

[.NET] CLR, CTS와 CLS

CLR, CTS와 CLS

CLR, CTS와 CLS는 .NET의 핵심 요소이며 이러한 세 요소들의 관계도는 아래와 같습니다.

CLR, CTS, CLS의 관계도

먼저 CLR은 'Common Language Runtime'의 준말이고 '공용 언어 런타임'이라 합니다. 
CLR은 .NET 지원 언어들은 모두 명확한 바이너리 공간에서 상호작용이 가능하도록 해주는 요소로써

.NET 플랫폼 안에 있는 공용 라이브러리를 로딩 및 App를 변환해주고 Netive 어셈블리로 바꾸어 주는 기능을 담당하며 이러한 일련의 작업들을 담당하는 것을 CLR이라 합니다.

 

CTS는 Common Type System의 준말로 '공용 형식 시스템'이라고 합니다.
책에서는 이를 '모든 데이터 형식과 런타임에 지원되는 프로그래밍 구조가 완전히 기술되어, 서로 어떠한 방식으로 상호작용하고 메타데이터에는 어떻게 나타나있는지 정의되어 있는 것'이라고 책에서 설명하고 있습니다.
간단히 각 언어마다 사용하는 키워드는 다르지만 mscor-lib.dll에서는 동일한 형식으로 받아들인다는 것입니다.

예를 들면 C#에서 사용하는 int형의 경우 Visual Basic .NET은 Integer, C++에서는 int 또는 long으로 선언하지만

.NET에서는 System.Int32로 해석한다는 뜻입니다.

 

CLS는 Common Language Specification의 준말이며 '공용 언어 사양'이라고 합니다.
이 역시 책에서는 '프로그램 언어가 호응할 수 있는 구조와 공용 형식들을 정의한 일련의 규약'이라고 설명되어 있으며
이는 외부로 노출되는 부분은 서로 공통된 형식을 사용해야 한다는 것입니다.

 

- 참조 : C#과 닷넷 플랫폼

'Programming > .NET' 카테고리의 다른 글

[.NET] .NET 리플렉션  (0) 2020.01.14
[.NET] .NET 어셈블리(어셈블리의 구성)  (0) 2020.01.11
[.NET] .NET 어셈블리(어셈블리의 종류)  (0) 2020.01.10
[.NET] 강력한 이름  (0) 2020.01.07
[.NET] .NET이란  (0) 2020.01.05