①영어권 코딩 부트캠프 인재가 한국 SKY보다 개발을 잘하는 이유
한국 초명문대 컴공과 출신 개발자들이 만든 시스템보다 영어권 6개월 코딩 부트캠프 출신 인재들이 만든 시스템이 더 뛰어난 이유 한국은 인재 문제, 지식 기반 문제, 자본 문제를 총체적으로 갖춘 2류 국가이기 때문
박사 유학 중 가끔 들르던 한국어 권의 특정 노트북 브랜드 커뮤니티가 있었다. 영어권에서 더 활성화되어 있는 커뮤니티고, 보스턴에서는 가끔 오프라인 모임이 있으면 찾아가곤 했었기 때문에 한국에서도 비슷한 커뮤니티가 형성되어 있을 것이라는 기대가 있었고, 우연한 기회에 한국어로 검색하다가 찾은 곳이다.
꼭 해당 브랜드 노트북 이야기만 나오는 것은 아니고, 주제가 주제이다보니 국내 IT업계의 현실에 대한 이야기가 굉장히 자주 나왔었는데, 그 중
왜 SKY, SKP 컴퓨터 공학과 출신의 국내 최고급 인재들만 뽑아서 밤을 새어가며 프로젝트를 했는데, 영어권에서 코딩 6개월 배운 부트캠프 출신 애들이 만든 결과물보다 못 할까요?
라는 질문이 오랫동안 뇌리를 떠나지 않고 있다.
처음 저 질문에 대한 답을 쓴지 약 6년이 좀 더 지났는데, 그간 수십억의 개발 비용을 써가며 개발자들을 채용해보기도 했고, 답답한 마음에 내가 스스로 개발을 배우고 직접 해 보기도 하면서, 이제는 원인을 알 것 같다.
영어권 코딩 부트캠프 출신보다 못한 SKY, SKP 출신 개발자
문제의 원인은 3가지로 정리할 수 있다.
- 한국어에 내재된 논리적 사고 구조의 결함
- 언어 장벽에 따른 영어권 고급, 최신 지식 습득 지연
- 한국식 프로젝트 운영 방식
먼저 논리적 사고 구조 이야기를 좀 꺼내보자.
한국인들의 가장 큰 문제 중 하나가 각기 다른 상황에 맞춰 각기 다른 대응을 해야한다는 논리적 사고 구조의 결함이다. 쉽게 예시를 들면, 고교 시절에 독일어를 제2외국어로 고른 경우에 남성형, 여성형 명사, 1인칭, 2인칭, 3인칭 일때, 과거/현재/미래, 진행형/완료형/현재형 등등으로 각각 구분되는 경우에 명사에 적절한 동사의 형태가 다 달라지는 것을 본 적이 있을 것이다. 한국인들에게는 매우 어려운 도전인데, 반대로 그들 문화권에서는 암묵적으로 동의되는 지식이 있어서 별 어려움 없이 그런 구분을 따라가게 된다.
단순히 언어의 활용에서 그치는 것이 아니라, 평소 사고 방식에서도 한국인을 비롯한 동양인과 서양인들의 사고 방식을 크게 구분짓는데 결정적인 역할을 하는데, 라틴어 기반의 언어를 쓰는 화자들은 저렇게 구분되는 구조, 상황에 적절한 반응을 해야하는 구조를 따라가는데 큰 거부감이 없다. 물론 그곳도 사람사는 곳이기 때문에 머리가 좋은 인재는 실수없이 완벽하게 문법을 맞추는 반면, 머리가 나쁜 인재는 적용은 커녕 암기도 힘들어하기는 하니까 일반론으로 확대하기보다는 상위 10% 정도의 우수 인재에 초점을 맞추면 될 것이다.
반면, 한국어를 비롯한 동양 문화권에서는 복잡한 그림으로 갖춰진 한자 한 글자의 뜻을 아는 것이 굉장히 중요했다. 때문에 그 글자를 아느냐 모르느냐, 새로운 글자를 만들어 냈다면 그 글자를 통용해서 쓰느냐 마느냐, 그 때 그 글자를 새롭게 정의한 사람이 권력자인 황제냐, 동네의 일개 서생이냐 같은 부분들이 매우 중요했다.
두 문화권이 사고 방식 자체가 논리적 완성도를 높이는 정점에 올라서기 위해 미세 조정을 끊임없이 해야하느냐, 황제 폐하께서 정하신 지식, 대세가 결정한 지식을 얼마나 빠르게 따라가느냐에 따라 결정되도록 만들어진 역사적 배경이라고 할 수 있을 것이다.
결국 동양인들이 서양인들에 비해서 논리적으로 치밀한 사고, 단계적 결집을 전체의 완성도로 바꾸는 작업에 대해 언어 수준에서부터 훈련이 덜 된 상태인 것이다. IT업계에서 개발이라는 것이 복잡한 시스템을 구축하는 고도의 논리적 작업이라는 것을 감안하면, 한국인 중 서구식 언어 구조로 훈련이 되지 않은 인재가 그 벽을 넘는 것은 고교 시절에 독일어의 수백 가지 명사-동사 조합을 무작정 외우는 것과 유사한 도전이 되는 것이다.
영어로 나와 있는 지식 중 번역된 것은 1%도 안 된다
영어권에 대학을 설립해 운영하면서 느끼는 거지만, 언어적인 장벽이 낮아 영어로 된 지식을 습득하는데 거부감이 없는 학생들은 수업 중에 가르쳐 준 내용으로 시야가 넓어지면 1주일, 2주일이 지나면서 영어로 더 많은 지식을 습득하고 있는 것이 눈에 보인다. 질문하는 수준이 달라지기 때문이다. 반면, 한국어 밖의 지식을 습득하는데 어려움이 많은 학생들은 제공해 준 교재가 무슨 말인지 이해를 못해서 번역하는데 상당한 시간을 쓴다. 처음에는 같은 수준의 지식을 갖고 있었을지 몰라도 1달만 지나도 완전히 다른 수준의 학생이 된다. 아마 영어로 지식을 습득하고 있는 학생이 처음에 더 모자란 상황이었다고해도 학기 끝날 무렵이 되면 지식 역전 상태가 흔히 나타날 것이다.
실제로 영어권의 지식을 습득하는데 어려움이 없는 사람들은 구글 검색 몇 번으로 해당 업무를 위해 무슨 일을 어떻게 해야하는지 쉽게 찾을 수 있다. 반면 한국어에 한정된 사람들은 영어로 나와 있는 지식 중 번역된 결과물만 보고 살아야 한다. 아무리 번역기가 좋은 시대가 왔다고 하지만, 번역기로 일반 지식을 번역하는 것의 정확도와 고급 지식을 번역하는 것의 정확도는 상당히 큰 차이가 있다. 특히 전문용어들은 번역기도 사전에 없는 단어이기 때문에 부정확한 번역을 내놓기 투성이고, 당연히 해외기준 대학 학부 수준 이상의 지식이 한국어권에 전달되는데는 상당한 시간이 걸린다. 그런 지식을 번역하는 사람들도 돈이 되어야 번역하지, 아닐 때는 굳이 남들을 위해서 자원 봉사를 해 줘야 할 이유가 없기 때문이다.
같은 문제가 IT개발에서도 그대로 적용된다. 영어권에서는 이미 상용화된 지식, 최소한 상당한 도전이 끝나서 전문 개발자들이 조금만 고생하면 응용해서 쓸 수 있는 지식이지만, 한국어권 개발자들에게는 처음 듣는 이야기가 되는 경우가 많다. IT개발자들이 좋아하는 Github, Stackoverflow 등의 커뮤니티는 일괄 영어로 운영되는데, 한국어권 개발자들은 영어 뜻을 이해못해 그 페이지들을 번역기를 돌려서 보고 있는 경우가 대부분이고, 질문을 하고 싶어도 질문을 올리지 못한다. 영어 실력이 안 되기 때문에, 그저 남들이 질문해 놓은 정보만 확인하는 것에 그치는 것이다.
실제로 해외에서는 이미 상용화가 2010년대 초반에 끝났던 RTB(Real-Time Bidding) 시스템을 국내에 도입하는 사업을 추진하던 시절, 구글 광고 서버에서 보낸 정보를 받아 내부 계산을 끝낸 다음 700ms, 빠르게는 300ms 안에 답변을 해 줘야 하는 시스템을 구축하겠다고 국내의 많은 개발자들과 VC 투자자들을 만난 적이 있다. 당시 영미권에서는 그 시스템에 타게팅 광고를 붙여 고효율 광고로 수익을 내는 회사들이 우후죽순처럼 생기던 상황이었다. 그 때 국내의 개발자들이 했던 말들을 몇 개 골라보면
그 시스템은 대표님이 만드시고, 저는 그냥 DB만 구축하면 되는거죠?
구글이니까 하는거지, 구글 아닌 회사가 그런걸 어떻게 만들어요?
그런 듣도보도 못한 시스템 만드는 거 말고, 웹사이트 기획서 주시면 그거 만들어 드릴께요
같은 표현들이었다.
이미 2008년부터 시작된 프로젝트로, 상용화도 다 됐고, 심지어 글로벌 시장에 수 많은 경쟁업체들이 생겨난 상황인데, 한국어 커뮤니티 안의 개발자들에게는 금시초문인 지식이었던 것이다.
나는 결국 유사한 시스템을 나 스스로 개발하는 결정을 내렸고, 수리통계학 기반의 모델링 지식과 그런 모델링에 쓰는 코딩 지식만 있던 비개발자인 나는 구글 검색에 나오는 콘텐츠들을 바탕으로 유사한 시스템을 만들 수 있었다. 코딩 부트캠프 6개월 출신들도 역시 구글 검색에 나오는 콘텐츠들을 열심히 공부하면 한국 개발자들에게 금시초문인 시스템을 만들어내는데 어려움이 없을 것이다. IT개발이라는 것이 4차원의 도전적인 수학이 아니라, 일상적인 논리의 결합만으로 충분히 일반인이 쓸 수 있는 시스템을 만들 수 있기 때문이다.
한국식 프로젝트는 정해진 기획서대로, 영어권은 실시간 업데이트
한국에서 IT개발자, 웹디자이너 같은 분들을 뽑으면 먼저 기획서를 달라고 하고, 개발 기간이 얼마인지 묻는다. 중간에 바꾸면 힘들어지니까 기획서에 정한 범위 안에서 모든 결정을 다 하자고 한다.
영어권도 미국 기준 동부식, 서부식이 조금 다르기는 하지만, 한국 대기업의 IT프로젝트 발주 형태를 따르지 않는 곳들이 굉장히 많다. 무슨 말이냐하면, 어떤 서비스를 어떤 목적으로 만들자는 이야기가 나온 다음, 기획자 없이 계속 진행되는 과정 중에 잦은 변경들이 나타난다. 예를 들어, 어떤 라이브러리를 쓰기로 결정했었는데 그 라이브러리가 3~4년 후에 지원되지 않는 상황으로 변경되면 새로운 라이브러리를 찾고, 거기에 따라 주변 인원들의 업무에도 영향을 받는 과정이 일상적으로 받아들여지는 업무 프로세스를 갖추고 있다.
한국에서 같은 상황이 벌어지면 ‘PM(프로젝트 매니저)이 이상한 라이브러리를 고르는 바람에 일정이 늦어졌다’, ‘PM 실력이 없으니까 우리가 다 고생이다’ 같은 볼멘 소리들이 팀 안에서 나온다. 모두들 생각하지 않고 정해진 시스템에 따라가기 바쁘기 때문이다.
언어 플랫폼마다 상황 변화에 따라 특정 함수를 ‘Deprecated (지원 중단 예정)’이라고 띄우는 경우들은 생각보다 많이 있는데, 한국에서는 같은 표현이 뜨면 ‘어차피 3~4년 뒤에 벌어질 일이니까 무시’하고 메세지를 안 띄우도록 하는 방법을 찾거나, 앞으로 업데이트하면 안 된다면서 개발자들이 짜증을 낸다. 2009년에 만든 행정안전부 정부 시스템을 2023년까지 최소한만 업데이트하면서 2009년 시스템을 유지하려고 했던 이유 중 하나가 여기에 있다.
영어권의 많은 상용 프로그램들은 매 년, 매 분기, 매 월, 심지어는 매 주 단위로 보안 문제, 버그 해결 등을 이유로 꾸준히 새로운 버전을 내놓는 것을 일상으로 하는 시스템을 운영한다. 그렇다보니 정해진 기획서대로 만들어서 3년, 4년 후에 문제가 터지지 않도록 업데이트를 아예 막아버리는 한국과는 완전히 다른 방식으로 프로젝트를 접근하는 것이다.
인재 문제, 지식 기반 문제, 자본 문제
위의 3가지 문제는 각각 인재의 문제, 지식 기반의 문제, 그리고 프로젝트에 투입하는 자본의 문제로 요약될 수 있다.
인재 개개인의 계산 속도는 한국인이 더 뛰어날지 몰라도, 논리적 사고라는 영역에서 한국인이 라틴어권 인재들 대비 평균 이하 수준인 것이 인재의 문제라고 할 수 있고, 영어권에서는 쉽게 이해, 소비, 증폭되는 지식이 한국어권으로 넘어오면 번역이 될 때만 공유되고, 그 번역된 지식의 틀 안에서만 맴도는 상황이라고 정리할 수 있을까?
IT프로젝트를 오늘 갖다 붙여서 쓰고나면 10년, 20년 동안 계속 추가 투자 없이 쓸 수 있는 시스템이라고 생각하고 최소한의 비용을 쓰려는 한국적 프로젝트와, 회사도 키우고 거기에 따라 서비스도 더 확대하겠다고 생각하고 자본 투입을 단계적으로 배분하는 서양식 프로젝트 사고 방식의 차이도, 역시 시장의 크기, 사업가의 역량 같은 요소 밑바닥에는 자본의 문제가 숨어 있다.
이 문제들이 독립적인 문제가 아니라 복합적으로 얽혀 있는 문제일텐데, 이렇게 말로 정리한 내용을 사고 확장을 도와주는 프레임으로 바꾸려면 어떻게 해야할까? 그래야 한 가지 문제를 해결하기 위해 어떤 행동을 하면 다른 요소들에는 어떤 영향을 주고, 전체 시스템은 어떻게 바뀔 수 있을지 ‘데이터 과학’에 입각해서 분석을 할 수 있을 것이 아닌가?