... | ... | @@ -43,11 +43,11 @@ CLI는 4가지 구성요소로 나뉜다. |
|
|
**4. Virtual Execution System (VES) :** VES는 Metadata를 사용하는 CLI와 호횐되는 프로그램을 구동시킨다. CLI는 virtual operation system에 대한 명세서이며 구현된 virtual operation system이 CLR이다.
|
|
|
|
|
|
### **어셈블리**
|
|
|
** 어셈블리 :** c#으로 프로그램을 하는 경우 대개 EXE 또는 DLL 파일을 만들게 된다. 닷넷에서는 이러한 실행파일을 어셈블리(Assembly)라고 한다. 닷넷에서 특별한 언급이 없다면 어셈블리는 실행 파일(EXE, DLL)을 의미한다.
|
|
|
**어셈블리 :** c#으로 프로그램을 하는 경우 대개 EXE 또는 DLL 파일을 만들게 된다. 닷넷에서는 이러한 실행파일을 어셈블리(Assembly)라고 한다. 닷넷에서 특별한 언급이 없다면 어셈블리는 실행 파일(EXE, DLL)을 의미한다.
|
|
|
|
|
|
** 매니페스트 : ** JIT 컴파일러가 어셈블리의 IL코드를 기계어 코드로 컴파일하는 과정에서 어떤 Class타입이 현재 어셈블리내에 정의되어 있는지 정의되어 있지 않다면 다른 어셈블리의 정보를 얻는다. 이 참조 어셈블리의 정보가 있는 곳이 메니페스트(Menifest)이다. 메니페스트를 포함하고 있지 않은 모듈은 보통 확장자가 netmodule이다. 매니페스트를 포함하는 경우에는 확장자가 DLL(또는 EXE)이다.
|
|
|
**매니페스트 :** JIT 컴파일러가 어셈블리의 IL코드를 기계어 코드로 컴파일하는 과정에서 어떤 Class타입이 현재 어셈블리내에 정의되어 있는지 정의되어 있지 않다면 다른 어셈블리의 정보를 얻는다. 이 참조 어셈블리의 정보가 있는 곳이 메니페스트(Menifest)이다. 메니페스트를 포함하고 있지 않은 모듈은 보통 확장자가 netmodule이다. 매니페스트를 포함하는 경우에는 확장자가 DLL(또는 EXE)이다.
|
|
|
|
|
|
** Type Metadata :** 데이터를 위한 데이터를 메타데이터(Metadata)라고 한다. 프로그래밍 언어에서는 개발자가 구현한 코드가 데이터에 해당하고, 해당 코드의 성격을 설명해 주는 별도의 데이터를 메타데이터라고한다. CLR에서 동작하는 실행파일은 완전하게 자기 서술적인(self-descriptive) 메타데이터를 제공하며, 외부에서는 이러한 정보를 리플렉션(Reflection)이라고하는 기술을 통해 사용 할 수 있다. 다른 사람이 만든 EXE/DLL파일에서 어떤 클래스와 메서드가 제공되는지 확인하고 싶다면 이 메타데이터를 통해 알 수 있다. 현재 어샘블리와 호출되는 어셈블리의 모든 Class와 Class멤버가 정의되어 있다. method에 대한 메타데이터는 return type과 method의 파라메타 등에 대한 정보를 모두 가지고 있다.
|
|
|
**Type Metadata :** 데이터를 위한 데이터를 메타데이터(Metadata)라고 한다. 프로그래밍 언어에서는 개발자가 구현한 코드가 데이터에 해당하고, 해당 코드의 성격을 설명해 주는 별도의 데이터를 메타데이터라고한다. CLR에서 동작하는 실행파일은 완전하게 자기 서술적인(self-descriptive) 메타데이터를 제공하며, 외부에서는 이러한 정보를 리플렉션(Reflection)이라고하는 기술을 통해 사용 할 수 있다. 다른 사람이 만든 EXE/DLL파일에서 어떤 클래스와 메서드가 제공되는지 확인하고 싶다면 이 메타데이터를 통해 알 수 있다. 현재 어샘블리와 호출되는 어셈블리의 모든 Class와 Class멤버가 정의되어 있다. method에 대한 메타데이터는 return type과 method의 파라메타 등에 대한 정보를 모두 가지고 있다.
|
|
|
|
|
|

|
|
|
|
... | ... | |