본문 바로가기
JAVA & Spring

[Java] 변수란? 변수가 필요한 이유 (+그림 & 코드)

by 알기 쉬운 코딩 사전 2025. 4. 1.
반응형

 참고

문법을 배우기에 앞서 학습에 있어 가장 중요한것은 “왜?라고 생각합니다.
해당 문법이 사용되는 근본적인 이유를 학습하고 이를 바탕으로 문법을 사용하는것이 매우 중요하다고 개인적으로 생각됩니다.

 


 

변수가 필요한 이유

다음 코드를 통해 변수가 필요한 근본적인 이유가 무엇인지 살펴봅시다.

 

단순하게 숫자 10을 3번 출력하는 코드를 작성해 봅니다.

public class Var1 {
	public static void main(String[] args) {
 		System.out.println(10);
 		System.out.println(10);
		System.out.println(10);
	}
}

 

여기서 숫자 10을 3번 출력하는 대신에 숫자 20을 3번 출력하도록 코드를 변경해보겠습니다.

public class Var1 {
	public static void main(String[] args) {
 		System.out.println(20); // 10 -> 20으로 변경
 		System.out.println(20); // 10 -> 20으로 변경
		System.out.println(20); // 10 -> 20으로 변경
	}
}

 

 

단순한 예제여서 코드를 3번 변경했지만,

만약 숫자 10을 20으로 출력하는 부분이 100개라면 100개의 코드를 모두 변경해야 하는 문제가 발생합니다.

 

모든 프로그래밍 언어에서는 이런 문제를 해결하기 위해 변수라는 기능을 제공합니다.

 


 

변수 사용

 

변수를 사용하여 숫자 10을 3번 출력하는 코드를 작성해 봅니다.

public class Var2 {
    public static void main(String[] args) {
        int value = 10;

        System.out.println(value);
        System.out.println(value);
        System.out.println(value);
    }
}

 

여기서 숫자 10을 대신에 숫자 20을 출력하는 코드로 변경해보겠습니다.

public class Var2 {
    public static void main(String[] args) {
        int value = 20; // 10 -> 20으로 변경

        System.out.println(value);
        System.out.println(value);
        System.out.println(value);
    }
}

 

이제는 변수를 사용하여 숫자를 관리하기 때문에,

한 곳만 수정하면 전체 코드에 반영되어 여러 곳을 일일이 변경해야 하는 문제가 사라졌습니다.

 

 


 

변수

변수는 "값을 저장하는 박스"입니다.
숫자 뿐만이 아니라 어떠한 값이던 저장이 가능합니다.

 


 

변수 선언

Java에서 변수를 선언하면 Java 메모리 공간을 확보해서 그곳에 데이터를 저장할 수 있습니다.

그리고 변수의 이름을 통해서 해당 메모리 공간에 접근할 수 있습니다.

 

public class Var3 {
    public static void main(String[] args) {
        int value; // 변수를 선언한다.
    }
}

 


 

변수 할당

“변수를 할당한다”라는 의미는 크게 두가지로 나눌수 있습니다.

  1. 변수를 초기화한다.
    가장 처음 변수를 할당하는 것을 뜻합니다.
  2. 변수를 재할당한다.
    이미 할당한 변수를 다시 할당하는것을 뜻합니다.
public class Var3 {
    public static void main(String[] args) {
        int value; // 변수를 선언한다.
        
        value = 10; // 변수를 초기화한다.
        value = 20; // 변수를 재할당한다.
    }
}

 

반응형

댓글