본문 바로가기
Language/Javascript

변수(Variable)와 데이터 동작 원리

by joooing 2020. 12. 9.
반응형

변수(Variable)


변수는 한 마디로 '데이터 보관함'이다!

수학에서 변수는 '변할 수 있는 수'를 의미한다. 이를 컴퓨터 개념으로 좀 더 확장해서 생각해보면, 변수는 '변경할 수 있는 데이터'로 이해할 수 있다. 여기서 데이터는 string, object, array... 등 어떤 타입도 가능하다. 변수는 가장 기초적인 개념이라 그냥 넘어가기 쉽지만, Javascript에 대해 좀 더 깊게 알아갈수록 변수의 동작 원리와 관련된 복잡한 개념들을 마주하게 되는 것 같아서 차근차근 다시 정리해 보았다.

 

변수는 기본적으로 다음과 같이 선언한다. 이 예시를 말로 설명하면 ' 변할 수 있는 데이터를 만들고자 하는데(let), 이 데이터의 주소 이름는 apple로 할거다' 라는 뜻이다. 이것이 변수를 '선언'하는 과정이다. 선언을 하는 순간 컴퓨터는 메모리에 빈 공간 하나를 확보한다.

let apple;

 

더 나아가 아래의 예제를 살펴보자. 이번에도 말로 풀어 설명하면, 'apple 이라는 이름을 가진 주소에, 3이라는 데이터를 저장할거다' 라고 할 수 있다. 이것이 데이터를 변수에 '할당'하는 과정이다. 할당 명령을 하면 컴퓨터는 apple이라는 주소를 검색해 그곳에 3이라는 데이터를 할당한다. 사실 이 데이터를 직접 저장하는 것은 아니고, 다른 곳에 데이터를 저장하고 그곳의 주소만 저장하는 것인데 이 개념은 Data Type과 관련된 부분에서 좀 더 알아보도록 하자.

apple = 3;

 

이런식으로 쓰면 어떤 의미일까?  ' 변할 수 있는 데이터를 만들고자 하는데(let), 이 데이터의 주소명은 apple로 할거다. 그리고 그 주소에, 3이라는 데이터를 저장할거다' 이다. 변수는 위에서 처럼 선언을 하고 할당을 할 수 있으며, '선언과 할당을 동시에' 할 수도 있다. 여기서 주의할 점은 '='는 '같다'라는 뜻이 아니라 '대입'을 의미한다는 것이다!

let apple = 3;

 

이렇게 보면, 결국 변수는 변경 가능한 데이터들이 담길 수 있는 '공간'을 의미한다고 표현할 수 있다. 변수는 데이터 자체를 의미하는 것이 아니라, 데이터를 담는 보관함이나 그릇같은 공간인 것이다.

 

추가로, 좀 더 엄밀히 말하면 apple이라는 이름은 변수가 아니라 '식별자(identifier)'이다. 식별자는 데이터를 식별하는 데 쓰는 '이름', 즉 변수명을 의미한다. 변수는 데이터가 담기는 '공간'을 의미하기 때문에 둘은 정말 엄밀히 따지면 다르다고 할 수 있다. 하지만 문맥상 섞어서 써도 다들 이해하기 때문에 문제가 되지는 않는다. 그냥 차이 정도만 알아두자!

 

✔️ 변수(variable) = 공간

✔️ 식별자(identifier) = 공간의 이름 (변수명)

 

 

그 외 변수의 특징들

✔️ 변수는 동일한 변수를 이용해 대입할 수 있다.

단, 한 번 선언한 변수를 다시 사용할 때는 let을 사용하지 않는다.

let sum = 1; 
sum = sum + 2;

 

✔️ 변수에 할당이 되지 않은 경우, '정의되지 않았다'는 뜻의 'undefined'로 지정된다.

let myname; 
// undefined

 

 

✔️ 변수에는 다양한 Type이 있다.

  • ex) Number, String, Boolean, 배열, 객체, undefined, 함수
반응형

댓글