ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# 시작하기
    프로그래밍 언어/c# 2025. 4. 15. 22:59
    반응형

    💡 이 문서는 The Rust Programming Language를 보고, C# 기준으로 재구성하였습니다.

    C# 설치하기

    C# 을 설치하기 위해서 dotnet CLI 도구를 설치합니다. dotnet 도구는 빌드 도구이자, 패키지 매니저이며 C# 개발을 위한 필수적인 도구입니다.

    리눅스 환경에 설치하기

    이 문서에서는 kali-linux 배포판 기준으로 진행합니다. 다음 명령어를 입력하여 설치합니다.

    $ sudo apt-get update && \
      sudo apt-get install -y dotnet-sdk-9.0

     

    ⚠️ 이 단계에서 설치가 진행되지 않을 수 있습니다.
    현재 운영체제가 기본적으로 dotnet-sdk-9.0 패키지 레포지토리를 인식하지 못할 수 도 있습니다.

    $ wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    $ sudo dpkg -i packages-microsoft-prod.deb
    $ rm packages-microsoft-prod.deb

     

     

    설치가 완료된 후, dotnet --version 명령어를 입력하면 현재 버전을 확인할 수 있습니다.

    $ dotnet --version
    9.0.203

    업데이트 및 설치

    다음 명령어들로 donet 도구를 업데이트 및 삭제할 수 있습니다.

     

    업데이트:

    $ sudo apt-get update
    $ sudo apt-get upgraade

     

    삭제:

    $ sudo apt-get remove --purge dotnet-sdk-9.0

    Hello World!

    💡 적절한 코드 에디터 혹은 IDE를 설치하세요!

    이 절을 진행하기 이전에, 러스트 개발하기 좋은 코드 에디터 혹은 IDE를 설치해주세요. 대표적인 코드 에디터로는 VSCode, Cursor AI , Wind Surf 가 있고, IDE로는 Visual Studio, Rider 가 있습니다. 이 문서에서는 코드 에디터 Cursor AI 기준으로 합니다.

    Hello World!란 프로그래밍 언어를 배울 때, 관례적으로 만드는, 단순히 Hello World!라는 문자열을 출력하는 프로그램입니다.

    프로젝트 생성하기

    먼저 dotnet new 명령어를 이용하여 프로젝트를 생성하세요!

    # 프로젝트 모음 디렉토리 생성
    $ mkdir ~/projects
    
    # 프로젝트 모음 디렉토리로 이동
    $ cd ~/projects
    
    # 콘솔 기반 Hello World! 프로젝트 생성
    $ dotnet new console --use-program-main -o HelloWorld
    The template "Console App" was created successfully.
    
    Processing post-creation actions...
    Restoring /home/gurumee/Workspaces/studies/TheCSharapProgrammingLanguage/HelloWorld/HelloWorld.csproj:
    Restore succeeded.
    
    # Hello World! 프로젝트 이동
    $ cd HelloWorld

     

    이제 생성된 프로젝트가 어떻게 구성되었는지 확인해보겠습니다.

    # 디렉토리 구성 확인
    $ tree              
    .
    ├── HelloWorld.csproj
    ├── obj
    │   ├── HelloWorld.csproj.nuget.dgspec.json
    │   ├── HelloWorld.csproj.nuget.g.props
    │   ├── HelloWorld.csproj.nuget.g.targets
    │   ├── project.assets.json
    │   └── project.nuget.cache
    └── Program.cs
    
    2 directories, 7 files

     

    여기서 중요한 파일 몇 가지만 짚고 넘어가겠습니다.

    • HelloWorld.csproj : 프로젝트 설정 파일입니다. 현재 C# 버전 정보 등의 프로젝트 설정들이 들어있습니다.
    • Program.cs : 메인 함수가 존재하고 있는 C# 파일입니다. .cs 확장자는 C# 으로 작성된 코드 파일을 의미합니다.

    이제 생성된 Program.cs 코드를 확인해봅시다.

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

    Hello World! 프로그램 뜯어보기

    Program.cs 코드를 분석해봅시다. 먼저 살펴볼 부분은 다음과 같습니다.

    namespace HelloWorld;

     

    이 부분은 C# 에서 네임스페이스를 지정한 부분입니다. C# 에서 네임스페이스는 고유한 공간을 의미하며, 대규모 프로젝트에서 클래스 및 메서드 이름의 범위를 제어하는 단위입니다.

     

    그 다음은 클래스입니다.

    // ...
    class Program
    {
        // ...
    }

    C# 의 모든 것은 클래스로 이루어져 있습니다. 클래스는 개체의 속성을 나타내는 필드들과 행동을 정의하는 메소드들을 가질 수 있습니다. 여기서는 Main 메소드를 정의하기 위해서 꼭 필요한 구문이다 정도로 이해하고 넘어가도 좋습니다.

     

    이제 Main 메소드입니다.

    // ... 
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
     }

    여기서 중요한 부분 몇 가지만 짚고 넘어가겠습니다. 먼저, Main 메소드는 프로그램의 시작 지점입니다. 아주 특별한 메소드로써, 프로젝트 내에서 단 하나의 클래스에서만 유일하게 존재할 수 있습니다. 메소드는 일종의 작은 코드 조각으로써, 구문들로 구성되어 있다고 합니다. Main 메소드는 Hello, World! 문자열을 출력합니다.

     

    Console.WriteLine 은 콘솔 객체의 메소드로 주어진 문자열을 출력하는 메소드입니다. 메소드 이름 뒤에는 () 를 꼭 써야 합니다. 이 안에는 인자를 전달합니다. 이 메소드의 인자로 "Hello, World!" 문자열이 전달되었습니다.

     

    Main 메소드의 인자 string[] args 는 특별한 인자입니다. 프로그램 실행 인자로써 외부에서 데이터를 전달 받을 때 사용합니다. 지금은 그냥 이런 것이 있다 정도로만 이해해주시면 됩니다.

     

    마지막으로 구문 뒤에는 반드시 ; 이 붙습니다.

    C# 프로젝트 실행하기

    이제 프로젝트를 실행해보도록 하겠습니다. 터미널에 dotnet run 이란 명령어를 입력하면 프로젝트를 실행할 수 있습니다.

    # 프로젝트 실행
    $ dotnet run          
    Hello, World!

    C# 프로젝트 빌드하기

    이제 마지막으로 프로젝트를 빌드하고 실행해보겠습니다. 터미널에 dotnet build 명령어를 입력하면 프로젝트를 빌드할 수 있습니다.

    $ dotnet build
    Restore complete (0.3s)
      HelloWorld succeeded (0.1s) → bin/Debug/net9.0/HelloWorld.dll
    
    Build succeeded in 0.6s

    기본적으로 빌드하면, bin/Debug/net9.0 폴더에 HelloWorld 란 실행 파일이 생성됩니다. 이제 실행 파일을 생성해봅시다.

    $ ./bin/Debug/net9.0/HelloWorld
    Hello, World!

     

    결국 dotnet run 이란 명령어는 빌드 후 실행 파일을 실행하는 것을 축약한 명령어입니다.

    728x90
    반응형
Designed by Tistory.