JavaScript에서 변수와 데이터 타입 기본 이해

발행: (2026년 2월 22일 오후 08:07 GMT+9)
10 분 소요
원문: Dev.to

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는 변수를 선언하는 가지 방법을 제공합니다:

선언도입 시기일반적인 사용
varES1 (1997)레거시 코드, 함수‑스코프
letES6 (2015)블록‑스코프, 변경 가능
constES6 (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를 사용할 때 – 값이 변하지 않아야 할 경우(예: 설정값, 고정 참조) 사용합니다.

letconst가 도입된 이유에 대해 더 자세히 알고 싶다면, 이전 블로그 **[here]**를 확인하세요.

Source:

데이터 타입

데이터 타입은 변수에 저장되는 값의 종류를 정의합니다. JavaScript에는 두 가지 큰 범주가 있습니다:

  1. 원시 데이터 타입
  2. 비원시(참조) 데이터 타입

이번 글에서는 원시 타입을 다룹니다. 이후 글에서는 객체, 배열, 함수 등을 자세히 살펴볼 예정입니다.

⚠️ 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

특징varletconst
스코프함수 스코프 또는 전역블록 스코프블록 스코프
호이스팅예 (undefined 로 초기화됨)예 (Temporal Dead Zone 존재)예 (Temporal Dead Zone 존재)
재선언동일 스코프 내에서 허용동일 블록 내에서 허용되지 않음동일 블록 내에서 허용되지 않음
재할당허용허용초기화 후 허용되지 않음
사용 사례레거시 코드, 거의 권장되지 않음값이 변하는 변수상수, 설정 값

JavaScript에서 변수 선언

특징varletconst
선언 여부✅ 예✅ 예❌ 아니오
스코프 유형함수블록블록
호이스팅예 – 하지만 Temporal Dead Zone (TDZ) 적용예 – 하지만 Temporal Dead Zone (TDZ) 적용
현대적 사용?❌ 피하기✅ 예✅ 예

실용적인 규칙

  • 기본적으로 const를 사용하세요.
  • 값이 변경될 필요가 있을 때 let을 사용하세요.
  • 현대 JavaScript에서는 var를 피하세요.

왜 변수는 중요한가

변수는 초보자 수준의 주제가 아니라 다음과 같은 기반을 이룹니다:

  • 함수
  • 반복문
  • API
  • React 같은 프레임워크
  • Node.js 로 하는 백엔드 개발

변수와 데이터 타입을 잘못 이해하면, 그 위에 구축된 모든 것이 불안정해집니다.

변수 마스터링으로 진정한 제어를 얻다

  • 변수 선언 방법
  • let vs const 를 언제 사용할지
  • 데이터 타입 이 의미하는 바

…그리고 이 지식은 견고하고 유지보수 가능한 코드로 이어집니다.

시작하기

  1. 간단히 시작하세요.
  2. 이해를 단계별로 구축하세요.

그것이 진정한 이해가 이루어지는 방식입니다.

핵심 소프트웨어 엔지니어링 개념에 대한 초보자 친화적인 분석을 더 보려면 팔로우하세요.

0 조회
Back to Blog

관련 글

더 보기 »

JavaScript 함수 소개 (화살표 함수 포함)

JavaScript의 함수 함수는 특정 작업을 수행하는 재사용 가능한 코드 블록이며, 호출될 때만 실행됩니다. 함수는 우리에게 다음과 같은 도움을 줍니다: - 피하기…

정의되지 않음 vs 정의되지 않음

Undefined undefined은 JavaScript에서 특수 키워드입니다. 이는 변수가 메모리에 존재하지만 아직 값이 할당되지 않았음을 의미합니다. 생성 단계 동안 o...