목차
C#과 유니티로 만드는 MMORPG 게임 개발 시리즈
25.07.22
Part 1: C# 기초 프로그래밍 입문
섹션 2. 데이터 갖고 놀기
변수
: 변수는 스토리지 위치를 나타낸다. 모든 변수에는 변수에 저장할 수 있는 값을 결정하는 형식이 있다. 변수 값을 얻으려면 변수를 확실히 할당해야 한다.
--> 변수를 통해 데이터에 접근하면 실질적으로 RAM에서 알맞는 데이터가 할당된다. 이후, 그 데이터를 쓰고 읽는 단계로 변수를 사용한다.
변수 - C# language specification
이 장에서는 변수 범주, 기본값, 명확한 할당 및 변수 참조를 다룹니다.
learn.microsoft.com
정수 형식

--> 사용하고자 하는 데이터의 양에 적합한 정수 형식을 골라 사용하면 메모리를 절약할 수 있다.
Integral numeric types
Learn the range, storage size, and uses for each of the integral numeric types.
learn.microsoft.com
2진수, 10진수, 16진수
: 편한 10진수를 두고 2진법이나 16진법을 사용하는 이유는 비트 연산에 유용하기 때문
- 2진법으로 숫자를 표현할 때는 앞에 '0b'를 붙인다. ex) 3 == 0b11
- 16진법으로 숫자를 표현할 때는 앞에 '0x'를 붙인다. ex) 17 == 0x11
※ 2진법으로 표현된 숫자를 4개씩 끊으면 16진법으로 빠르게 변환할 수 있다.

정수 범위의 비밀
: 아래 사진에서 Size에 대해 알 수 있다.
- 'Signed' 는 부호가 있는 것을 의미하며, 최상위 비트로 음수를 표현한다.
- 8-bit = 1byte = 2⁸ = 256

float
: 실수형 자료형으로, 값 뒤에 'f'를 붙여 표현한다. 이때, 완전히 정확한 값을 표현하는 것이 아니라 근삿값을 표현한다.
--> 이와 비슷한 자료형으로는 double이 있으며, float과 double의 차이점은 size로, float은 4byte, double은 8byte이다.
부동 소수점 숫자 형식 - C# reference
기본 제공 C# 부동 소수점 형식인 float, double 및 decimal에 대해 알아보기
learn.microsoft.com
string
: 문자열을 담는 변수로, 내부적으로 텍스트는 char 개체의 순차적 읽기 전용 컬렉션으로 저장된다.
--> char는 문자를 담는 변수로, Size가 C++에서는 1byte지만, C#에서는 2byte이다.
문자열 - C#
C# 프로그래밍의 문자열에 대해 알아봅니다. 문자열 선언 및 초기화, 문자열 개체의 불변성 및 문자열 이스케이프 시퀀스에 대한 정보를 참조하세요.
learn.microsoft.com
bool
: 참 혹은 거짓으로 데이터를 표현하는 변수 --> 기본값은 false
bool 유형 - C# reference
C#의 기본 제공 부울 형식에 관한 자세한 정보
learn.microsoft.com
캐스팅 (형 변환)
: 형 변환을 할 때에 하려는 작업이 위험성이 있다면 명시적으로 작성해주어야 한다.
- Size가 큰 형식에서 작은 형식으로 변환할 때 ex) int -> short
- 다른 타입으로 변환할 때 데이터가 바뀔 위험이 있다면 ex) float -> int
namespace First
{
class Program
{
static void Main(string[] args)
{
int a = 100;
short b = (short)a;
float c = 5.5f;
int d = (int)c;
}
}
}
스트링 포맷
: string은 다른 변수와 다르게 class에 해당하기 때문에 쉽게 형 변환할 수 없다.
- string -> int : int.Parse(); 를 활용
- int -> string : string.Format(); 또는 $ 를 활용 --> string.Format()은 옛날 방식
namespace First
{
class Program
{
static void Main(string[] args)
{
// string -> int
string input = Console.ReadLine();
int number = int.Parse(input);
Console.WriteLine(number);
// int -> string
int hp = 100;
int maxHp = 100;
//string message = string.Format("당신의 HP는 {0}/{1} 입니다.", hp, maxHp);
string message = $"당신의 HP는 {hp}/{maxHp} 입니다.";
Console.WriteLine(message);
}
}
}
산술 연산
: 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)
--> 자기 자신에 '+', '-', '*' 연산을 할 때에는 각각 '+=', '-=', '*=' 으로 줄여서 사용할 수 있다.
--> 1을 더하고 뺄 때는 '++', '--'으로 줄여서 사용할 수 있다.
※ 'a++' vs '++a'
- a++ : a값을 먼저 대입한 다음 +1
- ++a : a값에 먼저 +1한 다음 대입
- 예시 1
namespace First
{
class Program
{
static void Main(string[] args)
{
int a = 10;
Console.WriteLine(a++);
Console.WriteLine(++a);
}
}
}
--> 결과값

- 예시 2
namespace First
{
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = a++;
// int b = a;
// a += 1;
Console.WriteLine(b);
int c = ++a;
// a += 1;
// int c = a;
Console.WriteLine(c);
}
}
}
--> 결과값

비교 연산 & 논리 연산
- 비교 연산 : 작다(<), 작거나 같다(<=), 크다(>), 크거나 같다(>=), 같다(==), 다르다(!=) --> bool 타입으로 반환된다.
- 논리 연산 : AND(&&), OR(||), NOT(!)
비교 연산자 - 보다 큼 및 보다 작음 연산자를 사용하여 항목 주문 - C# reference
C# 비교 연산자는 값의 순서를 확인합니다. `>`, `<`, `>=`, `<=` 연산자는 값의 순서를 비교합니다. 값이 다른 값보다 크거나 작은지 확인합니다.
learn.microsoft.com
부울 논리 연산자 - 부울 and, or, not 및 xor 연산자 - C# reference
C# 논리 연산자는 부울 피연산자를 사용하여 논리 부정(`!`), 결합(AND - `&`, `&&`), 포함 및 배타적 분리(OR - `|`, `||`, `^`) 연산을 수행합니다.
learn.microsoft.com
데이터 마무리
- 'var' 타입
: 컴파일러가 데이터에 넣어줄 값을 보고 타입을 추론하여 데이터 형식을 지정하는 것
--> 반드시 선언과 동시에 초기화 해야하며, 지역 변수에만 사용할 수 있다.
※ 그렇다면 'var'만 사용하면 편할 것 같은데 왜 일일이 변수의 타입을 지정해주는가?
: 변수의 타입을 명시적으로 작성하는 것이 코드의 가독성 측면에서 좋기 때문에
--> 하지만 너무 복잡한 타입의 경우 오히려 'var'를 사용하는 것이 코드의 가독성에 좋다.
'Development > Group Study' 카테고리의 다른 글
| [Part 1] 섹션 4. TextRPG (1) | 2025.07.26 |
|---|---|
| [Part 1] 섹션 3. 코드의 흐름 제어(2) (3) | 2025.07.25 |
| [Part 1] 섹션 3. 코드의 흐름 제어(1) (2) | 2025.07.24 |