[JavaScript] 데이터 타입의 필요성

Baeg-won·2023년 11월 13일
0

JavaScript

목록 보기
2/2

데이터 타입에 의한 메모리 공간의 확보와 참조

  • 값은 메모리에 저장하고 참조할 수 있어야 한다.
  • 메모리에 값을 저장하려면 먼저 확보해야 할 메모리 공간의 크기를 결정해야 한다.
  • 다시 말해, 몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지를 알아야 한다.
  • 예를 들어, 다음과 같이 변수를 선언하고 숫자 값을 할당해 보자.
var score = 100;
  • 위 코드가 실행되면 컴퓨터는 숫자 값 100을 저장하기 위해 메모리 공간을 확보한 다음, 확보된 메모리에 숫자 값 100을 2진수로 저장한다.
  • 이러한 처리를 하려면 숫자 값을 저장할 때 확보해야 할 메모리 공간의 크기를 알아야 한다.
  • 자바스크립트 엔진은 데이터 타입, 즉 값의 종류에 따라 정해진 크기의 메모리 공간을 확보한다.
  • 즉, 변수에 할당되는 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.
  • 값을 참조하는 경우에도 마찬가지이다.
  • 식별자 score를 통해 숫자 타입 값 100이 저장되어 있는 메모리 공간의 주소를 찾아갈 있다.
  • 이때 값을 참조하려면 한 번에 읽어 들여야 할 메모리 공간의 크기, 즉 메모리 셀의 개수(바이트 수)를 알아야 한다.
  • score 변수에는 숫자 타입의 값이 할당되어 있으므로, 자바스크립트 엔진은 score 변수를 숫자 타입으로 인식하며, 이를 통해 메모리 공간에 저장된 값을 읽어 들인다.

데이터 타입에 의한 값의 해석

  • 그런데 아직 문제가 남아있다.
  • 메모리에서 읽어 들인 2진수를 어떻게 해석해야 하느냐이다.
  • 모든 값은 데이터 타입을 가지며, 메모리에 2진수, 즉 비트의 나열로 저장된다.
  • 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다.
  • 예를 들어, 메모리에 저장된 값 0100 0001을 숫자로 해석하면 65지만 문자열로 해석하면 'A'가 된다.
  • 앞서 살펴본 예제의 score 변수에 할당된 값은 숫자 타입의 값이다. 따라서 score 변수를 참조하면 자바스크립트 엔진은 메모리 공간의 주소에서 읽어 들인 2진수를 숫자로 해석할 것이다.

정리

  • 지금까지 살펴본 데이터 타입에 대해 정리해보자.
  • 우선 데이터 타입은 값의 종류를 말한다.
  • 또한 자바스크립트의 모든 값은 데이터 타입을 갖는다.
  • 데이터 타입이 필요한 이유는 다음과 같다.
    1. 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
    2. 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
    3. 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해

📌 Reference

  • 모던자바스크립트 Deep Dive
profile
Easy come Easy go

0개의 댓글