brunch

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Oct 18. 2021

39. 인공지능에 필요한 코딩 능력

[5악장-concerto] 머신러닝과 코딩

인공지능에 필요한 코딩 능력

Library Scene-Dorothy Vaughn Hidden Figures - YouTube

 영화 히든 피겨스(Hidden Figures)에서 NASA의 계산원(PC가 없던 시절 계산기를 통해 계산을 대신하고 검증하는 업)이었던 도로시가 포트란이라는 언어를 접하는 장면이 있습니다. 도로시는 IBM에서 초당 24,000의 계산을 해내는 컴퓨터의 능력을 보고 자신들의 역할이 사라질 것이라는 것을 직감합니다. 그래서 그녀는 포트란을 배우기 위해 도서관에서 포트란 책을 찾아 읽기 시작합니다. 그녀가 빌려온(가져온?) 책의 서문에는 다음과 같은 문구가 나옵니다.


 “포트란은 새롭고 흥미로운 언어이다. 컴퓨터와 소통하기 위해 프로그래머가 사용한다. 포트란은 미래를 여는 방법이라서 흥미롭다.”


 지금은 코딩이 온 세상에 가득한 시대입니다. 이미 코딩은 우리에게 새로운 언어가 아니지만, 코딩이 흥미롭다는 것과 컴퓨터와 소통하기 위해 프로그래머가 사용하는 것은 지금도 유효합니다. 미래를 여는 방법이라는 것도 여전히 동일하죠.

 저는 수학 교사지만 2016년부터 코딩 방과 후 수업에서 학생들에게 python 코딩을 가르치고 있습니다. 매 첫시간마다 학생들이 하는 질문은


 “선생님, 그런데 코딩이란 말을 듣긴 들었는데, 코딩이 도대체 뭐에요?”


입니다. 코딩이라는 단어는 대부분 들어보고 친숙하지만 사실 정보 수업을 제대로 배운 학생이 아니라면 코딩이 뭔지 수업 시간에 제대로 들었던 적이 없으니까요.


 코딩을 이해하기 위해 컴퓨터를 이해할 필요가 좀 있습니다. 컴퓨터는 전자기계입니다. 즉 전원을 공급하고 차단하는 전기적인 신호로 동작하는 기기이기 때문에 컴퓨터는 0과 1로 이루어진 언어를 이해할 수 있습니다. 이러한 언어의 세계는 우리가 일상적으로 하는 사람의 언어와는 무척 다르죠.


 예를 들어 우리나라 말과 구조가 전혀 다른 A라는 나라의 사람이 의사소통을 하려고 해보죠. 다행히도 두 나라 사람 친구 중에서 영어를 아는 친구가 있다면 의사 소통이 가능해집니다. 우리나라 말을 영어로 바꿔주고, 영어를 다시 A나라 언어로 바꿔주면 되니까요.



 컴퓨터도 마찬가지입니다. 우리의 생각을 컴퓨터가 알아들을 수 있는 0과 1로 이루어진 기계어로 바로 바꾸지 못하기 때문에 중간 언어가 필요합니다. 예를 들어 화면에 ‘Hello World’라는 문자를 표현해야겠다는 생각을 했다고 해봅시다. 다양한 프로그램 중 Python이라는 언어를 사용해서  

  print (“Hello World”)

라고 명령어를 입력하면 처음 생각한 것을 표현할 수 있죠. 이 때 Python과 같은 중간 언어를 가리켜 ‘컴퓨터 언어(computer language)’라고 합니다. 파이썬에서 화면에 출력을 하라는 명령어 print라는 명령어와 괄호, 따옴표 등과 같은 명령어, 부호들을 가리켜 '코드(code)'라고 부릅니다. 다양한 코드를 활용하여 명령어를 작성하는 것을 '코딩(coding)', 코딩 활동을 통해 전체적 프로그램을 작성하는 활동 전체를 가리켜 '프로그래밍(progaming)'이라고 합니다. 마치 코딩을 통해 프로그램을 만드는 것은 작문을 통해 작품을 만드는 것과 비슷하다고 할 수 있습니다.


 코딩이라는 것은 우리 말을 전혀 못알아듣는 컴퓨터에게 코드를 통해 어떻게 처리하라는 것인지 알려주는 매뉴얼을 작성하는 과정입니다. 값을 하나하나 입력해주거나 입력 받는 방식을 알려주고, 어떠한 절차에 따라 처리하며, 어떤 조건이 만족이 되면 멈추거나 지정된 방식대로 일하도록 알려주는 설명서입니다. 마치 사람들의 언어도 한국어, 영어, 스페인어, 중국어, 일본어 등 다양한 것처럼 컴퓨터에도 파이썬, C언어, 자바, 자바 스크립트, Go 언어 등과 같은 다양한 언어들이 있습니다.


 히든 피겨스에서 시시각각 변하는 조건에 대응하기 위해 엄청난 계산을 처리할 수 있는 IBM의 도입이 필수적이었던 것처럼 컴퓨터를 능숙하게 활용하는 코딩은 인공지능을 구현하는 과정에서 필수적입니다. 실제 현업에서 인공지능이 다루어야 하는 데이터는 양과 데이터의 속성도 너무 복잡하죠. 게다가 어떠한 경우에는 사람의 직접적인 개입이 없이 인공지능이 스스로 상황을 인식하고 처리할 수 있는 자동화 기능이 필요하기도 합니다. 따라서 인공지능을 개발하기 위해서는 컴퓨터를 활용해야 하는데, 컴퓨터와 사람이 소통할 수 있는 방법이 코딩입니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari