C#/.NET(2): .NET 아키텍처와 전망
C# 프로그램과 .NET 아키텍처
C# 프로그램은 CLR(Common Language Runtime: 공용 언어 런타임)이라는 가상 실행 시스템이며, .NET에서 실행된다.
C#으로 작성된 소스 코드는 CLI(공용 언어 인프라)사양을 준수하는 IL(Intermediate Language: 중간 언어)로 컴파일된다. IL 코드와 리소스는 일반적으로 .dll 확장명과 함께 어셈블리에 저장된다.

어셈블리는 .NET 기반 어플리케이션에 대한 배포, 버전 제어 등의 기본 단위를 형성한다.
어셈블리는 서로 함께 사용되어 논리적 기능 단위를 형성하도록 빌드되는 형식 및 리소스의 컬렉션입니다.
어셈블리는 실행 파일(.exe) 또는 동적 연결 라이브러리(.dll) 파일의 형태를 가지며 .NET 어플리케이션의 구성 요소이다.
C# 프로그램이 실행되면 어셈블리가 CLR에 로드된다. CLR은 컴파일을 수행하여 IL 코드를 기계어 명령으로 변환한다. 이 때, CLR은 자동 가비지 수집, 예외 처리 및 리소스 관리와 관련된 서비스를 제공하기도 한다.
C#에서 생성된 IL 코드는 F#, Visual Basic, C++ 코드와 상호작용할 수 있다. 서로 같은 언어로 작성된 것처럼 참조할 수 있다.
.NET의 역사
- .NET Framework: 2002년 2월 13일, MS에서 C#과 함께 자바에 대항하고자 출시. 하지만, 어플리케이션 생태계가 웹과 모바일 중심으로 변화하면서 한계가 드러남.
- .NET Core: .NET Framework의 한계를 인식하고 크로스 플랫폼을 지원하는 오픈소스 프레임워크를 출시.
- .NET 5.0 ~ : .NET Framework와 .NET Core로 나누어 지원하던 플랫폼을 .NET이라는 이름으로 단일화. 물론 .NET Core로도 이미 크로스 플랫폼 서비스를 지원했었음.
.NET의 전망
닷넷의 미래 경쟁력이 꽤 있는 편. MS의 풍부한 SDK 지원 역량-비주얼 스튜디오, 비주얼 스튜디오 포 맥, 비주얼 스튜디오 코드, 애저를 기반으로 한 클라우드와의 손쉬운 연동 등이 강점.
C# 의 문법은 객체지향 언어인 자바와 비슷하고, 패키지 관리는 누겟(Nuget)으로 하는데 자바의 메이븐(Maven)과 같은 개념.
앞으로 .NET은 Windows 뿐만 아니라 맥(Mac), 리눅스 등 다양한 플랫폼에서 동작하고 개발할 수 있는 프레임워크가 되고 있음.
댓글남기기