프로그래밍을 배우기 전에 생각해 보고 싶은 것들

프로그래밍과 신체감각최종 업데이트:

프로그래밍에 대해 좀 더 추상적으로 생각해 봅시다.

1. 프로그래밍 언어란 무엇일까요?

정해진 순서대로의 동작

먼저 눈앞에 기계가 있다고 상상해 봅시다. 물론 전원을 켜면 그 기계는 작동하기 시작합니다.

 이제 그 기계가 더 복잡하다고 생각해 봅시다. 전원이 켜지면 미리 정해진 순서대로 동작합니다. 그 동작의 순서와 내용은 어딘가에 저장되어 있고, 기계는 그것을 읽어 작동한다고 가정해 봅시다.

 다음으로, 그 동작 순서를 자유롭게 정할 수 있다면 어떨까요? 그렇다면 그 기계는 A 동작을 하거나 B 동작을 하게 할 수도 있을 것입니다.

순서의 이미지

순서의 이미지

언어

 그렇게 되면, 기계의 활용 방법이 급격히 늘어날 것입니다. 추상적으로 말하자면, 프로그래밍이란 기계로 하여금 어떤 동작을 하게 만드는 수단입니다. 그리고 프로그래밍이라는 행위는 프로그래밍 언어를 사용하여 기술됩니다.

프로그래밍 언어는 기계에게 원하는 동작을 지시하는 명령서를 작성하기 위한 언어입니다.

기계가 이해하는 언어는 무엇일까?

기계가 이해하는 언어는 무엇일까?

어디에서, 어떻게 사용될까?

그렇다면, 이러한 ‘지시서’를 작성하는 언어는 언제, 어디서 사용할 수 있을까요? 일본에서는 주로 일본어로 대화하지만, 그렇다면 프로그래밍 언어는 어떨까요?

프로그래밍 언어는 기계가 읽을 수 있는 형태와 환경에서 작성되어야 합니다. 즉, 컴퓨터가 이해할 수 있는 형태로 표현되어야 합니다.

기계가 이해하는 것

그렇다면, 기계가 읽을 수 있는 형태란 어떤 것일까요? 기계는 전기를 사용해 동작하므로, 전기적인 신호로 정보를 표현합니다.

전기를 신호로 생각한다는 것은 어떤 의미일까요? 앞서 이야기한 ‘전원을 켜는 행위’를 떠올려 보세요.

이렇게 하면 ‘켜짐’과 ‘꺼짐’ 두 가지 상태를 표현할 수 있습니다. ‘켜짐’을 1, ‘꺼짐’을 0으로 정의하고, 이러한 신호를 많이 저장할 수 있다고 가정해 봅시다.

그렇게 하면 1110001010100… 과 같은 것을 만들 수 있습니다. 즉, 숫자로 표현하자면 ‘이진수(binary)’에 해당하는 정보를 나타낼 수 있는 것입니다.

0과 1로 점등하여 정보를 표현하기

0과 1로 점등하여 정보를 표현하기

반복과 조합

이처럼 전기 신호는 기본적인 덧셈 연산 등을 통해 계산할 수 있으며, 이를 조합하여 문자를 정의하게 됩니다. 정의된 정보는 메모리라 불리는 저장 영역에 저장되고, 메모리에서 읽어 더 복잡한 정보를 표현할 수 있습니다.

이 과정을 통해 기계는 마침내 인간이 이해할 수 있는 문자나 기호를 표현할 수 있게 됩니다. 이미 가능한 것을 반복하고 결합함으로써 새로운 표현이 가능해집니다. 이러한 반복을 통해 점차 인간과 기계가 ‘대화’할 수 있는 상태로 발전하게 됩니다.

← 코스 목록으로 맨 위로 ↑