메모리에 데이터를 사용하기 위한 방법 - 변수

컴퓨터/프로그래밍 기초

728x90
반응형

 

먼저 보면 좋은 것 
더보기

변수 (Variable)

프로그래밍을 공부를 한다면 가장 먼저 배우는 것이 이 변수일 것입니다. 그리고 변수는 사용자 또는 프로그래머의 의도대로 변할 수 있는 수를 변수라고 말합니다.  조금 더 변수에 대하여 자세히 말하자면 메모리 주소를 쉽게 찾아가기 위한 별명이라고 생각하시면 됩니다. 1Byte 단위로 되어있는 수많은 메모리의 공간을 주소로 정의하고 이 메모리 공간을 얼마 큼을 이용을 해서 어떠한 정보를 입력하고 CPU를 통해 처리한 정보를 다시 저장하여 사용합니다.

 

만약, 우리가 사용하고 있는 컴퓨터가 하나의 프로그램만을 사용한다면 메모리의 공간이 엄청 클 필요도 없고 변수의 개념이 필요가 없을 수도 있습니다. 왜냐면 직접 메모리 주소를 이용하여 프로그래밍을 하여 데이터를 저장하고 사용하면 되기 때문입니다.

하지만 우리가 사용하고 있는 대부분 의 컴퓨터는 정말로 다양한 프로그램을 동시에 이용합니다. 그런데 직접 메모리의 주소에 데이터를 입력한다면 다른 프로그램에서 그 메모리를 사용할 수 없을 것입니다. 만약 같은 주소의 메모리를 가지고 프로그래밍을 한 두 개의 프로그램을 켠다면 분명 충돌이 생겨 문제가 발생하기 때문입니다.

 

메모리 주소를 직접 이용하여 프로그래밍을 한다면?

이해가 쉽도록 한 가지 예시를 들어보겠습니다. 총 3개의 프로그램이 있습니다. 그리고 프로그램을 가지고 있는 컴퓨터는 10Byte의 메모리 용량을 가지고 있다고 가정해 보겠습니다.

 

1번 프로그램은 3Byte의 메모리 공간이 필요해 0번부터 2번 메모리 주소를 사용하여 프로그램을 만들었습니다.

2번 프로그램은 8Byte의 메모리 공간이 필요해 0번 쿠터 7번 메모리 주소를 사용하여 프로그램을 만들었습니다. 

3번 프로그램은 2Byte의 메모리공간이 필요해 8번부터 9번 메모리 주소를 사용하여 프로그램을 만들었습니다.

 

하나의 프로그램만 돌린다면 크게 문제는 없을 것입니다. 하지만 동시에 2가지 이상의 프로그램을 켠다면 어떻게 될까요?

 

1번 프로그램과 2번 프로그램을 동시에 실행시키면 똑같은 메모리의 공간을 사용하기 때문에 문제가 발생될 것입니다.

1번과 3번, 2번과 3번만 사용한다고 하면 문제가 없을 것입니다. 

그러면 컴퓨터의 메모리의 용량을 키우면 동시에 3개의 프로그램을 실행시킬 수 있을까요?

이미 프로그램을 만들 때 메모리의 주소의 주소를 직접 설정을 하였기 때문에 컴퓨터의 메모리 용량이 커진다고 해도 사용을 하기에는 쉽지 않을 것입니다. 커진 메모리의 용량을 고려하여 다시 프로그램을 만들어야 될 것입니다.

 

변수의 등장 - 효율적인 메모리 활용이 가능

변수는 프로그래머가 의도하여 자유롭게 변할 수 있는 수라고 말씀드렸습니다.

그리고 메모리 주소를 가리키는 별명이라고 했습니다. 변수를 활용하여 프로그래밍을 한다면 다음과 같을 것입니다.

 

1번 프로그램은 3Byte의 메모리 공간이 필요해 A라는 3Byte 공간을 정의하여 프로그램을 만들었습니다.

2번 프로그램은 8Byte의 메모리 공간이 필요해 B라는 8Byte 공간을 정의하여 프로그램을 만들었습니다. 

3번 프로그램은 2Byte의 메모리 공간이 필요해 C라는 8Byte 공간을 정의하여 프로그램을 만들었습니다.

 

위의 표와 같이 변수를 이용하여 프로그램을 만들고 컴퓨터에 사용 안 되는 메모리 공간에 프로그램의 변수들을 할당하여 사용한다면 조금 더 효율적으로 사용할 수 있는 것입니다. 물론 1번과 2번을 동시에 실행시키고 싶어 메모리를 추가한다면 다시 프로그램을 만들 필요가 없이 2가지의 프로그램을 동시에 돌릴 수 있을 것입니다.

 

요약 전

물론 변수만으로 위의 그림처럼 메모리의 빈 공간을 찾아서 할당하고 사용하는 것은 아닙니다. 하지만 프로그래밍을 한다면 변수는 가장 기본적인 요소입니다. 이 변수가 단순히 변하는 수라고 생각하기보다 저런 이유 때문에 변수가 만들어지고, 메모리 공간을 표현하는 별명이기 때문에 공간을 찾아갈 수 있다면 자유롭게 그 안의 데이터를 변화시킬 수 있다는 내용을 이해하면 좋을 것 같습니다.

 

요약

  • 프로그래밍에서 의미적으로 변수란 변화할수 있는 수를 일컫는다.
  • 이 변수는 결국 메모리 주소를 쉽게 찾아가기 위한 별명이다.
  • 변수를 이용하여 한정된 컴퓨터의 메모리 공간을 좀더 효율적으로 사용할 수 있다.
728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :