소프트웨어

프로그래밍의 필요성

프로그래밍 혹은 코딩

이제 본격적으로 프로그래밍에 대한 이야기를 하려고 합니다.

프로그래밍이라는게 우리가 프로그램 언어를 통해서 프로그램을 만드는 과정입니다.

흔히 말하는 코딩을 이야기하는 거죠.

하드웨어를 제어하는 소프트웨어는 자연발생된 것이 아닙니다.

사람에 의해서 작성된 코드를 실행시키면 프로그램이 되는 겁니다.

컴퓨터와 같이 사물을 작동시키기 위해서는 프로그래밍을 통해서 프로그램을 만들어야 합니다.

 

프로그램을 만드는 이유

간단한 프로그램을 하나 만들어보죠.

0.14의 수를 변형할 겁니다.
소수점 둘째자리를 보고 0에서 9사이에서  4이하면 그대로 나두고,
5이상이면 소수점 둘째자리는 0으로 바꾸고 첫째자리에 1을 더하는겁니다.

..............! 

순간 당황합니다. 

프로그램을 만들어 본적 없는 사람이라면 지금 뭘 도대체 어떻게 하라고 하는지 모를겁니다.

그런데 사람이라는게 직감적으로 하나는 분명하게 알고 있을 겁니다.

저 내용이 지금 무엇을 하기 위함인지 이해(1)하고 있을겁니다.

반올림을 이야기하는 거죠.

그리고 하나 더 있습니다. 

내가 계산하지 않고 컴퓨터에게 계산을 위임(2)한다는데 있습니다.

암산만으로도 계산이 가능한 반올림을 컴퓨터에게 위임하는 거죠.

암산하는게 프로그램 만드는 것보다 빠르겠네요.

이제 다른 프로그램을 만들어볼께요.

소수점 10번째자리까지 있는 수가 랜덤하게 입력됩니다.
입력된 수의 3번째자리수와 7번째 자리수의 숫자를 더한 후 서로의 자리를 바꾸고,
서로 더한 수의 1의 자리수만 소수점 10번째 자리의 수로 치환하는 하는 겁니다.

..............! 

처음과는 좀 다른 반응입니다.

처음에는 반올림까지는 알았는데 이제는 뭐하려고 하는지 모릅니다.

뭔가 바꾸고 더해서 다른 곳에 넣는거 같은데 왜 하는지도 모르고 어떻게 해야하는지도 모르겠습니다.

도대체가 왜 이런 프로그램을 만드는 걸까요?

근데 만약 목적이 있다면요.

저게 혹시 암호화를 위한 알고리즘이라면 이해가 될까요?

그리고 매번 입력되는 숫자마다 저 행위를 반복하다보면 힘들고 시간이 오래 걸립니다.

프로그램을 만드는 이유가 이런겁니다. 

똑같이 반복되는 과정들을 컴퓨터에게 위임합니다. 

그렇게 반복되는 과정을 작성해서 컴퓨터에게 지시해야죠.

결국 과정을 만들어 내는것을 보고 사람들이 프로그래밍한다고 이야기 합니다.

1부터 1조까지 순차적으로 더하라고 한다면 오래걸릴겁니다.

그러나 컴퓨터는 단 몇초도 안되는 시간에 처리합니다.

어제 고속도로에 지나간 자동차의 차 번호를 수집해서 명단을 만들고

각 차량마다 고속도로를 이용한 시간과 통행료를 계산하는 프로그램을 만드는거죠.

이러한 프로그램은 컴퓨터에게 반올림을 시키는 것과 같이 사람이 해야 할 일을 위임하는 것입니다.

그게 아니면 하루종일 지나가는 모든 차량번호를 입력하는 사람과 통행료 계산할 사람이 필요하겠네요.

하루종일 고속도로를 지켜보면서 말이죠.

 

사물과의 대화에서의 프로그램

사람과 사물의 대화에서도 필요합니다.

사물이 수집할 수 있는 정보를 수집하는 프로그램

사물이 사람과 음성으로 소통할 수 있는 프로그램

사물이 어떤 현상에 대해서 상황 파악을 하고 사람과 소통할 수 있는 프로그램

사물이 앞에 존재하는 물체가 무엇인지 확인하고 왜 거기에 있냐고 물어볼 수 있는 프로그램

사물과 대화를 하기 위해서 사물에게 상황을 물어봐야 하고 이후에 어떤 행동을 할 예정인지 알아야 합니다.

그러한 프로그램을 만들어서 사물과 대화하는게 어쩌면 불가능한 일은 아닐지도 모릅니다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
Braden
현재 버전
선택 버전
graphittie 자세히 보기