내일배움캠프/C# 이론

C# 입문 (변수와 자료형)

danpat77 2025. 1. 24. 21:35

오늘 드디어 사전캠프때 부터 기다리던 C# 기초 문법에 대해 강의가 올라왔다. 전에 대학교에서 C++이랑 Python을 배울때도 그랬지만 어떤 코드를 배우든 변수와 자료형은 컴퓨터 언어의 처음이자 컴퓨터와 대화의 첫 발자국입니다.

변수와 자료형을 한글로 비유하면 자음과 모음같은 느낌이다. 이 두가지를 알아야 컴퓨터와 대화가 가능기 때문입니다.

물론 자음과 모음을 안다고 바로 대화를 할 순 없겠지만 이 두가지 조차 모르면 대화를 시도 조차 할 수 없기에 변수와 자료형은 컴퓨터 언어의 시작이자 자음과 모음 같은 것 입니다.

 


자료형 (Data Type)

자료형(Data Type)은 데이터를 식별하는 분류로 데이터의 종류와 크기를 정의합니다.

 

C#에서 가장 많이 사용되는 기본 자료형은 다음과 같습니다.

자료형 .NET 데이터 타입 크기(byte) 범위
byte System.Byte 1 0 ~ 255
int System.Int32 4 -2,147,483,648 ~ 2,147,483,647
long System.Int64 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float System.Single 4 ±1.5 × 10^-45 ~ ±3.4 × 10^38
double System.Double 8 ±5.0 × 10^-324 ~ ±1.7 × 10^308
char System.Char 2 유니코드 문자
string System.String   유니코드 문자열
bool System.Boolean 1 true 또는 false

-이러한 기본 자료형을 사용하여 변수를 선언하고 값을 저장할 수 있습니다.

-각각의 자료형은 메모리의 크기와 표현 범위가 다르기 때문에 byte를 이용하여 숫자를 저장한다고 했을때 255번째를 넘는 숫자를 저장이 불가능 함으로 내가 사용할 변수를 세분화하여 필요한 만큼의 메모리의 크기와 표현 범위를 잘 생각해서 자료형 선택을 해야 합니다.

 


변수 (Variable)

변수(Variable)는 데이터(숫자, 문자)를 저장하고 필요에 따라 수정하고 사용하기 위해 할당 받은 공간입니다.


변수명

  1. 키워드 (Keywords)
    • 컴퓨터 언어에는 이미 예약된 단어들이 있기 때문에 변수,메소드, 클래스 등의 이름으로 사용할 수 없습니다.
    • C#의 키워드로는 아래 링크를 참조 하시면 됩니다.
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/
  1. 식별자 (Identifiers)
    • 식별자란 변수, 메서드, 클래스, 인터페이스 등에 사용되는 이름을 말합니다. 이 이름은 키워드와 동일하게 사용할 수 없습니다.
    • 식별자를 사용할 때 주의 사항이 있습니다.
      • 첫 문자는 알파벳, 언더바( _ ) 가능
      • 두번째 문자부터는 숫자 가능
      • 대소문자를 구분
      • 키워드와 같은 이름으로 사용 불가
// 사용 가능
int UserCode;
string UserName;
float _itemNum;

// 비추천 (중요 의미 있는 변수명 짓기)
int x1;  // 변수명이 의미를 알기 어려움
string a; // 변수명이 명확하지 않음

// 사용 불가
int 1stNumber;  // 변수명은 숫자로 시작할 수 없음
string my-name; // 변수명에 하이픈(-)을 사용할 수 없음
float total$;   // 변수명에 특수문자($)를 사용할 수 없음
bool null;      // 변수명에 키워드를 사용할 수 없음

형변환 (Type Casting)

형변환이란 변수의 자료형을 즉 데이터 타입을 다른 데이터 타입으로 변환하는 것을 말합니다.

 

  • 명시적(explicit) 형변환
    • 명시적 형변환은 변환할 데이터의 앞에 변환할 자료형을 괄호안에 넣어 형변환을 진행합니다.
int num1 = 10
long num2 = (long)num1;   //int를 long으로 명시적 형번환
                          // [(형변환할 타입)][형변환할 값]

 

  • 암시적 (implicit) 형변
    • 암시적 형변환은 여러가지의 경우가 있습니다
//작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는경우
//byte, short, char 등 작은 데이터 타입에서 
//int, long, float 등 더 큰 데이터 타입으로 대입할 때 암시적 형변환이 발생합니다.
byte num1 = 10;
int num2 = num1;  // byte형에서 int형으로 암시적 형변환

 

//리터럴 값이 대입되는 경우
//C# 컴파일러는 리터럴 값의 데이터 타입을 판별하여 변수에 암시적으로 형변환 합니다
float result = 1;  // 1은 int형 리터럴 값이지만 float형으로 암시적 형변환

 

//정수형과 부동소수점형 간의 연산을 수행하는 경우
//정수형과 부동소수점형의 연산 결과는 부동소수점형으로 변환됩니다.
int num1 = 10;
float num2 = 3.14f;
float result = num1 + num2;  // int형과 float형의 덧셈에서 float형으로 암시적 형변환

 

이렇게 암시적 형변환은 프로그래머가 직접 형변환 코드를 작성하지 않아도 자동으로 형변환을 하므로 코드를 간결하게 작성할 수 있습니다.

하지만, 암시적 형변환이 발생하는 경우 데이터 타입을 신중하게 고려하여 작성해야 합니다. 만약 고려하지 않고 작성을 하게 된다면 오류가 발생함으로 잘 고려하여 작성해야 합니다.