C#

C# 기초부터 고급까지 Chapter 1.1. C# 프로젝트 구조와 Main 메서드 완전 이해하기

Juan_ 2025. 4. 22. 21:27
728x90

📘 Chapter 1.1: C# 프로젝트 구조와 Main 메서드 완전 이해하기


✅ 이 챕터에서 배울 것

C# 프로젝트를 만들었는데, 갑자기 Main()이 나오고, Program.cs에 using이 잔뜩 있다?

이게 뭐고 왜 필요한지, 진짜 바닥부터 이해해보자!
  • C# 프로젝트의 기본 구조
  • Main() 함수의 역할
  • using 키워드의 의미
  • 간단한 Console.WriteLine() 예제 작성

🧠 C# 프로젝트 구조 요약

파일/폴더 설명
Program.cs 프로그램의 시작점 (Main 메서드 위치)
obj/, bin/ 빌드 결과물이 저장되는 폴더
.csproj 프로젝트 설정 파일 (참조, 프레임워크 버전 등)
using ... 외부 네임스페이스(기능 집합) 불러오기

🔍 예제 1: 가장 단순한 C# 프로그램

// ✅ 프로그램 시작점 (Main 함수 포함)
using System; // 콘솔 관련 기능을 쓰기 위해 System 네임스페이스를 가져옴

class Program
{
    // Main: 프로그램의 "입구", 실행 시 가장 먼저 호출되는 메서드
    static void Main(string[] args)
    {
        // 콘솔에 문자열을 출력하는 코드
        Console.WriteLine("Hello, C#! 😎");

        // args: 실행 시 전달되는 인자들 (배열 형태로 받음)
        if (args.Length > 0)
        {
            Console.WriteLine("넘겨받은 인자: " + args[0]);
        }
    }
}

📌 초심자를 위한 설명 요약

요소 설명
static void Main(string[] args) 프로그램의 시작점
Console.WriteLine() 콘솔에 출력하는 함수
args[] 실행 시 입력받는 문자열 배열
using System; Console 클래스가 정의된 네임스페이스 포함

🧩 실전 상황 예시

실무에서 C# 프로그램을 실행하면 항상 Main부터 시작해서
거기서 DI 초기화, 설정 로드, 서비스 실행 등을 하게 된다!
static void Main(string[] args)
{
    // 설정 파일 읽기
    var config = File.ReadAllText("config.json");

    // 핵심 서비스 실행
    var app = new AppService();
    app.Run();

    Console.WriteLine("앱이 종료되었습니다.");
}

💥 장선생의 실전 꿀팁

  • Main()이 꼭 Program.cs에 있을 필요는 없다 → Startup.cs 같은 분리 가능
  • args 활용해서 CLI 툴도 만들 수 있음
  • C# 9.0부터는 Top-level statements 도 가능 (아래 참고)

🧪 보너스: Top-Level Statements (C# 9.0 이상)

Console.WriteLine("Hello without class or Main!");
Main() 함수조차 안 쓰고도 코드 작성 가능!

단, 간단한 스크립트나 학습용일 때만 추천!

✅ 요약 정리

항목 요약
Main 함수 C# 앱의 시작점
using System 콘솔 출력, 문자열, 숫자 처리 등 기본 기능 사용
Console.WriteLine 콘솔에 메시지 출력
args[] 명령줄 인자 받을 때 사용
top-level statements 최근 C# 문법으로 Main 생략 가능 (선택사항)

📘 다음 챕터 예고 🎓

Chapter 1.2: 변수와 데이터 타입 – 숫자, 문자열, bool 완전 정복!

int, string, bool 이거 그냥 쓰는 거 아이라!
기본형부터 Nullable까지! 타입의 모든 것을 파헤쳐보자!
728x90