JavaScript에서 변수와 데이터 타입 기본 이해
I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have it, I’ll translate it into Korean while preserving the original formatting, markdown, and any code blocks.
변수란 무엇인가?
변수를 상자에 비유해 보세요:
- 그 안에 이름을 넣습니다.
- 상자의 유일한 역할은 정보를 보관하여 나중에 사용할 수 있게 하는 것입니다.
JavaScript에서 그 상자는 변수라고 부릅니다.
모든 프로그램—간단한 계산기든 Netflix와 같은 대규모 애플리케이션이든—은 데이터를 저장하고 관리하기 위해 변수에 의존합니다. 변수를 이해하지 못한다면, 실제 프로그래밍을 하는 것이 아니라 그냥 쓰레기를 입력하는 것과 같습니다.
변수를 사용하는 주요 이유
- 값 재사용
- 값 업데이트
- 프로그램을 동적으로 만들기
- 더 깔끔한 코드 작성
간단한 예시
let name = "Ritam";
console.log(name);
name→ 변수"Ritam"→ 그 안에 저장된 값
다음과 같이 생각해 보세요:
[ name ] → "Ritam"
변수가 없으면 프로그램은 경직되고 쓸모없게 됩니다.
JavaScript에서 변수 선언하기
JavaScript는 변수를 선언하는 세 가지 방법을 제공합니다:
| 선언 | 도입 시기 | 일반적인 사용 |
|---|---|---|
var | ES1 (1997) | 레거시 코드, 함수‑스코프 |
let | ES6 (2015) | 블록‑스코프, 변경 가능 |
const | ES6 (2015) | 블록‑스코프, 불변 |
var
var age = 20;
- 가장 오래된, 원래의 변수 선언 방식입니다.
- 함수‑스코프(함수 밖에서 선언하면 전역 스코프)입니다.
- 재선언 및 재할당이 가능해 버그를 유발하기 쉬웁니다.
팁: 현대 코드에서는
var를 거의 사용하지 않습니다.let이나const를 사용하세요.
let
let city = "Kolkata";
- 블록‑스코프입니다.
- 재할당은 가능하지만 같은 스코프 내에서 재선언은 할 수 없습니다.
let score = 10;
score = 20; // ✅ 허용
const
const country = "India";
- 블록‑스코프입니다.
- 초기 정의 이후 재할당이 불가능합니다.
const PI = 3.14;
PI = 3.14159; // ❌ 오류
console.log(PI); // 3.14
const를 사용할 때 – 값이 변하지 않아야 할 경우(예: 설정값, 고정 참조) 사용합니다.
let과 const가 도입된 이유에 대해 더 자세히 알고 싶다면, 이전 블로그 **[here]**를 확인하세요.
Source: …
데이터 타입
데이터 타입은 변수에 저장되는 값의 종류를 정의합니다. JavaScript에는 두 가지 큰 범주가 있습니다:
- 원시 데이터 타입
- 비원시(참조) 데이터 타입
이번 글에서는 원시 타입을 다룹니다. 이후 글에서는 객체, 배열, 함수 등을 자세히 살펴볼 예정입니다.
⚠️ Note: 이것은 기본 개요입니다. 전체 참고 자료는 MDN Web Docs를 확인하세요.
원시 타입 개요
| 타입 | 설명 | 예시 |
|---|---|---|
String | 따옴표("" 또는 '')로 감싼 텍스트 데이터. | let name = "Ritam"; |
Number | 정수와 부동소수점 모두 포함하는 숫자 데이터. | let age = 21; |
Boolean | 논리값 true/false. | let isStudent = true; |
null | 값이 의도적으로 없음을 나타냄. | let result = null; |
undefined | 선언은 되었지만 값이 할당되지 않음. | let data; console.log(data); // undefined |
BigInt | 안전 정수 한도를 초과하는 매우 큰 정수. | let big = 12345678901234567890n; |
Symbol | 고유한 식별자. | const id = Symbol("rune_of_fire"); |
String
let name = "Ritam";
let programming = "JavaScript";
let id = "123"; // 여전히 문자열!
Number
let age = 21;
let price = 99.99;
Boolean
let isStudent = true;
let isLoggedIn = false;
null
let result = null;
undefined
let data;
console.log(data); // undefined
Caution:
undefined를 변수에 명시적으로 할당할 수는 있지만, 디버깅을 어렵게 만들 수 있기 때문에 일반적으로 권장되지 않습니다.
BigInt
let bigNumber = 123456789012345678901234567890n; // 뒤에 "n" 붙음
let bigValue = BigInt(12345678901234567890); // 생성자를 사용
BigInt가 필요할 수 있는 경우
- 금융 시스템(정밀한 통화 계산)
- 암호화
- 과학 계산
- 대형 데이터베이스 ID
Symbol
const uniqueRuneId1 = Symbol("rune_of_fire");
const uniqueRuneId2 = Symbol("rune_of_fire");
console.log(uniqueRuneId1 === uniqueRuneId2); // false
주요 사용 사례
- 고유한 객체 프로퍼티 키
- 고급 JavaScript 패턴(예: 이터레이터)
- 내장 메커니즘(예:
Symbol.iterator)
typeof 연산자
console.log(typeof "Ritam"); // "string"
console.log(typeof 21); // "number"
console.log(typeof true); // "boolean"
⚡ 작은 과제:
typeof null은 무엇을 반환할까요? 코드를 실행하기 전에 생각해 보세요!
typeof를 깊이 이해하는 것은 중요합니다. 그 결과가 항상 기대와 다를 수 있기 때문입니다(예: typeof null은 "object"입니다). 앞으로의 글에서 이 연산자를 더 자세히 살펴볼 것입니다.
빠른 비교: var vs let vs const
| 특징 | var | let | const |
|---|---|---|---|
| 스코프 | 함수 스코프 또는 전역 | 블록 스코프 | 블록 스코프 |
| 호이스팅 | 예 (undefined 로 초기화됨) | 예 (Temporal Dead Zone 존재) | 예 (Temporal Dead Zone 존재) |
| 재선언 | 동일 스코프 내에서 허용 | 동일 블록 내에서 허용되지 않음 | 동일 블록 내에서 허용되지 않음 |
| 재할당 | 허용 | 허용 | 초기화 후 허용되지 않음 |
| 사용 사례 | 레거시 코드, 거의 권장되지 않음 | 값이 변하는 변수 | 상수, 설정 값 |
JavaScript에서 변수 선언
| 특징 | var | let | const |
|---|---|---|---|
| 선언 여부 | ✅ 예 | ✅ 예 | ❌ 아니오 |
| 스코프 유형 | 함수 | 블록 | 블록 |
| 호이스팅 | 예 | 예 – 하지만 Temporal Dead Zone (TDZ) 적용 | 예 – 하지만 Temporal Dead Zone (TDZ) 적용 |
| 현대적 사용? | ❌ 피하기 | ✅ 예 | ✅ 예 |
실용적인 규칙
- 기본적으로
const를 사용하세요. - 값이 변경될 필요가 있을 때
let을 사용하세요. - 현대 JavaScript에서는
var를 피하세요.
왜 변수는 중요한가
변수는 초보자 수준의 주제가 아니라 다음과 같은 기반을 이룹니다:
- 함수
- 반복문
- API
- React 같은 프레임워크
- Node.js 로 하는 백엔드 개발
변수와 데이터 타입을 잘못 이해하면, 그 위에 구축된 모든 것이 불안정해집니다.
변수 마스터링으로 진정한 제어를 얻다
- 변수 선언 방법
letvsconst를 언제 사용할지- 데이터 타입 이 의미하는 바
…그리고 이 지식은 견고하고 유지보수 가능한 코드로 이어집니다.
시작하기
- 간단히 시작하세요.
- 이해를 단계별로 구축하세요.
그것이 진정한 이해가 이루어지는 방식입니다.
핵심 소프트웨어 엔지니어링 개념에 대한 초보자 친화적인 분석을 더 보려면 팔로우하세요.