시작하며

우선 이번 포스트는 철저히 나 개인적인 생각일 뿐이라는 것을 명확히 해둔다.

몇 년 전부터 많은 나라들이 코딩 조기교육을 실시하고 있고 한국 역시 마찬가지다. 나는 이것을 ‘굳이 코딩을 왜 조기에…’ 또는 ‘개발자를 얼마나 많이 늘릴려고…’ 라고 가볍게 치부하고 넘어가기 마련이었다. 하지만 과연 이게 그렇게 단순하게 치부하고 넘어갈 일일까라는 생각이 문득 들기 시작했다. 조금 진지하게 생각해보니 꽤나 파급력이 커질 일이라는 생각이 들었으며, 하여 포스트를 작성하여 내 생각을 정리해본다.

코딩 인재를 늘리고 싶어하는 국가

코딩이 가능한 사람 수를 늘리고자 하는 건 오래 전 부터 모든 국가들의 희망이다. 소프트웨어 산업 역량과 직결되어 있기 때문이다. 한 명의 천재가 평범한 코더 100명 보다 나은 세계이긴 하지만 그 한 명의 천재도 100명의 집단에서 보다 1000명의 집단에서 등장할 확률이 높은 것이기 때문에, 코딩 인구를 늘리는 것은 국가의 소프트웨어 역량에 있어서 대단히 중요한 일이다.

언제부터인가 열풍이 된 코딩 조기교육

쉬운 프로그래밍 언어의 필요성

하지만 코딩은 학습 난이도가 높은 작업 중 하나이며 특히 초반 장벽이 매우 높은 편에 속한다. 그래서 학습 난이도가 낮은 프로그래밍 언어의 필요성이 초창기부터 꾸준히 제기되어 왔다. 한 때는 파스칼이 교육용 언어의 대명사로 통하던 시절이 있었고 그 후 베이직, 파이썬으로 그 계보는 이어졌다.

그러나…

쉬운 언어가 등장하였다고 한들 그것은 개발자의 입장에서 쉬운 것이고 초심자가 접근하기엔 여전히 어렵다. 보통 프로그래밍 입문으로 추천되는 언어가 파이썬인데, 이 파이썬이 언제 등장한 언어인지를 생각하면 프로그래밍 언어의 난이도를 낮추는 작업이 얼마나 험난한 작업인지 짐작이 가능하다.

파이썬보다 더 쉬운 언어를 찾기는 꽤 어려운 일. 그러나 초심자에게는 파이썬도 버겁다.

그렇다면

예전에도 소프트웨어 산업의 중요성은 인식하고 있었지만 소프트웨어 산업의 강력함을 눈으로 확인할 수 있는 지금(세계 시가 총액 상위 기업 대부분이 소프트웨어 기업) 많은 국가들은 더욱 더 적극적으로 코딩 교육에 임하기로 결정하였다. 한국도 마찬가지로 코딩은 의무교육과정에 포함되어 실시 중이다. 학습 장벽을 낮추는 것이 힘들다면 어릴 때 부터 학습시켜 기본 수준을 끌어올리는 방식을 취하는 것이며, 이를 위해 범용 언어가 아닌 스크래치같은 교육 전문 프로그래밍 언어까지 등장하였다.

그럼 어릴 때 부터 코딩 조기교육을 한다고 누구나 현재 프로그래머 수준으로 코딩이 가능할까? 그럴꺼 같진 않다. 그러나 기초적인 코딩 능력을 학습할 수 있을 것이라고는 예측 가능하다. 현대에 와서 사칙연산을 하지 못하는 사람은 거의 없듯이 아주 기초적인 코딩은 누구나 할 수 있게 될지도 모른다. 즉 기초적인 코딩 능력을 갖춘 인구가 크게 늘어날 것이라고는 쉽게 예측할 수 있으며 이로 인해 도메인 특화 언어(이하 DSL)가 크게 각광받을 것이라고 생각한다.

도메인 특화 언어

도메인 특화 언어(Domain Specific Language)란 범용 언어의 반대되는 개념으로 특수 목적만을 위해 설계된 언어를 말한다. 지금도 많은 DSL 이 존재하며 대표적인 예로는 HTML, SQL, MATLAB 등등이 있다.

보통 개발자들이 야 그게 뭐가 랭귀지야 하는 것들이 대부분 DSL

대부분의 DSL은 범용 언어보다 사용하기 쉽게 설계되는게 특징이다. 조기 교육으로 인하여 코딩 인구가 증가한다고 생각해도 범용 언어를 제대로 다루는 인구가 많이 증가할 것이라고 생각하긴 힘들지만, DSL 수준을 다룰 수 있는 인구는 상당히 많이 늘 것이라고 생각된다.

그럼 DSL 을 다룰 수 있는 인구가 크게 증가하면 어떻게 될까? 지금도 많은 산업에서 자신들만의 DSL을 가지고 있다. 이것이 더더욱 많은 산업으로 확대되지 않을까? 간단하게 배송 로봇이 등장한다고 생각해보자. 사람의 개입 없이 순수하게 AI 만으로 배송 로봇이 완벽하게 동작할 수 있을까?(언젠가는 되겠지만) 지역마다 동작해야 하는 방식이 다를 것이고, 배송 물품에 따라서도 다르게 동작해야 할 것이다. 그렇다고 각각의 특성에 맞춘 전용 로봇이 등장하는 것도 비효율적이다. 그러나 DSL을 탑재해서 간단하게 프로그램 가능한 배달 로봇이라면? 그리고 그것을 의무교육을 수료한 수준이면 누구나 프로그램 가능하다면? 배송로봇의 활용도는 크게 늘어나게 될 것이다.

입코딩의 시대

의무교육을 통해서 기초 프로그래밍 수준을 끌어올린다고 해도 키보드로 코드를 입력하는 것 자체가 사실 하나의 장벽이 될 수 있다. 그럼 그냥 말로 코딩을 하면 되지 않을까?

사람의 말을 파이썬 코드를 만들어내는 영상

작년에 이미 사람의 말을 파이썬 코드로 옮기는 기술이 시연되기도 했으며 자연어를 코드화 시키는 것은 현재 AI계에서 뜨거운 이슈이기도 하다.

물론 사람이 평범하게 말하는 것을 코드로 옮기는 것을 코드로 제대로 옮기는 것은 매우 힘든 일이라 생각한다. 사람의 말은 애매모호한 경우가 너무나 많지만 코드는 아주 명확해야만 하는 것이니까. 물론 AI의 발전으로 사람의 말을 완벽히 이해하는 날이 올지도 모르겠지만 그건 보다 더 먼 미래라고 생각한다.

그럼 입코딩용 DSL이 등장하면 되지 않을까? 현재는 말로 코딩하는 것은 비효율의 극치나 다름없는 일이라 생각되겠으나 말로 코딩하는 새로운 프로세스가 정립된다면 얼마든지 가능하지 않을까.

조기교육 + 입코딩 + DSL = ?

기초코딩이 가능한 인구가 크게 늘어나고, 그 사람들이 자연스럽게 입코딩이 가능해지는 세상이 오면 일상 생활도 크게 바뀌지 않을까?

TV를 예로 들자면 지금은 스마트TV의 시대지만 나중엔 프로그래머블 TV가 등장할 수도 있다. 모든 가전에 프로그램 가능 기능이 붙어나오고 사람들이 그걸 본인들 입맛에 맞춰 입코딩으로 독자적으로 작동되게 하는 세상이 올지도 모른다.

자동차? 완전자율주행 시대가 오면 내가 프로그램해서 달리는 자동차가 나오지 않을까? 내가 타지 않는 시간에 택시로 활용가능한 기술은 이미 나와 있다지만 프로그램이 가능하면 택시뿐만 아니라 온갖 용도로 사용할 수 있지 않을까? 대부분의 사람들이 기초코딩이 가능하다면 말로 얼마든지 그렇게 자동차를 프로그래밍 할 수 있는 시대가 올 것만 같다.

코딩 조기교육은 단순히 소프트웨어 인재를 육성한다는 것을 넘어서 일상에 있어서 근본적인 변화를 가져오는 첫걸음이 되지 않을까 하고 상상해본다.

azooasul's profile image

azooasul

2021-04-01 10:00

azooasul 님이 작성하신 글 더 보기