4.1 변수 선언과 저장
프로그래밍에서 데이터를 다루는 가장 기본적인 방법, 변수(Variable)에 대해 알아봅시다.

1. 변수란 무엇인가? (Data Box) 📦
1) 개념
변수는 하나의 값을 저장할 수 있는 메모리 공간입니다. 쉽게 말해, 프로그램에서 사용할 데이터를 담아두는 이름표가 붙은 상자라고 생각하면 됩니다.
2) 비유: “물건 정리 상자”
- 이사할 때 “주방용품”, “책”, “옷”이라고 쓴 상자를 준비하듯이, 프로그래밍에서도 데이터를 담기 전에 어떤 데이터를 담을 상자인지 미리 정해야 합니다.
- 주의: “옷” 상자(
int)에 “물”(String)을 담으려고 하면 안 들어갑니다. (타입 일치 필요)
2. 변수 선언 (상자 준비하기) 🏷️
변수를 사용하려면 먼저 선언(Declaration)을 해야 합니다. “나 이제부터 이 이름으로 된 상자를 쓸 거야!”라고 컴퓨터에게 알리는 것입니다.
// 타입 변수이름;
int age; // 정수(int)를 담을 상자, 이름은 age
double height; // 실수(double)를 담을 상자, 이름은 height
상자 만들기 시각화
graph TD
Decl[int age;] --> Box(("| |<br>age (int)"))
style Box fill:#fff,stroke:#333
- 아직 상자 안은 비어있습니다. (정확히는 알 수 없는 쓰레기 값이 들어있을 수 있습니다.)
3. 값 대입 (상자에 물건 넣기) 📥
준비된 상자에 값을 넣는 것을 대입(Assignment)이라고 합니다.
대입 연산자 =를 사용합니다.
age = 25; // age 상자에 25를 넣음
height = 175.5 // height 상자에 175.5를 넣음
1) 대입 연산자 = 의 의미
수학에서는 =가 “같다”는 뜻이지만, 프로그래밍에서는 “오른쪽의 값을 왼쪽의 상자에 넣어라”는 뜻입니다.
graph LR
Value[25] -->|대입 (=)| Box(("| 25 |<br>age"))
style Box fill:#bfb,stroke:#333
4. 변수 초기화 (Initialization) 🆕
변수 선언과 동시에 값을 넣는 것을 초기화라고 합니다. 가장 많이 사용하는 방식입니다.
int score = 90; // 상자를 만들자마자 90을 넣음
초기화하지 않은 변수는 사용할 수 없다! 🚫
int value; // 선언만 함 (값 없음)
int result = value + 10; // (X) 에러 발생!
- 비유: 빈 상자에서 물건을 꺼내려다가 손이 허공을 가르는 것과 같습니다. 반드시 값을 넣은 후에 사용해야 합니다.
4.1 변수 선언과 저장
프로그래밍에서 데이터를 다루는 가장 기본적인 방법, 변수(Variable)에 대해 알아봅시다.

1. 변수란 무엇인가? (Data Box) 📦
1) 개념
변수는 하나의 값을 저장할 수 있는 메모리 공간입니다. 쉽게 말해, 프로그램에서 사용할 데이터를 담아두는 이름표가 붙은 상자라고 생각하면 됩니다.
2) 비유: “물건 정리 상자”
- 이사할 때 “주방용품”, “책”, “옷”이라고 쓴 상자를 준비하듯이, 프로그래밍에서도 데이터를 담기 전에 어떤 데이터를 담을 상자인지 미리 정해야 합니다.
- 주의: “옷” 상자(
int)에 “물”(String)을 담으려고 하면 안 들어갑니다. (타입 일치 필요)
2. 변수 선언 (상자 준비하기) 🏷️
변수를 사용하려면 먼저 선언(Declaration)을 해야 합니다. “나 이제부터 이 이름으로 된 상자를 쓸 거야!”라고 컴퓨터에게 알리는 것입니다.
// 타입 변수이름;
int age; // 정수(int)를 담을 상자, 이름은 age
double height; // 실수(double)를 담을 상자, 이름은 height
상자 만들기 시각화
graph TD
Decl[int age;] --> Box(("| |<br>age (int)"))
style Box fill:#fff,stroke:#333
- 아직 상자 안은 비어있습니다. (정확히는 알 수 없는 쓰레기 값이 들어있을 수 있습니다.)
3. 값 대입 (상자에 물건 넣기) 📥
준비된 상자에 값을 넣는 것을 대입(Assignment)이라고 합니다.
대입 연산자 =를 사용합니다.
age = 25; // age 상자에 25를 넣음
height = 175.5 // height 상자에 175.5를 넣음
1) 대입 연산자 = 의 의미
수학에서는 =가 “같다”는 뜻이지만, 프로그래밍에서는 “오른쪽의 값을 왼쪽의 상자에 넣어라”는 뜻입니다.
graph LR
Value[25] -->|대입 (=)| Box(("| 25 |<br>age"))
style Box fill:#bfb,stroke:#333
4. 변수 초기화 (Initialization) 🆕
변수 선언과 동시에 값을 넣는 것을 초기화라고 합니다. 가장 많이 사용하는 방식입니다.
int score = 90; // 상자를 만들자마자 90을 넣음
초기화하지 않은 변수는 사용할 수 없다! 🚫
int value; // 선언만 함 (값 없음)
int result = value + 10; // (X) 에러 발생!
- 비유: 빈 상자에서 물건을 꺼내려다가 손이 허공을 가르는 것과 같습니다. 반드시 값을 넣은 후에 사용해야 합니다.
5. 변수 이름 명명 규칙 (Naming Convention) 📜
변수 이름은 개발자가 마음대로 지을 수 있지만, 몇 가지 규칙과 관례가 있습니다.
- 영어 대소문양 구분:
score와Score는 다른 변수입니다. - 첫 글자는 소문자:
myScore(권장),MyScore(X - 클래스 이름 같음) - 카멜 표기법(CamelCase): 여러 단어를 합칠 때, 두 번째 단어부터 첫 글자를 대문자로 씁니다. (낙타 등처럼 불룩하다는 뜻 🐫)
mathScore,userName,maxSpeed
- 예약어 사용 금지: 자바가 이미 쓰고 있는 단어(
int,class,public등)는 변수 이름으로 쓸 수 없습니다.
코딩 영단어 학습 📝
코딩에서 영어 단어의 의미만 정확히 이해해도 절반은 성공입니다! 오늘 배운 핵심 영단어들을 다시 한번 짚고 넘어가 볼까요?
Variable: 베리어블, 변수. (프로그램이 실행되는 동안 변할 수 있는 수많은 데이터를 안전하게 담아두기 위해 이름표를 붙인 메모리 상자)Declaration: 데클러레이션, 선언. (앞으로 이 예쁜 이름의 상자(변수)를 쓰겠다고 컴퓨터와 컴파일러에게 위풍당당하게 미리 알리는 개업 신고)Initialization: 이니셜라이제이션, 초기화. (처음으로 갓 만들어진 텅 빈 상자에 최초의 의미 있는 첫 번째 값을 쏙 집어넣는 작업)Assignment: 어사인먼트, 대입. (오른쪽에 있는 데이터 값을 왼쪽의 변수 상자에 거침없이 복사해서 덮어 씌우는=연산 작업)