Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

닷넷!시작하기

Microsoft. NET 을 시작하는 분들을 위한 강좌입니다. 주로 기초적인 내용과 때론 기본적인 내용을 다룹니다

닷넷 프레임워크(.NET Framework)

작성자 : 박종명
최초 작성일 : 2008-06-27 (금요일)
최종 수정일 : 2008-06-27 (금요일)
조회 수 : 5758

앞서 마이크로소프트 닷넷 전략과 비전 그리고 닷넷 플랫폼에 대해 간략히 알아 보았습니다.

이번 시간에는 닷넷 프레임워크에 대해 살펴 보도록 하겠습니다.
닷넷 프레임워크는 마이크로소프트의 닷넷 전략을 실현하기 위한 개발의 도구적 환경이라 할 수 있습니다.

즉 개발을 위한 언어 집합, 유틸리티, 컴파일러, API's 등이 닷넷 프레임워크에 포함되어 있으며
공통 언어 명세를 위한 규약 및 응용프로그램 실행을 위한 가상 머신(닷넷 런타임) 등 포함되어 있습니다.


* 닷넷 프레임워크 구조
아래 그림은 닷넷 프레임워크의 구조도입니다. 이전에 살펴 보았던 닷넷 플랫폼 구조도에서 Visual Studio , 개발 언어등 몇가지가 빠진 모습을 나타냅니다.

웹 기반 개발을 위한 다양한 서비스 집합 및 윈도우 응용프로그램 기반 서비스들 그리고 Bass Class 라고
일컫어 지는 풍부한 API's 및 메모리 관리, 타입 안정성, 응용 프로그램 수명관리 등의 매커니즘을 가지고 있는
닷넷 실행환경인 CLR(Common Language Runtime)로 이루어 져 있음을 그림을 통해 알 수 있습니다.


* 언어 독립성

닷넷 프레임워크는 개발자를 위한 다양한 언어를 지원합니다. 즉 특정 언어만을 사용해야 한다는 기존의 규칙을 없애 버렸습니다.닷넷을 위해 설계된 C#은 물론이고 기존 비주얼베이직 개발자들을 위한 VB.NET, 자바개발자들을 위한
J# , C++ 개발자들을 위한 C++.NET 등이 있습니다.

닷넷 기반에서 작성된 응용프로그램을 실행하는 런타임은 하나인데 어떻게 이것이 가능할까요?
CLR이 모든 언어를 알아서 처리 해 줄까요??? 그렇지 않습니다.
사실은 각 언어별 컴파일러가 따로 존재합니다. 그리고 IL이라는 중간언어의 존재가 그 핵심이라 할 수 있습니다.
즉 어떤 언어로 작성되던 각 컴파일러가 동일한 IL코드를 만들어 줍니다. 따라서 닷넷 런타임은 동일한 IL코드만을
처리하면 되는 것입니다. 이런 매커니즘으로 하여 닷넷은 언어 독립성을 실행하였습니다.

아래 그림을 보실까요?  (위키백과에서 발췌한 그림입니다)

 

* 공통 언어 런타임(CLR, Common Language Rumtime)
닷넷 응용프로그램의 실행을 담당하는 가상머신을 CLR 이라고 합니다.
CLR은 관리되는 코드로 작성된 응용프로그램의 실행을 총 관리감독하는 역할을 합니다.
응용프로그램의 메모리 관리 및 수명 관리, 타입 체크, 디버깅 환경등을 제공해 줍니다.

MSDN에서는 CLR을 다음의 문장으로 설명하고 있습니다.
"공용 언어 런타임은 언어 통합, 보안 적용 및 메모리/프로세스/스레드 관리와 같은 런타임 서비스를 담당하며 개발 시 수명 관리, 강력한 형식의 이름 지정, 언어 간 예외 처리, 동적 바인딩 등의 기능을 통해 개발자가 비즈니스 논리를 재사용 가능한 구성 요소로 변환하기 위해 작성해야 하는 코드의 양이 줄어들도록 도움을 줍니다"

다음 그림은 CLR의 구성요소를 보여주고 있습니다.

 

이름
비밀번호
홈페이지
CB <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요