변수와 상수는 프로그래밍에서 기본적이고 핵심적인 개념으로, 데이터의 저장과 관리를 위해 사용된다. 이 두 가지 요소는 프로그램의 실행 중 데이터의 유연한 처리와 저장을 가능하게 하며, 프로그래밍 언어에서는 데이터를 조작하고 다루는 데 필수적인 역할을 한다.
변수(Variable)는 프로그램에서 사용되는 값을 저장하는 메모리 공간을 의미한다. 변수는 데이터의 특성에 따라 다양한 타입으로 선언할 수 있으며, 이렇게 저장된 값은 나중에 필요한 곳에서 다시 사용할 수 있으며, 저장된 변수의 값은 변경이 될 수 있다.
자바에서는 기본형 변수(Primitive Variables)와 참조형 변수(Reference Variables) 두 가지 유형의 변수가 존재한다.
_), 달러 기호($)로 시작해야 하며, 숫자로 시작할 수 없다._), 달러 기호($)를 사용할 수 있다._), 달러 기호($)를 제외한 특수문자나 예약어(키워드)는 변수 이름으로 사용할 수 없다.1.변수 이름 영문자 및 언더바(`_`), 달러 기호(`$`)로 시작
String name; // 변수 name 선언
String $name; // 변수 $name 선언
String 1name; // 변수 이름 숫자로 시작 -> 변수 선언 불가
2.변수 대소문자 구분
int age; // 변수 age 선언
int Age; // 변수 Age 선언
4.변수 이름 언더바(`_`), 달러 기호(`$`)를 제외한 특수문자 및 예약어 사용 불가
int #value; // 변수 이름 특수문자 포함 -> 변수 선언 불가
String int; // 변수 이름 예약어로 선언 -> 변수 선언 불가
예약어
자바에서 이미 의미를 갖고 있는 키워드 (int, boolean, class 등)
자바에서 변수를 사용하기 위해서는 먼저 변수를 선언하고 초기화해야 한다. 변수를 선언하는 것은 해당 변수의 이름과 데이터 타입을 정의하는 과정이다. 초기화는 변수에 실제 값을 할당하는 것을 의미한다. 변수를 선언한 후에 초기값을 주지 않으면 해당 변수는 기본 초기값으로 자동으로 초기화된다.
int age; // 변수 선언
age = 25; // 변수 초기화
int score = 90; // 변수 선언과 초기화
변수를 선언하고 초기화한 후에는 해당 변수를 사용하여 연산하거나 다른 변수와 조합하여 프로그램 로직을 작성할 수 있다. 변수는 프로그램 실행 중에 값이 변경될 수 있다.
int count = 0; // 변수 선언과 초기화
count = count + 1; // 변수 값 변경
변수는 특정한 유효 범위(Scope)에서만 사용할 수 있다. 유효 범위란 변수가 존재하고 접근 가능한 영역을 말한다. 보통 중괄호({})로 둘러싸인 코드 블록 내에서 변수가 선언되면 해당 블록 내에서만 사용할 수 있다. 이를 블록 스코프(Block Scope)라고 한다.
아래의 예제는 정상적으로 값을 출력하는 경우와 변수가 다른 스코프에서 사용되어 오류가 발생하는 경우이다.
1.값을 정상 출력하는 경우
public class ScopeExample {
public static void main(String[] args) {
int variable1 = 10; // 변수 선언과 초기화
System.out.println(variable1); // 변수 출력
outerMethod(); // outerMethod 메서드 호출
}
public static void outerMethod() {
int variable2 = 5; // 변수 선언과 초기화
System.out.println(variable2); // 변수 출력
}
}
결과
10
5
2.오류가 발생하는 경우
public class ScopeExample {
public static void main(String[] args) {
int variable1 = 10; // 변수 선언과 초기화
System.out.println(variable1); // 변수 출력
outerMethod(); // outerMethod 메서드 호출
System.out.println(variable2); // 변수 출력 -> 메소드 외부에서 variable2에 접근할 수 없어 에러 발생
}
public static void outerMethod() {
int variable2 = 5; // 변수 선언과 초기화
}
}
변수는 프로그램에서 다양한 용도로 활용된다. 데이터 저장, 계산, 조건문, 반복문 등에서 변수를 사용하여 프로그램의 동작을 제어하고 효율적인 코드를 작성할 수 있다.
int width = 10;
int height = 5;
int area = width * height;
변수는 프로그램의 실행 중 값이 변할 수 있는 상황에서 유용하며, 데이터의 다양한 처리와 저장에 활용된다.
자바에서 상수(Constant)는 한 번 정의되면 그 값을 변경할 수 없는 변수를 의미한다. 상수는 주로 프로그램에서 변경되지 않고 일정한 값을 사용해야 할 때 사용된다. 상수는 final 키워드를 사용하여 정의하며, 전체 대문자로 작성하며 여러 단어는 언더바(_)로 구분하는 것이 관례이다.
final 키워드를 사용한다. 이 키워드를 사용하면 해당 변수의 값을 변경할 수 없게 된다._)로 단어를 구분한다.1.상수 선언
final int MAX_VALUE = 100;
final double PI = 3.14159;
final String MY_CONSTANT = "Hello, World!";
2.상수 선언 불가
final String MY_PHONE = "SAMSUNG"; // 상수 선언과 초기화
MY_PHONE = "apple"; // 상수 값 변경 -> 불가
변수와 상수 사용
따라서 변수는 프로그램의 실행 중 값이 변할 수 있는 상황에서 유용하며, 데이터의 다양한 처리와 저장에 활용된다. 반면 상수는 주로 프로그램에서 일정한 값을 사용해야 하는 경우에 활용되며, 값이 고정되어야 하므로 보다 안정적인 코드를 작성할 수 있다. 이에 따라 상황에 맞게 변수와 상수를 적절하게 선택하여 사용하는 것이 좋다.
네이밍 컨벤션
네이밍 컨벤션은 변수, 함수, 클래스, 메서드 등의 이름을 지을 때 사용되는 규칙을 의미한다. 이는 코드의 가독성을 높이고 유지보수를 용이하게 하기 위해 사용되는 중요한 원칙이다.
myVariableName, calculateTotalAmountMyClassName, CalculateTotalAmount_)로 구분한다.my_variable_name, calculate_total_amount-)으로 구분한다.my-variable-name, calculate-total-amountstrName (문자열), nCount (정수), fPrice (실수), bEnabled (부울)타입 정보를 변수명에 추가하는 것보다 의미 있는 이름을 사용하여 보다 명확하고 간결한 변수명을 사용하여
가독성을 높이는 것이 더 권장되며, 현대 프로그래밍에서는 헝가리안 표기법은 사용되지 않는 추세이다.
이러한 이유로 네이밍 컨벤션을 따르는 것은 코드를 읽고 이해하기 쉽게 만들어 코드 품질을 향상시키고 가독성을 확보하며, 다른 개발자들과의 협업 시에도 통일성을 유지하고 코드의 일관성을 보장하는 데 도움이 된다.
이처럼 프로젝트나 프로그래밍 언어, 프레임워크 등에 따라 적절한 네이밍 컨벤션을 선택하는 것은 코드의 가독성과 일관성을 유지할 수 있으며, 효율적인 협업을 실현할 수 있다.