brunch

You can make anything
by writing

C.S.Lewis

by 스스로 코딩 두셀코 Nov 25. 2017

코딩 기초 개념 이해하기 - 변수

변수란 무엇일까요?

코딩 기초 개념 이해할 때 가장 먼저 무엇을 배워볼까요?


대부분이 그렇듯이, 가장 먼저   '변수'라는 개념을 배울 건데 다음과 같은 내용들은 배울 거예요.


1. '변수' 가 뭐지? (변수의 개념)

2. '변수'의 종류는 뭐가 있지? (변수와 데이터 타입)

3. 변수를 어떻게 사용을 할 수 있을까? (변수의 선언)




1. 변수란?

변수는 무엇일까요?

'변수'는 어떤 공간*에 어떤 저장하기 위한 이름을 가진 공간이에요.


*여기서 공간은 좀 더 정확히 얘기하자면 컴퓨터의 메모리를 가리켜요. 메모리는 컴퓨터의 핵심 구성품 중 하나라고 생각하시면 돼요!


변수란 다음과 같이 흐름으로 정의할 수 있어요.


1단계. 변수는 공간이다.

2단계. 변수는 어떤 값을 저장하기 위한 공간이다.

3단계. 변수는 어떤 값을 저장하기 위한 이름을 가진 공간이다.


백 번 설명하는 것보다 예시 하나 드는 게 이해가 훨씬 잘 되겠죠?


한 예시로 우리에게 다음과 같은 미션이 주어졌다고 해봐요.

컴퓨터에게 두 수를 더할 수 있는 간단한 일을 시켜보자


우리가 암산으로 빨리 해치웠던 덧셈을 하려면 컴퓨터에게 어떻게 명령을 내려야 할까요?


가장 먼저, 덧셈을 하려면 더할 두 개의 숫자가 있어야겠지요?


덧셈을 하는 두 수를 위해 각자의 공간을 만들어줘야 해요.


"컴퓨터야, 두 수를 더할 거니까 공간 두 개만 만들어~ "라고 말하는 것과 같죠.


컴퓨터야, 라고 부르니까 정이 없죠? 앞으로 컴퓨터를 '코코넛 봇'이라고 부를게요.


그러면 코코넛봇은 성실하게 공간 A 와 공간 B를 만들어줍니다.


시키는 대로 잘 하죠?


아, 그리고 두 수를 더한 결과를 저장할 공간 C 도 필요하겠죠?


그럼, 공간 C도 만들어달라고 합니다.


코코넛봇아, 공간 C도 만들어 줘!



자, 코코넛봇이 덧셈을 할 수 있는 모든 공간을 만들어 줬으니, 덧셈을 해볼까요?


가장 먼저, 우리가 만들어 놓은 공간 A 와 공간 B에 덧셈을 할 두 개의 값을 넣어줘야겠죠?


코코넛봇아, 공간 A에 10을, 공간 B에 20을 넣어줘!

그리고 더해야겠죠? 더한 결과 30은 어디에 담죠?


그렇죠! 아까 공간 A와 공간 B를 더한 결과를 담으려고 만들어놓은 공간 C 에 담아야겠죠?


코코넛봇아, 공간 A와 공간 B에 담긴 값들을 더해서 공간 C에 넣어줘!



자, 이렇게 해서 우리는 변수를 활용해서 덧셈을 해봤습니다.


이제 두 수를 더하기 위해서 코코넛봇에게 시켜야 될 일이 이해가 되셨나요?


그리고 변수가 어떤 값을 담기 위한 공간이라는 개념이 확실이 와 닿나요?


다시 한번 더 반복하면, '변수'는 어떤 값을 저장하기 위한 이름을 가진 공간이에요.


- 어떤 값 : 10, 20
- 이름 : 공간 A, 공간 B


'변수'라는 개념을 이해한 것 같으니 변수에 대해서 좀 더 알아볼까요?



변수는 어떤 특징을 가지고 있을까요?

'변수'에 들어간 값은 언제든지 다른 값으로 덮어씌워질 수 있어요.


실생활에서 '변수'라는 말을 많이 쓰이죠?


"스포츠 경기에서는 날씨가 큰 변수다!"


변수의 일반적인 의미는 어떤 상황이 변할 수 있는 요인 또는 수학에서 여러 가지 값으로 변할 수 있는 값을 뜻합니다. (출처 : 네이버 사전)  


프로그래밍에서도 변수는 비슷한 속성을 가지고 있어요.


우리가 위에서 만든 공간 A와 공간 B에는 각각 10, 20만 들어갈 수 있는 것이 아니라 30도 들어갈 수 있고, 40도 들어갈 수 있어요!


공간 A와 B에 각각 30과 40을 넣고 더해서 70이라는 결과를 공간 C에 저장할 수 있고,



9와 1이라는 더한 10을 저장할 수 있는 것이죠.


그래서 변수를 쓰면 편리한 것이 변수가 어떤 역할을 할지 내 마음속에 정해두고 이름을 붙이고 나면, 새로운 공간을 만들지 않고서 값만 바꾸면 돼요.


그럼 상수도 있을까요? 네 있습니다! 한 번 저장된 값은 바뀌지 않는 공간이죠!
예를 들면 PI(π) = 3.14와 같은 게 있겠죠?




변수의 종류 (= 데이터 타입, 자료형)


변수는 어떤 값을 저장하기 위한 공간이라고 했죠? 그러면 어떤 값이라고 하는 것에는 뭐가 있을까요?


10, 20, 30 같은 자연수가 있을 수도 있고, -10, -20, -1000 같은 음수도 있을 수도 있고, 1.1, 0.0009 -0.99999 같은 실수도 있겠죠? 또 뭐가 있을까요? 문자 A, B, C, a, b, c  도 될까요? 네, 됩니다! 게다가 '&, %, #, !'과 같은 특수문자까지 가능하죠!


컴퓨터에서 0과 1로 표현할 수 있는 것들은 모두 변수에 저장될 수 있는 값이 될 수 있어요!


컴퓨터는 정수, 실수, 문자 등 각기 다른 종류의 값을 저장할 수 있는 변수의 종류가 있습니다.


정수용 변수, 문자용 변수, 실수용 변수처럼 다른 종류의 값을 위해 각각 다른 종류의 변수를 가지고 있는 것이죠.



여러 종류가 있지만, 대표적으로 정수, 실수, 문자가 있습니다.

정수는 우리가 알고 있다시피 -100, -33, 0, 1, 2, 10000 등과 같이 양의 정수, 음의 정수, 0을 가리킵니다
실수는 1.0, 100.444, -12.9와 같이 소수점을 가지는 숫자를 가리킵니다.
문자는 일반적으로 영어 대소문자(a, b, c, A, B, C...)와 특수문자 (!, $, ^, @, *...) 등을 가리킵니다.


이 외에도 데이터 종류는 더 다양할 뿐만 아니라 내가 정의할 수도 있수도 있어요. 하지만 지금 알면 너무 머리가 아프니, 일단은 변수의 데이터 종류인 데이터 타입이라는 게 존재하고, 데이터 타입은 기본적으로 정수, 실수, 문자가 있구나 라고만 알아두세요! :)




변수의 선언이란?


변수를 사용하려면 코코넛봇에게 "코코넛봇아, 나에게 변수의 공간을 만들어 줘!"라고 말을 해야할텐데 어떻게 말을 할까요? 우리가 말하는 것을 그대로 이해하면 참 좋겠지만, 코코넛봇은 그렇게 똑똑하지 않아요. 그래서 우리는 정해진 형식에 따라서 코코넛봇에게 공간을 만들어달라고 얘기를 해야 해요.


이것을 '변수의 선언'이라고 불러요.


'변수의 선언' 이란, 변수를 사용하기 전 변수를 사용하겠다고 컴퓨터에게 알리는 것이에요.


위에 두 수를 더하기 위한 변수 '공간 A'와 '공간 B'에 대해서 '변수 공간 A와 공간 B를 선언했다'라고 말해요.


변수를 선언하는 정해진 형식은 다음과 같습니다.

 데이터 종류 + 변수 이름 + 세미콜론 (;)


예를 들어, 내가 정수 10과 20을 더할 공간 A, 공간 B를 만들고 싶다 하면,

정수    공간 A;
정수    공간 B;

위와 같이 선언을 할 수 있겠죠?



주의할 점은, 이렇게 선언하는 방식이 모든 프로그래밍 언어에 대해서 적용이 되는 건 아니에요! 저번에도 말씀드렸듯이 C를 기준으로 설명을 드리는 거예요!

파이썬이나 자바 스크립트 같은 스크립트 언어에서는 데이터의 종류를 써주지 않아도 알아서 데이터 종류를 인식해주고, 세미콜론을 쓰지 않아도 돼요. 하지만 C와 Java 같은 언어에서는 정수, 실수, 문자와 같은 데이터 종류와 세미콜론을 꼭 써줘야 해요.


하지만 언어에 따라서 다 다른데 어떻게 외워!라고 생각하실 필요 없어요! 기본적으로 변수가 어떤 값을 저장하기 위한 공간이라는 개념을 이해하고, 변수를 사용하겠다고 컴퓨터에게 말하는 것이 변수의 선언이라는 개념만 이해하면, 정해진 형식 외우는 것은 몇 번 써보면 금방 익힐 수 있어요 :)



여러분들이 잘 이해했는지 확인해볼까요?


확인하기 1 : 변수의 개념과 특징


Q. 다음 중 변수에 대한 설명으로 옳지 않은 것은 무엇일까요?
(1) 변수란 컴퓨터 계산을 위해 컴퓨터 안에 확보한 공간이다.
(2) 변수에 넣은 값은 바꿀 수 없다.
(3) 변수를 사용하기 전에 '변수의 선언'을 해야 한다.
(4) 변수는 <데이터 종류 + 변수 이름 + 문장의 끝(;)>으로 구성되어있다.

정답(오른쪽을 드래그하세요) : (2). 변수에 넣은 값은 언제든지 다른 값으로 덮어씌울 수 있습니다. 한 번 값을 넣었을 때 바꿀 수 없는 값은 '상수'입니다.



확인하기 2 : 변수 선언하기


Q. 다음에 조건에 알맞은 변수를 선언해보세요.
number라는 이름을 가지고, 1.1, 2.3, 3.4을 담을 수 있는 변수
(데이터 종류는 실수, 정수, 문자 중 하나)


정답(오른쪽을 드래그하세요) :  실수 number;







이번 시간에는 변수가 무엇인지 한 번 알아봤어요. C언어에서 변수가 어떻게 사용되는지 직접 보고 싶다면 '[실습] 코딩 용어 이해하기 - 변수'로 가서 직접 코딩을 하면서 배운 것을 익혀 보도록 해요.


이렇게 해서 여러분들은 코딩의 기본적인 개념인 '변수'에 대해서 이해해봤습니다. 조금은 어렵죠? 앞으로는 더 쉽고 직관적인 내용일 테니 너무 걱정하지 마세요!


글은 쭉~ 이어집니다.


매거진의 이전글 [실습]구름IDE시작하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari