태그 보관물: 닷넷

닷넷으로 간단한 애플리케이션 만들기

이 문서에서는 “Hello World!” .NET 앱을 만들고 실행해보려고 합니다. .NET이 무엇인지 잘 몰라도 그냥 한번 따라해봅니다.

애플리케이션 만들기
먼저 컴퓨터에 .NET SDK를 다운로드하여 설치합니다.

그다음 명령 프롬프트(윈도우키 + cmd) 같은 터미널을 엽니다. 다음 dotnet 명령을 입력하여 C# 애플리케이션을 만들고 실행합니다.

dotnet new console --output sample1
dotnet run --project sample1


그럼 다음과 같이 출력이 됩니다. 출력

Hello World!

간단한 닷넷 애플리케이션을 만들어보았습니다.

최신글

닷넷 프로젝트와 패키지

닷넷과 패키지

닷넷에는 파일 관리, HTTP, 파일 압축에 이르는 모든 것을 처리하는 많은 핵심 라이브러리가 함께 제공됩니다. 타사 라이브러리로 구성된 대규모 에코시스템도 있습니다. 닷넷 패키지 관리자인 NuGet을 사용하여 핵심 라이브러리를 설치하고 애플리케이션에서 사용할 수 있습니다.

닷넷 및 해당 에코시스템은 ‘종속성’이라는 단어를 많이 사용합니다. 패키지 종속성은 타사 라이브러리입니다. 종속성은 특정 기능을 수행하며 애플리케이션에 추가될 수 있는 재사용 가능한 코드 조각입니다. 타사 라이브러리는 애플리케이션이 작동하기 위해 ‘의존’하는 항목이며, 그래서 ‘종속성’이라는 단어를 사용합니다.

타사 라이브러리는 패키지로 간주하며 리포지토리에 저장될 수 있습니다. 패키지는 관련 기능을 활용할 수 있도록 애플리케이션에 추가할 수 있는 하나 이상의 라이브러리로 구성됩니다.

패키지를 설치할지 여부

닷넷 프로젝트에 패키지가 필요할지 몇가지 고려사항입니다.

더 나은 코드 : 예를 들어 보안과 같은 작업을 처리하고 있으며 인증 및 권한 부여를 구현하려고 할때 개발자 데이터와 고객 데이터를 보호하기 위해 정확하게 수행하는 작업입니다. 많은 개발자가 사용하는 라이브러리와 표준 패턴이 있는데 이와 같은 라이브러리는 개발자에게 항상 필요할 수 있는 기능을 구현하고 문제가 발생하면 패치가 적용됩니다. 직접 만드는 대신 이러한 라이브러리를 사용하는 것이 시간도 절약하고 생산성 및 다른 개발자가 알아보기 쉽습니다. 개발을 할때 고려해야 하는 사항이 너무 많기 때문에 직접 코드를 생산하는 것보다 더 나은 선택이 될 수 있습니다.

시간을 절약 : 위에서도 말씀드린 부분인데 유틸리티 라이브러리나 UI 구성 요소 라이브러리와 같은 대부분의 항목을 직접 빌드할 수 있습니다. 하지만 시간이 걸립니다. 직접 빌드한 결과가 사용 가능한 항목과 비슷하더라도, 필요하지 않다면 이 코드를 작성하는 작업을 복제하는 데 시간을 들이지 않는 것이 좋습니다.

유지 관리 : 개발도 중요하지만 유지보수도 중요합니다. 이는 모든 라이브러리 및 앱을 유지 관리해야 하는 것과 같은 맥락인데요. 유지 관리에는 새 기능 추가 및 버그 수정이 포함됩니다. 라이브러리를 유지 관리하는 것이 개발자나 팀의 시간을 잘 활용하는 것은 아닙니다. 오픈 소스 소프트웨어 팀이 유지 관리하게 하는 것이 더 좋다는 건 누구나 아는 사실입니다.

좋은 패키지 선택

라이브러리를 설치하기 전에 라이브러리의 종속성을 검사하는 것이 좋습니다. 이러한 종속성은 패키지를 사용하도록 결정하는 요인이 될 수도, 사용하지 않을 이유가 될 수도 있습니다. 프로젝트의 종속성을 선택할 때 고려할 몇 가지 요소는 다음과 같습니다.

크기 : 너무 큰 패키지 즉, 종속성 수가 많으면 큰 메모리 공간이 생성될 수 있습니다. 대역폭이 제한되거나 다른 하드웨어 제한이 있는 경우 이 요인은 프로젝트가 느려진다던지 하는 문제가 발생할 수 있습니다.

라이선스 : 라이브러리에 부여된 라이선스가 상업적, 개인적, 교육용 등 의도한 모든 용도에 사용해도 되는지 확인이 필요합니다.

활성 유지 관리 : 꼭 필요한 패키지가 있더라도 오랫동안 업데이트되지 않거나 사용되지 않는 패키지는 결국 문제가 될 수 있습니다.

패키지를 설치하기 전에 https://www.nuget.org/packages/<package name>으로 이동하여 패키지에 대해 자세히 알아볼 수 있습니다. 이 URL을 선택하면 패키지의 상세 페이지로 이동합니다. 설치 전에 한번 방문해서 알아보는 습관이 중요합니다.

최신글

닷넷을 사용하는 프로젝트의 종류

생산성이 중요한 프로젝트

하나의 앱 모델을 기반으로 애플리케이션을 빌드하는 방법을 배운 후에는 다른 앱 모델의 경우에도 다른 앱을 빌드하는 데 배운 내용을 쉽게 적용이 가능합니다. 예를 들어 웹 애플리케이션을 빌드하는 방법을 배운 후에는 닷넷 기술을 활용하여 모바일 앱을 빌드할 수 있습니다.

지식을 재활용하면 새로운 프로그래밍 모델 또는 언어를 학습하는 데 드는 시간과 스트레스를 줄일 수 있습니다. 새로운 문제를 해결하면 회사에서 시간과 비용을 절감할 수 있습니다.

엔터프라이즈급 프로젝트

닷넷은 다양한 이유로 기업에서 널리 사용되고 있습니다. 장점으로는 에코시스템과 에저 클라우드 서비스 및 온프레미스 서버 제품을 포함한 다른 MS제품과의 통합입니다.

닷넷은 강력한 형식의 시스템이므로 느슨한 형식의 시스템에서 발생할 수 있는 많은 버그를 피할 수 있습니다. 개발자는 C#의 개체 기반 패러다임을 선택할 수 있습니다. 뿐만 아니라 해결해야 하는 문제의 종류에 적합한 언어를 사용하여 개발할 수 있습니다.

스타트업 등 소규모 프로젝트

닷넷은 고객 피드백과 원격 분석을 기반으로 언어, API, 도구의 디자인을 오랫동안 향상했기 때문에 소규모 프로젝트에도 널리 사용됩니다.

프로토타입 제작을 위해 전체 기능을 갖춘 소프트웨어를 신속하게 개발할 수 있습니다. 또한 닷넷은 저렴한 하드웨어 및 클라우드 서비스에서 실행할 수 있습니다. 다른 많이 사용되는 플랫폼에 비해 성능이 뛰어나 스타트업 비즈니스에 적합합니다.

클라우드 및 AI 프로젝트

개발자는 닷넷용 애저 SDK를 사용하여 애저 리소스를 프로비저닝하고 관리할 수 있습니다. 또는 애저 App Service 및 애저 Functions를 통해 닷넷 언어로 빌드된 애플리케이션을 호스트할 수 있습니다.

ML닷넷은 닷넷 언어용 무료 기계 학습 라이브러리입니다. 기계 학습 분석 및 예측을 위해 모델 기반 기능을 활성화합니다.

IoT 앱을 빌드

닷넷을 사용하여 IoT 디바이스 및 시나리오를 위한 IoT 앱을 빌드할 수 있습니다. IoT 앱은 일반적으로 GPIO(범용 I/O) 핀이나 직렬 포트 또는 유사한 하드웨어를 사용해야 하는 센서, 디스플레이, 입력 디바이스와 상호 작용합니다.

라즈베리 Pi 및 휴밍보드 같은 인기 있는 보드로 작업하는 데 사용할 수 있는 라이브러리가 있습니다.

최신글

닷넷을 사용하는 방법 (feat. 비쥬얼스튜디오2019)

닷넷에서의 애플리케이션 개발 워크플로를 설명해보고자 합니다.

개발환경 설정

개발자가 내리는 첫 번째 결정은 애플리케이션을 만드는 데 사용할 도구를 선택하는 것입니다. 원래 명령어 프롬프트로 개발하는 것인 워크프롤우에서 시작적인 효과를 더한 툴을 사용하여 개발이 좀더 편리하도록 환경을 설정해주는 것이 필요합니다.

비쥬얼스튜디오2019

C# 개발자라면 비쥬얼스튜디오2019를 사용하는 것이 가장 좋습니다. 비쥬얼스튜디오2019 포괄적이고 시각적인 특성으로 인해 더 많은 시간과 대역폭을 요구하고 다운로드 및 설치에 더 많은 디스크 공간이 필요합니다.

하지만 일부 초보자에게 있어 가장 쉽게 시작하는 방법입니다. 인터넷 연결 속도에 따라 설치에 15분 이상이 소요됩니다.

닷넷코어 설치

비쥬얼스튜디오2019의 비쥬얼스튜디오 설치 관리자는 워크로드의 형태로 옵션을 제공합니다. 워크로드는 함께 작동하여 특정 앱 모델을 빌드하는 프레임워크, 라이브러리, 기타 도구의 모음입니다.

새 애플리케이션을 빌드하려면 플랫폼 간 개발용 닷넷코어 워크로드를 설치해야 합니다.

플랫폼 간 개발용 닷넷코어 워크로드는 닷넷SDK를 설치합니다. 닷넷SDK에는 코드 작성을 시작하는 데 필요한 모든 라이브러리, 도구, 템플릿이 포함되어 있습니다.

프로젝트 시작

일반적으로 소프트웨어 개발 프로젝트는 일련의 요구 사항에서 시작됩니다. 이러한 요구 사항은 앱 모델 선택에 영향을 미칩니다. 선택한 앱 모델은 웹, 데스크톱 또는 모바일 애플리케이션 또는 백그라운드 프로세스일 수 있습니다.

비쥬얼스튜디오2019나 닷넷CLI를 사용할 때는 일반적으로 프로젝트 템플릿을 기반으로 새 프로젝트를 만들어서 시작합니다.

  • 템플릿 및 정의한 프로젝트 이름을 기반으로 폴더와 파일을 생성합니다.
  • 앱 모델 프레임워크에 필요한 라이브러리와 일반적으로 사용되는 라이브러리에 대한 참조를 추가합니다.
  • 애플리케이션을 실행하고 코드가 컴파일되는지를 확인할 수 있도록 작은 샘플 애플리케이션을 확인할 수 있는 필수 코드를 제공합니다.
  • 코드에 지침이 포함된 경우도 있습니다. 이러한 지침은 샘플 애플리케이션 수정 및 자체 애플리케이션 개발을 안내합니다.

비쥬얼스튜디오2019에서 새 프로젝트 대화 상자를 사용하면 설치된 템플릿 세트에서 애플리케이션 모델을 시각적으로 선택할 수 있습니다. 또는 다양한 커뮤니티 기여 내용에서 선택할 수 있습니다. 닷넷CLI에서는 명령과 플래그의 조합을 사용하여 새 프로젝트 템플릿을 선택할 수 있습니다.

최신글

닷넷

마이크로소프트 닷넷이란?

닷넷은 애플리케이션 개발을 위한 에코시스템

에코시스템이라는 용어는 애플리케이션 개발 환경의 다중 패싯 영역과 이 환경을 둘러싼 커뮤니티를 말합니다. 결합된 여러 패싯은 닷넷에서 애플리케이션을 학습하고 빌드하는 데 투자해야 할 이유가 됩니다.

애플리케이션을 실행

개발자는 C#, F# 같은 닷넷 언어를 사용하여 소스 코드를 작성합니다. 작성하는 각 코드 줄은 프로그램이 실행되는 동안 컴퓨터에서 수행할 명령을 나타냅니다.

개발자가 코드를 실행하려면 먼저 코드를 컴파일해야 합니다. 닷넷 컴파일러는 소스 코드를 중간 언어(IL)라는 특수 언어로 변환하는 프로그램입니다. 닷넷 컴파일러는 IL 코드를 닷넷 어셈블리라는 파일에 저장합니다. “중간” 형식으로 코드를 컴파일하면 Windows나 Linux 또는 32비트나 64비트 컴퓨터 하드웨어 등 코드 실행 위치와 관계없이 동일한 코드 베이스를 사용할 수 있습니다.

닷넷 런타임 은 컴파일된 닷넷 어셈블리의 실행 환경입니다. 다시 말해서 닷넷 런타임은 호스트 운영 체제에서 실행되어 애플리케이션을 실행하고 관리합니다.

이러한 메커니즘은 처음에는 몰라도 상관없습니다. 경험을 통해 닷넷 언어, 컴파일러, 런타임의 기본 기능들은 파악이 가능해집니다.

C# 이 곧 닷넷이 아닙니다. C#은 프로그래밍 언어 구문입니다. 구문의 일부로 닷넷 코드 라이브러리 또는 어셈블리에 정의된 메서드를 참조하고 호출할 수 있습니다. 또한 닷넷  SDK와 함께 설치된 C# 컴파일러를 사용하여 C# 코드에서 어셈블리를 만듭니다. 닷넷 런타임은 닷넷 어셈블리를 실행합니다. 차이를 이해하기 시작하면 한단계 성숙된 프로그래머가 될 수 있습니다.

닷넷의 활용

MS 언어를 사용하여 애플리케이션을 개발한다면 닷넷은 무조건 사용하게 됩니다. 모든 프로그램 언어를 구동시키는 프레임워크 역할을 하는게 닷넷이거든요.

굳이 개발자가 아니어도 윈도우를 사용하는 엔드유저의 모든 컴퓨터에는 닷넷이 설치되어 있습니다. 온라인게임을 하나 구동하려고 해도 닷넷이 설치되어야하거든요. 닷넷을 모르고 MS 개발자가 될 수는 없습니다. 한글 모르는 한국인가 같다고 할까요.

최신글

닷넷이란?

C#을 구동

C# 프로그램은 CLR(공용 언어 런타임)이라는 가상 실행 시스템이며 클래스 라이브러리 세트인 닷넷에서 실행됩니다. CLR은 국제 표준인 CLI(공용 언어 인프라)를 Microsoft에서 구현한 것입니다. CLI는 언어와 라이브러리가 원활하게 함께 작동하는 실행 및 개발 환경을 만들기 위한 기초입니다.

C#으로 작성된 소스 코드는 CLI 사양을 준수하는 IL(중간 언어)로 컴파일됩니다. IL 코드와 리소스는 일반적으로 .dll 확장명과 함께 어셈블리에 저장됩니다. 어셈블리는 어셈블리의 형식, 버전 및 문화에 대한 정보를 제공하는 매니페스트를 포함합니다.

C# 프로그램이 실행되면 어셈블리가 CLR에 로드됩니다. CLR은 JIT(Just-In-Time) 컴파일을 수행하여 IL 코드를 네이티브 기계어 명령으로 변환합니다. CLR은 자동 가비지 수집, 예외 처리 및 리소스 관리와 관련된 다른 서비스도 제공합니다. CLR에서 실행되는 코드는 “관리 코드”라고도 합니다. 즉, 특정 플랫폼을 대상으로 하는 네이티브 기계어로 컴파일되는 “비관리 코드”와는 반대됩니다.

언어 상호 운용성

닷넷의 주요 기능 중 하나는 언어 상호 운용성 입니다. C# 컴파일러에서 생성된 IL 코드는 CTS(공용 형식 사양)를 따릅니다. C#에서 생성된 IL 코드는 F#의 닷넷버전, Visual Basic, C++ 또는 20개가 넘는 다른 CTS 규격 언어에서 생성된 코드와 상호 작용할 수 있습니다. 단일 어셈블리는 다른 닷넷 언어로 작성된 여러 모듈을 포함할 수 있고 형식은 마치 같은 언어로 작성된 것처럼 서로를 참조할 수 있습니다.

다양한 라이브러리

런타임 서비스 외에도 닷넷에는 광범위한 라이브러리가 포함되어 있습니다. 이러한 라이브러리는 다양한 워크로드를 지원합니다. 이들은 파일 입/출력부터 문자열 조작, XML 구문 분석, 웹 애플리케이션 프레임워크, Windows Forms 컨트롤에 이르기까지 모든 항목에 대해 다양하고 유용한 기능을 제공하는 네임스페이스로 구성됩니다. 전형적인 C# 애플리케이션은 닷넷 클래스 라이브러리를 광범위하게 사용하여 일반적인 “배관” 작업을 처리합니다.

해당글은 마이크로소프트 홈페이지에서 발췌한 내용입니다.