brunch

매거진 코딩 학습

You can make anything
by writing

C.S.Lewis

by 스스로 코딩 두셀코 Nov 08. 2020

[코딩의 기초] 변수(1)

변수란?

안녕하세요, 스스로 코딩 두셀코입니다.


이번 글은 드디어! 코딩 학습에 대한 첫 글인데요, 코딩의 기초에 대해서 다음과 같은 순서로 연재할 예정입니다. 실습이 포함되어있는 장도 있으니 개념을 이해하는 것에서 한 단계 더 나아가고 싶은 분들은 실습도 참고해주시면 됩니다.


코딩의 기초에서는 '아 이런 것이 있구나'라고 이해하는 수준에서 설명을 할 예정이기 때문에, 추가적으로 궁금한 것이 있으신 분들은 Q Talk으로 물어보시거나 필요하면 두셀코에서 추가로 심화 내용을 연재하도록 하겠습니다.


코딩의 기초는 아래와 같은 일정으로 연재될 예정입니다.


코딩의 기초

1. 변수 (1) & 실습 준비
2. 변수 (2) & 실습
3. 조건문 & 실습
4. 반복문 & 실습
5. 함수
6. 모듈 / 클래스


변수란? 


제일 먼저 '변수'라는 아이에 대해서 이야기해보겠습니다. 변수를 가장 먼저 배우는 이유는 레고 조립을 생각해보면 레고도 레고 블록이 있어야지 뭔가 만들 수 있는 것처럼 코딩도 변수 없이는 코딩을 시작할 수 없다고 볼 수 있습니다. 변수라는 아이를 앞으로 '변수 (1)'에서는 변수의 개념에서 대해서, '변수 (2)'에서는 변수의 종류에 대해서 파헤쳐 보도록 하겠습니다!

[그림 1] 하나의 레고 블록이 멋진 작품을 만들어 내듯이, 변수를 이해하는 것이 코딩의 시작입니다.


변수는 우리 주변에서도 쉽게 접할 수 있는 단어인데요, 예를 들면 비 오는 날 야구 경기에서 '오늘 경기는 비가 오는 관계로 변수가 정말 많을 것 같네요'라고 중계하는 것도 종종 들을 수 있고, 체육대회와 같은 야외행사가 있는 날에는 '오늘 행사는 날씨가 정말 변수다'라고 종종 이야기하곤 합니다. 일상생활에서는 주로 '상황을 예측하기 어렵게 만드는  요소'의 의미로 많이 쓰이죠.


[그림 2] 실생활에서 변수는 상황을 예측하기 어렵게 만드는 요소로 많이 쓰입니다.

코딩에서 변수는 실생활에서의 쓰임과는 다르게 쓰이는데요, 코딩에서는 '변할 수 있는 어떤 값'이라고 보시면 됩니다. 다소 추상적으로 들릴 수 있겠는데요, 좀 더 쉬운 예를 들어볼까요?


2003년부터 2012년까지 방영한 '스펀지'라는 프로그램을 기억하시나요? 초록색 바탕이 있는 문장에 하얀 네모를 뚫어놓고 그 안에 네모를 맞추는 퀴즈 예능 프로그램이었는데요, 그 당시 많은 패러디와 화제를 낳았던 방송이었습니다. 여담으로 그때 스펀지의 인기와 함께 많은 인기를 얻었던 것이 바로 네이버 지식인이었죠. 방송에서 항상 네이버 검색창에서 질문을 검색하는 것으로 시작했으니 말이죠. 지금의 네이버는 스펀지가 아니었으면 없었을지도(?) 모릅니다.


[그림 3] 스펀지도 스펀지지만 이 당시 네이버 지식인도 널리 알려졌죠.


이 방송에서는 출연한 연예인들이 빈칸에 어떤 정답이 들어갈지 추측을 하는데요, 여기서 기발하거나 재치 있는 오답들이 웃음 포인트이기도 했습니다.


다시 코딩에서의 변수를 생각해보면, 변수가 스펀지의 빈칸이라고 볼 수 있습니다. 문장에 빈칸이 뚫려 있고, 그 안에는 어떤 단어도 말이 되기만 하면 하나의 문장이 되었기 때문에 재치 있는 오답도 나왔던 것이고요. 다만 다른 점은 스펀지에서는 결국 빈칸에 정해진 답이 있었다면, 코딩에서는  변수에는 정해진 답은 없습니다. 즉, 어떤 값도 변수의 값이 될 수 있는 것입니다.


예를 들어,


[         ] 은/는 코딩을 한다.


라는 문장이 있으면

[         ] 안에는 어떤 단어도 들어갈 수 있습니다.


[ 코딩 어린이 ] 는 코딩을 한다.

[ 스펀지밥 ] 은 코딩을 한다.

[ 호랑이 ] 는 코딩을 한다.


또 이렇게도 할 수 있습니다.

[         ] 은/는 [         ].


[ 코딩 어린이 ] 는 [ 밥을 먹는다 ].

[ 스펀지밥 ] 은 [ 스펀지를 시청한다 ].

[ 호랑이 ] 는 [ 코딩을 할 줄 모른다 ].


이렇게 변수는 어떤 변하는 값을 가질 수 있는 것이라고 생각할 수 있습니다.

반대로, 변하는 값을 가질 수 없는 것은 무엇이라고 할까요?




변수의 반대, 상수


바로 상수입니다. 상수는 변수와 반대로 변하는 값을 가질 수 없는 것입니다.


즉, [         ]를 쓰지 않고 그 자리에 어떤 값을 미리 줘버리면 그것을 상수라고 합니다. 위의 예를 보면,


'[         ] 은/는 코딩을 한다.'에서 빈칸 ([         ]) 은 변수여서 코딩 어린이, 스펀지밥, 호랑이 등 여러 값이 될 수 있는 것을 위에서 보셨죠? 하지만, '코딩을 한다'는 변하지 않았습니다. 왜냐하면 '코딩을 한다'라는 것은 이미 값이 정해진 상수이기 때문이죠.


또 다른 예시인 ' [         ] 은/는  [         ].'에서  첫 번째 빈칸에는 '코딩 어린이', '스펀지밥', '호랑이'가, 두 번째 빈칸에는 '밥을 먹는다', '코딩을 안 한다' 등 다양한 값들이 들어갔지만, '은/는' 은 바뀌지 않았죠? 여기서 두 개의 빈칸이 변수라고 생각할 수 있고, 변하지 않은 '은/는' 이 상수라고 볼 수 있습니다.




요약해보면, 변수는 코딩을 할 때 반드시 필요한 재료로 어떤 값이라도 들어갈 수 있는 빈칸이고, 상수는 특정 값이 정해지면 바꿀 수 없는 값입니다. 변수와 상수를 알았다는 것은 코딩을 위한 기본적인 재료들에 대해서 배웠다고 볼 수 있습니다. 레고를 만들기 전에 레고 블록들을 준비한 셈이죠.


우리말이나 영어에 명사, 동사, 형용사가 있듯이, 변수에도 어떤 값이 주어지냐에 따라서 변수의 종류도 나눠지게 됩니다. 다음 글에서 변수의 종류에 대해서 배워보도록 하겠습니다.


[그림 4] 변수도 종류가 여러 가지가 있습니다.


실습 준비: https://brunch.co.kr/@doselfcoding/72

다음 글: 변수 (2)




[참고 자료]

[그림 1] https://lonoy.tistory.com/m/88,  http://www.hani.co.kr/arti/PRINT/529930.html
[그림 2] https://giphy.com/gifs/3o85xndjWqTAgLfG1y/html5
[그림 3] 애니멀포유 유튜브 - https://www.youtube.com/watch?v=EViQm0NnSLU&ab_channel=KBS%EB%8F%99%EB%AC%BC%ED%8B%B0%EB%B9%84%3A%EC%95%A0%EB%8B%88%EB%A9%80%ED%8F%AC%EC%9C%A0animal4u, https://theqoo.net/square/1665224206
[그림 4] https://pixabay.com/ko/photos/%EB%A0%88%EA%B3%A0-%EC%96%B4%EB%A6%B0%EC%9D%B4-%EC%9E%A5%EB%82%9C%EA%B0%90-%ED%99%94%EB%A0%A4%ED%95%9C-674880/
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari