※ 이전 블로그의 포스트임(2016/10/31)


 무언가 새로 시작하기 위해 관련 서적을 읽을 때 큰 난관 중 하나는 용어나 약어들의 생경함에서 오는 답답함이다.

 

 단락마다 한가득인 생소한 용어들을 되새김질하며 읽다보면 1시간에 몇 페이지를 넘기기도 힘들어진다.

그렇다고, 되새김 없이 스킵하면서 읽다보면 내가 지금 한글을 읽고 있긴 한건가 하는 의심이 든다.

 

 그러므로, 빠른 진도를 위해서는 무릇, 용어나 약어에 최대한 익숙해질 필요가 있다.

 

 이제, C# 공부를 위해 용어 정리부터 시작한다. 일이 일을 만들면 안되므로 한줄로 간략히 정리하련다.

 

 

.NET Compliant Language : .NET 을 이용할 수 있는 언어. C#이 대표적

 

CIL(Common Intermediate Language) : 자바 bytecode 와 동일 개념.

 

CTS(Common Type System) : .NET 언어가 지켜야 할 공통의 type 에 대한 정의. int 같은 primitive 뿐만 아니라 enum이나 class(엄연히 user type이다.) 같이, type이라고 할 수 있는 모든 범위에 대한 정의를 담고 있다. 

 

CLS(Common Language Specification) : .NET 언어가 필히 지켜야 할 규격. 예를 들면, 모든 .NET 언어는 변수 MyVar와 myvar가 서로 다른 변수라고 인식하게 되는데, 이는 CLS에서 대소문자를 구분해야 한다고 명시가 되어 있기 때문이다. CLS와 CTS가 다소 헤깔리는데, 꼭 이해하고 넘어가자.

 

Metadata : .NET 코드를 컴파일하였을 때 CIL 외에 나오는 결과물. 클래스 이름, 함수 인자/형식 등을 표현.

 

Assembly : 실행 파일

 

Module : 컴파일한 클래스

 

Manifest : Assembly 내에 포함된 Module의 리스트 및 관련 정보

 

CLI(Common Language Infrastructure) : CIL 및 CIL을 구동해주는 system에 대한 규격 명세. 자바 VM(Virtual Machine)과 동일 개념

 

CLR(Common Language Runtime) : CLI를 실제 구현한 실체. 즉, .NET Framework 설치하면 들어 있는 것.

 

BCL (Base Class Library) : JDK, MFC, boost 같은 library 패키지

 

.NET Framework : CLR과 BCL 그리고 몇가지 유틸리티를 묶은 패키지. 그래서, 설치를 해야 하지만, 요즘 윈도에는 기본으로 설치 되어 있더라.

 

C# : .NET을 지원하는 언어 중 하나. 언어 이름 유래는 C++의 ++ 위 ++을 덧붙여서 우물정 모양으로 만들었다는 얘기도 있고, #이 글자 그대로 sharp(올림)의 의미로 쓰였다는 얘기도 있고... 어쨌든, C++ 하고 비슷하지 않다고 할 수 없다!

 

 

Posted by JMAN