닷넷

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

.NET은 마이크로소프트에서 개발한 소프트웨어 개발 플랫폼으로, 관리 코드 런타임, 프로그래밍 언어, 라이브러리를 포함한다. 1990년대 후반에 시작되어, .NET Framework를 구성하는 핵심 런타임과 소프트웨어 라이브러리를 제공했다. 2014년에 크로스 플랫폼을 지원하는 .NET Core가 발표되었고, 이후 .NET 5, 6, 7, 8, 9 버전이 출시되었다. .NET은 C#, F#, Visual Basic .NET을 지원하며, CoreCLR 런타임을 기반으로 한다. .NET MAUI는 .NET 6과 함께 도입된 크로스 플랫폼 UI 프레임워크이며, 공식 마스코트는 닷넷 봇이다.

닷넷 - [IT 관련 정보]에 관한 문서
개요
이름.NET
종류소프트웨어 프레임워크
개발자.NET 재단 및 오픈 소스 커뮤니티
첫 출시2016년 6월 27일
대체.NET Framework
프로그래밍 언어C++, C#
운영 체제크로스 플랫폼 소프트웨어: 윈도우, 리눅스, macOS, 안드로이드, iOS
플랫폼IA-32, x86-64, ARM
라이선스MIT 라이선스
웹사이트.NET 공식 웹사이트
📚 더 읽어볼만한 페이지
  • 마이크로소프트 개발 도구 - 비주얼 스튜디오
    비주얼 스튜디오는 마이크로소프트가 개발한 통합 개발 환경(IDE)으로, 다양한 프로그래밍 언어와 플랫폼을 지원하며 소프트웨어 개발에 필요한 도구와 기능을 제공한다.
  • 마이크로소프트 개발 도구 - 윈도우 API
    윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
  • MIT 라이선스 소프트웨어 - MS-DOS
    MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다.
  • MIT 라이선스 소프트웨어 - Zcash
    Zcash는 존스 홉킨스 대학교 연구를 기반으로 개발된 익명성 강화 암호화폐로, zk-SNARK 영지식 증명을 통해 거래 당사자의 익명성을 보장하지만, 범죄 악용 우려와 규제 대상 가능성이 존재한다.

2. 역사

1990년대 후반, 마이크로소프트는 관리 코드 런타임과 C# 프로그래밍 언어를 개발하기 시작했으며, 이를 ".NET 플랫폼"의 일부로 묶어 발표했다. 핵심 런타임과 소프트웨어 라이브러리는 .NET Framework를 구성했다.

2000년 Professional Developers Conference에서 C# 언어가 발표되고 해당 소프트웨어의 미리보기가 제공된 직후, 마이크로소프트는 ECMA를 통해 공용 언어 기반 구조라고 명명된 표준화 작업을 시작했다. 그동안 회사는 자체 구현을 독점적이고 폐쇄된 소스 소프트웨어로 개발하고 지원했다.

2014년 11월 12일, 마이크로소프트는 .NET Core—크로스 플랫폼이며 .NET Framework의 후속작—을 발표하고, .NET Core CoreCLR 구현의 소스 코드를 공개했으며, .NET 재단의 관리하에 오픈 소스 개발 모델을 채택한다고 발표했다. 미겔 데 이카자는 .NET Core를 "클래스 라이브러리의 단순화된 버전을 기반으로 재설계된 .NET 버전"이라고 설명했으며, 마이크로소프트의 임모 랜드워스는 .NET Core가 "미래의 모든 .NET 플랫폼의 기반"이 될 것이라고 설명했다.

.NET Core 1.0은 2016년 6월 27일에 마이크로소프트 비주얼 스튜디오 2015 업데이트 3과 함께 출시되어 .NET Core 개발을 가능하게 했다.

.NET Core 3은 윈도우 데스크톱 애플리케이션 개발을 지원하고 기본 라이브러리 전반에 상당한 성능 향상을 추가했다.

2020년 11월, 마이크로소프트는 .NET 5.0을 출시했다. "Core" 브랜딩은 폐기되었고, .NET Framework와의 혼동을 피하기 위해 버전 4.0은 건너뛰었다.

2021년 11월, 마이크로소프트는 .NET 6.0을 출시했고, 2022년 11월에는 .NET 7.0을, 2023년 11월에는 .NET 8.0을, 2024년 11월에는 .NET 9.0을 출시했다.

2.1. 버전

👆
좌우로 밀어서 보기
.NET 버전
버전출시일장기 지원함께 출시됨최신 업데이트최신 업데이트 출시일지원 종료일지원 기간
.NET Core 1.0비주얼 스튜디오 2015 업데이트 31.0.163년
.NET Core 1.1비주얼 스튜디오 2017 버전 15.01.1.132년 6개월
.NET Core 2.0비주얼 스튜디오 2017 버전 15.32.0.91년 3개월
.NET Core 2.1비주얼 스튜디오 2017 버전 15.72.1.30 (LTS)3년 3개월
.NET Core 2.2비주얼 스튜디오 2019 버전 16.02.2.89개월
.NET Core 3.0비주얼 스튜디오 2019 버전 16.33.0.36개월
.NET Core 3.1비주얼 스튜디오 2019 버전 16.43.1.32 (LTS)3년
.NET 5비주얼 스튜디오 2019 버전 16.85.0.171년 6개월
.NET 6비주얼 스튜디오 2022 버전 17.06.0.29 (LTS)3년
.NET 7비주얼 스튜디오 2022 버전 17.47.0.181년 6개월
.NET 8비주얼 스튜디오 2022 버전 17.88.0.4 (LTS)3년
.NET 9비주얼 스튜디오 2022 버전 17.129.0.0-preview.6(예정)1년 6개월 (예정)
.NET 10(예정)(LTS 예정)(예정)3년 (예정)

.NET Core 2.1부터 알파인 리눅스를 지원한다.

.NET 5부터 윈도우 Arm64가 네이티브로 지원된다. .NET 5.0 부터 "Core" 브랜딩은 제거되었으며, .NET Framework 4.x 버전과의 혼동을 피하기 위해 버전 4.0은 건너뛰었다.

3. 언어 지원


.NET은 공용 언어 인프라 (CLI)를 사용한다.
.NET은 공용 언어 인프라 (CLI)를 사용한다.

.NET은 C#, F#을 완벽하게 지원하며, C++/CLI (3.1부터 Windows에서만 활성화)와 Visual Basic .NET을 지원한다( .NET Core 5.0.100-preview.4의 버전 15.5, 일부 이전 버전은 구형 .NET Core에서 지원). VB.NET은 .NET에서 컴파일 및 실행되지만, .NET Core 3.1부터 별도의 Visual Basic 런타임은 구현되지 않았다. 마이크로소프트는 처음에 .NET Core 3에 Visual Basic 런타임이 포함될 것이라고 발표했지만, 2년 후 해당 지원에 대한 타임라인이 .NET 5로 업데이트되었다.

.NET이 공식적으로 지원하는 세 가지 언어는 다음과 같다.

* C#
* F#
* Visual Basic .NET

4. 구조

닷넷은 공통 언어 기반(CLI) 사양을 기반으로 하며, 닷넷 코어는 CLI의 구현체이다. 닷넷은 프로그램 실행 환경, 포터블 실행 파일, 형식/클래스 라이브러리 등의 주요 구성 요소로 이루어져 있다.

닷넷은 ASP.NET Core 웹 응용 프로그램, 명령줄 응용 프로그램, 라이브러리, 유니버설 윈도우 플랫폼 앱 등 다양한 크로스 플랫폼 시나리오를 지원한다. 닷넷 코어 3 이전에는 윈도우 폼이나 윈도우 프레젠테이션 파운데이션(WPF)을 구현하지 않았지만, 닷넷 코어 3부터는 유니버설 윈도우 플랫폼(UWP)과 함께 구현하기 시작했다. GTK# 언어 바인딩을 사용하여 닷넷으로 크로스 플랫폼 그래픽 애플리케이션을 작성하는 것도 가능하다.

닷넷은 NuGet 패키지 사용을 지원한다. .NET Framework가 윈도우 업데이트를 통해 서비스된 것과 달리, 닷넷은 패키지 관리자에 의존하여 업데이트를 받았으나, 2020년 12월부터 닷넷 업데이트도 윈도우 업데이트를 통해 제공되기 시작했다.

.NET Core와 .NET Framework는 API를 일부 공유하지만, .NET Core에는 .NET Framework에 존재하지 않는 고유한 API가 탑재되어 있다. .NET Core 라이브러리의 파생물은 UWP용으로 사용되고 있다. .NET Core의 명령줄 인터페이스는 운영 체제에는 실행 진입점을, 개발자에게는 컴파일 및 패키지 관리 등의 서비스를 제공한다.

4.1. 런타임

.NET Framework가 윈도우 업데이트를 사용하여 서비스되는 것과 달리 .NET은 업데이트를 받기 위해 패키지 관리자에 의존했지만, 2020년 12월부터 .NET 업데이트도 윈도우 업데이트를 통해 제공되기 시작했다.

.NET의 두 가지 주요 구성 요소는 CoreCLR과 CoreFX이며, 이는 .NET Framework의 공용 언어 인프라(CLI) 구현의 공용 언어 런타임(CLR) 및 프레임워크 클래스 라이브러리(FCL)에 비유할 수 있다.

CoreCLR은 CLI의 가상 실행 시스템(VES) 구현으로, CLI 프로그램의 관리 코드 실행을 위한 완전한 런타임가상 머신이며, RyuJIT라는 JIT 컴파일러를 포함한다. 또한, .NET에는 AOT 컴파일된 네이티브 바이너리에 통합하도록 최적화된 런타임인 CoreRT가 포함되어 있다.

.NET은 여러 런타임을 사용할 수 있다. 다음은 .NET 7에서 지원하는 런타임이다.

* CoreCLR
* Mono 런타임: .NET 규격 구현 중 하나인 Mono에서 파생된 런타임.
* NativeAOT: AOT 컴파일에 특화된 런타임. 개발 단계에서는 CoreRT라고 불렸으며 .NET 7부터 정식 도입되었다.

이들은 목적에 따라 사용된다. 예를 들어 iOS는 AOT 컴파일을 전제로 하며 Mono 런타임이 사용된다.

5. .NET MAUI

.NET 다중 플랫폼 앱 UI ( .NET MAUI, .NET 6과 함께 도입)는 C#과 XAML을 사용하여 기본 모바일 및 데스크톱 앱을 만들기 위한 크로스 플랫폼 프레임워크이며, 안드로이드 및 iOS도 지원한다.

6. 마스코트

.NET 봇, .NET 커뮤니티 마스코트
.NET 봇, .NET 커뮤니티 마스코트

닷넷의 공식 커뮤니티 마스코트는 닷넷 봇(dotnet bot 또는 dotnet-bot으로 표기)이다. 닷넷 봇은 닷넷 소스 코드가 오픈 소스로 전환될 때 최초의 체크인에 대한 임시 개발자로 사용되었다. 이후 공식 마스코트로 사용되고 있다.