프로그래밍에서 변수를 선언하고 사용하는 것은 너무나 당연하게 여겨지지만, "왜 변수를 사용하는가?"라는 질문에 대해 깊이 고민해본 적이 없었습니다? 물론 전공 수업에서 배운 적은 있으나, 기억이 희미하기에 이번 글에서는 변수가 어떤 역할을 하는지, 그리고 메모리와 변수의 관계에 대해 한번 정리 해보려 합니다.
컴퓨터는 데이터를 어떻게 저장하고 처리할까?
컴퓨터는 CPU와 메모리를 활용해 데이터를 연산하고 처리합니다.
- CPU: 데이터를 읽고 연산하는 역할을 합니다.
- 메모리: 데이터를 저장하고 필요할 때 CPU가 가져다 사용할 수 있도록 돕습니다.
그러면 메모리란 무엇인가?
메모리는 데이터를 저장할 수 있는 작은 공간들로 이루어져 있습니다. 이 공간을 메모리 셀이라고 하며, 각 셀의 크기는 1바이트(8비트)입니다. 모든 메모리 셀은 고유한 메모리 주소를 가지고 있으며, 이 주소를 통해 해당 셀의 위치를 확인할 수 있습니다.
연산 과정에서 발생하는 문제
예시로 10 + 20 연산을 들어보겠습니다.
- 10과 20이 각각 메모리의 특정 위치에 저장.
- CPU는 메모리에서 두 값을 읽어 연산을 수행.
- 결과값 30이 메모리의 또 다른 임의의 위치에 저장.
여기까지만 보면 아무 문제가 없어 보이지만, 만약 연산 결과인 30을 재사용하려면 문제가 발생합니다.
재사용 하기 위해서는 결과값이 저장된 메모리 주소를 직접 참조해야 하기 때문입니다.


메모리 주소를 직접 참조하게 되면 문제점이 발생합니다.
- 직접 메모리 접근의 위험성
메모리 주소를 잘못 참조하면, 운영체제가 사용하는 중요한 메모리를 덮어쓸 수도 있습니다. 이는 시스템 오류나 프로그램 충돌을 일으킬 수 있습니다. - 주소의 불확실성
값이 저장되는 메모리 주소는 코드가 실행될 때마다 메모리 상황에 따라 달라지기 때문에, 동일한 코드를 실행하더라도 결과가 저장된 위치가 매번 달라질 수 있습니다.
JS는 개발자의 직접적인 메모리 제어를 허용하지 않습니다.
데이터를 안전하게 관리하는 방법
변수가 등장한 이유
프로그래밍 언어는 이러한 문제를 해결하기 위해 변수라는 개념을 도입했습니다. 변수는 다음과 같은 역할을 합니다:
- 안전한 데이터 접근
개발자가 메모리 주소를 직접 참조하지 않아도 데이터를 다룰 수 있게 합니다. - 데이터의 재사용 가능
변수 이름을 통해 값이 저장된 메모리를 쉽게 참조할 수 있으므로, 연산 결과를 여러 번 사용할 수 있습니다.
변수란 무엇인가?
변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙은 이름을 말합니다.
간단히 말하면, 값의 위치를 가리키는 상징적인 이름이라고 생각하면 됩니다. 변수는 프로그래밍 언어의 컴파일러 또는 인터프리터에 의해 값이 저장된 메모리 공간의 주소로 치환되어 실행됩니다. 즉 저장된 메모리 공간에 상직적인 이름을 붙인 것이 바로 변수입니다.

오늘은 변수에 대해서 공부해봤습니다. 글에 사용된 자료들은 모던 자바스크립트 DeepDive 내용을 참고 했음을 알립니다.
잘못 된 내용이네 제가 잘못 이해하고 있는 내용이 있다면 언제든지 피드백 주시면 감사히 받겠습니다 :)
'FE > 모던 자바스크립트' 카테고리의 다른 글
| DOM (문서 객체 모델) (0) | 2024.11.17 |
|---|---|
| JavaScript란? (0) | 2024.11.05 |