메모리와 자바스크립트 - 03. 메모리와 데이터 타입
메모리와 데이터 타입에 대해 알아봅니다.
2022-12-03

우리는 언어로 대화를 합니다. 그리고 우리의 대화 속에는 수많은 단어들이 존재합니다. 아무리 많은 단어가 있다고 해도 우리말은 9개의 품사 범위에 들어오게 됩니다. 국어 시간에 배운 명사, 동사, 형용사 등이 그것이죠. 그렇지만 우리는 대화 중에 어떤 것이 명사이고 어떤 것이 부사인지 크게 신경 쓰지 않습니다. 그리고 품사의 위치가 조금 어색하거나 문법이 틀려도 큰 무리 없이 이해할 수 있죠.

우리는 컴퓨터와도 대화할 수 있습니다. 코드로 말이죠. 그리고 수만 줄의 코드가 있다고 해도, 자바스크립트는 8개의 데이터 타입 범위에 들어오게 됩니다. 불리언, 넘버 등이 그것이죠. 우리가 사람과 대화할 때는 품사를 크게 신경 쓰지 않아도 이해하는데 큰 문제는 없습니다. 하지만 컴퓨터는 조금 다릅니다. 아주 문법에 까다롭죠. 그래도 다행인 것은 자바스크립트는 다른 수많은 프로그래밍 언어들보다는 덜 까다롭다는 것입니다.

자바스크립트의 8개의 데이터 타입은 크게 두 가지로 나눌 수 있는데요. 왼쪽에 있는 불리언, 넘버, 스트링과 같은 타입은 원시 타입이라고 하고요, 오른쪽에 있는 오브젝트는 참조 타입이라고 합니다. 오늘은 원시 타입 중에서 특별히 불리언과 넘버, 스트링에 대해 알아보겠습니다.

데이터 타입을 구체적으로 알아보기 전에, 자바스크립트의 메모리를 조금 더 보고 넘어가야 될 것 같아요. 자바스크립트가 사용하는 메모리에는 보시는 것처럼 세 가지로 나누어져 있습니다. 먼저, 코드의 영역이죠. 우리가 작성한 코드가 여기 들어갑니다. 그리고 콜 스택이 있는데요, 콜 스택에는 아까 우리가 봤던 8개의 데이터 타입 중 원시 타입에 해당하는 7개가 여기에 들어가게 됩니다. 마지막으로 메모리 힙은 아까 봤던 8개의 데이터 타입 중 참조 타입에 해당하는 객체가 여기 들어가게 됩니다.

먼저 불리언 데이터 타입을 보겠습니다. 이전 시간이 살펴보았었죠?

불리언을 코드로 작성하면 이렇습니다.

불리언은 true 혹은 false라는 값 두 가지만 해당됩니다.

그리고 메모리는 1 바이트를 차지합니다. 자바스크립트에서 가장 작은 데이터 타입이죠.

메모리로 표현하면 이렇게 됩니다.

이 값을 true에서 false로 바꿔도 메모리는 동일하게 1 바이트를 차지합니다.

다음으로 넘버 데이터 타입을 알아보겠습니다.

넘버 타입을 코드로 작성하면 이렇습니다.

넘버는 123과 같은 숫자, 그리고 3.14와 같은 실수를 표현할 때 사용합니다.

불리언은 true 혹은 false라는 값 두 가지만 해당됩니다.

그리고 메모리는 8 바이트를 차지합니다.

메모리로 표현하면 이렇게 됩니다.

1과 같이 작은 숫자여도 8 바이트를 차지하고요, 이렇게 12345처럼 큰 숫자도 동일하게 8 바이트를 차지합니다.

다음으로 스트링 데이터 타입을 알아보겠습니다.

스트링을 코드로 작성하면 이렇습니다.

스트링은 이처럼 쌍따옴표를 열어서 그 안에 단어 등 여러가지 문자 등을 입력할 수 있습니다.

그리고 메모리는 아까 봤던 타입들과 다르게 사용한만큼 차지합니다. 많이 쓰면 많이 차지하고, 적게 쓰면 적게 차지합니다.

메모리로 표현하면 이렇습니다.