변수
변수(Variable)
이 문서에서는 앞서 살펴본 데이터들을 저장하기 위한 변수
에 대해서 알아본다.
리터럴(Literal)
리터럴(Literal)이란 의미가 변하지 않는 값을 의미한다. 예를들어 100
이라는 값이 있다고 할 때, 이 값은 어떠한 경우에도 의미가 달라지지 않기 때문에 리터럴이라고 볼 수 있다. 이외에도 우리가 일반적으로 알고 있는 값들은 모두 리터럴이라고 볼 수 있다.
A
10
3.14
true
Hello
변수(Variable)
변수란 리터럴을 저장할 수 있는 공간을 의미한다. 필요에 의해 값을 보관해두었다가 꺼내서 쓸 수 있도록 만들어진 공간을 변수(Variable)이라고 부른다. 우선 다음 코드를 보며 변수의 필요성에 대해서 파악해본다.
위의 예제는 오로지 리터럴만을 사용하여 계산을 수행하였다. 이럴 경우 발생할 수 있는 문제는 다음과 같다.
자장면과 짬뽕 가격이 각각 1000원씩 인상된 경우 몇 군데를 수정하여야 하는가?
자장면과 짬뽕을 주문한 수량이 각각 달라질 경우 몇 군데를 수정하여야 하는가?
프로그램은 언제나 변할 수 있다. 변해야 한다. 다양한 요구사항을 처리할 수 없는 프로그램은 프로그램이라고 말할 수 없으며, 거의 모든 데이터는 변할 수 있다는 것을 전제조건으로 생각하며 진행해야 한다. 따라서 수정하기 쉽게 만들어야하며, 변수를 이용하면 이러한 작업들이 가능해진다.
변수의 형태는 아직 자세히 살펴보지 않았지만 코드를 보면 달라진 점이 확연히 눈에 들어온다. 바로 한 번만 수정하여 프로그램을 변화시킬 수 있다는 점인데, 실제로 작성한 뒤 a, b, c, d의 값을 변경시키면 모든 출력내용이 그에 맞게 수정되는 것을 확인할 수 있다. 이러한 프로그램이 더 가치있는 프로그램이며, 우리는 프로그래밍을 할 때 변화할 수 있는 값과 변화하지 않는 값이 무엇인지 고민하면서 구현해야 한다.
위에서 만든 프로그램은 두 가지 문제점을 더 가지고 있다.
이름이 직관적이지 않아서 알아보기 어렵다.
a*c
,b*d
와 같은 중복 코드가 발생한다
이름이 직관적이지 않으면 작성한 후에 이를 알아보기 어려우며, 중복코드가 발생하면 수정이 번거로워진다. 따라서 변수의 이름을 바꾸고, 변수를 추가하여 문제를 해결한다.
코드는 더 길어지지만 이해하기 쉽고 중복코드가 제거된 프로그램이 완성되었다. 물론 한글로 이름을 작성해도 되지만, 한글을 지원하지 않는 운영체제에서 오류가 발생할 수 있기 때문에 일반적으로 영어로 작성한다. 모든 개발자들이 영어로 작성하기 때문에 처음부터 영어로 작성하는 연습을 하는 것이 좋다. 이름이 생각나지 않을 경우 번역기를 적극적으로 활용할 것을 권장한다.
변수를 사용하면 프로그램이 좀 더 고치기 쉽고, 이해하기 쉽게 변한다. 하지만 그만큼 난이도가 올라가고, 생각을 정리해야하기 때문에 어려워진다는 단점이 있다. 따라서 프로그래밍을 하기 전 필요한 값들에 대해서 정리하고, 어떠한 변수를 만들 것인지에 대해서 충분히 생각하는 시간을 가지는 것이 좋다.
변수의 종류
변수는 자료와 정보에서 살펴본 형태로 구분되어 있다.
크게 숫자
, 논리
, 사용자 정의 자료형
으로 구분되며 문자열은 사용자 정의 자료형에 포함된다.
숫자
정수 : 소수점이 없는 숫자(byte, short, int, long)
실수 : 소수점이 있는 숫자(float, double)
문자 : 번호가 부여된 글자(char)
논리 :
예
/아니오
처럼 두 가지 상태를 표현할 수 있는 값(boolean)사용자 정의 자료형 : 사용자의 필요에 의해 직접 만드는 형태
문자열 : 긴 문자 모음을 처리하기 위해 자바에서 제공하는 도구(String)
숫자는 저장 형태의 차이로 인해 소수점이 없는 정수
와 소수점이 있는 실수
로 나눠지며 문자
는 정수
에 포함되는 특수한 형태의 데이터이다. 구체적인 저장 형태의 특징과 차이점에 대해서는 해당 문서에서 다룬다.
변수의 선언
변수는 사용하기 전 선언을 통해 사용할 것임을 명시해야 한다. 가장 대표적인 정수 형태인 int
를 예로 들어 선언 방법에 대해서 살펴본다.
변수는 위와 같이 선언해야 사용할 수 있다. 지금은 선언만 한 뒤에 값을 집어넣은 적이 없기 때문에 사용이 불가하며, 사용하기 위해서는 초기화
를 수행해야 한다.
변수를 사용할 수 있는 형태로 만드는 것을 초기화
라고 한다. 변수에 어울리는 형태의 데이터를 집어 넣어야 초기화
가 정상적으로 수행된다.
다음과 같이 한 번에 선언과 초기화를 할 수도 있다.
초기화까지 마친 변수는 원하는 장소에 이름을 통해 불러와서 사용할 수 있다. 예를 들어서 출력을 하고 싶다면 다음과 같이 작성할 수 있다.
만약 선언 후 초기화를 여러 번 수행하면 마지막 값이 남는다. 기존에 초기화된 값은 덮어쓰기 처리되어 사라진다.
Last updated