본문 바로가기

프로그래밍

[프로그래밍] 자료형, 변수

컴퓨터하면 무엇이 떠오르시나요?

컴퓨터에서는 수많은 숫자들을 다룹니다.

게임에서 생각해 봅시다. 현재 HP,MP, 경험치, 그 외의 스탯이 거의 전부 숫자로 표현됩니다.

그렇다면 이 숫자를 어떻게 보관하기 해야 할까요?




자. 우리가 6974라는 숫자를 저장하고싶다고 가정합시다. 그러려면 이 6974를 저장하기 딱 맞는 상자가 있으면 되겠군요!

이 상자를 변수라고 합니다.


어라, 그래놓고 보니까 이번엔 6974892라는 훨씬 긴 숫자를 저장하고싶어졌습니다.

근데 집어넣어보려고 하니까 안들어갑니다. 어랍쇼?

(이런 현상을 오버플로라고 합니다.)

네. 넣어버리니까, 잘리고 말았습니다.

(숫자가 잘려 버리면서, 원래 넣으려고 했던 숫자가 아니고, 이상한 숫자가 됩니다.)


그렇다면, 좀더 걸맞게 큰 상자를 쓰면 넣을수가 있겠네요.

잘 들어 갑니다.

그렇다면 여러 크기의 상자들을 만들어 놓으면, 무슨 숫자가 들어오든 문제가 없겠군요!

이 각 상자의 크기를 자료형 이라고 합니다.


이 방법의 문제점은, 이 상자보다  숫자는 넣을 수가 없다는겁니다.

이건 나중에 해결할수 있는 방법이 있긴 합니다, 지금은 몰라도 되요!



혹시나 착각하실지도 모른다는 노파심때문에 하는 말입니다만, 큰 상자에 작은수를 못넣는건 아닙니다. 

이렇게 큰 상자에, 작은 수를 넣는것도 가능해요!

그렇다면 여기서 이런 의문이 들지도 모르겠군요.

Q. 그렇다면 무조건 큰 상자를 쓰면 되지 않나요

A. 만약 우리가 연필 하나를 보관하는데, 옷장을 쓴다면 "그게 뭔 미친짓이야?" 라는 생각이 들겁니다.

그거랑 같은거에요.


실제 컴퓨터는 십진수가 아니라 이진수라는 점을 제외하고는 완전히 동일합니다.