📟 데이터 저장 및 관리의 필요성 !!
변수
는 프로그래밍에서 데이터를 저장하고,
그 값을 쉽게 관리하고 재사용할 수 있도록 해줍니다.
사용자로부터 받은 입력을 처리
or 계산 결과를 다시 사용
이런 상황에 변수 없이는 각 단계마다 데이터를 반복적으로 처리해야 한다.
효율적인 데이터 관리를 위해선 변수 선언 메커니즘은 필수라 볼 수 있다.
let number = 50; // 사용자 수를 저장
number = number + 5; // 새로운 사용자 추가
// number += 5;
console.log("총 합계는: " + number); // 출력: 총 합계는: 55
📟 프로그램의 복잡성 관리
변수가 없다면 직접 값을 기입
하게 되었을 때,
코드의 복잡성
이 증가하고, 오류 가능성
이 높아진다.
그리고 프로그램의 확장성
과 유지보수성
이 떨어질 수 있다.
변수를 사용하는 이유를 정리하면
코드의 가독성이 높아지고, 수정이 필요할 때 적은 변경으로 원하는 결과를 얻는다.
결국 변수를 지정해 한번만 바꿔도 여러가지를 바꿀 수 있는
효율 있는 작업을 위해 변수의 지정은 매우 중요하다.
📟 재사용성 및 유지보수 향상
변수를 통해 정의된 데이터 값을 여러 위치에서 재사용하는 것
이것이 코드의 재사용성
을 높일 수 있다.
한 함수에서 계산한 결과를 다른 함수에도 활용이 가능하다!
특히 큰 프로그램이나 복잡한 시스템에 큰 이점이 될 수 있다
아래 예시 코드를 보면
let price = 10000;
let tax = 0.1;
let totalPrice = price + (price * tax); // 세금 계산
console.log(`${totalPrice}`) // 총 가격 콘솔
이런식으로 프로그램의 유연성
효율성
확장성
들을
동시에 증진시킬 수 있기에
데이터의 중요성과 처리 과정에서 변수의 역할은 필수적이라 할 수 있다.
const
와 let
이 존재한다.
const
를 사용하여 상수를 선언하게 되면
값이 변경되지 않는 변수
를 명확하게 표현할 수 있다.
코드의 안정성
을 높이고, 값이 변경되었을 때 발생하는 버그를 예방
할 수 있다.
그래서 초기에 변수를 지정할 때 const
로 스타트하는 것도 도움이 된다.
const noneChange = 100;
// noneChange = 150; // TypeError : Assignment to constant variable.
const
는 블록 스코프
를 가지기 때문에
선언된 블록 내에서만 유효
합니다.
스코프를 이해해야 하는 이유는?
예측 가능한
코드를 작성하는데 큰 도움이 된다.
if (true) {
const study = 'react';
console.log(study); // 'study'
}
console.log(study); // ReferenceError: temp is not defined
위에서 const
가 존재했고, 이번엔 let
이라는 변수이다.
let
을 사용하면 변수의 값을 필요에 따라 유연하게 변경할 수 있다.
계산이나 조건에 따라 변할 수 있는 값을 사용해야 하는 순간 적합하다.
예시로 const
로 아래 계산이 작성되었다면
할당 된 값은 절대
바꿀 수 없다.
let goal = 5;
goal += 2;
console.log(goal); // 7
let
또한 블록 스코프를 따르는데,
이는 변수를 블록 내에서만 사용하다록 하면서 외부에서의 접근
을 제한
하고,
변수의 충돌을 방지하여 프로그램의 안전성을 높일 수 있다.
우리가 알고 있는 for
문에서도 let
을 자주 볼 수 있는데,
사실은 블록 스코프로서 let
을 사용한 예시라고 이해하면 좋다.
for (let i = 0; i < 10; i++) {
console.log(i); // 0 ~ 9
}
// console.log(i); // ReferenceError: i is not defined
둘 중 무엇으로 선언해야 한다면 익숙한 let
을 떠오르기 쉽상이다.
그러나 const
는 재할당이 불가하기 때문에
오히려 개발을 처음 시작하고 있다면 const
로 변수를 선언해
어느 부분에서 재할당이 필요한지 눈으로 볼 필요가 있다.
그러고 나서 재할당이 정말 필요하면 let
으로 변경해주면 된다.
var
가 왜 위험한지 선언 방식을 알아보자
var
는 함수 스코프를 가지며, 함수 내부 어디에서든지 접근 할 수 있다.
이러한 특징 때문에 예상치 못한 상황이 발생할 수 있는데,
바로 예상치 못한 범위에서 변수가 접근 가능하게 되어 문제를 일으킨다.
그래서 var
를 사용할 순간이 생긴다면 신중해야 한다...
또한 var
는 선언 전에도 참조할 수 있는 호이스팅 현상 때문에
코드를 더더욱 혼란스럽게 만들 수 있다.
console.log(myVar); // undefined, not ReferenceError
var myVar = 10; // 에러가 아닌 undefined가 나오는 모습이다..
위에서 말한 것처럼 var
는 예상치 못한 범위에서 사용될 수 있어
프로그램에서 버그를 초래할 가능성이 아주아주 높다.
블록 스코프를 가지는 let
const
를 사용해 이러한 문제를 해결해
더 안전한 코드 작성과 혼란스럽지 않은 코드를 쓸 수 있다.
아래 예시를 살펴보자
if (true) {
var whyIsItPossible = "Is it real?";
}
console.log(whyIsItPossible); // "Is it real?";
또한 코드의 가독성
과 유지보수성
저하시키는데
var
를 사용하면서 호이스팅
함수 스코프
특성은
코드의 가독성
을 떨어뜨리고, 유지보수를 어렵게 한다.
현대적인 자바스크립트 개발에서는
let
const
를 사용해 변수의 범위와 재할당 가능성을 명확히 구분하는 것이 권장된다.
참고로
const let
도 호이스팅은 된다!
var
처럼 초기값을 undefined로 미리 할당하지 않는 점에서
이미 가독성과 유지보수 측면에서 훨씬 도움이 된다.
논리적인 흐름에서 벗어나지 않는 const
let
사용을 한번 더 인지하자.