오즈코딩스쿨 사전학습

게임개발 초격차 캠프 미션지 10 - C#이란?

hcs8697 2026. 4. 5. 14:50

1. C#

 

 마이크로소프트가 2000년에 발표한 객채 지향 언어(OOP). C계열 언어로, C에서 한 단계 업그레이드 됐단 뜻에서 #이 붙음.

 

 변수(데이터를 담는 그릇)의 종류(타입)을 미리 선언하기 때문에, 올바르지 않은 값을 담으려고 하면 컴파일(번역)단계에서 잡아낼 수 있다는 장점이 있음.

 

 가비지 컬렉션 기능이 있기 때문에, 메모리 해제 코드를 일일이 쓰지 않아도 됨.

 

 C# 코드는 바로 실행파일로 변환되지 않고, 중간 언어(IL)로 컴파일된 다음 실행 시점에서 JIT 컴파일러(Just-In-Time)가 네이티브 코드로 바꿔줌.

 

 ∴ 다양한 운영체제에서 동일한 C# 코드를 돌릴 수 있음.

 → (추측) 요즘 나오는 게임들은 아무리 소규모 인디 게임이더라도 멀티 플랫폼인 경우가 많은데, C#을 이용했기에 금방 적용할 수 있는 게 아닌가 하는 생각이 듬. Unity 엔진이 멀티플랫폼 출시에 용이하다고도 들었음. 

 

 C#의 IL + JIT 구조는  '코드를 다양한 환경에서 실행 가능하게 만드는 기반 기술'

 Unity와 같은 게임 엔진은 '그걸 실제 멀티플랫폼으로 구현 가능하게 만드는 도구' (챗gpt 참조.)

 

2. 객체 지향 프로그래밍(Object-oriented programming, OOP)

 

초기 프로그래밍: 유저의 입력을 받아 명시된 순서대로 처리한 다음 결과값을 내는 것. 간단한 알고리즘이면 상관없지만, 복잡해지기 시작하면 보고 이해하기 어려운 '스파게티 코드'가 되어버림.

 

 

구조적 프로그래밍: 프로그램이라는 큰 문제를 해결하기 위해 그것을 작은 문제들로 나누어 해결하는 방식. Top-down 방식이기도 함.

 

 

객체 지향 프로그래밍: 프로그램을 '객체(object)'라는 기본 단위로 나누고 이들의 상호 작용으로 서술하는 방식.

(추측) A 객채와 B 객채가 '상호 작용'하는 것을 서술한다...라는 것으로 이해함.

 

작은 문제들을 해결할 수 있는 객채들을 만든 뒤, 이 객채들을 조합해서 큰 문제를 해결하는 방식. Bottom-up 방식이기도 함.

 

C는 쉽게 말하면 알파벳과 기초 영문법이고, OOP는 그걸 활용한 논리적 작문과 유사함. '문법'을 '가장 문제가 덜 생기는 방향으로 코딩하게끔 하는' 가이드라인. (출처: 나무위키)

 

[참고자료]https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D