
✍️ 개요
최근 들어 블로그 포스팅의 주제가 난잡한 것 같아 주제를 명확하게 잡으려고 합니다. 그래서 금일부터 게임 프로그래밍의 필수 언어 중 하나인 C#에 대해 알아보도록 하겠습니다. 단순히 C# 문법만 살펴보는 것이 아닌, 게임 개발 엔진(Unity)와 함께 응용하면서 내용을 다뤄보도록 하겠습니다.
📌 C# 이란?

C#은 Microsoft에서 개발한 객체 지향 언어로, Java와 비슷한 구문과 구조를 가지고 있습니다.
.NET 런타임(CLR)에서 실행되며, .NET 프레임워크에서 사용되는 언어입니다.
윈도우, 웹, 게임, 서버, 모바일, 클라우드, IoT 등 크로스 플랫폼 개발이 가능하기에 범용성이 매우 뛰어납니다.
Unity 엔진에서 스크립트 작성을 위한 주력 언어로 C#을 사용하니 게임 개발자 분들은 참고하시기 바랍니다.
📌 .NET 프레임워크

.NET Framework는 Microsoft에서 개발한 프레임워크로, Window 기반 애플리케이션을 위해 제작되었습니다.
(이후 .NET Core 및 .NET 5+ 로 합쳐지면서 크로스 플랫폼 환경의 애플리케이션 제작이 가능)
언어가 다른 환경에서 개발되어도 동일하게 실행될 수 있는 코드와 환경을 제공합니다.
그 이유는 각각 다른 언어로 개발된 코드는 공용 중간 언어(CIL)로 컴파일되기 때문입니다.
그 후 공용 중간 언어는 런타임 환경(CLR)에서 JIT 컴파일러를 통해 기계어로 변환된 후 실행됩니다.
💡 정리하기
1. CIL (Common Intermediate Language)
C#, F#, VB.NET으로 작성된 코드를 중간 언어로 컴파일한 형태입니다. 자체적으로 실행할 수 없으며, CLR을 지원하는 환경에서만 실행할 수 있습니다.
2. CLR (Common Language Runtime)
CIL을 JIT 컴파일하여 실행하는.NET 런타임 환경입니다. 스레드 관리 및 가비지 수집, 형식 안전성, 예외 처리 등을 수행합니다.
3. Machine code
컴퓨터가 읽을 수 있는 이진 바이너리 스트림입니다. CPU가 직접 이해하고 실행합니다.
📌 C# 코드 구조
using System;
namespace HelloWorld
{
class Example
{
private static string hello_str = "Hello World!";
public static void Main()
{
Console.WriteLine(hello_str);
}
}
}
본격적으로 C# 프로그래밍을 배우기 전에 "Hello World!" 출력 코드를 간단히 분석해보겠습니다.
① 네임스페이스 (Namespace)
여러 Class를 하나로 묶어 관리하는 영역, 혹은 시스템으로, Class를 관리하는 용도로 사용합니다.
위 코드에서 Example Class 하나를 묶어서 HelloWorld namespace로 관리하고 있다.
② 클래스 (Class)
객체 지향 프로그래밍(OOP)에서 객체를 생성하기 위해 필드와 메소드를 정의하는 일종의 틀(template)입니다.
위 코드에서 Example Class를 확인할 수 있다.
③ 필드 (Field)
Class 내부에 존재하는 변수를 의미합니다.
위 코드에서 Example Class 내부에 hello_str이 Field입니다.
④ 메서드 (Method)
Class 내부에 존재하는 함수를 의미합니다.
위 코드에서 Example Class 내부에 Main이 Method입니다.
📝 정리
오늘은 C#을 공부하기 전에 간단한 C# 소개와 특징을 소개했습니다. 앞으로는 C# 프로그래밍을 Unity Engine과 함께 배워보도록 하겠습니다. 주로 중급과 고급 사이의 내용을 다룰 예정이니 참고해주세요. 만약 C#에 대해 자세한 설명을 원하신다면 하단에 있는 Microsoft 공식 문서를 참고하시기 바랍니다.
💡 참고 자료
[ Microsoft C# 공식 문서 ]
C# 문서 - 시작, 자습서, 참조.
프로그래밍 C# 알아보기 - 초보 개발자, C#을 처음 사용하는 개발자, 숙련된 C# / .NET 개발자용
learn.microsoft.com
'C#' 카테고리의 다른 글
[C#] Object (Boxing & Unboxing) (1) | 2024.11.23 |
---|