[C# – 기초 강좌] 2. Csharp 프로젝트 만들기

이 블로그 포스트에서는 Visual Studio를 사용하여 C# 프로젝트를 생성하는 기본적인 방법을 소개합니다.

Visual Studio에서 제공하는 다양한 프로젝트 템플릿들—콘솔 앱(Console App), WPF, 윈도우 폼 앱(Windows Form App), ASP.NET Core—에 대해서도 살펴볼 것입니다.

또한, 콘솔 애플리케이션 예제를 통해 C# 애플리케이션의 작동 원리를 이해하게 될 것입니다.

개발 환경

C# 은 Microsoft 사의 .NET을 활용한 대표 프로그래밍 언어인만큼 C# 기초 강좌들은 Visual studio 2022를 사용하여 진행될 예정입니다.

Visual studio 2022를 설치하는 과정은 따로 진행하지 않고, Microsoft 공식 홈페이지 를 참고하여 설치를 진행해주세요.

프로젝트 만들기 (Create Project)

새 프로젝트 만들기

Visual studio 2022를 실행한 후,

File -> New -> Project를 선택하고, Language를 C#으로 설정하면 다음과 같이 Visual studio 2022에서 C#으로 만들수 있는 프로젝트 템플릿 들이 제공됩니다.

Select-Csharp-Project-Template

프로젝트 템플릿 소개

Visual studio 2022를 통해 제공되는 프로젝트 주요 템플릿에 대한 개략적인 설명은 다음과 같습니다.

우리는 기초 과정에서는 주로 Console App 프로젝트를 통해 기본기를 다진뒤

WPF를 통한 Windows Application 개발을 익혀갈 것입니다.

  • 빈 프로젝트(Empty Project):
    • 기본 설정이 거의 없어서 처음부터 모든 것을 직접 설정해야 합니다.
    • 맞춤형 프로젝트를 원할 때 유용합니다.
  • 콘솔 앱(Console App):
    • 텍스트 기반의 사용자 인터페이스를 제공하는 애플리케이션을 만드는 데 사용됩니다.
    • 배치 파일이나 작은 도구를 개발할 때 적합합니다.
  • WPF(Windows Presentation Foundation):
    • WPF는 마이크로소프트의 UI 프레임워크로, 복잡한 사용자 인터페이스와 그래픽스를 손쉽게 디자인할 수 있도록 지원합니다.
    • XAML (eXtensible Application Markup Language)을 사용하여 선언적 방식으로 UI를 구성할 수 있으며, 데이터 바인딩, 템플릿, 애니메이션 등의 기능을 제공하여 동적이고 상호 작용이 풍부한 앱 개발을 가능하게 합니다.
    • WPF는 높은 수준의 시각적 사용자 정의를 제공하여, 복잡한 레이아웃과 고급 그래픽 처리가 필요한 애플리케이션에 적합합니다.
  • 윈도우 폼 앱(Windows Form App):
    • Windows Forms는 .NET 기반의 데스크톱 애플리케이션을 구축하기 위한 더 전통적이고 단순한 접근 방식을 제공합니다.
    • 드래그 앤 드롭 방식의 GUI 디자이너를 통해 손쉽게 컨트롤을 배치하고, 이벤트 기반의 프로그래밍 모델을 사용하여 사용자 상호 작용을 관리할 수 있습니다.
    • 비교적 간단한 데스크톱 애플리케이션을 신속하게 개발하고자 할 때 적합하며, 학습 곡선이 낮아 입문자가 접근하기에도 좋습니다.
  • ASP.NET Core:
    • 웹 애플리케이션과 서비스를 개발할 때 사용되며, 높은 성능과 확장성을 제공합니다.

프로젝트 이름 설정

이번 프로젝트에서는 Console App을 통해 프로젝트 만들기 연습이 진행되고,

아래와 같이 경로, 프로젝트 이름 및 솔루션 이름을 설정합니다.

Set-Project-Name-Csharp

Framework 설정

예전에는 .NET Core, .NET Framework이 구분되어 있었지만 이제 .NET으로 통합되어 제공됩니다.

우리는 .NET 6.0 기준으로 강좌를 진행할 예정이므로 .NET 6.0을 선택합니다.

Select-Platform-.NET

추가적으로 .NET의 발전과정에서 .NET Framework, .NET Core, .NET5 이후 발전은 다음과 같습니다.

1. .NET Framework

.NET Framework는 .NET의 원래 버전으로, 주로 Windows 기반 애플리케이션을 위해 설계되었습니다.

이 플랫폼은 대규모 데스크톱 애플리케이션과 서버 기반 애플리케이션 개발에 강력한 기능을 제공합니다.

Windows Forms, WPF(Windows Presentation Foundation), ASP.NET 등의 기술을 포함하고 있으며, 강력한 API 세트와 풍부한 개발 툴을 지원합니다.

그러나 이는 오직 Windows에서만 실행됩니다.

2. .NET Core

.NET Core는 크로스 플랫폼 지원을 목표로 만들어진 경량 버전의 .NET입니다.

이는 Windows, macOS, 그리고 Linux에서 실행될 수 있으며, 클라우드 기반 및 서버 애플리케이션뿐만 아니라, 모바일 및 IoT 장치에서도 사용할 수 있습니다.

.NET Core는 모듈성과 유연성이 뛰어나며, 마이크로서비스 아키텍처와 컨테이너화를 지원하는데 이상적입니다.

또한, 성능이 향상되고 오픈 소스로 개발되어 커뮤니티의 기여를 받으며 빠르게 발전하고 있습니다.

3. .NET 5 이후의 발전

.NET 5는 .NET Core의 다음 단계로, 단일 플랫폼을 목표로 .NET Framework와 .NET Core의 기능을 하나로 통합하려는 Microsoft의 전략입니다.

.NET 5 이후 버전들은 단순히 “.NET”으로 명명되어, 버전 번호만으로 구분됩니다(예: .NET 6, .NET 7 등).

이러한 변화는 Microsoft가 모든 .NET 애플리케이션을 위한 단일, 일관된 개발 플랫폼을 만들고자 하는 노력의 일환입니다.

이 새로운 .NET은 크로스 플랫폼 호환성은 물론, 더 나은 성능, 개선된 개발 도구, 그리고 보다 폭넓은 언어 지원을 제공합니다.

예제 프로젝트 (HelloWorld)

예제 코드 및 개요

콘솔 애플리케이션 프로젝트를 만들어 간단한 예제 코드를 실행해 보겠습니다.

다음은 C#에서 매우 기본적인 ‘Hello World’ 프로그램입니다.

using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

실행 원리

위 코드를 실행하면, 프로그램은 ‘Main’ 메소드에서 시작됩니다.

‘Main’은 모든 C# 프로그램의 진입점으로, 프로그램 실행 시 첫 번째로 호출되는 메소드입니다.

이 메소드는 콘솔 창에 “Hello World!”라는 문자열을 출력하고, 프로그램이 종료됩니다.

이 과정은 프로그램의 기본 흐름을 이해하는 데 도움을 줍니다.

추가적으로 사용된 기본적인 문법에 대한 상세 설명은 다음과 같으며 이는 이후 강좌에서 진행될 예정입니다.

  • using System;:
    • System 네임스페이스를 프로그램에서 사용하겠다는 의미입니다.
    • 많은 기본 클래스들이 System 네임스페이스에 포함되어 있습니다.
  • namespace HelloWorld:
    • 프로그램의 모든 클래스를 포함하는 논리적인 컨테이너입니다.
    • 네임스페이스는 크게 코드의 조직화를 돕습니다.
  • class Program:
    • 클래스 선언입니다. C#에서 모든 코드는 클래스 내부에 있어야 합니다.
  • static void Main(string[] args):
    • 모든 C# 콘솔 애플리케이션의 진입점입니다.
    • 프로그램 실행 시 가장 먼저 호출되는 메서드입니다.
  • Console.WriteLine("Hello World!");:
    • 콘솔 창에 “Hello World!”를 출력하는 명령입니다.

결과

F5 누르거나 Debug -> Start Debugging을 실행하면 다음과 같이 Console창에서 위 프로그램이 구동됩니다.

HelloWorld-Csharp-Result

참고 링크

Leave a Comment

Discover more from Devitworld

Subscribe now to keep reading and get access to the full archive.

Continue reading