brunch

매거진 코딩 학습

You can make anything
by writing

C.S.Lewis

by 스스로 코딩 두셀코 Dec 06. 2020

[코딩의 기초][실습] 변수

변수 (1), 변수 (2)

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


이번 시간에는 지난 시간에 배웠던 변수에 대해서 코드로 직접 만나보는 시간을 갖도록 하겠습니다.

지난 시간에 변수에 대해 배운 내용을 간단히 요약하면, 변수는 코딩을 할 때 사용되는 바꿀 수 있는 빈칸이고, 변수의 종류에는 정수, 실수, 문자가 있는 '기본형'과 사용자가 정의할 수 있는 '확장형', 이렇게 2개가 있습니다.


더 자세한 내용은 다음 글에서 확인하세요 :)


변수 (1): https://brunch.co.kr/@doselfcoding/69

변수 (2): https://brunch.co.kr/@doselfcoding/70




실습은 C언어, Java (자바), Python (파이썬) 그리고 Javascript (자바스크립트) 총 4개의 코딩 언어 (프로그래밍 언어)로 진행해보려 합니다. 이 4개의 코딩 언어들은 실제로 가장 많이 쓰이는 언어들이고, 한 번쯤 들어본 언어들도 많이 있으실 겁니다. 4개의 언어로 실습을 진행하는 이유는 먼저 코딩의 기초를 알면 코딩 언어는 비슷하기 때문에 코딩 기초를 먼저 배우는 것이 중요하구나 라는 것을 알려드리기 위한 것이고, 두 번째로는 각각의 언어가 표현하는 방식이 어떤 점은 다를 수 있구나 라는 것을 보여드리기 위함입니다. 또한 본인이 선택한 언어에 대해서만 보셔도 됩니다.


일단 각각의 언어가 가지고 있는 특징과 쓰임에 대해서는 다른 글에서 다루기로 하고, 지금은 코딩 언어가 많이 쓰이는 것이 여러 가지가 있고, 이렇게 생겼구나 라는 정도만 이해하시면 될 것 같습니다. 다만, 이 글에서는 하나의 특징만 기억을 하면 됩니다.


C언어, Java는 변수의 종류를 알려줘야 하는 언어 (컴파일 언어)이고, Python과 Javascript 는 변수의 종류를 알려주지 않아도 되는 언어 (스크립트 언어)이다.


컴파일: 사람이 이해하기 쉬운 코딩 언어로 작성한 코드를 컴퓨터가 이해할 수 있는 언어 (0과 1)로 바꾸는 과정.


이게 어떤 의미일까요?


코딩하는 친구가 아래와 같이 100이 들어있는 변수를 만들었다고 해보면,

각각의 코딩 언어는 변수를 보는 시각이 다릅니다.



먼저 C 언어와 Java (자바)는 단순히 변수에 100이라는 값이 들어있다고 변수의 종류를 이해할 수 없습니다. 즉, 100 이 들어있다고 하면 정수 100인지, 실수 100인지, 문자열 100 인지 이해할 수 없습니다. 그렇기 때문에 C 언와 Java (자바)와 같은 '컴파일 언어'라고 부르는 코딩 언어들은 변수를 사용할 때 반드시 변수의 종류 (정수형, 실수형, 문자형)를 명시해줘야 합니다.

C언어와 Java (자바)와 같은 컴파일 언어는 변수의 데이터 종류를 알려주지 않으면 변수의 종류를 모릅니다.


이에 반해, Python (파이썬)과 Javascript (자바스크립트)와 같은 코딩 언어는 변수의 종류를 알려주지 않더라고 변수 안에 있는 값을 보고, 해석해서 어떤 종류인지 알 수 있습니다. 변수 안에 100이라는 값이 있으면 정수라고 알아서 이해를 하는 것입니다.


Python (파이썬)과 Javascript (자바스크립트)와 같은 스크립트 언어는 변수의 데이터 종류를 알려주지 않아도 알아서 변수의 종류를 이해합니다.

그러면 당연히 Python과 Javascript 와 같은 스크립트 언어가 더 똑똑하고 좋은 것 아닐까요? 하지만 좋은 점이 있으면 안 좋은 점이 있는 법. 위 그림에서도 볼 수 있는 것처럼 스크립트 언어는 변수의 값을 보고 변수의 종류를 이해하는 과정이 필요합니다. 이에 반해 컴파일 언어는 코드에서 이미 변수의 종류를 다 알려주기 때문에 스크립트 언어보다 더 빨리 수행될 수 있습니다. 이 이유 때문에 무조건 좋은 코딩 언어라는 것은 없고 목적에 맞는 언어를 사용해야 합니다.


이 사실 하나만 알고 있으면 아래 나오는 코드에서 어떤 코딩 언어에서는 변수의 종류를 써주고 어떤 코딩 언어에서는 변수를 쓰지 않는지 이해를 할 수 있습니다.


모든 언어를 다 이해하실 필요는 굳이 없습니다! 비교를 위해서 여러 가지 언어를 다루는 것입니다. 이 중 본인의 언어는 하나만 선택하시면 됩니다.




그럼 본격적으로 실습을 해볼까요?


하루의 걸음 수를 기록하는 프로그램을 코딩한다고 가정을 해볼게요.



실습 1) 변수의 선언


변수를 만드는 것을 해봅시다. 이것을 '변수의 선언'이라고 부릅니다.

다음과 같은 변수가 필요하겠죠?


- 목표 걸음 수: 5000걸음
- 오늘의 걸음 수: 1000걸음, 2000걸음, 4297걸음 등
- 오늘 걸은 거리: 1.0km, 3.4km, 10.3km
- 칼로리: 165, 250...
- 시간 (시): 0, 1, 2... 23
- 시간 (분): 10, 15, 40... 59
- 이름: 'A', 'B', 'C'...


여기서 이름은 'A', 'B', 'C' 등과 같은 한 글자의 문자라고 가정을 해보아요.

각각의 변수들은 어떤 변수의 종류일까요?


- 목표 걸음 수: 정수형 (상수)
- 오늘의 걸음 수: 정수형
- 오늘 걸은 거리: 실수형
- 칼로리: 정수형
- 시간 (시): 정수형
- 시간 (분): 정수형
- 이름:문자형


변수의 선언을 눈으로 보면 이런 모습 아닐까요?




C언어


이것을 그대로 C언어로 옮기면 다음과 같습니다.

C언어의 변수의 선언


C 언어뿐만 아니라 일반적인 코딩 언어들에서 변수의 선언은 변수의 종류와 변수의 이름을 쓰고 세미콜론 (;)으로 마무리합니다.


변수의 종류    변수의 이름;


C언어에서는 상수형 정수는 const int, 정수형은 int, 실수형은 double 그리고 문자형은 char를 사용합니다.




Java

Java에서 변수의 선언

Java에서는 상수형 정수는 final int, 정수형은 int, 실수형은 double 그리고 문자형은 char를 사용합니다.




Python

Python에서는 변수의 선언과 변수의 초기화가 구분되어 있지 않기 때문에 변수의 초기화에서 다루겠습니다. 한 가지 알아둘 것은 Python 은 C 언어나 Java처럼 변수의 종류를 알려주는 것 없이 이름만 사용합니다.


Javascript






2) 변수의 초기화


변수에 값을 넣는 것을 해봅시다. 이것을 '변수의 초기화'라고 부릅니다. 값을 넣을 때는 변수의 종류에 맞는 적절한 값을 넣어줘야 합니다. 초기 변수들의 값은 여기서는 걷기를 시작하기 전 걸음 수, 거리 등을 의미하기 때문에 0 또는 0.0으로 설정해주고, name 은 아무개인 'A'로 지정합니다.


변수의 대입




C 언어

C언어에서의 변수의 대입


값의 대입은 오른쪽에서 왼쪽으로 한다고 생각할 수 있습니다.


변수 이름 = 변수 값;


변수의 선언과 변수의 초기화는 동시에도 할 수 있습니다.

변수의 선언과 초기화는 동시에 할 수 있습니다




Java

Java에서의 변수의 초기화
변수의 선언과 초기화는 동시에 할 수 있습니다




Python

Python에서는 변수가 필요할 때 선언하고 사용하기 때문에 보통 변수의 선언과 초기화를 동시에 씁니다. 그리고 Python은 스크립트 언어이기 때문에 변수의 종류를 따로 알려주지 않아도 값을 보고 변수의 종류를 결정합니다. 그리고 상수와 변수의 구분이 다른 언어와 다르게 존재하지 않습니다.





이번 시간에는 다양한 코딩 언어들로 변수의 선언과 변수의 초기화를 해봤습니다. 또한, 코딩 언어의 종류를 크게 두 가지로 나눠봤습니다. 하나는 변수의 종류를 알려줘야 하는 컴파일 언어, 다른 하나는 변수의 종류를 알려주지 않아도 되는 스크립트 언어입니다. 각각의 특성에 맞게 변수를 선언하고 초기화하는 것이 달랐죠? 자세한 것은 깊게 들어가면 어려우니, 지금은 이렇게 다르게 생긴 코딩 언어들이 있구나 정도만 이해하시면 될 것 같습니다.


다음 실습에서 볼게요~




참고자료

[그림 1] https://m.blog.naver.com/PostView.nhn?blogId=web4click&logNo=110159480355&proxyReferer=https%3A%2F%2Fwww.google.com%2F


매거진의 이전글 [코딩의 기초] 조건문 (2)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari