본문 바로가기

프로그래밍/C#

[C#] 01. 닷넷 프레임워크

반응형

닷넷 프레임워크

- 2002년에 마이크로소프트사에서 발표한 응용 프로그램 개발 환경

- 닷넷 프레임워크를 설치하면 가상 머신 역할을 하는 CLR(Common Language Runtime) 구성요소가 실행될 수 있는 환경이 윈도우 운영체제에 마련됨

- C# 컴파일러는 소스코드를 기계어가 아닌 IL(Intermediate Language)이라고 하는 중간 언어로 EXE/DLL 내부에 생성

 

닷넷 호환 언어

- CLR에 의해 실행되는 중간 언어는 어느 하나의 프로그래밍 언어에 종속된 것은 아님. 어떤 언어의 컴파일러든지 결과물을 중간 언어로 생성해 낸다면 CLR이 그것을 실행할 수 있음

- 이처럼 중간 언어로 번역하는 언어를 닷넷 호환 언어(.NET-Compliant Language)라고 함

- 닷넷 호환 언어는 IL(중간 언어) 코드의 결과물을 공유하기 때문에 상호 호출이 가능

- 닷넷의 CLR에서는 중간 언어를 CIL(Common Intermediate Language)라고 하며, 보통은 줄여서 IL 코드, 또는 MSIL 코드라고 함

- 닷넷 호환 언어가 지켜야 할 타입의 표준 규격을 정의한 것이 공용 타입 시스템(CTS: Common Type System)

- 닷넷 호환 언어가 지켜야 할 최소한의 언어 사양을 정의한 것이 공용 언어 사양(CLS: Common Language Specification)

 

메타데이터

- CLR에서 동작하는 실행 파일은 완전하게 자기 서술적인 메타데이터를 제공하며, 외부에서는 이런 정보를 리플렉션(Reflection)이라는 기술을 통해 사용할 수 있음

- 다른 사람이 만든 EXE/DLL 파일에서 어떤 클래스와 메서드가 제공되는지 확인하고 싶다면 이 메타데이터를 통해 알 수 있음

 

 닷넷 응용 프로그램을 만들려면 필연적으로 닷넷 프레임워크의 전반적인 지식을 함께 공부해야 한다. 그 지식에는 CLR/CLI/CTS/CIL이 포함되며 모든 것을 알아야 할 필요는 없지만 많이 알수록 닷넷 프로그램 제작 능력은 더욱 향상될 것이다.

 

닷넷코어와 닷넷 표준

- 닷넷 코어(.NET Core)은 공용 언어 기반 구조(CLI)의 구현체이며 다중 플랫폼에서 실행할 수 있도록 만들어졌다는 점에서 강점을 가진다.

- 소스코드를 완전히 공개했고 이를 깃허브 사이트를 통해 외부 개발자와 협업해 나가면서 더욱 빠른 개발 속도와 함께 다중 플랫폼으로의 포팅을 꾀하고 있다.

- 닷넷 표준 라이브러리를 사용한다면 아무런 변경 없이 닷넷 코어와 닷넷 프레임워크 위에서 사용할 수 있따.

 

닷넷 5

- 2020년 기존의 닷넷 프레임워크와 닷넷 코어라는 구분을 모두 없애고 "하나의 닷넷(one .NET)"이라는 기치 아래 닷넷 5 버전을 발표했다.

 

 

선택권

- 닷넷 프레임워크: 윈도우 운영체제에서 실행할 프로그램

- 닷넷 5

- Xamarin: 모바일 앱

- Unity

 

 C#은 닷넷 프레임워크를 기반으로 IL 코드를 생성하는 컴파일러에 불과하므로 C#을 배운다는 것은 곧 닷넷 프레임워크를 공부한다는 의미다. C#은 여러 도구 중 하나일 뿐 결국엔 닷넷 프레임워크가 우리가 공부할 목표이다.


참고

시작하세요! C# 9.0 프로그래밍 - 정성태 지음

 

반응형