우리가 사용하는 모든 전자제품 가전제품은 무언가를 기억하고 기억한 동작을 해낸다 전기를 사용하여 무언가 하는 모든것들이 그렇다는 말이다. 하다못해 손바닥만한 계산기 마저도 숫자를 기억하고 계산을 해낸다.
우리가 사용하는 컴퓨터는 정말 셀 수 없이 많은 데이터를 저장하고 읽어들이고 연산한다. 그렇다면 이 수많은 데이터는 어떻게 저장되고 사용될까??
데이터를 사용한다는것은 어딘가에 저장한다는 뜻이다.
우리가 변수에 대해 공부하면서 가장 많이 다룰 데이터 타입은 2.잠시동안 사용할 데이터 이다.
1.영구히 사용할 데이터는 DB쪽으로 넘어가야 하기때문에 이번 포스팅에선 제외한다.
10 + 20
계산 했을 때 답은 무엇인가? 당신이 생각한 그 답이 맞다. 그럼 그 답은 어떻게 도출해 내었는가? 10이라는 숫자와 20이라는 숫자를 기억해서 더한다음 30이라는 숫자를 내뱉지 않았는가? 순간적으로 계산한것이라 잘 모를수도 있지만 당신의 뇌는 이 과정을 거쳐서 계산을 해낸것이다.
컴퓨터도 이와 똑같은 행위를 통해 계산하고 답을 내놓는다. 다만, 인간은 이 두 가지를 뇌에서 도맡아 하지만, 컴퓨터는 부품이 나눠져 있을 뿐이다. 계산(연산)은 CPU에서 데이터는 메모리에서 가져온다.
출처 https://velog.io/@southbig89/%EB%B3%80%EC%88%98Variable
메모리 셀 하나의 크기는 1 byte (8 bit) 이며 컴퓨터는 메모리 셀의 크기, 즉 1 byte 단위로 데이터를 저장하거나 읽어들인다.
각 셀은 고유의 메모리 주소를 갖는다. 이 메모리 주소는 메모리 공간의 위치를 나타내며 0부터 시작해서 메모리의 크기만큼 정수로 표현된다.
ex) 4GB 메모리 = 0 ~ 4,294,967,295
1byte == 8bit
1KB == 1024byte
1MB == 1024KB
1GB == 1024MB
1TB == 1024GB
일반적으로 기억해야 할 데이터 단위는 이정도이다.
16진수 숫자 2개를 표시할 수 있어 총 28=256가지 경우의 수를 표시할 수 있는 단위이다. 보통 서구권에서 1개 문자를 처리하는 데 8비트를 사용하기 때문에 정보처리의 기본단위로 사용하고 있다.
4GB 메모리는 42억 Byte 이다.. 위 논리대로 1Byte당 문자를 한 개 기억할 수 있다면 4GB메모리는 42억개의 문자를 기억할 수 있는 것이다.
컴퓨터는 모든 데이터를 2진수로 처리한다. 텍스트,사진,동영상 모두 2진수로 저장된다.
10 + 20 = 30
연산을 마치고 성공적으로 30이라는 값이 도출되어서 임의의 메모리 셀 어딘가에 저장되었다.
하지만 30이라는 데이터에 접근할 수 있는 방법이 없다.
자바스크립트는 개발자가 직접 메모리셀에 접근하는 것을 허용하지 않는다. 위험한 결과를 초래할 수 있기때문에.
그렇다면 이렇게 메모리에 저장된 값을 사용하기 위해선 어떻게 해야할까. 이 때 사용하는것이 변수이다.
var result = 10 + 20
이렇게 하면 컴퓨터는 임의의 메모리 셀에 30이라는 값을 저장하고 그 메모리셀의 주소를 result 변수에 할당한다.
result는 30이라는 값을 가진게 아니라 30이라는 값이 들어있는 메모리셀의 주소를 가지고 있는것.
변수에 값을 저장하는 것을 할당 이라고하고 변수 값을 참조하는 것을 참조 라고한다.
변수명은 어떠한 값이 어떤 연산을 위해 존재하는지의 의미도 부여하기때문에 대충 지으면 가독성이 매우 떨어지니 네이밍할 때 심사숙고해서 짓자.
var age = '안녕하세요' //??? 하게됨
자바스크립트에서 무언가를 참조하기 위해 네이밍하는 모든것 변수,배열,함수,클래스 등등
변수에서 이야기 했듯이 식별자는 메모리셀의 주소를 가지고있다.