← SEARCHABLE ARCHIVE
C# · 2026-07-09

C# 기초부터 마스터까지 — 1화

클래스, 프로퍼티, 컬렉션으로 시작하는 C#

INTERACTIVE READING MODE →

본 블로그 작성 글들은, 강의를 목표로 하고 제작되었습니다. 또한 작성된 글의 정보도 틀렸을 수 있으니, 주의해주세요.

C#은 .NET 환경에서 실행되는 범용 프로그래밍 언어다. 문법은 C 계열과 비슷하지만 메모리 관리, 문자열, 컬렉션 같은 기능을 표준 라이브러리와 런타임이 많이 도와준다.

타입과 변수를 명확하게 표현한다

int level = 3;
float speed = 5.5f;
string playerName = "Rose";
bool isAlive = true;

C#은 정적 타입 언어라서 변수와 값의 타입을 컴파일할 때 확인한다. var를 사용하면 오른쪽 값에서 타입을 추론하지만 변수의 타입이 실행 중 마음대로 바뀌는 것은 아니다.

var scores = new List<int> { 10, 20, 30 };
// scores는 List<int> 타입이다.

클래스는 데이터와 동작을 묶는다

public class Player
{
    public string Name { get; }
    public int Health { get; private set; } = 100;

    public Player(string name)
    {
        Name = name;
    }

    public void TakeDamage(int amount)
    {
        Health = Math.Max(0, Health - amount);
    }
}

프로퍼티는 필드처럼 읽고 쓰지만 접근 범위와 검증 규칙을 지정할 수 있다. 위 코드에서는 외부가 Health를 읽을 수 있지만 직접 변경할 수는 없다.

컬렉션과 반복

List<T>는 순서가 있는 여러 값을 저장하고, Dictionary<TKey, TValue>는 키로 값을 찾는다.

var inventory = new Dictionary<string, int>
{
    ["Potion"] = 3,
    ["Key"] = 1
};

foreach (var item in inventory)
{
    Console.WriteLine($"{item.Key}: {item.Value}");
}

C#의 참조 형식 객체는 Garbage Collector가 사용되지 않는 메모리를 정리한다. 하지만 파일, 네트워크 연결 같은 외부 자원은 using이나 Dispose로 수명을 명확하게 관리해야 한다.

C#을 처음 배울 때는 문법을 모두 외우기보다 작은 콘솔 프로그램으로 타입, 조건문, 반복문, 클래스, 컬렉션을 연결해보는 것이 좋다. Unity는 그 위에 게임 엔진의 생명주기와 Component 구조를 추가한다고 생각하면 이해하기 쉽다.