데이터 및 데이터 타입이란?

hyuckhoon.ko·2020년 5월 19일
0

What I learned in wecode

목록 보기
24/109

'누구나 자료구조와 알고리즘'(저자 : 제이 웬그로우) 책 참조

  • 프로그래밍 프로세스 : 데이터를 '입력' -> '조작' -> '반환'



1. 데이터란?

데이터 는 컴퓨터에 저장된 정보로써,
텍스트 문서, 이미지, 음성파일 또는 동영상 등이 있다.
CPU에 의해 '연산' 처리되며
컴퓨터의 메모리(휘발성) 또는 SSD, HDD(비휘발성) 에 저장된다.



2. 데이터 타입이란?

데이터 타입이란
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 으로 구성된다.



3. 데이터(타입)에 대한 단상

보통 컴퓨터 언어 관련 책을 보면,

print('Hello, world!")를 출력하는 예제로 시작한다.

그리고 변수선언을 배우게 된다.



변수 선언을 왜 해야하는지에 대한 물음을 갖지 못하고
맹목적으로 따라했었다.

생각해보면, 정수 25를 저장하는데

메모리 10GB라는 공간을 전부 할당해서 사용한다거나,

메모리 2GB에 할당해서 사용하는 등 기준이 없는 상황이 있을 수도 있는거다.

만약, 메모리가 무한하다면 그랬을지도 모르겠다.
(물론, 데이터 가공은 또 다른 문제다.)



혹은
52.32 라는 실수를 저장하기 위해

어떤 사람은

float temp = 52.32

또, 어떤 사람은

double temp = 52.32

라고 선언할 수도 있다.

프로그래머에게

데이터를 저장할 fotmat과 저장 범위를 선택할 권리를 위임함으로써,

조금이나마 '자유'를 줬다고나 할까.

컴퓨터의 자원은 한정되어 있다.

(CPU 연산처리 속도, 가용 메모리 및 SSD 저장 공간 등)

따라서,

데이터 저장 뿐만 아니라 가공도 용이하도록 조정할 필요가 있었을 거다.



마치 '컴파일러/인터프리터'가

넌지시 우리에게 '메타인지적'관점으로

"니가 사용할 데이터가 적어도 어떤 형식이고 저장가능 범위는 어떤지 알고 사용해라"라고

노파심에 알려주는 거라고나 할까.

0개의 댓글