Do

4차산업혁명을 위해, 코딩맘?

신문 읽다가 “코딩맘”이란 말에 좀 당황하다. 까닭은, 대충 알겠다. 신문이고 TV고 맨날 4차산업혁명이 어쩌고 AI가 어쩌고 코딩이 어쩌고 떠들어대는데, 게다가 초등학교 코딩 의무교육 하느니 마느니 요란한데, 정작 학교엔 코딩 선생이 따로 없어서 담임교사가 일단 수업을 하겠다는데, 그렇다고 학원 보내자니 학원 강사는 또 12시간 수강하고 자격증 받은 자들이라는 뉴스가 무섭다,, 그래, 차라리 엄마가 코딩을 배워 직접 가르치자! 뭐 그런 흔한 이야기다.

“프로그래머가 되자!”

한국의 사교육 풍토에 대해선 말을 아끼겠다. 할 말 많을 사람들 따로 많으니. 단지 ‘코딩’ 교육에 집중해 본다. 정작 현업 ‘코더’들은 “왜 이딴 짓 배우라며 애들을 괴롭혀?” 걱정이다. 그래, 그 코딩이라는 거, 비싼 학원까지 보내가며 가르칠 만한 그 무엇일까? 그에 대한 비판을 짚어 보자.

우선, ‘코딩‘이라는 행위 교육이 적절하냐는 지적이 있다. 그러니까 코딩이 아니라 알고리즘을 가르쳐야 한다는 주장인데, 알고리즘 또한 어느 정도 레벨에서는 공식화 되어 있어 일종의 암기과목 아니던가. 그리고 알고리즘 학습 또한 프로그래밍 언어마다의 생로병사에 따른 유효기간 문제로부터 완전히 자유롭진 못하다는 게 ‘코더’들의 반론이다. 어떤 말을 어떻게 하더라도 프로그래밍은 결국 3D 업종이라는 자괴감인 듯도 하다만,,

그래서 그들 말대로 프로그래머가 별로라면,

“슈퍼 프로그래머가 되자!”

이는 스티브 잡스가 ‘일당백 개발자’의 필요를 말한 뒤 유행한 주장이다.

“애플 창업 초기부터 어떤 현상을 관찰했는데, 그때는 그걸 뭐라고 말해야 할지 모르겠더라. 그런데 그 후로도 아주 오래 그리고 깊이 생각해 보니, 이젠 알겠다. 대부분의 일이 평균과 최고 사이에서 약 2:1의 동적인 분포도를 그린다. 뭔 말이냐면, 뉴욕에서 택시를 타서 마침 최고의 운전사를 만났다면 평균인 운전사보다 약 30% 빠르게 목적지에 도착할 수 있을 거다. 자동차는 어떤가? 가장 좋은 차는 흔한 보통 차에 비해 얼마나 좋은가? 20%쯤? 그러니 평균과 최고 사이엔 약 2:1의 동적 영역이 존재한다는 거다. 소프트웨어 개발자는 어떨까? 평균 개발자와 최고 개발자 사이에는 50:1, 아니 어쩌면 100:1만큼의 차이가 존재한다. 그래서 나는 아무리 급할 때도 B급이나 C급 개발자를 대충 뽑고 만족하지 않고 A급을 채용하기 위해 엄청나게 노력했다. 그러고 나니 또 한 가지 사실을 발견하게 되더라. 그 A급들은 서로 함께 일하는 걸 좋아한다. 대부분 전엔 그렇게 함께 일할 기회가 없었기 때문에.”

우선, 틀린 말이 아니다. 프로그래머만큼 역량의 우열이 급격하게 나뉘는 직업이 또 있을까. 하나가 백을 이기는 일당백 프로그래머는 정말 존재한다. 그리고 그 A급들은 서로 함께 일하는 걸 좋아한다. 달리 말해, A급이 아닌 자들과 함께 일하는 걸 싫어한다,, 이는 조직에 있어 치명적인 불화 문제가 될 수도 있다.

슈퍼 프로그래머의 존재는 프로젝트 초반 프로토타입 만들 때까지는 정말 요긴하다. 혼자서 100명만큼 일을 하니까! 그러나, 프로토타이핑 단계까지만이다. 프로젝트가 본격화되어 업무가 분산된 뒤에도 모든 문제 해결책이 단 한 명에게 집중되기 때문에 병목 현상이 심각해진다. 그리고 대개, 점점 거만해진다,, 그러니 결국 슈퍼 프로그래머의 존재는 PM(Project Manager의 역할은 아주 중요하니, 앞으로 계속 생각해 보자.)의 재앙이 되고 마는 경우가 태반이다. 물론 순리대로 풀어가기만 한다면 최선의 결과를 얻을 수도 있다. 개발하는 어플리케이션의 수준을 끌어올리고 프로젝트 전반적 기술 컨설팅과 아예 새로운 솔루션을 개발하는 등, 이른바 슈퍼 프로그래머 운용의 묘를 제대로 발휘하면 될 일이다. 하지만 역시나, 사장님이 그 귀한 슈퍼 프로그래머를 그렇게 쓸데없는(!) 일에 쓰도록 내버려 두지 않는다,,

“프로그래머가 아니라 아키텍트!”

이 또한 흔한 주장이다. ‘코더’라는 말의 자조 섞인 한숨의 반대말로 쓰이는데,, 이 또한 틀린 말은 아니다. ‘아키텍트’란 말뜻 그대로 건축가, 개발하는 소프트웨어의 전체적인 구조를 이해하고 여러 요소가 결합된 하나의 구조체를 설계하는 사람이다. 아주아주 중요한 일이다. 하지만 이 또한 불화의 싹이 되기도 한다. 여럿 중에 누가 아키텍트이고 누가 코더인가, 프로그래밍팀 팀장이 아키텍트인가, 설계를 추상화라 한다면 나는 추상화 뭐 그런 거 아예 안 하는 사람인가! 이 역시 PM의 재앙이 될 위험이 크다.

“그럼 프로젝트 매니저가 되자!” 이건, 글쎄, 옳다고 말하기도 그르다고 말하기도 좀 그렇다,, 좀 다른 맥락으로 보자면, 나쁘진 않은 업이다. 기계노동 AI노동 시대엔 오직 사람다움 즉 휴머니티만이 생계수단 될테니, 로봇 PM이 지금도 있다곤 하나 어쨌든 PM은 그나마 오랫동안 살아남을 일이긴 하다,, 하지만 완전히 다른 맥락이다. 말하자면, 전산이 아니라 경영을 배워야 할 일.

“그래서, 뭘 코딩하나?”

결국 이 질문으로 귀결되더라. 프로그래머든, 슈퍼 프로그래머든, 아키텍트든, 어떤 소프트웨어를 만들까. 스스로 프로그래머는 아니다만 필요하면 뭐든 만들어 쓰긴 했다. 왜? 아무도 안 만들어 주니까,, 단지 이름이 이쁘다는 이유로 선택한 ‘Perl‘로 구조와 권한 일치하는 공용 폴더를 생성하고 설정하는 스크립트라든지 렌더팜 렌더링 시퀀스 통제하는 스크립트라든지, 그때그때 필요하면 책 뒤져 명령어 조립해 만들어 썼다. 프로그래밍이란 그런 일이다. 뭐가 필요하면 충족하고 문제가 있으면 해결하는 도구의 제작. 그 필요와 문제가 얼마나 보편적으로 통할 만한가, 나아가 상품으로 가공해 유통했을 때 시장에서 얼마나 팔릴까의 차이일 뿐.

그러니 어쩌면 ‘기업가 정신(Entrepreneurship도 마찬가지, 중요하니 계속 생각해 보자.)’이 코딩보다 훨씬 더 중요한 ‘스펙’ 아닌가 싶기도 하다. 기업가 정신이란, 시장 환경 변화에 민감하게 대응하면서 항상 사업의 기회를 찾고, 그 기회를 잡기 위해 혁신적인 사고와 행동을 하고, 그에 따라 시장에서 새로운 가치를 창조하는 일련의 활동 과정을 말한다. 어쩌다 보니 아주 질 나쁜 농담처럼 되어버렸지만 한때의 유행어 ‘창조경제‘도 대충 비슷한 걸 노리던 말이다.

’21세기 기술’

코딩뿐 아니라, 어떤 상황의 도전에 대해서든 우리 사회의 처방이 그저 대증요법으로만 그치는 게 진짜 문제 아닌가 하는 생각도 든다. 대증, 병의 원인보다 증상에 우선 대응하는 일이다. “AI가 몰려온다! AI가 뭐지? 그래, 프로그래밍!” 이거 너무 단순하지 않나,, 그럼 다른 나라는 어떨까, 이른바 선진국들. 다르다. 요즘 같은 세상서 살아남으려면 어떤 기술을 배우고 익혀야 하는지에 대한 연구와 토론이 ‘21세기 기술‘이란 이름으로 아주 치열하게 진행되고 있다. 그렇게 익혀야 할 기술로는 비판적 사고와 문제해결 능력, 네트워크 협업 및 사회적 영향력 통한 리더쉽, 호기심과 상상력, 순발력과 적응력, 효과적 구술/문서 커뮤니케이션, 자기주도적 사고 및 기업가 정신, 정보 분석 및 통찰 능력 등이 거론된다. 교육학계 일각에선 아예 각급 학교의 커리큘럼을 싹 다 바꿔야 한다고 주장하기도 한다. 일리 있다. 그냥 슥 둘러봐도 이거, 예전과 완전히 다른 세상 아닌가?

이곳 ‘업, 業’ 카테고리에서는 바로 그런 21세기 기술에 대해 알아볼까 한다.