본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다
패스트캠퍼스 환급챌린지란?
(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스
초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!
fastcampus.co.kr
https://fastcampus.info/4n8ztzq
불금에도 항상 열심히 강의를 들을 수 있게 해주는 환급챌린지 최공!
39일차 공부 시작!

오늘의 강의 주제는 '문법-변수(&상수)'이다.

(오늘도 마찬가지로 모자이크 처리..)
오늘의 학습 내용
* 변수와 상수의 선언
자바스크립트(JavaScript)와 타입스크립트(TypeScript) 모두에서 변수를 선언할 때는 `let`, 상수를 선언할 때는 `const`를 사용한다. 두 언어에서 동일하게 사용되므로 하나의 개념으로 이해해도 무방하다.
var x = 2;
let x = 10;
const y = 200;
const obj = {
height: 200,
width: 300
}
obj.height = 300;
위 코드는 변수와 상수를 어떻게 선언하는지를 보여준다. 먼저 과거 자바스크립트에서는 `var`라는 키워드를 통해 변수를 선언했는데, 이는 여러 가지 문제점을 갖고 있었다. 대표적인 예로, 변수의 스코프가 함수 단위로만 제한되었으며, 중복 선언이 허용되어 예기치 않은 동작을 유발할 수 있었다. 이러한 단점을 보완하기 위해 ES6 이후부터는 `let`과 `const` 키워드가 도입되었다.
`let`은 블록 스코프를 가지며, 변수의 중복 선언도 막아준다. 반면 `const`는 이름 그대로 '변하지 않는 상수'를 선언하기 위한 키워드다. 선언 이후 재할당이 불가능하다는 특징이 있지만, 완전히 불변이라는 뜻은 아니다.
* 객체와 불변성의 이해
const로 선언된 객체를 보면 다음과 같은 코드가 있다.
const obj = {
height: 200,
width: 300
}
obj.height = 300;
이것은 `const`로 선언된 객체의 속성을 바꾸는 예시다. 처음 객체를 `const`로 선언했기 때문에 `obj` 자체에 대한 참조값은 변경할 수 없지만, 객체 내부의 속성은 수정이 가능하다. 이처럼 자바스크립트에서 `const`는 '값을 바꿀 수 없다'라기보다는, 변수(이 경우는 참조)의 재할당이 불가능하다는 의미를 가진다. 다시 말해, 객체의 프로퍼티를 수정하는 것은 문제가 없고, 단지 `obj = { ... }`처럼 객체 자체를 다른 값으로 교체할 수 없다는 제약이 있는 것이다.
* 상수 사용이 권장되는 이유
실제 개발시에는 변수보다 상수를 더 많이 사용하는 것이 좋다. 그 이유는 간단하다. 일반적으로 프로그램 내에서는 고정된 값이 훨씬 많고, 변할 필요가 없는 값들을 변수로 선언했다가 의도치 않게 값이 바뀌는 경우가 자주 발생한다. 이런 불안정성을 줄이기 위해서는 초기화 후 값이 변하지 않도록 제어하는 것이 바람직하다.
그렇기 때문에 가능한 한 `const`를 기본적으로 사용하고, 실제로 값이 변해야 할 이유가 있는 경우에만 `let`을 사용하는 것이 좋은 프로그래밍 습관이다. 이렇게 하면 코드의 예측 가능성을 높이고 실수로 인한 버그를 줄일 수 있다.
* 정리
- `var`는 되도록 사용하지 않는다. 블록 스코프를 제대로 따르지 않고, 여러 문제의 원인이 되기 때문이다.
- 새롭게 도입된 `let`과 `const`를 사용할 것을 권장한다.
- `const`는 상수 선언에 사용되며 재할당이 불가능하다. 객체를 선언한 경우, 객체의 내부 속성은 변경 가능하다.
- 가능한 한 `const`를 기본으로 사용하고, 값이 반드시 변경되어야 할 때만 `let`을 사용한다. 이렇게 하면 코드 안정성과 유지보수성을 높일 수 있다.




마치며
오늘도 환급 챌린지 41강 공부 완료!!
이번 강의에서는 변수에 대한 내용을 배웠다. 변수와 상수의 개념은 단순하지만 올바르게 사용하는 것이 중요하기 때문에 이번 챕터도 리마인드하는데 큰 도움이 되었다.