안녕하세요! 이번 포스팅에서는 유니티에서 사용하는 프로그래밍 언어 C#의 기본 개념 중 하나인 ‘자료형’에 대해 깊이 있게 살펴보도록 하겠습니다. 자료형은 프로그래밍에 있어 데이터가 어떤 형태로 저장되고 처리될지를 결정하는 중요한 요소입니다. 올바른 자료형의 선택은 코드의 효율성과 성능, 안정성을 크게 향상시킬 수 있습니다.
1. 자료형의 중요성
자료형은 변수에 저장할 수 있는 값의 종류를 정의합니다. 예를 들어, 숫자를 저장할 변수와 문자열을 저장할 변수를 정의할 때 각각 다른 자료형을 사용해야 합니다. C#에서는 다양한 자료형을 제공하는데, 이들 각각은 메모리 사용량과 저장 가능한 데이터의 종류가 다릅니다.
2. C#의 기본 자료형
2.1 정수형 (Integer Types)
정수형 자료형은 소수점이 없는 정수를 표현할 수 있는 자료형입니다. C#에서는 여러 종류의 정수형이 제공됩니다:
- int: -2,147,483,648에서 2,147,483,647까지의 값을 저장할 수 있습니다. 일반적으로 많이 사용되는 정수형입니다.
- short: -32,768에서 32,767까지의 값을 저장할 수 있습니다. 메모리를 아끼고 싶을 때 사용됩니다.
- long: -9,223,372,036,854,775,808에서 9,223,372,036,854,775,807까지의 값을 저장할 수 있습니다. 매우 큰 정수를 다룰 때 사용됩니다.
- byte: 0에서 255까지의 값을 저장할 수 있으며, 1바이트(8비트)의 메모리를 사용합니다. 주로 이진 데이터나 작은 값을 처리할 때 사용합니다.
정수형 변수를 선언하는 방법은 다음과 같습니다:
int myInteger = 10;
short myShort = 30000;
long myLong = 9223372036854775807;
byte myByte = 255;
2.2 실수형 (Floating Point Types)
실수형은 소수점 이하의 값을 표현할 수 있는 자료형입니다. C#에서는 일반적으로 다음 두 가지를 사용합니다:
- float: 32비트 부동소수점 자료형으로, 대략 ±1.5 x 10-45에서 ±3.4 x 1038까지의 값을 저장할 수 있습니다. 메모리 사용량이 적고, 대략 7자리의 정확도를 제공합니다.
- double: 64비트 부동소수점 자료형으로, 매우 큰 범위의 값을 다룰 수 있고, 대략 15자리의 정확도를 제공합니다. 대부분의 경우 실수형 변수는 double을 사용하는 것이 좋습니다.
실수형 변수를 선언하는 방법은 다음과 같습니다:
float myFloat = 3.14f; // 'f'를 붙여서 float임을 명시해야 함
double myDouble = 3.14159265358979;
2.3 문자형 (Character Type)
문자형은 단일 문자를 저장하기 위한 자료형입니다. C#에서 사용하는 문자형은 단일 문자에 대한 데이터 타입인 char입니다. 16비트 유니코드 값을 사용하여 문자 하나를 저장합니다.
char myChar = 'A';
2.4 문자열형 (String Type)
문자열형은 여러 개의 문자를 나열한 것으로, C#에서 제공하는 string 타입을 사용하여 선언할 수 있습니다. string은 사실상 불변(immutable) 객체로, 수정이 불가능하고 새로운 문자열을 만드는 데 사용됩니다.
string myString = "Hello, Unity!";
3. 자료형 변환 (Type Casting)
다양한 자료형 간에 변환이 필요할 때가 많습니다. 이 과정을 ‘타입 캐스팅’이라고 합니다. C#에서는 명시적 형 변환(explicit conversion)과 암시적 형 변환(implicit conversion) 두 가지 방법을 제공합니다.
3.1 암시적 형 변환 (Implicit Conversion)
암시적 형 변환은 정보 손실 없이 자동으로 이루어지는 변환입니다. 예를 들어, 정수형을 실수형으로 변환하는 경우, C#은 자동으로 정수를 실수로 변환합니다.
int myInt = 123;
double myDouble = myInt; // 암시적 형 변환
3.2 명시적 형 변환 (Explicit Conversion)
명시적 형 변환은 정보 손실이 있을 수 있으므로, 프로그래머가 강제로 변환하는 경우입니다. 이를 위해서는 캐스팅 연산자를 사용해야 합니다.
double myDouble = 9.78;
int myInt = (int)myDouble; // 명시적 형 변환
4. C#의 Nullable Types
특정 상황에서는 변수의 값이 없거나(null일 수 있는) 경우가 있을 수 있습니다. 이를 다루기 위해 C#에서는 Nullable 타입을 제공합니다. 이것은 값형 자료형에 ‘?’를 붙여서 선언합니다.
int? myNullableInt = null; // Nullable int
5. 배열과 목록
C#에서는 자료형의 집합을 다루기 위해 배열(Array)이나 리스트(List)를 사용합니다. 배열은 동일한 자료형의 고정된 크기의 집합을 관리하는 데 사용되며, 리스트는 동적으로 크기를 조절할 수 있는 컬렉션입니다.
5.1 배열
int[] myArray = new int[5]; // 정수형 배열 선언
myArray[0] = 1;
myArray[1] = 2;
5.2 리스트
List myList = new List(); // 리스트 선언
myList.Add(1); // 리스트에 요소 추가
myList.Add(2);
6. 사용자 정의 자료형 (Custom Types)
C#에서는 클래스(Class)를 사용하여 사용자 정의 자료형을 만들 수 있습니다. 이를 통해 더 복잡하고 구조적인 데이터를 표현할 수 있습니다.
public class Player
{
public string Name;
public int Health;
public Player(string name, int health)
{
Name = name;
Health = health;
}
}
7. 마무리
이번 포스팅에서는 C#의 기본적인 자료형에 대해 알아보았습니다. 기본 자료형의 종류와 사용법, 자료형 변환, 그리고 사용자 정의 자료형까지 다양한 내용을 다루었는데요, 이것이 여러분의 유니티 개발에 도움이 되길 바랍니다.
자료형의 선택과 활용은 여러분이 작성하는 코드의 성능과 가독성에 큰 영향을 미치므로, 잘 이해하고 활용하시기 바랍니다. 다음 강좌에서는 객체 지향 프로그래밍(OOP)의 개념에 대해 다루어 보겠습니다. 감사합니다!