'누구나 자료구조와 알고리즘'(저자 : 제이 웬그로우) 책 참조
- 프로그래밍 프로세스 : 데이터를 '입력' -> '조작' -> '반환'
데이터 는 컴퓨터에 저장된 정보로써,
텍스트 문서, 이미지, 음성파일 또는 동영상 등이 있다.
CPU에 의해 '연산' 처리되며
컴퓨터의 메모리(휘발성) 또는 SSD, HDD(비휘발성) 에 저장된다.
데이터 타입이란
C 계열 언어에서의 컴파일러, Python에서는 인터프리터에게
프로그래머가 '데이터'를 어떻게 사용하려고 하는지 알려주는 것이다.
그렇다면 컴파일러나 인터프리터에게 왜 알려줘야 하는 걸까?
우리가 작성한 데이터는 유한한 크기를 갖는 컴퓨터 저장공간에 저장된다.
이때, 데이터가 저장되는 형식(format)을 알려줘야 한다.
1) 작성된 데이터가 저장할 수 있는 크기(범위)를 제한한다.
2) 작성된 데이터의 형식을 지정함으로써, 향후 데이터 조작(가공)에 유리하다.
C언어의 경우
int pos_x = 10
double building_height = 101.235
와 같이 변수 선언시
사용할 변수의 '타입'을 미리 assign해야 한다.(int, float, double, string 등)
Python의 경우
이러한 과정이 없지만, 그렇다고 생략된다는 의미가 절대 아니다.
temp = "temporary"
라고 변수 선언을 하면, 인터프리터는
'아, temp는 string(문자열) 이구나' 하고 automatically -assign 하는 것이다.
큰 범주에서 보면 데이터 타입은 수, 문자(열) 그리고 boolean 으로 구성된다.
변수 선언을 왜 해야하는지에 대한 물음을 갖지 못하고
맹목적으로 따라했었다.
생각해보면, 정수 25를 저장하는데
메모리 10GB라는 공간을 전부 할당해서 사용한다거나,
메모리 2GB에 할당해서 사용하는 등 기준이 없는 상황이 있을 수도 있는거다.
만약, 메모리가 무한하다면 그랬을지도 모르겠다.
(물론, 데이터 가공은 또 다른 문제다.)
혹은
52.32 라는 실수를 저장하기 위해
어떤 사람은
float temp = 52.32
또, 어떤 사람은
double temp = 52.32
라고 선언할 수도 있다.
프로그래머에게
데이터를 저장할 fotmat과 저장 범위를 선택할 권리를 위임함으로써,
조금이나마 '자유'를 줬다고나 할까.
마치 '컴파일러/인터프리터'가
넌지시 우리에게 '메타인지적'관점으로
"니가 사용할 데이터가 적어도 어떤 형식이고 저장가능 범위는 어떤지 알고 사용해라"라고
노파심에 알려주는 거라고나 할까.