Jeonghwan's Blog
변수와 식별자 무슨 차이일까?

변수와 식별자 무슨 차이일까?

개발을 처음 시작할 때 가장 먼저 접하게 되는 개념이 바로 변수(variable)식별자(identifier) 예요. 이 두 개념은 너무 기본적이라 간과하기 쉽지만, 종종 혼용되어 사용되곤 해요. 이번 글에서는 JavaScript 코드 예시를 통해 변수와 식별자가 무엇이고, 둘은 어떤 차이가 있는지 정리해 봤어요.

변수

변수(variable)의 사전적 정의를 살펴보면, 국어사전에서는 "어떤 상황의 가변적 요인", 수학에서는 "어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수"라고 정의돼요. 영어사전에서도 variable은 "가변적인", "변경할 수 있는"이라는 의미를 가진 형용사예요.

변수 정의

variable 정의

두 사전의 정의를 종합해보면, 변수는 “변할 수 있는 무언가”로 설명할 수 있어요. 그리고 여기서 말하는 ”무언가”는 프로그래밍는 데이터를 의미하죠. 이런 관점에서 보면, 변수는 데이터가 변할 수 있는 공간으로 이해할 수 있어요.

하지만 실제로 프로그래밍에서 변수는 그보다 더 포괄적인 의미를 갖고 있어요. 변수는 단순히 항상 데이터가 변할 수 있어야 하는 것이 아니라, 데이터를 저장할 수 있는 메모리 공간 자체를 뜻해요. 값이 바뀔 수 있든 없든, 한 번이라도 값을 저장할 수 있다면 그건 변수인 거예요.

식별자

식별자(identifier)의 사전적 정의도 보면, 국어사전과 영어사전 모두 "데이터 항목을 구별하고, 그 데이터의 성질을 나타내기 위해 붙이는 문자" 라고 정의하고 있어요.

식별자 정의

identifier 정의

즉, 식별자는 말 그대로 데이터를 "식별"하기 위한 이름이에요. 변수, 함수, 클래스, 매개변수 등에 붙이는 이름이 바로 식별자예요. 그리고 우리는 편의상 변수의 식별자를 변수명으로, 클래스의 식별자를 클래스명으로, 함수의 식별자를 함수명으로 부르죠.

정리하면 아래와 같아요.

const name = "Park Jeong Hwan"; // name이 식별자
 
class User {} // User가 식별자
 
function getAge(user) {} // getAge와 user가 식별자
용어식별자 용어의미
변수명변수 식별자 (Variable Identifier)변수를 식별하는 이름
함수명함수 식별자 (Function Identifier)함수를 식별하는 이름
클래스명클래스 식별자 (Class Identifier)클래스를 식별하는 이름

헷갈리기 쉬운 개념

1. const로 선언된 것도 변수

JavaScript 개발자들이 "변수"라는 용어 때문에 가끔 헷갈리는 부분이 있어요. varlet으로 선언한 것은 재할당이 가능하니 당연히 변수라고 할 수 있지만, 재할당이 불가능한 const로 선언한 것도 변수로 볼 수 있을까? 이런 혼동이 종종 생겨요.

결론부터 말하자면, const 로 선언된 것도 "변수" 입니다.

변수의 사전적 의미는 "변할 수 있는 무언가"이지만, 프로그래밍에서는 "데이터를 저장할 수 있는 메모리 공간" 을 의미하기 때문이에요. 따라서 const로 선언된 변수는 재할당할 수 없는 변수이지만 데이터를 저장할 수 있는 메모리 공간이기에 변수라고 표현할 수 있어요.

정리하면, var, let, const로 선언된 변수들은 데이터가 바뀔 수 있는지 여부와 관계없이 메모리에 공간을 할당하고 데이터를 저장한다는 점에서 모두 "변수"라고 할 수 있어요.

2. 변수와 변수명은 다르다

프로그래밍을 처음 접할 때, 변수와 변수명을 같은 것으로 혼동하는 경우도 많아요. 하지만 이 둘은 명확히 구분되는 개념이에요.

  • 변수는 데이터를 저장하는 메모리 공간을 의미하고,
  • 변수명은 그 공간에 붙여진 이름, 즉 식별자(identifier)입니다.
const name = "Park Jeong Hwan";

위 코드에서 name 은 변수명이고, “Park Jeong Hwan”이라는 데이터를 저장하는 메모리 공간이 바로 변수입니다.

마무리

위에서 다룬 내용을 간단히 정리하면 다음과 같아요.

  • 변수는 데이터를 저장할 수 있는 메모리 공간이고,
  • 식별자는 그 메모리 공간에 붙는 이름이에요.

변수(variable)와 식별자(identifier)는 JavaScript를 포함한 거의 모든 프로그래밍 언어에서 가장 기본적이지만, 가장 중요한 개념이에요. 이 글을 통해 변수와 식별자의 의미와 차이를 분명히 이해할 수 있었기를 바래요.

참고 자료