.NET이란 무엇인가요?
.NET은 모든 운영 체제에서 기본적으로 실행할 수 있는 데스크톱, 웹 및 모바일 애플리케이션 빌드를 위한 오픈 소스 플랫폼입니다. .NET 시스템에는 확장 가능한 최신 고성능 소프트웨어 개발을 지원하는 도구, 라이브러리 및 언어가 포함되어 있습니다. 활발한 개발자 커뮤니티에서 .NET 플랫폼을 유지 관리하고 지원합니다.
간단히 말해 .NET 플랫폼은 다음 태스크를 수행할 수 있는 소프트웨어입니다.
- .NET 프로그래밍 언어 코드를 컴퓨팅 디바이스가 처리할 수 있는 명령으로 변환합니다.
- 효율적인 소프트웨어 개발을 위한 유틸리티를 제공합니다. 예를 들어, 현재 시간을 찾거나 화면에 텍스트를 인쇄할 수 있습니다.
- 텍스트, 숫자 및 날짜와 같은 정보를 컴퓨터에 저장하기 위한 데이터 유형 세트를 정의합니다.
.NET 구현이란 무엇인가요?
.NET의 다양한 구현을 통해 Linux, macOS, Windows, iOS, Android 등의 다양한 운영 체제에서 .NET 코드를 실행할 수 있습니다.
.NET Framework
.NET Framework는 원본 .NET 구현입니다. Windows에서 웹 사이트, 서비스, 데스크톱 앱 등을 실행할 수 있도록 지원합니다. Microsoft는 1990년대 초에 .NET Framework를 출시했습니다.
.NET Core
Microsoft는 .NET 개발자를 위한 교차 플랫폼 지원이 가능하도록 2014년 말에 .NET Core를 출시했습니다. 이후 2020년 11월에 .NET Core의 최신 버전인 .NET 5.0을 출시하고 이름을 .NET으로 바꿨습니다. 이 문서에서 .NET은 .NET 5.0을 나타냅니다. .NET Core는 GitHub의 오픈 소스입니다.
.NET Standard
.NET Standard는 API라고 하는 다양한 기능의 공식 사양입니다. 다른 .NET 구현에서 동일한 코드와 라이브러리를 재사용할 수 있습니다. 각 구현에서는 .NET Standard API와 해당 구현이 실행되는 운영 체제에 고유한 API를 모두 사용합니다.
.NET을 선택하는 이유는 무엇인가요?
개발 용이성
.NET은 개발자 작업을 용이하게 하는 많은 도구를 포함하기 때문에 개발자들이 선호합니다. 예를 들어, 개발자는 Visual Studio 제품군을 사용하여 코드를 더 빠르게 작성하고, 효율적으로 협업하고, 코드를 효율적으로 테스트하고 수정할 수 있습니다. 구현 간에 코드를 재사용할 수 있으므로 개발 비용이 절감됩니다.
고성능 애플리케이션
.NET 애플리케이션은 더 빠른 응답 시간을 제공하고 더 적은 컴퓨팅 성능을 요구합니다. 강력한 보안 조치를 기본 제공하며 데이터베이스 액세스와 같은 서버 측 태스크를 효율적으로 수행합니다.
커뮤니티 지원
.NET은 오픈 소스이므로 누구나 자유롭게 액세스하여 사용하고 읽고 수정할 수 있습니다. 활발한 개발자 커뮤니티에서 .NET 소프트웨어를 유지 관리하고 개선합니다. .NET Foundation은 .NET 커뮤니티를 지원하기 위해 설립된 독립적인 비영리 단체로서, .NET 개발자를 위한 학습 리소스, 오픈 소스 .NET 프로젝트 및 다양한 이벤트를 제공합니다.
.NET 아키텍처의 구성 요소는 무엇인가요?
.NET에는 최적화된 모듈식 아키텍처가 있습니다. 사용자는 소프트웨어 개발 요구 사항을 충족하기 위해 다른 구성 요소를 선택할 수 있습니다.
다음은 3가지 주요 .NET 구성 요소입니다.
- .NET 언어
- 애플리케이션 모델 프레임워크
- .NET 런타임
개발자는 .NET 프로그래밍 언어와 애플리케이션 모델 프레임워크를 사용하여 .NET 애플리케이션을 만듭니다. 그런 다음 .NET 런타임이 해당 애플리케이션을 실행합니다.
.NET 프로그래밍 언어란 무엇인가요?
NET 개발을 위해 Microsoft에서 지원하는 3가지 언어는 C#(C 샵으로 발음), F#(F 샵으로 발음) 및 Visual Basic입니다. 다른 회사와 개발자도 .NET 플랫폼에서 작동하는 다른 언어를 만들었습니다.
C#
C#은 단순하고 현대적인 객체 지향 프로그래밍 언어입니다. C 언어 계열과 유사한 구문을 사용하는 C#은 C, C++, Java 및 JavaScript 프로그래머에게 친숙합니다.
F#
F#은 구문이 간단하며 소프트웨어를 빌드하는 데 필요한 코드가 거의 없습니다. 간결하고 강력한 고성능 코드를 쉽게 작성할 수 있는 오픈 소스 언어입니다. 또한 정확하고 빠르고 신뢰할 수 있는 미션 크리티컬 소프트웨어를 빌드하기 위한 강력한 프로그래밍 규칙 시스템과 편리한 표준 라이브러리를 갖고 있습니다.
Visual Basic
Visual Basic은 Microsoft에서 개발한 객체 지향 프로그래밍 언어입니다. Visual Basic을 사용하면 형식이 안전한 .NET 앱을 빠르고 쉽게 만들 수 있습니다. 형식 안전성은 프로그래밍 언어가 논리적 코딩 오류를 방지하는 정도입니다.
공용 언어 인프라(CLI) 언어
ClojureCLR, Eiffel, IronPython, PowerBuilder 등의 언어도 .NET 플랫폼에서 작동합니다. 이는 .NET이 공용 언어 인프라(CLI) 언어를 구현하기 때문입니다. CLI를 .NET 호환 언어를 만들기 위한 템플릿으로 생각할 수 있습니다.
.NET 런타임이란 무엇인가요?
공용 언어 런타임(CLR)이라고도 하는 .NET 런타임은 서로 다른 여러 운영 체제에서 .NET 프로그램을 컴파일하고 실행합니다.
JIT(Just-In-Time) 컴파일
CLR은 개발자가 작성하는 대로 코드를 컴파일합니다. 컴파일하는 동안 CLR은 코드를 CIL(Common Intermediate Language)로 변환합니다. 예를 들어, C#으로 작성된 코드에는 영어와 유사한 구문과 단어가 있습니다. .NET은 이 코드를 CIL로 컴파일하거나 변환합니다. CIL 코드는 하위 수준 기계어 코드 언어이므로 다르게 보입니다.
실행
.NET 런타임은 CIL 코드의 실행을 관리합니다. CIL은 교차 플랫폼 호환성을 갖추고 있으며 모든 운영 체제에서 CIL을 처리할 수 있습니다. 교차 플랫폼 호환성은 최소한의 수정으로 여러 운영 체제에서 실행할 수 있는 애플리케이션의 기능을 의미합니다. 예를 들어, C#의 애플리케이션은 코드 수정 없이 Windows, Linux 또는 macOS에서 실행할 수 있습니다. 이러한 애플리케이션을 교차 플랫폼 애플리케이션이라고 합니다.
.NET 애플리케이션 모델 프레임워크란 무엇인가요?
애플리케이션 모델 프레임워크는 빠르고 효율적인 .NET 프로젝트 개발을 지원하는 개발자 도구 및 라이브러리의 모음입니다. 아래 나열된 것과 같이 다양한 유형의 애플리케이션에 대해 서로 다른 프레임워크가 있습니다.
웹 애플리케이션
ASP.NET 프레임워크는 특히 웹 기반 애플리케이션을 빌드하기 위해 .NET 개발자 플랫폼을 확장합니다. REST APIS, HTML, CSS, JavaScript 등의 웹 기술을 지원합니다. 기본 제공 사용자 데이터베이스에 다중 및 외부 인증을 제공합니다. ASP.NET은 보안 메커니즘이 내장된 업계 표준 인증 프로토콜을 지원하여 사이버 공격으로부터 .NET 앱을 보호합니다.
모바일 애플리케이션
Xamarin/Mono를 사용하여 iOS 및 Android를 포함한 모든 주요 모바일 운영 체제에서 .NET 앱을 실행할 수 있습니다. Xamarin에는 오픈 소스 모바일 사용자 인터페이스 프레임워크인 Xamarin.Forms가 포함되어 있습니다. .NET 개발자는 Xamarin.forms를 사용하여 여러 모바일 플랫폼에서 일관된 사용자 환경을 만듭니다. 모든 .NET 앱은 다른 모바일 디바이스에서도 동일하게 보일 수 있습니다.
데스크톱 애플리케이션
데스크톱 애플리케이션 개발에 Xamarin을 사용할 수 있습니다. 또한 유니버설 Windows 플랫폼은 .NET Windows 10 애플리케이션 개발을 확장합니다. Windows에서 사용자 인터페이스 디자인을 위한 다른 프레임워크로 Windows Presentation Foundation과 Windows Forms가 있습니다.
기타 애플리케이션
ML.NET으로 사용자 지정 기계 학습 모델을 개발하고 .NET 애플리케이션에 통합할 수 있습니다. .NET IoT 라이브러리를 사용하여 센서 및 기타 스마트 디바이스에서 애플리케이션을 개발할 수 있습니다. 프레임워크에서 사용할 수 없는 솔루션의 경우 퍼블릭 NuGet 리포지토리에서 많은 특정 함수 라이브러리를 찾을 수 있습니다. Nuget을 사용하여 거의 모든 용도로 많은 .NET 라이브러리를 생성하고 공유하고 사용할 수 있습니다.
AWS는 .NET 개발자에게 어떤 도움을 줄 수 있나요?
.NET 개발자는 .NET on AWS를 사용하여 더 빠르게 애플리케이션을 만들 수 있습니다. 모든 작업에 대한 서비스가 있으므로 인프라 관리에 대해 걱정할 필요 없이 개념 증명을 빠르게 빌드할 수 있습니다. 다음은 .NET 개발을 위한 AWS 서비스의 몇 가지 예제입니다.
- AWS Elastic Beanstalk는 애플리케이션 배포 및 운영 태스크를 처리합니다.
- Amazon EC2는 클라우드에서 안전하고 크기 조정 가능한 컴퓨팅 용량을 제공합니다.
- Amazon Aurora는 데이터베이스 관리를 자동화합니다.
.NET 개발자는 다음과 같은 AWS 오픈 소스 도구 및 라이브러리도 사용할 수 있습니다.
- AWS SDK for .NET을 사용하면 Linux 및 Windows 개발자가 .NET 애플리케이션을 더 쉽게 빌드할 수 있습니다.
- AWS 코드 예제 리포지토리는 AWS 서비스와 함께 작동하는 애플리케이션에 대한 이해를 촉진하는 데 도움이 됩니다.
- .NET 디지털 라이브러리에는 .NET에 대한 동영상, 자습서, 블로그 및 기타 개발자 리소스 아카이브가 들어 있습니다.
.NET 6의 출시와 함께 .NET 개발자는 Linux를 사용하여 AWS의 성능과 비용 절감 효과를 높일 수 있습니다. .NET 6 애플리케이션은 추가 작업 없이 이미 많은 AWS 서비스를 사용할 수 있습니다. 이 가이드에서는 AWS 서비스 및 도구에서 제공되는 .NET 6 지원에 대해 설명합니다.
.NET on AWS 교육을 이수하거나, AWS에서 .NET 애플리케이션을 빌드하거나, AWS에서 첫 번째 .NET 애플리케이션을 시작하여 .NET on AWS을 시작할 수 있습니다.