프로그래밍에서 데이터를 다루는 기본 단위는 변수(variable)이다. 변수는 단순히 "값을 저장하는 그릇"을 넘어, 프로그램의 유연성과 유지보수성을 책임지는 핵심 요소이다. 이번 글에서는 자바에서 변수를 선언하고 활용하는 방법부터 타입, 규칙, 실무 팁까지 정리해보겠다.
변수란 무엇인가?
- 변수(Variable): 변할 수 있는 값을 담는 메모리 공간
- 필요성
- 같은 값을 여러 번 사용할 때 반복적으로 하드코딩하면 유지보수가 어렵다.
- 변수를 사용하면 값만 바꿔도 코드 전체가 바뀐다.
int a = 10;
System.out.println(a); // 10
a = 50;
System.out.println(a); // 50
변수는 프로그램 실행 도중에도 값을 바꿀 수 있으며, 이 덕분에 동적인 데이터 처리가 가능하다.
변수 선언과 초기화
- 변수 선언: 메모리 공간을 확보하고, 변수에 이름을 부여한 것을 의미한다.
int a;
- 변수 초기화: 선언한 변수에 처음으로 값을 저장하는 것을 의미한다.
a = 10;
- 선언 + 초기화를 동시에 할 수 있다.
int b = 20;
int c = 3, d = 4;
주의: 지역 변수(Local Variable)는 반드시 초기화 후 사용해야 한다. 초기화하지 않고 사용하면 컴파일 에러가 발생한다.
클래스 변수와 인스턴스 변수는 자바가 자동으로 초기화를 진행해준다.
int a;
System.out.println(a); // 컴파일 에러!
// java: variable a might not have been initialized
- 이런 이유가 발생하는 이유
- 컴퓨터에서 메모리는 여러 시스템이 함께 사용하는 공간이다.
- 따라서 어떠한 값들이 계속 저장될 것이다.
- 변수를 선언하면 메모리상의 어떤 공간을 차지하고 사용한다.
- 기존에 그 공간에 어떤 값이 있었는지는 아무도 모른다.
- 초기화를 하지 않으면 이상한 값이 출력될 수 있다.
변수 값 변경
변수는 실행 순서에 따라 값이 덮어쓰기 된다.
int a = 10;
System.out.println(a); // 10
a = 50;
System.out.println(a); // 50
기존 값(10)은 사라지고 새 값(50)으로 대체된다.
변수 타입 (자료형)
자바는 정적 타입 언어로, 변수를 선언할 때 반드시 타입을 지정해야 한다.
대표적인 동적 타입 언어: 파이썬(Python), 자바스크립트(JavaScript), 루비(Ruby), PHP 등
기본 타입
- int : 정수 (약 ±20억 범위)
- long : 정수(int보다 더 큰 범위 필요 시 사용, L 붙여야 함)
- double : 실수 (기본 실수 타입)
- boolean : 논리값 (true, false)
- char : 문자 1개 (작은 따옴표 'A')
- String : 문자열 (큰 따옴표 "Hello")
int i = 100;
double d = 10.5;
boolean flag = true;
char c = 'A';
String s = "Hello Java";
숫자 타입 범위

- 실무에서는 아래와 같은 자료형을 사용하는 것을 권장한다.
- 정수 → int (만약 20억이 넘을 것 같으면 long을 쓰고, 파일을 다룰 때는 byte를 쓰자)
- 실수 → double
- 참/거짓 → boolean
- 문자열/문자 → String
리터럴(Literal)
소스 코드에 직접 적은 값들을 리터럴이라고 한다.
int a = 100; // 정수 리터럴
double b = 10.5; // 실수 리터럴
boolean c = true; // 불리언 리터럴
변수는 변할 수 있지만, 리터럴은 프로그램에 고정된 값이다.
따라서 리터럴 자체는 변하지 않는다.
변수 명명 규칙
필수 규칙
- 숫자로 시작 불가
- 공백 불가
- 예약어 사용 불가 (int, class 등)
- 영문자, 숫자, _, $ 만 허용
권장 관례
- 클래스 이름은 대문자 시작 + 낙타표기법
- 상수는 대문자 + 언더스코어(_)
- 패키지는 소문자
- 그외는 소문자 시작 + 낙타표기법(camelCase)
정리하자면...
- 변수는 값을 저장하는 메모리 공간이며, 실행 중 변경 가능하다.
- 선언 → 초기화 → 사용 순서가 중요하다.
- 자바는 정적 타입 언어로, 타입을 맞춰야 한다.
- 실무에서는 int, long, double, boolean, String 위주로 사용한다.
- 변수 이름은 규칙(필수) + 관례(사실상 필수)를 지켜야 한다.
'java' 카테고리의 다른 글
| Java 스코프(Scope)와 형변환(Type Casting) 정리 (0) | 2025.09.09 |
|---|---|
| Java 반복문(Loop) 정리 (0) | 2025.09.09 |
| Java 조건문(Conditional Statements) 정리 (0) | 2025.09.09 |
| Java 연산자(Operator) 정리 (0) | 2025.09.08 |
| Java 기초부터 실행 원리까지 (0) | 2025.09.08 |