CLR (Common Language Runtime) 개념정리 (1)

September 8, 2007 12:40 by WebStoryMaker

.NET Framework 3.0 에 대한 개념정리를 하겠다. 혹, MCTS 를 공부하시는 분들을

위해 도움이 될지는 모르겠네요.

CLR

CLR (Common Language Runtime): .NET Framework 의 모든 기초(Foundation)이다. CLR 은 .NET 의 언어인 VB .NET, C#, Jscript 등의 토대를 이루고 있다.

CLR 위에 만들어진 소프트웨어는 Managed Code 라 불리운다. 물론, Unmanaged Code 도 작성할 수 있으나, 대다수의 .NET 어플리케이션은 Managed Code 이다. 이러한 코드를 작성하기 위해서는 위에 언급한 여러 Language 를 사용할 수 있다. 이러한 Language 에는 공통적으로 사용할 수 있는 Type 들이 있는데 그러한 것을 가능케 해주는 것이 CTS (Common Type System)이다. CTS 역시 CLR 안에 속해 있다. 하지만 각 언어에서 다르게 구현은 될 수 있다.

CTS

모든 Type 은 Object 로부터 파생 되며, 두가지 Type 들로 이루어 진다. Reference type 과 Value type.

Value 타입은 매우 단순한 경향(?)이 있다. 이 타입에는 Byte, Char, Signed & Unsigned Integer, Single & Double Floating Point, Decimal, Boolean 등이 있다.

Reference 타입은 이에 비해 복잡하다. Class, Interface, Array, String 이 그 타입에 속한다.

 

메모리의 사용을 보자면 값들은 Stack 이나 Heap 에 저장될 수 있다. 일반적으로 method 가 불리우거나 method 안에서 값들이 생성될 때에 Stack 에 저장된다고 볼 수 있다. 이러한 값(Stack 에 놓여진 값들)은 method 가 반환될 때에 자동적으로 없어진다. 그러나, Heap 에 할당되어진 값들은 method 가 끝난다 하더라도 없어지지 않는다. 그렇기 때문에 .NET 에는 Garbage Collection 이라는 프로세스를 통해 자동적으로 Unmanaged Resource 들을 없애준다(C# 에는 using 이라는 키워드를 통해 생성된 값들을 Garbage Collecting 할 수 있게 해준다).

두 가지 타입이 다른 이유는 value 타입의 실질적인 값은 Stack 에 저장되는 반면 reference 타입의 실질적인 값은 Heap 에 저장되며 Stack 에는 그 실질적인 값을 참조하는 포인터값이 저장된 다는 것이다.

이러한 타입들에 대해 조금 더 자세히 알아보자

Value Type (모든 value 타입은 ValueType 로부터 파생된다 - value 타입은 CLR 세계에서 Sealed 라고 불리우기도 한다)

- Byte

- Char

- Int16, Int32, Int64

- UInt16, UInt32, UInt64

- Single and Double

- Decimal

- Enum

- Boolean

Reference Type

- Methods: 어떠한 operation 이 있는 실행가능한 코드

- Fields: 어떤 타입에 대한 값

- Events: 다른 타입들 사이의 소통수단

- Properties

- Nested types: 타입 안의 타입 (Nested Class)

- Class

- Interface: 인터페이스는 methods, properties, events 들을 포함한다. 클래스와는 다르게 다중 상속이 가능하다.

- Array: 같은 타입 안에서의 여러 값들을 존재케 함

- Delegate: Method 에 대한 포인터

2편에서 계속...


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Related posts

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

November 20. 2008 15:45