카테고리 없음

자바스크립트 변수 선언 완전 정복: var, let, const의 차이점과 사용법

eriase 2025. 7. 3. 23:50
자바스크립트에서 변수를 선언하는 방법에는 var, let, const가 있으며 각각의 특성과 쓰임새가 다릅니다. 이 글에서는 세 가지 선언 방식의 차이점, 스코프와 호이스팅, 불변성 개념 등을 자세히 설명하고, 어떤 상황에서 어떤 키워드를 선택해야 하는지 구체적인 예시와 함께 안내합니다.

변수 선언, 자바스크립트의 기초이자 핵심

자바스크립트에서 변수를 선언하는 일은 개발자가 가장 자주 수행하는 작업 중 하나입니다. 변수를 선언한다는 것은 어떤 데이터를 저장하기 위한 공간을 확보하는 것을 의미하며, 이 변수에 어떤 값을 넣고 어떻게 접근하고 수정할지를 결정하는 것은 코드의 안정성과 성능, 가독성에 직접적인 영향을 줍니다. 따라서 변수 선언은 단순한 구문이 아니라, 자바스크립트의 동작 원리를 이해하는 데 핵심이 되는 부분입니다. 자바스크립트에서는 변수를 선언할 때 세 가지 키워드 중 하나를 사용합니다: var, let, const. 이들 각각은 변수의 범위(Scope), 재할당 가능 여부, 호이스팅(hoisting) 방식 등에 따라 서로 다른 특성을 가집니다. 특히 ES6 이후로 도입된 let과 const는 기존의 var보다 더 엄격하고 예측 가능한 동작을 유도하기 때문에, 현재는 대부분의 현대 자바스크립트 코드에서 let과 const를 사용하는 것이 일반적입니다. 하지만 여전히 var를 사용하는 레거시 코드가 많고, let과 const의 차이를 혼동하는 초보자도 많기 때문에, 각 키워드의 개념과 차이점을 명확하게 이해하는 것이 중요합니다. 이 글에서는 각 변수 선언 방식이 어떻게 다르고, 어떤 상황에서 어떤 키워드를 써야 가장 적절한지를 구체적인 예시를 통해 설명합니다. 이 과정을 통해 자바스크립트 코드 작성의 기본기를 단단히 다질 수 있을 것입니다.


var, let, const의 차이와 사용 가이드

먼저 var는 자바스크립트에서 가장 오래된 변수 선언 방식입니다. var로 선언된 변수는 함수 스코프(function scope)를 가지며, 중복 선언이 가능하고, 선언 전에 참조해도 오류가 발생하지 않는 특징이 있습니다. 하지만 이러한 유연함이 오히려 코드의 안정성을 해치거나 예측하기 어려운 버그를 유발하는 원인이 되기도 합니다. 예를 들어 다음과 같은 코드가 가능합니다:

var x = 10;
var x = 20;
console.log(x); // 20
이처럼 동일한 이름으로 중복 선언이 허용되기 때문에 대규모 프로젝트에서는 변수 충돌이나 의도치 않은 값 변경이 발생할 수 있습니다. 반면 let은 블록 스코프(block scope)를 따르며, 같은 스코프 안에서 중복 선언이 불가능합니다. 또한, 선언 전에 접근하면 오류가 발생하는 일시적 사각지대(Temporal Dead Zone, TDZ)를 가지고 있어 변수 사용을 보다 명확하게 제한할 수 있습니다.
let y = 10;
let y = 20; // 오류 발생: Identifier 'y' has already been declared
const 역시 let과 동일하게 블록 스코프를 가지며, TDZ의 영향을 받습니다. 하지만 const는 변수에 한 번 값이 할당되면 변경이 불가능하다는 특징이 있습니다. 즉, 상수를 선언할 때 사용하며, 반드시 선언과 동시에 값을 초기화해야 합니다.
const z = 100;
z = 200; // 오류 발생: Assignment to constant variable.
단, const로 선언된 객체나 배열의 내부 값은 변경이 가능합니다. const는 변수 자체의 참조가 고정되는 것이지, 그 내부의 내용까지 불변성을 갖는 것은 아닙니다. 따라서 불변 객체를 원할 경우에는 Object.freeze() 등의 추가적인 방법이 필요합니다. let과 const의 선택 기준은 간단합니다. 변경이 필요한 변수는 let, 한 번 정해진 값을 유지하고자 하는 경우는 const를 사용하는 것이 좋습니다. 실제로 많은 스타일 가이드에서는 기본적으로 const를 사용하고, 정말 필요할 때만 let을 사용하라고 권장합니다.


효율적인 변수 선언이 코드의 품질을 좌우한다

변수 선언은 자바스크립트 코드의 시작이자 기본이며, 사소해 보이지만 코드 전반에 걸쳐 큰 영향을 미치는 요소입니다. var, let, const 각각의 특성과 차이를 제대로 이해하지 못한 채 코드를 작성하면, 디버깅이 어려운 버그를 만들 수 있고, 협업 과정에서도 혼란을 초래할 수 있습니다. 반대로 변수 선언 원칙을 철저히 지키면, 코드의 가독성과 예측 가능성이 높아지고 유지보수도 훨씬 수월해집니다. 현재의 자바스크립트 생태계에서는 var 대신 let과 const를 사용하는 것이 표준으로 자리잡고 있으며, 대부분의 개발자 커뮤니티와 기업에서도 이를 권장합니다. 특히 const를 우선적으로 사용하고, 정말 값이 바뀌어야 할 경우에만 let을 쓰는 패턴은 실무에서도 널리 채택되고 있습니다. 이처럼 변수 선언 방식은 단순한 문법 선택이 아니라, 개발 철학과 직결된 중요한 설계 요소입니다. 또한 이러한 기본적인 원칙을 충실히 따르는 것은 애드센스 승인용 콘텐츠 작성 시에도 신뢰성을 높이는 데 기여합니다. 명확하고 체계적인 설명은 검색 엔진 최적화(SEO)에도 긍정적인 영향을 미치며, 방문자에게도 더 나은 정보를 제공할 수 있게 됩니다. 따라서 자바스크립트를 배우고 활용하는 사람이라면, var, let, const의 차이를 정확히 알고 이를 올바르게 적용하는 역량을 반드시 갖춰야 합니다. 결론적으로, 변수 선언은 그 자체로 코드의 품질과 유지보수 가능성을 결정짓는 중요한 출발점입니다. 이 세 가지 키워드를 상황에 맞게 올바르게 사용하는 습관은 초보자에게는 기초 체력이고, 숙련자에게는 세련된 실력의 표현입니다.