자바스크립트 변수

kyu725·2022년 9월 19일
2

변수(Variable)는 우리가 여태 너무 당연하게만 써오던 용어입니다. 근데 혹시 변수가 무엇인지, 왜 필요한지 정확히 설명하실 수 있나요?

역시 누군가에게 설명하거나 글을 작성할 때가 되면 내가 설명하고자 하는 그것을 정확히 알고 있는지 확인할 수 있는 기회인 것 같습니다.

일반적으로 우리는 변수라는 용어를 수학시간에 먼저 배웠습니다. 수학적인 의미로 변수(Variable)는 영문으로도 그러하듯이 변할 수 있는 숫자 정도로 말할 수 있을겁니다. 허나 우리가 배우려는 프로그래밍에서는 다른 뜻으로 설명할 수 있어야 합니다.

변수란 무엇이고 왜 필요할까

10 + 20

위의 코드를 실행 했을 때 컴퓨터에서는 무슨일이 일어날 까요?

컴퓨터가 10+20 이라는 식을 계산하기 위해서는 10, +, 20 각각의 기호(리터럴, 연산자)를 알아야 하며, 10+20 라는 표현식을 해석할 수 있어야 합니다. 의미를 해석하면 피연산자 1020 기억합니다. 컴퓨터는 계산과 기억하는 공간이 CPU와 메모리로 분리되어 있습니다.

메모리의는 데이터를 저장할 수 있는 메모리 셀의 집합체입니다. 메모리 셀 하나의 크기는 1바이트 이기에 컴퓨터는 1바이트 단위로 데이터를 저장하거나 읽습니다.

각 셀의 메모리는 메모리 주소를 갖습니다. 컴퓨터는 아까 저장하려는 1020을 각각 하나의 메모리 셀을 정해서 저장합니다. CPU는 1020을 메모리에서 꺼내서 사용하고 계산 결과인 30도 메모리 상의 임의의 위치에 저장합니다.

성공적으로 계산을 마쳤지만 열심히 계산한 결과인 30이라는 값을 우리는 재사용할 수 없습니다. 왜냐면 메모리 주소에 직접 접근하는 것 외에는 30을 꺼내 사용할 방법이 없기 때문입니다. 하지만 메모리에 직접 접근하는 것은 매우 위험해 대부분의 프로그래밍 언어는 개발자가 직접 메모리 주소에 접근하는 것을 허용하지 않습니다. 메모리 주소에 직접 접근해서 값을 바꿨는데 그 값이 운영체제가 사용하고 있는 크리티컬한 값일 경우 시스템에 심각한 문제를 발생시킬 수 있기 때문입니다. 프로그래밍 언어는 저장한 값을 재사용하기 위해 변수라는 메커니즘을 제공합니다.

즉 변수란

하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말합니다.

좀 더 간단히 말하자면 변수는 값의 위치를 가리키는 상징적인 이름입니다.

profile
김찬규

0개의 댓글