닷넷 (.NET)

아현·2021년 11월 21일
0

Computer Science

목록 보기
14/47

출처


  • 닷넷 프레임워크(.NET Framework)는 마이크로소프트에서 개발한 윈도우 프로그램 개발 및 실행 환경이다.

    • 네트워크 작업, 인터페이스 등의 많은 작업을 캡슐화하였고, 공통 언어 런타임(Common Language Runtime)(CLR)이라는 이름의 가상 머신 위에서 작동한다.



1. 닷넷 프레임워크, 그 시작과 한계


개발자가 아니더라도 윈도우(Windows)에서 프로그램을 설치하거나 실행할 때 [그림 2]와 같이 닷넷 프레임워크(.NET Framework)가 설치되는 것을 본 적이 있을 것입니다.

윈도우 애플리케이션은 대부분 닷넷 프레임워크를 기반으로 개발되었습니다.

국내 소프트웨어 시장 전체에서 닷넷 프레임워크가 차지하는 비중이 크지는 않지만, 제조·의료 분야 IT 시스템에서는 비교적 활발하게 사용되고 있습니다.

닷넷 프레임워크는 2002년 2월 13일, MS가 내놓은 소프트웨어 플랫폼으로 C#이라는 객체지향 언어도 함께 출시하여 자바에 대항하고자 하였습니다.

C# 언어는 빌드 후 IL(Intermediate Language, 중간 언어)로 변환되어 CLR(Common Language Runtime, 공통 언어 런타임)에서 실행되는 구조인데, 자바의 Bytecode와 JRE(Java Runtime Environment)로 생각하면 됩니다.

참고로 닷넷 프레임워크에서 지원하는 언어는 C#, F#, Visual Basic 등이 있습니다.

통상적으로 윈도우용 애플리케이션은 닷넷 프레임워크 기반으로 개발하는 것이 생산성이 높고 성능도 좋습니다. 또한 사용 가능한 3rd Party 라이브러리도 풍부합니다.

다만 대부분이 상용이고 윈도우 전용입니다.
이같은 닷넷 프레임워크의 한계는 애플리케이션 생태계가 웹과 모바일 중심으로 변화하면서 더욱 두드러졌습니다. 게다가 기업들은 비용 절감을 위해 리눅스를 비롯한 오픈소스 소프트웨어 도입에 적극적으로 나서게 되었습니다. 라이선스 비용이 많이 드는 윈도우 기반의 서버가 아니더라도 수준 높은 웹 애플리케이션 서비스가 가능하게 된 것입니다.



2. 닷넷 코어의 등장 - 크로스 플랫폼, 오픈소스로


MS도 닷넷 프레임워크의 한계를 인식하고 대안을 마련하기 시작했습니다.

그 결과 2014년 닷넷 코어(.NET Core)라는 이름으로 크로스 플랫폼을 지원하는 오픈소스 프레임워크를 출시하게 됩니다.

아울러 MS는 닷넷 파운데이션(.NET Foundation)을 설립하여 오픈소스 진영으로 입지를 넓혀갑니다.

참고로 삼성전자도 닷넷 파운데이션의 기술운영위원회(Technical Steering Group)에 참여하고 있습니다. 삼성이 개발을 주도한 타이젠(Tizen) OS도 닷넷 앱을 지원합니다.

MS는 닷넷 코어 출시와 함께 닷넷 표준 API 스펙인 닷넷 스탠다드(.NET Standard)도 발표하였습니다.
개발자가 닷넷 스탠다드 API만을 사용하여 라이브러리를 빌드해 배포하면 해당 닷넷 스탠다드 버전을 지원하는 닷넷 환경에서는 어디서든 참조 및 실행이 가능합니다. 그러므로 다양한 플랫폼에서 공통적으로 사용하기 위한 라이브러리는 닷넷 스탠다드를 타깃으로 개발할 것을 권장하고 있습니다.



.NET으로 대동단결


2020년 MS는 닷넷 프레임워크 4.8이 닷넷 프레임워크의 마지막 릴리스라고 발표하였습니다.

그동안 닷넷 프레임워크와 닷넷 코어로 나누어 지원하던 플랫폼을 닷넷(.NET)이라는 단일 이름으로 통일하기로 한 것입니다.

그 시작 버전이 5.0인 것은 닷넷 코어의 최신 버전이 3.x이고 닷넷 프레임워크의 최신 버전이 4.8인 탓에 개발자 혼란을 줄이기 위해 이 둘을 아우르는 버전을 채택한 것이라고 합니다.

닷넷 코어로 시작한 MS의 크로스 플랫폼 전략은 닷넷 5.0 출시로 새로운 전환기를 맞게 되었습니다. 클라우드 네이티브(Cloud Native) 시대, MSA(Microservices Architecture)의 유행 속에서 뒤늦은 감이 있지만 서비스 개발을 위한 선택지의 하나로 닷넷도 이름을 올릴 수 있게 된 것입니다. (사실 닷넷 코어로도 이미 크로스 플랫폼 서비스 개발을 지원하기는 했습니다.)



닷넷의 미래 경쟁력이 꽤 있다고 생각합니다. 기술적인 면은 물론이고 MS의 풍부한 SDK 지원 역량(Visual Studio, Visual Studio For Mac, Visual Studio Code)과 Azure를 기반으로 한 클라우드와의 손쉬운 연동 등이 강점이 될 수 있습니다.
아울러 MSDN(Microsoft Developer Network)에 누적된 광범위한 기술 문서, FAQ 및 예제 등은 다른 플랫폼에 익숙한 개발자들이 닷넷으로 이동하는데 드는 어려움을 크게 줄여줄 것으로 생각됩니다. 특히 자바 개발자들도 적응하는 데 큰 무리가 없을 것입니다.

  • C#의 문법은 객체지향 언어인 자바와 비슷하고, 패키지 관리는 누겟(Nuget)으로 하는데 자바의 메이븐(Maven)과 같은 개념으로 생각하면 됩니다.

이제 닷넷이라고 하면 윈도우만 떠올려서는 안 됩니다. 바야흐로 닷넷은 맥(Mac), 리눅스 등 다양한 플랫폼에서 동작하고 개발할 수 있는 프레임워크가 되었으며 크로스 플랫폼, 오픈소스와 같이 핫한 키워드들에 보다 가까워졌습니다.

MSA로 다양한 서비스를 개발하는 환경에 있어서도 닷넷은 Spring Boot, Node.js, Python과 더불어 좋은 대안이 될 수 있을 것입니다. 향후 이어질 닷넷의 새로운 행보와 흥미로운 변화를 주목해 보시길 바랍니다.

profile
Studying Computer Science

0개의 댓글