.NET Framework

Justdo2t·2021년 7월 31일
3
post-thumbnail

.NET 프레임워크란??

마이크로소프트(MS)에서 발표한 응용 프로그램 개발 환경이며, 프로세스 가상 머신 (Vitual Machine)으로 분류된다.
일반적인 언어로 만들어진 응용 프로그램들은 별 다른 제약 없이 실행 가능한 반면, 닷넷
프레임워크를 기반으로 만들어진 응용프로그램은 반드시 닷넷 프레임워크가 미리 설치되어 있어야 한다.

Microsoft에서는 다음과 같이 정리했다.

.NET Framework는 실행 중인 앱에 다양한 서비스를 제공하는 Windows용 관리형 실행 환경으로, 다음 두 가지 주요 구성 요소로 구성됩니다. 하나는 실행 중인 앱을 처리하는 실행 엔진인 CLR(공용 언어 런타임)이고, 다른 하나는 개발자가 자신의 앱에서 호출할 수 있도록 테스트되고 재사용 가능한 코드로 구성된 .NET Framework 클래스 라이브러리입니다..

https://docs.microsoft.com/ko-kr/dotnet/framework/get-started/#what-is-net-framework


어떻게 실행되는가?

C#, VB, J# 등 컴파일러는 코드를 네이티브 언어가 아닌 중간 언어인 IL(Intermediate Language)로 실행파일 내부에 생성한다.
이후 사용자가 실행파일을 실행 시 CLR(Common Language Runtime)이 로드되며, CLR이 내부 IL 코드를 로드하며 실행 단계에 들어가게 된다.


CLR, CTS, CLS??

CLR (Common Language Runtime)

CLR이란 Common Language Runtime의 약자이며, 공용 언어 런타임이라고 불린다.
Windows로만 배포되고 있고 가장 대표적인 VM이다. CLR은 중간건어를 JIT 컴파일러를 이용해 기계어로 변환하는 기능과 동적 메모리 관리를 위한 가비지 콜렉터(Garbage Collector)등 두 가지 기능을 제공한다.

CTS (Common Type System)

닷넷 호환 언어가 지켜야할 타입의 표준 규격이다. 닷넷 호환 언어를 만든다면 CTS 규격을 지켜야한다. 하지만 CTS 를 모두 만들 필요는 없고 필요한 규격만 지원해도된다. 하지만 CTS 규격을 벗어나는 새로운 타입을 만들 수는 없다.

CLS (Common Language Specification)

닷넷 호환 언어가 지켜야 할 최소한의 언어 사양이다.
닷넷 호환 언어를 만들때 CTS 는 필요한것만 구현하면 되지만 CLS 는 최소 구현 사양이므로 반드시 완벽하게 구현해야한다.

profile
나긋한 나긋나긋

0개의 댓글