김명주 (서울여대 정보보호학과 교수/교육혁신단장)

“소프트웨어가 세상을 삼키고 있다.”(Software is eating the world.) 세계 최초로 그래픽 기반의 웹 브라우저인 모자이크와 그 후속제품인 넷스케이프를 개발했던 마크 안드레센이 딱 5년 전에 한 말이다. 당시에는 소프트웨어의 미래에 대한 자신감을 지나치게 표현한 발언이라고 치부했었다. 그러던 중 올해 3월 인공지능 소프트웨어 알파고가 바둑천재 이세돌 9단을 4승1패로 압승하는 일이 벌어졌다. 이론에 머물던 자율주행 자동차가 테슬라 모델 S를 필두로 시판되기 시작했다. 동경대 의대에서 비관적인 치료를 받던 암환자를 IBM 인공지능 왓슨이 재진료를 통해 치료방법 오류를 바로 잡아내 완치시켰다. 최근 일련의 사건들로 인해서 소프트웨어의 중요성과 영향력이 일반인들에게 피부로 급격히 와 닿기 시작했다.

이러한 분위기는 우리나라 교육계의 중심에도 밀어닥쳤다. 일찌감치 정부는 2014년부터 소프트웨어 중심사회를 선언하였다. 2018년부터 초등학교는 17시간, 중학교는 34시간만큼 의무적으로 소프트웨어 정규교육을 실시하도록 결정되었다. 작년부터 정부는 소프트웨어 중심대학을 단계적으로 뽑기 시작했다. 평균 10대1의 경쟁률을 뚫고 현재 14개 대학이 선정됐다. 이들 대학은 전교생에게 소프트웨어 교육을 실시하며, 소프트웨어 특기자 수시입학전형을 신설하고 있다. 이러한 추세는 우리나라에 국한된 이야기는 아니다. 영국을 비롯하여 미국, 일본, 중국, 핀란드 등은 우리보다 앞서서 소프트웨어 의무교육을 실시해오고 있다.

그런데 소프트웨어를 교육한다는 것이 정확이 무엇인지, 그것이 왜 필요한지에 대해 상당한 오해가 있다. 그 중 가장 큰 오해는 소프트웨어 교육의 핵심을 ‘코딩 교육’에 두는 생각이다. 사전적으로 ‘코딩’(Coding)이란 자료나 대상에 기호를 부여하는 일이며, 컴퓨터 프로그래밍 명령문을 작성하는 것이다. ‘코딩’이란 컴퓨터나 스마트폰과 같은 정보기기가 이해할 수 있는 프로그래밍 언어(코드)를 사용하여 사람이 미리 생각해낸 풀이절차를 표현하는 과정이다. 코딩을 잘 하려면 컴퓨터와 정보기기 자체에 대해서도 알아야 하지만, 자바나 C, 파이썬과 같은 프로그래밍 언어를 배우는 것이 핵심이다. 마치 외국어를 배운 후 이를 사용하여 내 생각을 외국인에게 잘 표현하여 전달하는 것이 코딩이다. 그러나 코딩 교육은 소프트웨어 교육의 필요조건이지 충분조건은 아니다.

작년 기준으로 애플 앱스토어에는 스마트폰용 소프트웨어라고 불리는 앱(App)이 150만개 가량 등록되었다. 구글 플레이에는 이보다 더 많은 160만개, 아마존 앱스토어에는 40만개가 등록됐다. 애플 앱스토어에서만 1년에 약 1천억 회 이상의 앱 다운로드가 일어난다. 이 과정 중에서 살아남는 앱은 극히 소수이다. 예를 들어, 구글 플레이에서 국내 버스 정보 안내 앱을 검색해보면 200개 이상이 목록에 나타난다. 그 중에서 다수의 사람들이 선택하는 앱은 서너개에 불과하다. 어떻게 해서 이들은 치열한 앱 시장에서 살아남을까? 왜 사람들은 수백개의 앱 가운데서 소수의 앱에만 열광하는가? 이들 소수의 앱은 과연 코딩을 산뜻하게 잘해서 살아남은 것일까? 반대로 대다수의 나머지 루저 앱들은 왜 도태되는 것일까? 코딩을 잘못해서 그럴까? 성공적인 소프트웨어 개발은 코딩만으로 이루어지는 것이 아니다. 코딩은 당연한 필요조건일 뿐이다. 더 중요한 부분은 사람의 머릿속에 담겨져 있는 문제해결방법 그 자체이다. 사용자들이 감동할 수 있는 남 다른 문제해결방법을 담아내는 소프트웨어만 살아남을 수 있다.

건물을 지을 때 ‘설계’와 ‘시공’이라는 두 단계를 거친다. 소프트웨어 개발 과정도 동일하다. 문제해결방법을 고안해내는 설계단계를 거친 후, 프로그래밍언어를 사용하는 코딩이라는 시공단계를 거친다. 소프트웨어 개발 초창기에는 코딩단계가 개발의 시작이자 끝이었다. 코딩만 잘 하면 모든 문제를 컴퓨터로 풀어낼 수 있다고 기대했었다. 당시로서는 코딩이 주업이었다. 문제풀이방법을 좀 더 고민하는 것은 부업이요 사치이었다. 소프트웨어가 희소했던 과거에서는 이런 소프트웨어 개발과정이 통했다. 그러나 지금은 소프트웨어 분야도 풍요의 시대다. 경쟁에서 살아남는 소프트웨어 개발은 코딩 자체보다는 그 전단계인 문제풀이 기획과 설계과정에 방점을 둘 때 가능해진다.

그래서 다시금 창의성에 초점이 맞춰진다. 앞으로 본격화될 우리나라 소프트웨어 교육은 과거처럼 코딩교육이라는 시공단계에 치우쳐서는 안된다. 인문, 사회, 예체능 계열 대학생들에게도 소프트웨어를 의무 교육한다고 할 때, 이들을 모두 코딩 전문가로 만들자는 의도는 아니다. 이들이 각자 전공영역에서 부딪히는 문제에 대하여 보다 창의적으로 해결하는 방안을 소프트웨어 활용을 통하여 찾을 수 있도록 컴퓨터적 사고 경험과 지혜, 역량을 기르는 것이 진정한 소프트웨어 교육의 목적이고 방향이 돼야 한다.

저작권자 © 한국대학신문 무단전재 및 재배포 금지