프로그래밍이란?
일기를 쓴다고 예를 들어보겠습니다. 오늘 있었던 일들을 일기에 기록할 때 그 사람이 사용하는 고유의 문자를 사용합니다. 쓰는 사람에 따라 한글을 쓸 수도 있고 영어를 쓸 수도 있습니다. 그런데 일기에는 의미 없는 문자를 늘어놓지 않습니다. 갓난아이라면 낙서를 하겠지만 언어를 사용하는 성인이라면 되도록 문법을 지키고 적절한 단어를 사용하여 문장을 완성할 것입니다. 그렇게 되면 일기는 언제든지 꺼내어 읽을 때 의미를 해석할 수 있기 때문입니다. 이는 작성하는 것만큼 다시 읽을 때를 염두에 두는 것입니다.
단어를 모아 문장을 쓰고 전체 글쓰기를 하는 이유는 읽고 이해하기 위해서입니다. 나도 알아들을 수 있고 상대방도 알아들을 수 있는 언어로 적는 것입니다. 코딩은 그 상대방이 컴퓨터이고, 그것이 바로 코딩입니다. 이때 '컴퓨터가 이해할 수 있는 언어'가 프로그래밍 언어이고 그 언어로 글쓰기를 한 게 바로 코딩입니다. 이때 컴퓨터와 이해할 수 있는 언어의 반대되는 개념은 '자연어 (Natural Language)'라고 부릅니다.
일기를 넘어 수필을 쓴다면 어떻게야 할까요? 나만이 알고 있는 언어로 마구잡이로 적기만 한다면 그것은 일기일 뿐입니다. 수필을 쓴다면 글을 읽는 사람에게 감동을 줘야 합니다. 예를 들면 기승전결로 짜임새 있는 글을 구성할 수도 있습니다. 화제의 시작, 화제가 전개됨, 내용을 전환함, 결말 이렇게 4단 구성을 사용하면 독자에게도 큰 감동을 줄 수 있을 것입니다.
이처럼 프로그래밍은 일기보다는 수필에 가까운 작업입니다. 완성도와 안전성을 높이기 위해 고민하고 관리하는 과정까지 모두 포함된 개념입니다. 코딩으로 언어를 적는 것 이상으로 프로그램이 효율적으로 동작하는 방법을 모색하고, 동작하던 프로그램에서 문제 발생 시 대처하는 법까지 고려하는 것을 말합니다.
현업에서는 코딩과 프로그래밍을 명확하게 구분 짓지 않는 경우가 많습니다. 그러므로 코딩과 프로그래밍을 딱 나누어서 지칭하지 않아도 됩니다. 코딩과 프로그래밍을 그때마다 마음에 드는 단어를 사용하셔도 됩니다. 하지만 현업에서는 좀 더 짧고 발음하기 좋은 코딩이란 단어를 좀 더 선호합니다. 사실 개발자들이 하는 건 프로그래밍에 가까운데도 말이죠. 이 두 용어의 핵심은 이렇습니다. 컴퓨터가 이해할 수 있는 언어를 다루는 것은 코딩, 컴퓨터가 명령한 내용을 원활하게 따를 수 있도록 명령하고 관리해 주는 것은 프로그래밍이라고 할 수 수 있습니다.
'다보스포럼'이라고 불리는 세계경제포럼에서 세계 40여 개국 정상 및 국제기구의 유력한 인사들이 모여서 각종 정보를 교환하고 세계 경제의 최대 화두와 발전 방안, 미래에 대한 주제 등을 논의합니다. 2016년 이 포럼에서 창립 이래 최초로 과학 기술 분야의 주제를 주요 의제로 채택했습니다. 바로 '제4차 산업혁명'입니다. 다보스포럼의 창립자이자 회장인 '클라우스 슈밥(Klaus Schwab)'은 곧 4차 산업혁명이 일어나 지금까지 인류가 경험하지 못한 대변혁을 맞이할 것이라고 말합니다.
4차 산업혁명은 범위가 매우 넓어 한마디로 정의하기는 어렵습니다.
빅 데이터 분석, 인공지능, 로봇공학, 사물인터넷, 무인 운송 수단(무인 항공기, 무인 자동차), 3차원 인쇄, 나노 기술과 같은 7대 분야를 말합니다. 가장 큰 특징은 기술적 융합이 이루어짐으로써 디지털 세계, 생물학적 영역, 물리적 영역 간의 경계가 허물어진다는 것입니다. 인간이 조정하지 않아도 사물들끼리 서로 정보를 주고받으며 알아서 판단하는 산업 시대, 쉽게 말해 '사물지능 시대'가 도래하는 것입니다. SF영화에서 로봇이 길거리를 청소하고 심부를 해주는 그런 일들이 실제로 일어날 수 있다는 것입니다. 이렇게 되면 기계를 통한 완전 자동생산체제는 노동시장의 붕괴를 초래할 수 있다고 합니다.
현재 4차 산업혁명은 '기하급수적'으로 진행되고 있습니다. 디지털 혁명, 소프트웨어 혁명을 통해 세상의 모든 것을 코딩으로 로봇화, 자동화, 인공지능화하는 시대가 빠른 속도로 다가오고 있는 것입니다. 이에 지금 세계 주요 선진국들은 4차 산업혁명에 대비해 코딩 교육을 강화하고 있습니다. 디지털 혁명을 토대로 일어나는 4차 산업혁명 시대에 살아남으려면 코딩은 필수적인 능력이니깐요. 세계 각국은 이러한 코딩 교육을 이미 선행하고 있습니다. 이스라엘은 1994년부터 소프트웨어 과목을 학교 정규 교육과정에 포함시켰고, 핀란드는 2014년부터 코디콜로(코딩학교)를 전국으로 확대하고 있습니다. 오바마 전 대통령은 "코딩을 배우는 것은 여러분의 미래는 물론 조국의 미래에도 매우 중요합니다."라고 말하며 소프트웨어 교육, 코딩 교육이 국가의 경쟁력을 높인다며 교육의 중요성을 꾸준히 강조하고 있습니다.
한국도 소프트웨어 교육을 2018년 중학교 1학년부터 의무화하였고, 이어 2019년에는 초등학교 5~6학년으로 확대했습니다. 또한, 2025년부터는 AI 교육을 초중고에 정식 도입하고 안착시킬 계획입니다. 이처럼 프로그래밍은 소프트웨어 시대를 대비해 꼭 배워야 하는 필수적인 능력이라고 할 수 있습니다.
코딩의 상상은 현실이 된다.