📘 1.1.3 const
- 절대 변하지 않는 특별한 금고
고요한 오후, 우리는 지금까지 var
라는 오래된 변수와 let
이라는 똑똑한 변수에 대해 배워왔습니다. 오늘은 정말 특별한 변수를 만나볼 것입니다. 이 변수는 한 번 값을 넣으면 절대로 다른 값으로 바꿀 수 없는 규칙이 있습니다. 바로 const
라는 이름의 영원한 금고입니다.
마치 은행의 안전 금고에 있는 소중한 물건처럼, 한 번 정해지면 누구도 바꿀 수 없어서 정말 안전하게 보관할 수 있습니다. 그럼 함께 이 특별한 변수의 비밀을 알아보겠습니다.
🧠 새로운 단어들과 친해지기
const
와 함께 사용되는 새로운 단어들을 쉽게 알아보겠습니다.
단어 | 뜻 |
---|---|
const | 한 번 값을 정하면 절대 바뀌지 않는 특별한 변수를 만드는 명령어입니다 |
상수 (constant) | 변하지 않는 값입니다. 마치 우리 이름이나 생일처럼 말입니다 |
초기화 (initialization) | 변수를 만들면서 동시에 값을 넣는 것을 말합니다 |
재할당 금지 | 한 번 넣은 값을 다른 값으로 바꾸는 것을 막는다는 뜻입니다 |
const
는 영어로 "constant(상수)"에서 나온 말입니다. 마치 "항상 똑같다"라는 뜻처럼, 한 번 정해지면 계속 그대로 있는 특별한 변수입니다.
✨ const
가 무엇인지 알아보기
const
는 자바스크립트에서 가장 안전한 금고입니다. var
나 let
과는 달리, 한 번 값을 넣으면 절대로 다른 값으로 바꿀 수 없습니다. 마치 타임캡슐처럼 영원히 그 값을 지켜주는 것입니다.
const
의 가장 중요한 특징은 절대 변하지 않는다는 것입니다. 우리가 생일이나 이름처럼 바뀌지 않는 정보를 저장할 때 사용하면 정말 좋습니다. 그리고 let
처럼 교실 안에서만 사용할 수 있는 특징도 가지고 있어서 더욱 안전합니다.
또 하나 중요한 점은 const
로 변수를 만들 때는 반드시 값을 함께 넣어줘야 한다는 것입니다. 빈 변수로 만들어놓고 나중에 값을 넣는 건 안 됩니다. 마치 "이 금고에는 이 값이 영원히 들어있을 것입니다!"라고 미리 약속하는 것과 같습니다.
온화한 비유: 학교의 역사 기록 보관실
const
를 더 쉽게 이해하기 위해 '학교의 역사 기록 보관실' 이야기를 들려드리겠습니다.
학교에는 정말 특별한 보관실이 하나 있습니다. 이곳에 보관되는 기록들은 영원히 바뀌지 않는 규칙이 있습니다. 교장 선생님이 "이 서랍에는 영원히 우리 학교 설립일이 보관될 것입니다!"라고 정하면, 정말로 그 서랍에는 계속 설립일만 있게 됩니다.
만약 누군가가 설립일을 다른 날짜로 바꾸려고 하면, 보관실의 특별한 시스템이 작동해서 "안 됩니다! 이곳은 변경할 수 없는 역사 기록 보관실입니다!"라고 경고해줍니다.
그래서 교장 선생님은 정말 소중하고 절대 바뀌면 안 되는 기록들만 이 특별한 보관실에 둡니다. 예를 들어 "학교 설립 연도", "학교 이름", "학교 주소" 같은 중요한 정보들 말입니다.
이처럼 const
는 학교의 역사 기록 보관실처럼 한 번 정해지면 절대 바뀌지 않는 특별한 저장 공간입니다.
🎯 왜 const
를 사용할까요?
그럼 우리는 왜 이런 특별한 변수를 사용해야 할까요? 정말 중요한 이유들이 있습니다.
첫 번째는 실수를 방지하기 위해서입니다. 중요한 정보를 실수로 바꾸는 일이 없도록 미리 막아주는 것입니다. 마치 소중한 물건에 "건드리지 마세요!" 스티커를 붙이는 것과 같습니다.
두 번째는 다른 사람들에게 알려주기 위해서입니다. 코드를 보는 다른 친구들이 "아, 이 값은 절대 바뀌지 않는구나!"라고 쉽게 알 수 있습니다. 마치 "이것은 중요한 규칙입니다!"라고 표시해주는 것입니다.
세 번째는 컴퓨터가 더 빠르게 일하도록 돕기 위해서입니다. 컴퓨터가 "이 값은 절대 안 바뀌니까 미리 준비해둘게요!"라고 하면서 더 효율적으로 일할 수 있거든요.
마지막으로 현대적인 프로그래밍 방식입니다. 요즘 개발자들은 바뀌지 않는 값에는 const
를, 바뀔 수 있는 값에는 let
을 사용하는 걸 좋아합니다.
⚙️ const
사용법 배우기
const
를 사용하는 방법은 let
과 비슷하지만, 중요한 규칙들이 있습니다.
const 변수이름 = 값;
중요한 규칙들:
- 변수를 만들 때 반드시 값을 함께 넣어야 합니다
- 한 번 넣은 값은 절대 바꿀 수 없습니다
- 같은 이름으로 다시 변수를 만들 수 없습니다
let
처럼 교실 안에서만 사용할 수 있습니다
실제 예시:
const myName = "지민"; // 내 이름 (안 바뀌죠?)
const schoolName = "행복초등학교"; // 학교 이름 (안 바뀌죠?)
const pi = 3.14159; // 원주율 (수학에서 안 바뀌죠?)
🧪 직접 해보면서 배우기
이제 실제 예시를 통해서 const
가 어떻게 동작하는지 함께 살펴보겠습니다.
🔹 첫 번째 예시: 개인 정보를 안전하게 보관하기
개인정보처럼 절대 바뀌지 않는 정보들을 const
로 안전하게 보관하는 방법을 배워보겠습니다.
// 우리의 기본 정보들을 const로 안전하게 보관해요
const myName = "서연"; // 내 이름은 바뀌지 않아요
const birthYear = 2012; // 태어난 해도 바뀌지 않아요
const hometown = "부산"; // 고향도 바뀌지 않죠
const favoriteColor = "파란색"; // 좋아하는 색깔은... 바뀔 수도 있지만 일단 고정해볼게요
// 각각의 정보들을 확인해볼까요?
console.log("안녕하세요! 제 이름은 " + myName + "입니다.");
console.log("저는 " + birthYear + "년에 태어났어요.");
console.log("고향은 " + hometown + "이고요.");
console.log("좋아하는 색깔은 " + favoriteColor + "입니다.");
// 나이를 계산해볼게요 (2024년 기준)
const currentYear = 2024;
const myAge = currentYear - birthYear;
console.log("저는 올해 " + myAge + "살이에요!");
이 예시에서 우리는 절대 바뀌지 않는 개인 정보들을 const
로 안전하게 보관했습니다. 그리고 이 정보들을 사용해서 나이도 계산해봤습니다. const
로 만든 변수들은 정말 안전하게 정보를 지켜주고 있습니다.
🔹 두 번째 예시: 수학 상수들을 보관하기
수학에서 사용하는 절대 바뀌지 않는 숫자들을 const
로 보관해보겠습니다.
// 수학에서 사용하는 특별한 숫자들이에요
const pi = 3.14159; // 원주율 (절대 안 바뀌죠!)
const gravity = 9.8; // 중력가속도 (지구에서는 항상 같아요)
const speedOfLight = 300000000; // 빛의 속도 (우주에서 제일 빠른 속도!)
// 이 숫자들을 사용해서 계산을 해볼게요
console.log("원주율: " + pi);
console.log("중력가속도: " + gravity + " m/s²");
console.log("빛의 속도: " + speedOfLight + " m/s");
// 원의 둘레를 계산해봐요 (둘레 = 2 × 원주율 × 반지름)
const circleRadius = 5; // 원의 반지름 5cm
const circleCircumference = 2 * pi * circleRadius;
console.log("반지름 " + circleRadius + "cm인 원의 둘레: " + circleCircumference + "cm");
// 자유낙하 시간을 계산해봐요 (거리 = 0.5 × 중력 × 시간²)
const fallTime = 2; // 2초 동안 떨어짐
const fallDistance = 0.5 * gravity * fallTime * fallTime;
console.log(fallTime + "초 동안 떨어진 거리: " + fallDistance + "m");
수학에서 사용하는 특별한 숫자들은 정말 안전하게 보관해야 합니다. 만약 실수로 원주율을 바꾸면 큰일 나잖아요! const
가 이런 중요한 숫자들을 지켜주고 있습니다.
🔹 세 번째 예시: const의 안전장치 확인하기
이번에는 const
가 어떻게 우리의 소중한 정보를 지켜주는지 확인해보겠습니다.
// 학교 정보를 const로 안전하게 보관해요
const schoolName = "꿈나무초등학교";
const foundingYear = 1985;
const studentCount = 500;
console.log("우리 학교 이름: " + schoolName);
console.log("설립 연도: " + foundingYear);
console.log("학생 수: " + studentCount);
// 만약 학교 이름을 바꾸려고 하면 어떻게 될까요?
// schoolName = "새로운학교"; // 이 줄을 실행하면 에러가 나요!
// 만약 같은 이름으로 새로운 const를 만들려고 하면?
// const schoolName = "또다른학교"; // 이것도 에러가 나요!
// 만약 const를 비어있는 채로 만들려고 하면?
// const emptyBox; // 이것도 에러가 나요! 반드시 값을 넣어야 해요
console.log("안전하게 보호된 학교 정보들:");
console.log("학교 이름은 여전히: " + schoolName);
console.log("설립 연도도 여전히: " + foundingYear);
console.log("const가 우리 정보를 안전하게 지켜주고 있어요!");
const
는 정말 든든한 보디가드 같습니다! 우리의 소중한 정보를 누구도 함부로 바꿀 수 없도록 꽁꽁 지켜주고 있습니다.
🔄 const
사용하는 순서 정리하기
지금까지 배운 const
사용 과정을 차근차근 정리해보겠습니다.
첫 번째 단계는 바뀌지 않을 값 찾기입니다. "이 정보는 절대 바뀌지 않을 것입니다!"라고 확신할 수 있는 것들을 찾는 것입니다. 이름, 생일, 학교 이름, 수학 상수 같은 것들 말입니다.
두 번째 단계는 변수 만들면서 값 넣기입니다. const 변수이름 = 값;
이렇게 해서 변수를 만들면서 동시에 소중한 값을 넣는 것입니다. 나중에 넣는 건 안 됩니다!
세 번째 단계는 안전하게 사용하기입니다. const
로 만든 변수에서 값을 꺼내서 여러 가지 일에 사용할 수 있습니다. 계산하거나, 화면에 보여주거나, 다른 변수에 복사해서 쓸 수도 있습니다.
마지막으로 가장 중요한 것은 절대 바꾸려고 하지 않기입니다. const
로 만든 변수의 값은 영원히 그대로 있어야 합니다. 만약 바꾸려고 하면 컴퓨터가 "안 됩니다!"라고 알려줄 것입니다.
🧠 자주 하는 실수와 주의할 점
const
를 사용할 때 초보자들이 자주 하는 실수들을 미리 알아두면 더 안전한 코딩을 할 수 있습니다.
❌ 실수 1: const 변수를 빈 채로 만들려고 하기
// ❌ 이렇게 하면 안 돼요!
// const myFavoriteFood; // 에러! 값을 넣지 않았어요
// myFavoriteFood = "피자"; // 나중에 넣으려고 해도 이미 늦어요
// ✅ 이렇게 해야 해요!
const myFavoriteFood = "피자"; // 변수를 만들면서 동시에 값을 넣어요
console.log("내가 좋아하는 음식: " + myFavoriteFood);
const
는 마치 "영원한 약속"과 같습니다. 변수를 만들 때 "이 변수에는 이 값이 영원히 들어있을 것입니다!"라고 약속해야 하는 것입니다.
❌ 실수 2: const로 만든 값을 바꾸려고 하기
const studentName = "철수";
console.log("학생 이름: " + studentName); // "철수"
// ❌ 이렇게 하면 안 돼요!
// studentName = "영희"; // 에러! 이미 정해진 이름은 바꿀 수 없어요
// ✅ 만약 바뀔 수 있는 정보라면 let을 사용해야 해요
let currentMood = "행복함";
console.log("현재 기분: " + currentMood);
currentMood = "신남"; // 기분은 바뀔 수 있으니까 괜찮아요!
console.log("바뀐 기분: " + currentMood);
이름처럼 절대 바뀌지 않는 것은 const
로, 기분처럼 바뀔 수 있는 것은 let
으로 만들어야 합니다.
❌ 실수 3: 바뀔 수 있는 정보에 const를 사용하기
// ❌ 이런 정보들은 const로 만들면 안 돼요!
// const todayWeather = "맑음"; // 날씨는 매일 바뀌어요
// const myScore = 85; // 점수는 시험 볼 때마다 바뀔 수 있어요
// const currentTime = "3시"; // 시간은 계속 흘러가요
// ✅ 이런 정보들은 let으로 만들어야 해요!
let todayWeather = "맑음";
let myScore = 85;
let currentTime = "3시";
console.log("오늘 날씨: " + todayWeather);
// 나중에 날씨가 바뀌면
todayWeather = "흐림";
console.log("바뀐 날씨: " + todayWeather);
정보를 저장하기 전에 "이것이 절대 바뀌지 않을까?"를 먼저 생각해보는 게 중요합니다.
📦 기본 연습문제
이제 배운 내용을 연습 문제를 통해서 확실히 익혀보겠습니다. 손으로 직접 써보고 실행해보는 시간입니다. 마치 새로운 악기를 배울 때 계속 연주해봐야 손에 익는 것처럼, 코딩도 직접 써보고 실행해봐야 우리 것이 됩니다. 천천히, 하나씩 해보겠습니다.
연습문제 1: 나의 기본 정보를 const로 안전하게 보관해보기
// 절대 바뀌지 않는 나의 정보들을 const로 만들어보세요
const myName = "민지"; // 내 이름
const myBirthYear = 2012; // 태어난 해
const myHometown = "서울"; // 고향
// 만든 정보들을 예쁘게 출력해보세요
console.log("=== 나의 기본 정보 ===");
console.log("이름: " + myName);
console.log("태어난 해: " + myBirthYear);
console.log("고향: " + myHometown);
연습문제 2: 학교 정보를 const로 만들고 활용해보기
// 우리 학교의 변하지 않는 정보들이에요
const schoolName = "희망초등학교"; // 학교 이름
const schoolAddress = "서울시 강남구"; // 학교 주소
const foundingYear = 1990; // 설립 연도
// 현재 연도를 기준으로 학교 역사를 계산해보세요
const currentYear = 2024;
const schoolAge = currentYear - foundingYear;
console.log("=== 우리 학교 정보 ===");
console.log("학교 이름: " + schoolName);
console.log("학교 주소: " + schoolAddress);
console.log("설립 연도: " + foundingYear);
console.log("학교 역사: " + schoolAge + "년");
연습문제 3: 수학 상수들로 계산해보기
// 수학에서 사용하는 중요한 숫자들이에요
const pi = 3.14159; // 원주율
const earthRadius = 6371; // 지구 반지름 (km)
// 원의 넓이를 계산해보세요 (넓이 = π × 반지름²)
const circleRadius = 10; // 원의 반지름 10cm
const circleArea = pi * circleRadius * circleRadius;
console.log("=== 원의 넓이 계산 ===");
console.log("원의 반지름: " + circleRadius + "cm");
console.log("원의 넓이: " + circleArea + "cm²");
// 지구 둘레도 계산해보세요 (둘레 = 2 × π × 반지름)
const earthCircumference = 2 * pi * earthRadius;
console.log("=== 지구 정보 ===");
console.log("지구 반지름: " + earthRadius + "km");
console.log("지구 둘레: " + earthCircumference + "km");
🤔 연습문제
기본 연습을 마쳤다면, 이제 조금 더 깊이 있는 문제들을 통해서 const
에 대한 이해를 확인해보겠습니다. 답을 바로 찾으려 하지 마시고, 천천히 생각해보는 시간을 가져보세요. 때로는 틀려도 괜찮습니다. 그것도 배움의 한 과정이니까요.
문제 1: 에러 찾기와 원인 설명하기
다음 코드에서 에러가 나는 줄과 그 이유를 설명해보세요.
const petName = "뽀삐";
console.log(petName);
petName = "멍멍이";
console.log(petName);
정답: 3번째 줄 petName = "멍멍이";
에서 에러가 납니다.
해설: const
로 만든 변수의 값은 절대 바꿀 수 없습니다. petName
을 처음에 "뽀삐"로 정했으면, 영원히 "뽀삐"여야 합니다. 다른 이름으로 바꾸려고 하면 자바스크립트가 "안 됩니다! 이건 바꿀 수 없는 특별한 변수입니다!"라고 에러를 보여줍니다.
문제 2: const로 적합한 정보 고르기
다음 정보들 중에서 const로 만들기에 적합한 것들을 모두 고르고, 그 이유를 설명해보세요.
A) 내 생일
B) 오늘의 날씨
C) 학교 이름
D) 현재 시간
E) 원주율(π)
F) 내 현재 기분
정답: A(내 생일), C(학교 이름), E(원주율)이 적합합니다.
해설:
- 내 생일: 한 번 태어난 날짜는 절대 바뀌지 않습니다
- 학교 이름: 학교 이름은 보통 바뀌지 않는 고정된 정보입니다
- 원주율: 수학적 상수로 우주에서 절대 바뀌지 않는 값입니다
반면에 오늘의 날씨, 현재 시간, 내 현재 기분은 시간이 지나면서 계속 바뀔 수 있어서 let
을 사용하는 게 더 좋습니다.
🔄 이전 단원들 복습하기
const
를 잘 이해했다면, 이제 저번에 배운 var
와 let
에 대해서도 기억하고 있는지 확인해볼까요?
복습문제 1: var, let, const의 차이점 정리하기
var
, let
, const
에서 같은 이름으로 변수를 두 번 만들 때와 값을 바꿀 때 어떤 차이가 있나요?
정답:
- var: 같은 이름으로 여러 번 만들 수 있고, 값도 바꿀 수 있습니다
- let: 같은 이름으로 다시 만들면 에러가 나지만, 값은 바꿀 수 있습니다
- const: 같은 이름으로 다시 만들면 에러가 나고, 값도 바꿀 수 없습니다
해설: var
→ let
→ const
순서로 갈수록 규칙이 더 엄격해집니다. const
가 가장 안전하지만 가장 제한이 많습니다.
복습문제 2: 블록 범위 확인하기
다음 코드에서 let
과 const
의 블록 범위는 어떻게 동작할까요?
{
let mood = "행복함";
const name = "철수";
console.log(mood); // 1번
console.log(name); // 2번
}
// console.log(mood); // 3번 (주석 처리됨)
// console.log(name); // 4번 (주석 처리됨)
정답: 1번과 2번은 정상 출력되고, 3번과 4번은 에러가 납니다.
해설: let
과 const
모두 블록 범위를 가져서 {}
교실 안에서만 사용할 수 있습니다. 교실을 벗어나면 두 변수 모두 사용할 수 없습니다.
💡 심화 복습 문제
이제 정말 깊이 있게 const
를 이해했는지 확인해보는 문제들입니다.
심화문제 1: var, let, const의 차이점 정리하기
var
, let
, const
의 차이점을 표로 정리해보세요.
정답:
| 특징 | var | let | const |
|------|-----|-----|-------|
| 재선언 | 가능 | 불가능 | 불가능 |
| 값 변경 | 가능 | 가능 | 불가능 |
| 스코프 | 함수 | 블록 | 블록 |
| 선언시 값 | 선택적 | 선택적 | 필수 |
해설: 이 표를 보면 const
가 가장 엄격한 규칙을 가지고 있어서 가장 안전한 변수 선언 방식이라는 것을 알 수 있습니다.
심화문제 2: 선언과 초기화 에러 이해하기
다음 코드에서 에러가 나는 줄은 몇 번째이고, 왜 그럴까요?
const score; // 1번째 줄
score = 95; // 2번째 줄
const score = 100; // 3번째 줄
정답: 1번째 줄에서 에러가 납니다.
해설: const
는 선언할 때 반드시 값을 함께 정해줘야 합니다. 빈 변수로 만들어놓고 나중에 값을 넣는 것은 허용되지 않습니다. const
는 "영원한 약속"이라서 변수를 만들 때부터 "이 변수에는 이 값이 영원히 들어있을 것입니다!"라고 약속해야 합니다.
심화문제 3: const를 쉽게 설명하기
const
를 초등학생에게 설명한다면 어떻게 할까요?
정답: const
는 타임캡슐 같은 것입니다. 타임캡슐에 소중한 물건을 넣고 땅에 묻으면, 다시는 그 물건을 바꿀 수 없잖아요? const
도 마찬가지로 한 번 값을 넣으면 절대 다른 값으로 바꿀 수 없는 특별한 변수입니다. 그래서 정말 중요하고 절대 바뀌면 안 되는 것들만 넣어야 합니다.
심화문제 4: 블록 스코프에서의 const
다음 코드의 실행 결과는 무엇일까요?
const message = "바깥 메시지";
{
const message = "안쪽 메시지";
console.log(message);
}
console.log(message);
정답: 첫 번째는 "안쪽 메시지"
, 두 번째는 "바깥 메시지"
가 나타납니다.
해설: const
도 let
처럼 블록 스코프를 가집니다. 블록 안의 message
와 밖의 message
는 이름만 같을 뿐 완전히 다른 상수입니다. 블록 안에서는 가장 가까운 message
("안쪽 메시지")를 사용하고, 블록이 끝나면 다시 바깥의 message
("바깥 메시지")를 사용합니다.
심화문제 5: const 사용 시기 판단하기
언제 const
를 사용하면 좋을까요? 3가지 상황을 써보세요.
정답: 1) 절대 바뀌지 않는 개인 정보 (이름, 생일 등), 2) 수학 상수 (π, e 등), 3) 설정값이나 규칙 (최대 점수, 게임 규칙 등)
해설: const
는 "이 값은 절대 바뀌지 않을 것입니다!"라고 확신할 수 있는 모든 것에 사용할 수 있습니다. 이렇게 하면 실수로 중요한 값을 바꾸는 일을 방지할 수 있고, 코드를 읽는 다른 사람들도 "아, 이 값은 고정된 값이구나"라고 쉽게 이해할 수 있습니다.
✅ 소단원 검토 체크리스트
이 단원에서 배운 내용들을 모두 이해했는지 확인해보겠습니다!
체크 항목 | 확인 |
---|---|
const가 무엇인지 쉬운 말로 설명할 수 있습니다 | ☐ |
const로 변수를 만드는 기본 문법을 알고 있습니다 | ☐ |
const의 재할당 금지 특성을 이해합니다 | ☐ |
const 선언시 초기화가 필수라는 것을 알고 있습니다 | ☐ |
const를 사용한 간단한 코드를 작성할 수 있습니다 | ☐ |
const와 let, var의 차이점을 말할 수 있습니다 | ☐ |
언제 const를 사용해야 하는지 판단할 수 있습니다 | ☐ |
지금까지 const
의 모든 특성과 활용법을 자세히 알아보았습니다. const
는 우리의 소중한 정보를 영원히 안전하게 지켜주는 든든한 보디가드 같은 존재입니다. 앞으로 변하지 않는 중요한 정보들은 const
로 안전하게 보관해보세요!
무료 JavaScript 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.
'1. 데이터 상자 만들기 (변수 선언) > 1.1 데이터 상자 (변수) 이야기' 카테고리의 다른 글
1.1.2 `let` - 더 안전하고 똑똑한 변수 만들기 (0) | 2025.06.27 |
---|---|
1.1.1 `var` - 자바스크립트에서 처음 만난 정보 저장하기 (0) | 2025.06.27 |