변수와 자료형
프로그래밍을 처음 시작할 때 가장 먼저 마주하게 되는 개념인 자료형(Data Type)과 변수(Variable), 그리고 그 밑바탕이 되는 메모리 단위를 정리한다.
1. 변수와 자료형이란 무엇인가?
코드를 작성할 때 사용하는 int i;와 같은 구문은 각자 명확한 역할을 수행한다.
int i; // int는 자료형, i는 변수명
- 자료형(
int): 변수가 어떤 형태의 데이터를 저장할지, 메모리에서 어느 정도의 크기를 차지할지를 결정하는 설명서역할을 한다. - 변수(
i): 데이터를 저장하는 실제 메모리 공간에 붙이는 이름표다. 개발자가 직접 이름을 정할 수 있다.
자료형은 크게 정수형과 실수형으로 나뉘며, 어떤 자료형을 선택하느냐에 따라 컴퓨터가 데이터를 처리하는 방식과 메모리 점유 크기가 결정된다.
2. 메모리의 기초 단위: 바이트(Byte)와 비트(Bit)
프로그래밍에서 메모리 크기를 말할 때 사용하는 단위인 '바이트(Byte)'에 대한 개념을 잡는 것이 중요하다.
- 비트(Bit): 컴퓨터가 정보를 처리하는 최소 단위로,
0또는1의 두 가지 상태만 가질 수 있다. - 바이트(Byte): 8개의 비트가 모여 1바이트가 된다.
- 데이터 크기: 대표적인 정수형인
int형은 4바이트(32비트) 크기를 가지며, 이를 통해 정수 데이터를 효율적으로 저장한다.
3. 자료형의 사용과 범위 (키워드: unsigned)
자료형은 단순히 데이터를 담는 그릇이 아니라 데이터를 표현하는 방식과 범위를 정의한다. 특히 1바이트 크기의 char 자료형을 보면 이해가 쉽다.
unsigned char c = 0; // 1바이트 정수형, 양수만 취급
c = 255; // 0부터 255까지 표현 가능
- 경우의 수: 1바이트(8비트)는 가지의 상태를 표현할 수 있다.
- unsigned 키워드:
unsigned는 말 그대로 부호(sign)가 없다는 뜻이다. 음수를 표현하지 않는 대신, 모든 비트를 양수를 나타내는 데 사용하여 표현 범위를 2배 넓혀준다 (0~255).
4. 주의할 점: 범위를 넘어서면 어떻게 되는가?
변수가 수용할 수 있는 범위를 넘어서는 데이터를 넣으면 오버플로우(Overflow) 라는 현상이 발생하여 예상치 못한 결과가 나온다.
unsigned char c = 255;
c = c + 1; // 256이 되는 순간 8비트를 넘어선 정보는 사라지고 0이 됨
💡 쉽게 이해하기
손으로 누르는 3자리 수동 카운터(클리커) 가 999에서 버튼을 한 번 더 누르면 000으로 리셋되는 것과 같다.
1바이트(8비트) 공간에 256을 넣으려 하면, 8비트를 넘어선 상위 비트 정보는 사라지고 남은 비트 값(0)만 남게 된다. 컴퓨터 언어는 명시한 자료형의 규칙을 엄격하게 따르기 때문에, 개발자는 변수를 선언할 때 저장할 데이터의 범위를 항상 고려해야 한다.
마무리하며
int, char 같은 자료형은 컴퓨터가 데이터를 체계적으로 관리하기 위한 약속이다. 코드 한 줄을 짤 때마다 이 변수는 몇 바이트이고, 어떤 데이터를 담을 것인가를 고민하는 습관을 들인다면, 코딩 실력은 한층 더 견고해질 것이다.