📘 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까지! 타입의 모든 것을 파헤쳐보자!