변수

Date:     Updated:

카테고리:

변수

변수가 뭘까

  • 변수는 이름에서 알 수 있듯이 변할 수 있는 값이다. 수학에서도 자주 사용되는 개념이며, 원하는 데이터를 보관하는 상자의 개념이 된다. 이 상자의 타입을 미리 지정한다면 내가 원하는 형식의 물체를 미리 담아뒀다가 사용할 수 있고, 미리 담아뒀던 물체를 제거하고 새로운 물체를 담아놓을 수 있는 것이다. 프로그래밍에서는 변수에 담아두는 물체가 데이터이며, 아래의 그림을 통해 쉽게 이해할 수 있다.

variable_01

  • 각 상자에 들어가는 요소들의 기준을 정해 놓고 상자에 보관할 수 있다. 프로그래밍에서는 단순 정수, 실수 형태의 숫자부터 후에 배울 클래스, 즉 객체를 담아놓거나 어떤 데이터가 존재하는 메모리의 위치를 보관하기 위해 사용하기도 한다.

어떻게 사용할까

  • 변수는 핵심적으로 데이터타입변수명을 사용해 선언하며 선언과 동시에 값을 할당하는 초기화도 병행할 수 있다. 간단한 테스트를 통해 알아보자.
// C++ 언어 예시
#include <iostream>

int main()
{
	// 정수 형식의 데이터를 담아두는 변수
	// 데이터가 할당되지 않았기 때문에 빈 상자와 같다
	int integerNumber;

	// 실수 형식의 데이터를 담아두는 변수
	// 데이터를 할당(초기화)했기 때문에 상자에는 '0.5' 라는 데이터가 보관되어 있다.
	float realNumber = 0.5f;

	// 콘솔 창에 'realNumber' 변수에 보관되어 있는 값을 출력한다
	std::cout << realNumber;
}
  • 결과 :
    • variable_02
  • 위의 테스트의 결과로는 ‘realNumber’라는 변수의 값을 출력하는 코드이기 때문에, 정확하게 해당 변수가 보관중인 데이터를 출력했다. 대체 어디에 저장되어 있길래 가능한 일 일까?

변수는 어디에 어떻게 저장되길래 ‘보관’할 수 있는가?

  • 변수를 선언하면 메모리에는 원하는 자료형식의 데이터를 보관하기 위한 공간이 부여된다. 즉, 메모리의 주소를 통해 해당 데이터에 접근할 수 있다는 뜻이다. 변수를 선언했을 때 메모리에 실제로 할당되는지 간단한 테스트를 통해 확인할 수 있다.
  • 예시 코드에서 보이는 &참조자(Reference)로 불리는 개념이며, 참조자에 대한 포스팅은 추후 업로드 예정이다.
// C++ 언어 예시
#include <iostream>

int main()
{
    // 정수 형식의 데이터를 담아두는 변수
    int number;

    // 콘솔 창에 &number, 즉 number 변수의 메모리 주소값을 출력한다.
    std::cout << &number;
}
  • 결과 :
    • variable_03
  • 메모리 공간 중에서 0000008271AFFB34 라는 주소를 호출했다. 이로서 알 수 있는 것은 변수를 선언하는 순간 어디일지는 프로그램 실행 전엔 알 수 없지만, 분명 주소를 가진 메모리 공간에 변수 데이터 저장을 위한 공간이 할당되었음을 알 수 있다.

어떻게 사용하면 잘 사용할 수 있을까?

  • 위의 내용을 이해했다면 변수를 왜 사용해야 하는지 알 수 있을 것이다. 변수를 사용하는 이유와 다음는 다음과 같다.

변수 사용 이유

  • 재사용성 :
    • 코드 내에서 같은 값을 여러 번 사용할 수 있기 때문에 불필요한 코드의 양을 줄일 수 있다.
  • 코드의 가독성과 유지보수 :
    • 적절한 변수명을 사용해 코드의 의도를 더 명확하게 이해할 수 있다.
    • 값만이 존재하는 데이터에 ‘이름’을 부여함으로서, 긴 기간이 지난 후 코드를 다시 보게 되거나 타인이 코드를 봤을 때, 변수의 이름을 보고 해당 데이터의 사용 의도를 정확하게 파악할 수 있다.

사용시의 주의점

  • 명확성 :
    • 변수 이름은 해당 변수의 용도를 명확하게 표현할 수 있어야 한다. 예를들어 int s;보다는 int moveSpeed;와 같이 상세하게 이름을 사용하는 것이 좋다는 뜻이다.
    • 프로그래머는 이름을 지을 때 가장 많은 시간을 소모한다는 전설의 밈도 있다
  • 범위 :
    • 변수가 사용될 수 있는 범위에 주의해야 한다.
    • 어디에서 정의되고 어디까지 사용될 수 있는지에 따라 적절히 사용할 수 있어야 한다.
  • 불변성 :
    • 값이 변경될 일이 없거나, 변경되어서는 안되는 경우 상수로 선언하거나, 값을 외부에서 변경할 수 없도록 보호해야 한다.
    • 해당 내용은 추후 포스팅에서 다뤄질 내용이다.

댓글 남기기