안녕하세요 Vector JUN입니다.
코딩 초보자분들이 가장 먼저 접하는 용어죠. 바로 '변수(Variable)'라는 친구를 만나게 된답니다. "아.. 처음부터 이게 뭐야.." 하실 수도 있지만 사실 개념은 정말 간단해요. 변수는 숫자, 글자, 점수 같은 정보를 보관할 수 있는 컴퓨터 안의 작은 상자 같은 건데, 이번엔 저와 같이 변수가 무엇인지, 어떻게 작동하는지, 실제 코딩에서 사용되는 쉬운 예시와 함께 무조건 이해하고 넘어가는 것을 목표로 해볼게요.
1. 변수(Variable)
변수는 컴퓨터 안에 있는 이름표가 붙은 상자라고 위에서 말했죠?
가까운 예로, 내 방에 장난감 상자가 여러 개 있다고 상상해 봅시다. 한 상자에는 '자동차', 다른 상자에는 '블록', 또 다른 상자에는 '책'이라는 이름표가 붙어 있어요. 상자마다 이름이 있기 때문에 굳이 열어보지 않아도 무엇이 들어 있는지 쉽게 알 수 있잖아요? 컴퓨터도 '변수'라는 친구를 이용해 비슷한 일을 합니다. (혹시 노트와 펜이 있다면 직접 그리면서 이해하시는 걸 추천해요! 저는 그렇게 배웠거든요.)
그럼 이제 코드로 예를 들어볼게요. age = 20 (age라는 이름표가 붙은 상자 안에 숫자 20이 들어 있다고 생각하면 됩니다.)
다시 돌아와서 게임을 하고 있다고 상상해 볼까요?
(처음 점수가 10점이라면 컴퓨터는 score라는 상자 안에 숫자 10을 넣어둘 수 있습니다.)
처음에는
score → 10
코인을 더 모아 점수가 20점이 되면
score → 20
이렇게 안에 들어 있는 값이 바뀔 수 있기 때문에 '변수(Variable)'라고 부른답니다. 생각보다 쉽죠?
(솔직히 저도 진짜 많이 헷갈렸어요. 이해합니다 여러분.)
2. 변수 실제 코드 사용법 (여기서 집중하세요.)
JavaScript에서는 다음과 같이 변수를 만들고 사용할 수 있습니다.(자바스크립트는 추후에 한번 더 다룰게요.)
let score = 10;
score = 20;
console.log(score);
1. 첫째 줄에 "let score = 10;"은 컴퓨터한테 "score라는 상자를 만들고 그 안에 숫자 10을 넣어줘"라고 부탁을 하고,
2. 두 번째 줄은 이제 부탁을 했다면 "이제 상자 안의 10을 꺼내고 20을 넣어줘"라고 말하는 것과 같습니다.
3. 마지막 줄은 컴퓨터에게 "지금 score 상자 안에는 어떤 숫자가 들어 있어?"라고 물어보는 것과 비슷합니다.
(정리하면 score라는 상자 안에 10을 먼저 넣고 10을 빼고 20을 넣은 후에 컴퓨터한테 지금 상자 안의 숫자가 뭐야?라고 물어보는 거예요.)
4. 그러면 컴퓨터는 다음과 같이 대답합니다. = 20
(솔직히 전 위 과정을 거치면서 MBTI 'T'친구가 있다면 이런 느낌일까 싶었답니다.)
이처럼, 변수는 거의 모든 프로그래밍에서 사용됩니다.
온라인 쇼핑몰에서는 장난감의 가격을 기억하는 데 변수를 쓰고,
게임에서는 사용자의 점수를 기억할 수도 있고,
날씨 앱에서는 오늘의 온도를 저장할 수도 있고,
로그인 화면에서는 사용자의 이름을 기억할 때도 사용할 수 있는 생각보다 편리한 친구랍니다.
쉽게 말하면 컴퓨터가 무언가를 기억해야 할 때, 변수라는 보관 상자는 그 일을 도와주는 아주 착한 친구라고 생각하시면 되세요.
(변수 = 리멤버, 변수 = 리멤버. 저는 이런 식으로 반복적으로 외웠던 기억이 있어요.
3. 변수와 상수의 차이
변수와 함께 자주 등장하는 친구 중 하나가 바로 "상수(Constant)"라는 친구인데요. (갑자기 상수라고?)
변수와 상수는 모두 정보를 담는 상자이지만, 한 가지 큰 차이가 있습니다.
변수 = 안에 들어 있는 값을 바꿀 수 있는 상자
상수 = 안에 들어 있는 값을 그대로 유지하기 위한 상자
이게 도대체 무슨 말인지 모르시겠죠?
그래서 아주 쉬운 예를 들어드릴게요.
Ex: 농구게임 같은 걸 하다 보면 당연히 점수는 10점에서 20점, 다시 30점으로 계속 바뀔 수 있잖아요? 그렇기 때문에 변수로 사용하는 것이 맞습니다. 반대로 한 번 정한 뒤, 바꾸지 않아야 하는 값이라면 상수로 보관하는 것으로 암기하시면 편합니다.
4. 초보자가 자주 하는 실수
또 초보자가 자주 하는 실수 중에 하나가, 변수에 a, x, data처럼 알 수 없는 본인만 아는 이름을 붙이는 거예요.
내 방에 상자가 10개 있는데 상자에 자동차, 엔진, 장난감 같은 이름이 안 쓰여있고 모든 상자의 이름이 상자 1, 상자 2, 상자 3이라고만 적혀 있다고 생각해 보세요. 무엇이 들어 있는지 기억하려면 계속 상자를 열어봐야 하는 불편한 상황이 생기겠죠?
그래서 변수에는 알아보기 쉬운 이름을 붙이는 것이 좋습니다. 사용자의 이름을 저장하는 상자라면 'userName', 상품 가격을 저장한다면 'productPrice'라고 이름을 붙이면 안에 무엇이 들어 있는지 바로 알 수 있겠죠?
한 줄 정리
"변수"는 컴퓨터가 정보를 기억하고, 바꾸고, 다시 사용할 수 있게 도와주는 "이름표가 붙은 상자 친구"라고 생각하면 편합니다.
결론
변수는 프로그래밍을 배울 때 가장 기초적이면서도 약간 뼈대 같은 중요한 개념이라고 하네요. 변수의 개념을 이해하면 앞으로 배우게 될 뭐 함수(Function)라든지, 배열(Array), 조건문(Condition) 같이 더 심화된 코딩 개념도 더 쉽게 이해할 수 있을 거라고 믿습니다. 오늘도 긴 글 읽어주시느라 고생 많으셨습니다.
공식 출처
변수에 대해 더 자세히 알고 싶으신 분들은 MDN Web Docs의 JavaScript Guide와 TC39에서 관리하는 ECMAScript 공식 명세를 참고해 주시면 감사하겠습니다.