-
코딩은 컴퓨터가 해야할 일의 목록알라딘 코딩 2025. 3. 12. 10:21
"...가라." "... 먹어라." "... 해라."
위의 문장은 모호하지요. 명령어는 있는데 목적어가 없습니다.
컴퓨터는 전자적으로 수를 다루는 기게이며, 지시한 대로만 수행하는 아주 융통성 없는 물건입니다.
사람처럼 유추를 할 수 없으며, 유추를 해서도 안됩니다.
요즘 나오는 AI 는 마치 컴퓨터가 생각을 하는 것 처럼 느끼게 하지만, 사실은 통계와 확률을 기반으로
생각하는 것 처럼 보이는 것이고, 이 또한 사실은 지시된 대로만 움직이는 동작을 하는 것입니다.
융통성이 없는 컴퓨터에게 지시를 내릴때는 항상 정확히 무엇을 어떻게 하라고 지시를 해야 합니다.
그래고 그 해석이 확실해야 합니다. 모호성이 있으면 안됩니다.
모호성이 있다는 것은, 우리가 코딩에 사용하는 프로그래밍 언어에서 주어진 명령을 어떻게 해석을 해야 할지
불분명 하다는게 되며, 이는 정확한 계산이 안 이루어지게 되는 겁니다.
계산기가 계산 할때 마다 올바른 계산을 못한다면 , 그 계산기는 더 이상의 쓸모가 없는 것이죠.
"학교에 가라" , "밥을 먹어라", "운동해라" 와 같이 명령어와 목적어가 같이 있어야 정확한 지시가 됩니다.
프로그래밍 언어도 똑같습니다.
모든 프로그래밍 언어에서는 소스 코드에 항상 명령어와 함께 목적어가 주어져야 합니다.
명령에어 해당하는 것이 code (또는 operator) , 목적에어 해당하는 것이 data(또는 operand) 입니다.
그리고, 프로그래밍 언어는 소스 코드 한줄이 거의 대부분 다음과 같은 구조로 되어 있습니다.
"어떤 데이터를 가지고 무슨 일(또는 일들)을 수행하라. "
예를 들어 보겠습니다.
value = 1
- 1의 값을 변수 value 에 넣어라.
- "=" 는 일종의 명령어 입니다.
- 프로그래밍 언어에서 "=" 는 비교가 아닙니다. "<-" 의 의미로 오른쪽에 있는 값을 왼쪽의 변수에 넣어라 입니다.
sum = 1 + 2
- "1 과 2"에 대한 덧셈을 하고 , 그 결과를 sum 에 저장해라.
- 위 예제 코드에서는 두개의 명령어가 나옵니다. 하나는 "+" 이며 다른 하나는 "=" 입니다.
- 이는 sum = (1 + 1) 두 문장이 하나로 합쳐진 것과 동일합니다. 덧셈을 한 후, 결과 값을 변수 sum에 넣어라 입니다.
명령어의 우선 순위 , 함축적인 약속
(sum = 1 ) + 2 와 sum = (1 + 2) 와는 다른 의미 입니다.
수학 계산에서 () 안의 내용을 먼저 계산하는 하기 때문에
(1 + 2) X 3 과 1 + 2 X 3의 결과값이 다른 것과 같습니다.
1 + 2 X 3 은 1 + (2 X 3) 과 같은 것 처럼,
한둘의 소스코드에 여러개의 명령어가 있을 경우에 먼저 수행되는 명령어의 순위는 정해져 있습니다.
의 코드에서 sum = 1 + 2 는 sum = (1 + 2)와 같습니다.
이 우선 순위는 최대한 사람들이 생각하는 방식과 동일하게 처리되도록 프로그래밍 언어가 만들어져 있습니다.
이 약속을 외울 필요는 없습니다. 어떤 순위로 매겨져 있는지가 불분명하거나,
순서를 바꾸고 싶으면 수학에서 그런것 처럼 () 를 이용해서 순서를 정해주면 됩니다.
value = 1 + 2 X 3 로 프로그램 언어에 코딩을 해 놓으면 value = 1 + (2 X 3) 으로 처리 됩니다.
만일 덧셈을 먼저하게 하고 싶으면 value = (1 + 2) X 3 과 같이 하면 됩니다.
가능하면 사람들이 생각하는 방식의 우선순위와 같도록 프로그램 언어가 만들어져 있습니다.
프로그램 언어는 숫자만 아는 컴퓨터에게 좀더 쉽게 일을 시키기 위해 만들어진 프로그램입니다.
프로그래밍 언어는 그 자체도 프로그램이며, 다른 프로그램을 만들 수 있게 해주는 프로그램입니다.
그래서 되도록이면, 사람이 생각하는 방식과 동일한 의미를 가지도록 문법이 정해져 있으며,
글을 쓰듯이 해야 하는 일들을 여러줄로 적어 놓은 것입니다.
단어가 모여서 한줄의 글이 되고, 글들이 모여서 책이 되이 되는 것과 같습니다.
여러줄의 소스 코드 줄들이 모여서, 프로그램이 되는 것입니다.
코딩은 결국 컴퓨터가 실행해야 할 일련의 일들을 단계 별로 정의해 주는 것이며,
각 단계 라는 것이 소스코드 한줄이 되는 것 입니다.
우리가 코딩한 프로그램은 결국 컴퓨터가 수행해야 하는 일을 단계별로 지정한 것입니다.
이는 음식을 만드는 방법을 적은 레시피와 같다고 생각 할 수 있습니다.
감자탕을 만들려면 , 단계별로 해야 할일을 순서대로 적어 놓은 레시피와 같이
컴퓨터의 소스코드는 컴퓨터가 해야 할 일을 적은 것이라 생각하면 됩니다..
처음 볼때는 기호로 만 적혀있는 소스코드가 무슨 수식 같기도 하고 낯설지만 결국은 컴퓨터에게
수행해야 하는 일들을 적어 놓은 문서이며,
코딩을 배운다는 것은 결국, 컴퓨터가 해야 할일을 글로 적는 방법을 배우는 것과 같은 것 입니다.
'알라딘 코딩' 카테고리의 다른 글
코드(Code) , 코드 블록(Block), 블록내의 Variable (0) 2025.03.16 variable : 변수 -> 상태값 (1) 2025.03.13 숫자 단위의 의미 , 숫자에 대한 정의 (0) 2025.03.10 컴퓨터가 수를 다루는 방식 (1) 2025.03.08 세상을 숫자로 표현한다면 어떤 마법을 부릴수 있을가 ? (1) 2025.03.07