ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • variable : 변수 -> 상태값
    알라딘 코딩 2025. 3. 13. 09:47

     

     

    프로그래밍에서 어떤 값을 기지고 있는 작은 저장소를 우리말로는 '변수'라고 부릅니다.

    수학용어, 영어의 variable 을 직역한 것으로 보입니다. 

     

    프로그래밍 언어를 공부하다 접하는 여러가지 낯설은 용어중 하나는 '변수'란 단어입니다. 

     

    변수는 수학용어의 '변수' 영어 variable 이니 , 어떤 값을 가질 수 있다는 의미이지만, 

    우리는 일상에서 변수를 보통 , '어떤 일은 이런 변수가 있어...' 와 같이 예견되지 않은 어떤 상황을 지칭할 때 

    많이 사용합니다. 그래서 프로그래밍 언어에서 '변수'라는 단어를 만나면 낯설고 어렵게 느껴집니다. 

     

    저는 프로그래밍에서 영어 variable 을 '변수'라기 보다는 '상태값 저장소' 라고 번역하는게 어떤가 합니다.

    좀 길기는 하지만, '상태값 저장소'가 variable 의 의미에 더 맞는것 같습니다. 

     

    아래 코드를 예로 들면. 

     

    sum = 1 + 2

    라고 하면, sum 은 '변수'라고 생각하기 보다는 ' 1 + 2'를 더한 상태 값을 저장하는 기능을 합니다. 

     

    sum = 0 

    sum = 1 + 2

    sum = sum + 3

     

    과 같은 연속된 코드로 적으면 , 

    • sum 이라는 상태값 저장소는 처음에는 0 을 저장하고 (일종의 초기화 입니다.)
    • 다음으로, 1 + 2 의 결과값인 3을 상태값으로 저장합니다. 
    • 그후, 자신이 현재 저장하고 있는 상태값 3에 3을 더한 값인 6을 최종 상태값으로 가집니다. 

    즉, sum 이라는 variable 은 프로그램의 수행중에 보관하고 있어야 하는 어떤 '상태값' 을 저장하는 공간입니다.

     

    프로그램은 수에 대한 처리를 하는 기계이며, 

    많은 수에 대한 처리 과정중 , 중간 과정값, 결과값을 어딘가에 보관할 필요가 있습니다. 

    이때 사용하는 것이 variable 입니다. 

     

    그러니, 프로그램이 복잡해 질 수록 많은 variable 을 사용할 수 밖에 없습니다. 

     

    variable 은 물론 수학의 용어처럼 어떤 변하는 값을 가질수 있는 저장소입니다. 

    이와 같이, 프로그래밍 언어의 variable 은 , 어떤 값을 저장하기도 하고 저장된 값을 참조 할 수도 있는 

    '상태값 저장소'의 기능을 합니다. 

     

    '변수'라는 낯설은 수학용어 보다는 '상태값 저장소'가 그 뜻이 편해집니다. 

     

    앞으로의 글에서는 되도록 이면 '변수' 보다는 variable 이라는 용어를 사용하도록 하겠습니다. 

     

    variable 의 형식 

     

    1 =  1 + 2 

    위의 문장은 어떤 프로그래밍 언어에서도 오류입니다. 

     

    왜 오류일가요 ? 

    앞의 글에서 적은 것 처럼 "=" 은 비교가 아니고, 오른쪽의 값을 왼쪽에 대입(assign) 하라는 일종의 명령어 입니다.

    그런면 왼쪽에는 당연히 값을 대입할 수 있는 variable 이 와야 하는데 variable이 아닌 1이 라는 값이 왔습니다.

    당연히 맞지 않는 문장이 된것이지요. 

     

    1과 같은 값을 프로그래밍 언어에서는 상수(constant) 또는 value 라고 합니다. 

    앞의 글에서 code 와 data 에 대해 적은 내용을 떠 올려 보기 바랍니다.

     

     

    이런 이유에서 , 프르그래밍 언어에서는 variable 과 상수를 구분할 수 있는 방안이 필요합니다. 

    그리서, 프로그래밍 언어를 만든 사람들은 다음과 같은 규칙을 만들었습니다. 

     

    variable 은 

    • 숫자로 시작하지 않은다.  이름의 중간이나 끝에 숫자가 오는 것은 괜찮습니다. 
    • 영어 대소문자와 "_" 를 섞어서 사용하도록 하자. (프로그래밍 언어에 따라서는 variable 첫글자는 대문자를 사용하지 못하는 경우도 있습니다.)
    • 특수문자는 사용하지 않는다.  (a+b 같은 특수문자가 들어간 variable 을 허용하면,  a 와 b를 적으라는 것인지 'a+b' 라는 변수명인지 모호해지므로.) 

    로 하자고 정했습니다.  이렇게 정한 이유는 , 한눈에 봐도 이게 variable 인지 상수인지를 알아보기 쉽게하고

    코딩의 과정에서 많은 variable 을 만들기 편하게 하기 위해서 입니다. 

     

     

    다음은 variable 의 예입니다. 

    • sum_of_from_1_to_100 
    • sumOfFrom1_10 
    • value1 (별로 안좋은 예)
    • value2 (별로 안좋은 예) 
    • _odds

    variable 은 위의 규칙으로 내가 정한 저장소의  이름입니다. 

     

    프로그램의 기능이 많을수록 많은 variable 을 사용하게 됩니다. 기능이 많을수록 많은 상태값을 가지고 있어야 하기 때문에 많은 상태값을 저장하는 저장소인 variable 이 필요해 집니다. 

     

    그래서, variable은 이름으로 각 항목을 구분하기 쉽게 작성하는 것이 좋습니다. 즉, variable 의 이름만 봐도, 이 variable 이 어떤

    상태값을 가지고 있는지를 알 수 있게 이름을 짓는 것이 좋습니다. 

     

    아주 오래전의 프로그램밍 언어 (1980년도)들은 variable 의 길이가 2자까지 밖에 허용되지 않았습니다. (컴퓨터의 성능이 지금에 비해서는 몹시도 빈약할 때 입니다.) 요즘의 프로그래밍 언어에서는 variable 의 길이는 제한이 없다고 생각해도 됩니다. 

     

    앞으로 적을 글의 내용인 function (함수)도 이름의 규칙이 variable의 이름 짓는 규칙과 동일합니다. 

     

    코딩을 하는 사람이 이름을 짓는 variable 과 function 은 이름만 봐도 무슨 상태 값을 가지고 있다, 어떤 기능을 하는 function 인지를 알수 있게 정하는게 몹시 중요합니다. 그래야, 프로그램의 흐름을 읽기 쉽게 됩니다. 

     

    코딩에서 variable 은 생명주기가 있습니다. 

    더이상 불필요한 상태 값을 계속해서 가지고 있는 것은 낭비기 때문입니다. 

    이 variable의 생명주기 (영어로는 scope resoluttion rule 이라고 합니다) 에 대해서는  다음번 코드 블록 에서 설명하도록 하겠습니다. 

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.