본문 바로가기

파이썬 (python)

[python 4] 모든 프로그램은 변수와 함수로 구성된다

 

 

 

 

○ 사람의 언어에서 가장 중요한 요소는 명사와 동사이다.

 

우리 사람들은 의미의 전달을 위해 문장 statement 을 만든다각각의 문장은 여러 개의 단어들 words 로 구성된다. 문장을 구성하는 각 단어들은 의미상 명사와 동사 등의 2가지로 나누어 볼 수 있다. 동사는 동작을 나타내는데 사용되고, 명사는 어떤 동작의 주체(주어) 또는 대상 (목적어)을 나타내는데 사용된다. 물론, 명사를 좀 더 구체화하기 위해 형용사를 추가하고 동사를 좀 더 구체적으로 묘사하기 위해 부사를 활용하기도 한다. 하나의 문장으로 설명하기 힘든 복잡한 의미인 경우에는 여러개의 문장을 구성하여 문단을 만든다.

 

프로그래밍 언어 또한 사람의 언어와 똑같은 구성과 체계를 가진다. 커뮤니케이션 상대방이 사람이 아니라 컴퓨터라는 차이가 있을 뿐이다. 영국인과 대화하기 위해서는 영어를 사용하고, 일본인과 대화하기 위해서는 일본어를 사용하듯이 컴퓨터와 대화하기 위해서는 컴퓨터 언어를 사용하는 것일 뿐이다.

 

○ 컴퓨터 언어에서 동사는 함수(function)이고 명사는 변수(variable)이다

 

사람들의 언어와 컴퓨터 언어를 비교해 보면, 컴퓨터는 동사에 해당하는 함수 function을 가지고 있으며 명사 (특히, 목적어)에 해당하는 변수 variables 를 가지고 있다. 주어에 해당하는 명사의 경우에는 특별히 객체 object 가 사용된다. 그런데, 객체란 형태상으로는 여러 개의 변수들과 함수들을 하나로 묶는 단위이다. 결국, 컴퓨터 언어를 공부한다는 것은 변수와 함수를 이해하는 것이 되고, 2가지를 객체로 묶는 목적을 이해하는 것이다.

 

예를 들어 한번 이해해 보자. 세상에는 여러 존재 thing 가 있다. 그 중에 우리가 자동차 car 라고 부르는 것들이 있다. 이 것들은 시동 ignit 을 걸줄 알고, 가속 accelerate 할 줄 알고, 회전 turn 할 줄 알고, 정지 stop 할 줄 안다. 그런데, 자동차들이 가속하거나 회전하거나 정지하게 되면 속도 velocity가 바뀌고 자동차의 위치 position이 바뀌게 된다. 여기에서 주체 subject 는 자동차가 되고, 자동차가 할 수 있는 동작으로서 ignit, accelerate, turn, stop 등의 동사를 찾을 수 있으며, 그 동작의 결과 또는 대상으로서 동사의 영향을 받아 변하게 되는 되는 2개의 목적어 velocity, position를 찾을 수 있다. 물론, 2개의 목적어 외에도 동작에 영향을 주는 명사들을 찾을 수 있는데, 예를 들어, 자동차의 배기량, 자동차의 무게 등이 그 예이다. 이러한 값들은 자동차들이 accelerate 하는데 영향을 준다. 예를 들어, 배기량이 큰데 무겁지 않은 자동차들은 그렇지 않은 자동차들에 비해 시속 100킬로미터에 도달하는 데 걸린 시간이 짧을 것이다.

 

○ 하나의 명령어는 a=b.c(d) 형태로 만들어진다.

 

큰 규모의 소프트웨어에는 많은 수의 명령어 (문장) 들이 포함된다. 그리고, 각 명령어는 여러 개의 단어 (변수, 함수) 들로 구성된다. 프로그래머들은 결국 그 문장들을 구성하는 수없이 많은 변수와 함수를 정의하고 다루는 일들을 하게 된다. 어찌 됐던 간에, 모든 명령어는 아래와 형태를 가지게 된다

       a = b.c(d)

여기서, c는 동작을 나타내고 그 동작의 대상이나 수단이 되는 것 thing c 뒤에 붙어 있는 괄호 ( ) 안에 나타낸다. a = b.c(d)에서 c(d)만을 해석해 본다면 “dc한다는 뜻이다. 우리 사람들의 언어로 본다면공을 찬다”, “이빨을 닦는다”, “빗자루를 이용해서 청소한다등등이 될 것이다. 이를 프로그래밍 언어적인 표현으로 바꾸어 본다면 찬다(), 닦는다(이빨), 청소한다(빗자루) 로 나타낼 수 있다. 프로그래밍 언어에서 동작을 나타내는 요소를 함수 function 이라는 이름으로 부르는데, 함수는 뒤에 괄호를 반드시 끌고 다닌다는 것에 유의하자.

 

명령어의 형태는 a = b.c(d)가 된다고 했는데, 여기서 bc( )동작 하는 주체에 해당한다. . b.c(d)“bdc한다는 뜻이다. 사람들의 표현으로 홍딜동이 축구공을 찬다를 컴퓨터 프로그램의 명령어로 바꾸어 보면 홍길동.찬다(축구공)의 형태가 된다. 여기서 dot(.)를 멤버쉽 연산자 membership operator라고 부른다.

 

사람들의 생활에서도 어떤 행위가 일어나면 세상에는 어떤 변화가 생긴다. 그러한 변화가 행위의 목적이 되기도 한다. 다르게 말하면, 행위의 결과로서 어떤 변화가 생긴다. 예를 들어 홍길동이 공을 찼는데, 100미터나 날아갔다.”여기서 100미터는 어떤 행위의 결과이다. 물론 유리창이 깨어질 수도있겠다.

 

a = b.c(d)에서 a 는 일반적으로 이러한 결과에 해당한다. 홍길동이 공을 찼는데 얼마나 멀리 날아갔는지를 알고 싶으면 a의 값을 살펴보면 된다.