데이터 타입

변진수·2021년 11월 18일
4

메모리와 데이터

컴퓨터는 모든 데이터를 0 또는 1로 바꿔 기억하고 저장합니다. 0 또는 1만 사용하는 하나의 메모리 조각은 비트입니다. 비트는 고유한 식별자를 가지고 있고, 이 식별자가 비트의 위치를 알려줍니다.

컴퓨터가 어떠한 데이터를 파악하려면 식별자로 비트에 하나씩 접근해야 합니다. 즉 모든 식별자를 참조해야 하죠. 모든 식별자를 참조하는 시간을 줄이려면 바이트 단위로 식별하면 됩니다.

8비트인 1바이트는 프로그래밍 언어에서 사용하는 단위로 볼 수 있습니다. C나 자바에서 쓰는 short는 2바이트이고, int는 4바이트입니다. C나 자바 같은 언어는 이렇게 사용할 바이트를 정해두고 사용합니다. 하지만 우리가 쓰는 자바스크립트에서는 이러한 것들이 없죠. 자바스크립트는 항상 8바이트를 사용합니다.

바이트 단위의 식별자를 우리는 '메모리 주솟값'이라고 합니다. 즉, 프로그래밍 언어의 데이터는 바이트 단위로 주소를 가지고 있고 메모리에 저장됩니다.

변수 선언과 데이터 할당

변수를 선언하게 되면 자바스크립트는 메모리에 변수명을 만듭니다.

변수명에 데이터를 할당하면 변수명이 만들어진 메모리에 데이터가 할당되지 않습니다. 데이터는 변수명이 선언된 메모리와 다른 메모리에 생성됩니다. 즉, 식별자인 변수명과 데이터인 변수는 같은 메모리에 할당되지 않습니다.

그럼 변수명과 데이터를 연결해주는 무언가가 있어야 할 것 같네요. 변수명이 저장된 메모리는 변수명이 식별자로 저장되고 값으로 주소가 저장됩니다. 이 주소는 데이터가 저장된 주소입니다.

우리가 변수명으로 데이터를 조회하면 변수명이 존재하는 메모리의 값으로 들어있는 주소를 찾아서 그 주소의 데이터를 보여줍니다.

그럼 변수명에 재할당하면 어떨까요. 우리는 보통 재할당하면 데이터가 변한다고 생각합니다. 하지만 기존의 데이터는 그대로 있고 새로운 데이터가 생성됩니다. 그리고 변수명이 있는 메모리의 값이 다른 새로운 데이터가 있는 메모리의 주소로 바뀌게 됩니다.

profile
Web Frontend Engineer

0개의 댓글