brunch

You can make anything
by writing

C.S.Lewis

by 최재영 Dec 13. 2021

코딩과 상상력

2021년 12월 13일, 백스물여덟 번째

명령어, 컴퓨터에게 명령하는 방법

컴퓨터의 작동 방식에 인간이 개입할 수 있게 만든 언어

문법화된 문자화된 숫자화된 전기 신호


코딩을 제2외국어쯤으로 생각하는 사람들이 많은 것 같다. 과하게 의미를 부여하는 사람들을 보면 프로그래밍 언어는 컴퓨터와 대화하는 언어라고들 호들갑이다. 코딩 학원에 보낸다느니, 어릴 때부터 시작하는 게 좋다느니 하며, 공교육 과목에도 포함한 걸 보면, 이쪽 시장이 커지고 있는 것은 확실하다. 대학 졸업을 한 사람들도 네카라쿠배당토직야에 가려고 진로를 바꾸는 세상이다. 이런 세상이 썩 유쾌하지는 않다.

코딩은 프로그램을 구동하기 위해 컴퓨터에 명령어를 입력하는 작업이다. 그때 사용되는 규칙이 프로그래밍 언어이다. 프로그램을 설계할 때에는 컴퓨터 사고가 필요하다. 컴퓨터의 특징은 상상력이 없다는 점이다. 컴퓨터 사고는 상상력없는 존재의 처지를 상상해보는 사고방식이다. 상상력이 없는 존재의 특징은  가지인데, 첫째는 맥락을 모른다는 것이고, 둘째는 그래서 하나하나 알려줘야 한다는 것이다. 가령 주변에서 '눈치없다' 핀잔을 듣는 사람을 떠올려 보라. 그는 주변 상황이나 암시된 것들에 무뎌서 의도치 않게 주변 사람들에게 불편을 준다. 인간의 의사소통은  명시된 것들만으로 구성되지는 않는다.

코딩은, 상상력이 없는 존재가 내 의도대로 움직이도록 명령하는 일이다. 우리가 명령을 '대화'나 '소통'이라 하지 않듯이, 코딩은 컴퓨터와 대화나 소통하는 일이 될 수 없다. 프로그램을 설계하는 일에 유능한 사람이 되기 위해서는, 규칙을 잘 외우는 능력과 상상력 없는 존재의 처지를 상상하는 능력이 필요하다. 물론 요즘에는 인터넷에서 잘 긁어오는 능력이 그 모든 능력을 대체하는 것처럼 보이지만. 코딩 교육의 중요성을 주장하는 사람들이 그만큼 상상력을 중요시하는지는 잘 모르겠다. 내가 보기에 프로그래밍만큼 상상력이 필요한 작업은 없다. 사용자의 경험을 상상해야 하고, 서버와 클라이언트 사이의 연결관계를 상상해야 하고, 그 모든 것들을 구동하는 컴퓨터의 상상력 없음을 상상해야 하며, 코드를 입력하기 전에 미리 전반적인 틀을 상상해야 한다.

그렇다고 프로그래밍 언어가 '언어'라고 보지는 않는다. 언어를 무엇으로 보느냐에 따라 프로그래밍 언어를 언어에 포함시킬 것인지 여부가 달라진다. 목소리, 종이, 전화기처럼 송신자의 뜻을 담아 보내는 수단으로 보는 경우에는 프로그래밍 언어를 언어로 볼 수도 있겠다. 그러나 모든 인간의 생각이 언어로 구성된다는 사실을 볼 때, 단지 컴퓨터에 명령하는 수단은 결코 언어가 될 수 없다. 인간이 지구상에 다른 생물와 가장 크게 구분되는 특징은 상상력이다. 인간은 행간을 읽고, 분위기를 파악하며, 비유와 상징을 이해한다. 코딩 조기교육이라느니 고액연봉을 보장한다느니 하는 말들은 그래서 위험하다. 마치 상상력 없는 사람들이 더 낫다는 소리로 들리기 때문이다.

매거진의 이전글 등 뒤의 프라이버시
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari