자바 프로그래밍의 가장 기초이자 핵심인 **변수(Variable)**에 대해 명확하게 정리해 드릴게요.
변수는 데이터를 담는 '그릇' 혹은 '상자'와 같아서, 프로그램이 돌아가는 동안 필요한 정보를 저장하고 관리하는 역할을 합니다.
📘 1. 변수의 정의 및 기본 개념
**변수(Variable)**란 단 하나의 값을 저장할 수 있는 메모리상의 공간에 이름을 붙인 것입니다.
- 메모리 공간의 확보: 프로그래밍을 할 때 데이터를 처리하려면 컴퓨터의 메모리(RAM)에 데이터를 담을 장소가 필요한데, 이를 변수라고 합니다.
- 이름표(Label): 메모리의 주소는 0x1234처럼 복잡한 숫자로 되어 있어 사람이 다루기 어렵기 때문에, age, score와 같이 사람이 이해하기 쉬운 이름을 붙여 관리합니다.
- 값의 변화: '변수'라는 이름 그대로, 한 번 저장된 값을 언제든지 지우고 새로운 값으로 바꿀 수(변할 수) 있습니다.
📘 2. 변수 사용의 3단계
자바에서 변수를 사용하려면 반드시 다음의 흐름을 지켜야 합니다.
[1단계] 변수 선언 (Declaration)
어떤 종류의 데이터를 담을지(타입)와 이름이 무엇인지 결정하여 메모리 공간을 예약합니다.
Java
int age; // 정수를 담을 age 변수 선언
double height; // 실수를 담을 height 변수 선언
[2단계] 변수 초기화 (Initialization)
선언된 변수에 처음으로 값을 저장하는 과정입니다. 자바의 로컬 변수는 초기화하지 않고 읽으려 하면 컴파일 에러가 발생합니다.
Java
age = 25; // age 상자에 25라는 값을 처음으로 채움
int score = 100; // 선언과 동시에 초기화 (실무에서 가장 많이 쓰는 방식)
[3단계] 변수 사용 (Usage)
저장된 값을 읽어서 출력하거나, 계산에 활용하거나, 새로운 값을 대입(재할당)합니다.
Java
System.out.println(age); // 값 읽기 (참조)
age = 30; // 값 재할당 (기존 25는 사라지고 30이 저장됨)
int nextAge = age + 1; // 연산에 활용하여 새로운 데이터 생성
📘 3. 변수의 종류: 데이터 타입 (Data Type)
자바는 변수에 담을 데이터의 성격에 따라 타입을 엄격히 구분하는 '강한 타입 언어'입니다.
기본 타입 (Primitive Type) - 실제 값을 직접 저장
- 정수형: byte(1 byte), short(2), int(4, 기본), long(8, 매우 큰 수, 뒤에 L 추가)
- 실수형: float(4, 뒤에 f 추가), double(8, 기본, 더 정밀함)
- 문자형: char(2, 유니코드 한 글자, 작은따옴표 '' 사용)
- 논리형: boolean(1, true 또는 false)
참조 타입 (Reference Type) - 메모리 주소를 저장
- 종류: String(문자열, 큰따옴표 "" 사용), 배열, 모든 클래스 객체 등
📘 4. 변수 명명 규칙 (Naming Convention)
오류를 방지하고 가독성을 높이기 위한 변수 이름 짓기 약속입니다.
- 필수 규칙 (어기면 컴파일 에러):
- 숫자로 시작할 수 없습니다.
- 대소문자를 엄격히 구분합니다 (myAge와 myage는 다름).
- 자바 예약어(public, static, int 등)는 사용할 수 없습니다.
- 관례 (개발자 간의 약속):
- 카멜 케이스(Camel Case): 첫 단어는 소문자, 뒤 단어 첫 글자는 대문자로 씁니다 (예: userPhoneNumber).
- 의미 있는 이름: a, b 보다는 studentCount처럼 용도를 명확히 표현합니다.
📘 5. 변수의 유효 범위: 스코프 (Scope)
변수는 선언된 위치에 따라 사용 가능한 범위와 메모리에서 사라지는 시점(수명)이 결정됩니다. **"변수는 자신이 선언된 중괄호 { } 블록 안에서만 생존한다"**는 것이 핵심입니다.
1) 로컬 변수 (Local Variable)
- 위치: 메서드, if문, for문 등의 내부 블록.
- 범위: 선언된 지점부터 블록이 끝나는 }까지만 유효하며, 블록을 벗어나면 즉시 소멸합니다.
2) 인스턴스 변수 (Instance Variable)
- 위치: 클래스 블록 내부(메서드 밖).
- 범위: 클래스로부터 객체(인스턴스)가 생성될 때 만들어져서 객체가 사라질 때까지 유지됩니다.
3) 클래스 변수 (Static Variable)
- 위치: 클래스 내부에서 static 키워드가 붙은 변수.
- 범위: 프로그램이 시작될 때 단 한 번 메모리에 올라가며, 프로그램 종료 시까지 모든 객체가 공유합니다.
🛠️ 통합 실전 예제 코드
Java
public class VariableComplete {
static int globalCount = 0; // [클래스 변수] 프로그램 종료 시까지 공유
int instanceId = 1; // [인스턴스 변수] 객체와 생사를 함께함
public void manageData() {
int localVar = 50; // [로컬 변수] 메서드 종료 시 소멸
if (localVar > 0) {
int innerVar = 100; // [로컬 변수] if문 종료 시 소멸
System.out.println(innerVar);
}
// System.out.println(innerVar); // 에러! 범위를 벗어남
}
}
최종 요약
- 변수는 데이터를 담는 이름 있는 메모리 상자이다.
- 선언 → 초기화 → 사용의 단계를 거치며, 타입에 맞는 데이터만 넣어야 한다.
- 스코프 규칙에 따라 변수는 자신이 태어난 { } 블록 안에서만 유효하다.
자바 프로그래밍의 첫 단추인 변수에 대해 완벽히 이해하셨나요?

'New' 카테고리의 다른 글
| Axios (0) | 2025.09.17 |
|---|---|
| Hash URL (0) | 2025.09.07 |
| How to Run a Java Program in Command Prompt (0) | 2025.08.27 |
| 데이터베이스 테이블의 주요 구성 요소 (3) | 2025.08.15 |
| 데이터베이스의 구성 요소 (3) | 2025.08.15 |