데이터 타입이 필요한 이유

김세현·2022년 2월 28일
1

JavaScript

목록 보기
4/5

데이터는 메모리에 저장하고 이를 참조해서 사용할 수 있어야 한다.
이 과정속에서 데이터 타입이 필요한 이유를 3가지 관점에서 생각해 볼 수 있다.


1.데이터를 저장하는 관점


우리에게 주어진 메모리 공간은 한정적인데 이 데이터를 저장하려면 얼마의 메모리 공간이 필요할까??

즉, 몇 바이트의 메모리 공간을 사용해야 효율적으로 값을 저장할 수 있는지 모른다.

let num = 50;

자바스크립트 엔진은 숫자 50이라는 값을 저장하기 위해 메모리 공간을 확보하고 num이라는 이름을 붙인다.

그리고 num이라는 공간에 숫자 50이라는 값을 2진수 형태로 저장한다.

이 과정에서 우리는 얼마의 메모리 공간을 확보해줘야 하는 것인지 명시해주지 않고 있다.

사실은, 우리가 안 해줘도 된다.

자바스크립트 엔진이 데이터 타입, 즉 값의 종류에 따라 정해진 크기의 메모리 공간을 확보해 주기 때문이다.

위 코드의 경우 자바스크립트 엔진은 50을 'number(숫자)'타입의 값으로 해석하고, 숫자 타입의 50이라는 값을 저장하기 위해 8바이트의 메모리 공간을 확보한다.

그리고 50을 2진수로 저장한다.

즉 우리가 변수에 할당하려는 값의 '데이터 타입'에 따라 확보해야 할 메모리 공간의 크기가 결정된다.

이처럼 어떤 데이터를 저장하는 과정에서 얼마의 메모리 공간을 확보할 것인지 알기 위해 데이터 타입이 필요하다.


2.값을 참조해서 사용하는 경우


num이라는 변수를 통해 50이라는 값이 저장되어 있는 메모리 공간을 찾아갈 수 있다.

이때 값을 참조하기 위해서는 한 번에 읽어 들여야 할 메모리의 크기를 알아야 한다.

num변수의 경우, 저장되어 있는 값이 'number(숫자)' 타입이므로 8바이트 단위로 읽지 않으면 원하는 값을 얻어낼 수 없다.

그렇다면 컴퓨터는 어떻게 한 번에 읽어들일 메모리의 크기를 알아낼 수 있을까?

자바스크립트 엔진은 변수에 'number(숫자)'타입의 값이 할당되어 있기 때문에 num변수를 숫자 타입으로 인식한다.

숫자 타입은 8바이트 단위로 저장되므로 num변수를 참조하면 8바이트 단위로 메모리를 읽어 들여 값을 얻어낼 수 있는 것이다.

이처럼 어떤 데이터를 참조하는 과정에서 얼마의 메모리 공간을 읽어 들일지 알기 위해 데이터 타입이 필요하다.


3.데이터를 해석하는 관점


위에서 적절한 크기의 메모리 공간에 값을 '저장'했고, 적절한 크기의 메모리 공간을 읽어들여 값을 '참조'했다.

하지만 이 값을 사용하려고 가져왔더니 값이 2진수 형태로 저장되어 있다.

만약 메모리에서 읽어들인 2진수를 0100 0001이라고 한다면, 이는 숫자 65일 수도 있고, 문자 'A'일 수도 있다.

즉 어떻게 해석하느냐에 따라 값이 달라질 수 있다.

이때, 2진수를 어떻게 해석할지 결정하는 방법으로 데이터 타입이 쓰인다.

즉 우리가 변수 num에 50이라는 값을 숫자 타입으로 저장했기 때문에 읽어 들인 2진수를 숫자 타입으로 해석해서 우리가 예상했던 값인 50을 반환해 줄 수 있는 것이다.


결론


  1. 값을 저장할 때 필요한 메모리 공간의 크기를 알기 위해
  2. 값을 참조할 때 한 번에 읽어 들일 메모리 공간의 크기를 알기 위해
  3. 메모리에서 읽어 들인 2진수를 어떻게 해석할지 알기 위해
profile
under the hood

0개의 댓글