2024년 2월 29일 목요일

엔비디아 젠슨황의 충격적인 선언 "코딩은 죽었다. 아이들은 코딩을 배울 필요가 없다"

 실리콘밸리에 있는 엔비디아는 AI 시대에 급속도로 성장해 뉴욕증시 시총 3위이며, 직원의 반이 연봉 3억이고, 가장 취직하기 원하는 회사이고 젠슨황은 가장 존경받는 CEO이다. 젠슨황이 Word Government Summit에서 세계의 영향력있는 사람들 앞에서 "코딩은 죽었다, 아이들은 코딩을 배울 필요가 없다" 라고 충격적인 말을 했다. 젠슨황의 말은 앞으로 코딩을 하는 프로그래머의 직업이 없어진다는 것을 의미한다. 10년 전의 옥스포드 대학의 연구결과에서도 그랬고 많은 사람들이 코딩의 종말을 예측했지만 이번의 젠슨황처럼 공개적으고 전세계가 주목하는 공식석상에서 선언한 것은 처음이다.

필자도 100% 동의 한다. AI가 코딩을 대신 할 것이라는 얘기인데 이 말 자체를 잘 이해하기가 쉽지 않다. 개발과 코딩의 차이를 먼저 정확히 이해해야 한다. 코딩, 즉 프로그래밍은 개발의 일부분일 뿐이다. 건설과 비교하면 인부의 역할이다. 개발은 분석, 설계, 코딩의 3 단계로 나누어 진다.

필자도 요새 앱을 개발할 때 코딩 부분의 90% 정도는 생성형 AI(Generative AI, GenAI)를 이용한다.

구글의 Gemini와 마이크로소프트의 Co-Pilot을 같이 사용하면서 비교도 하고 더 좋은 코드를 시용한다. 내가 아는 지식외에도 다양한 코딩 방법을 보여주니 배우는 것도 많다. 덕분에 이전에 비해 코딩 속도가 10배 정도는 빨라졌다. 그렇다고 개발이 10배 빨라진 것은 아니다. 앞 단의 분석 작업은 AI가 할 수 없는 작업이고 설계도 AI가 큰 도움이 되지 못한다. 하지만 가장 귀찮고 지루한 작업인 코딩을 하기 위해 프로그래머를 고용할 필요는 거의 없어졌다.

소프트웨어를 개발하는 인력에는 분석가(Anaylist), 설계가(Designer), 프로그래머가 있다. 옥스포드 대학의 연구에서도 프로그래머는 AI에 의해서 90% 이상 대체 되지만 대체가 불가능한 것이 분석가라고 했다. 그 중간이 설계가이다. 개인 회사처럼 한 사람의 개발자가 모든 것을 다 한다면 이 3가지의 다른 역할을 하고 있는 것이다.

가장 난이도가 높은 것이 분석가이다. 보수도 가장 많이 받는다. 건설과 비교하면 빌딩 건축가와 벽돌공의 차이라고 보면 된다. 필자가 국내에서 20년 이상 대기업, 중소기업, 벤처기업을 컨설팅을 하면서 진정한 분석가라고 할 수 있는 사람은 몇 명 보지 못했다. 국내에서는 통찰력과 경험이 필요한 분석 작업를 마치 템플릿이나 방법론으로 해결하려는 잘못된 경향이 있다. 그래서 방법론과 같은 형식에 쓸모없는 투자를 한다. 학계도 그렇게, 대기업도 그렇고, 정부의 정책도 꾸준하게 그런 잘못된 방향을 추구해 왔다. 언제나 정신이 들지 모르겠는데 지금까지는 그래 왔다. 요리사를 키우려는데 요리책만 전국에 뿌리는 상황이다. 만약에 템플렛이나 방법론과 같은 형식이나 도구로서 해결할 수 있다면 AI가 가장 잘 할 수 있는 분야이고 금방 없어질 직업이다. 마치 요리책만 있으면 일류 요리사가 될 수 있다고 착각하는 것과 같다. 그런 문화가 결국 국내 소프트웨어의 역량을 결정한다.

국내의 소프트웨어가 글로벌 소프트웨어를 만들수 없는 이유는 여러가지가 있으나 그 중 가장 핵심적인 이유가 분석가의 부족이다. 충분한 분석이 없이 개발하는 소프트웨어는 결함이 많고 확장성도 없고 스파게티 코드가 되는 것이 필연이다. 그런 상태에서 프로그래머의 정신 상태로 글로벌 소프트웨어를 만든다는 것은 하늘의 별따기이다. 결국 국내의 소프트웨어 업계는 정부의 보호아래 내수용기업으로 생존할 수 밖에 없다. 많은 기업들이 글로벌에는 명함도 못 내밀면서 갈라파고스의 혜택으로 생존해 왔다. 수 많은 정부의 정책으로 글로벌 소프트웨어를 육성하겠다고 지원했으나 성공한 적은 본 적이 없다. 국민의 세금만 축내는 상황이다. 동키호테와 같이 악의는 없지만 희망적인 무지가 선동하고 초래한 상황이다. 지금 이 순간에도 세계 AI 산업의 유행에 편승해 글로벌에 진출할 것 처럼 선전하는 기업들이 있으니 주식 투자를 한다면 무척 조심해야 할 상황이다.

분석가가 하는 행위는 분석이고 그 결과물은 Software Requirement Specification(SRS)이다. 하드웨어와 같이 있는 혼합된 경우는 System Requirement Specification라고 한다. 템플릿은 IEEE 사이트를 비롯해서 인터넷에서 찾아보면 많이 있다. 대충 30여 페이지 정도 된다. 템플릿은 그렇지만 실제 작성하면 수천, 수만, 수백만 페이지가 될 수도 있다. 그런 작업을 AI가 인간의 마음을 읽어서 할 수는 없다. AI는 논리적인 것은 잘 할 수 있지만 인간의 의지를 추측할 수는 없다. 분석작업은 필자가 책을 여러 권 출판하고 블로그에서도 시리즈로 연재할 정도로 어려운 작업이니 쉽게 역량이 늘 수는 없다.

국내 대부분의 개발자들 처럼 프로그래밍을 위주로 개발을 하는 개발자는 앞으로 점점 가치가 적어질 것이다. 먼저 분석이나 설계와 같은 고급 기술의 차이를 이해하고 그 방향을 추구하는 것이 미래에 개발자로서 생존할 수 있는 유일한 방법이다.

2024년 2월 28일 수요일

DevOps(데브옵스)의 역사와 현재 상황

 요새 미국에서 가장 유망한 소프트웨어 직업중 하나가 DevOps 이다.

DevOps는 언제 생겼났는가?

필자가 실리콘밸리에서 일하던 30년전에도 똑같은 사상은 존재했고 사용되어 왔다. 점진적으로 기술이 진화하면서 2009년에 애자일 사용자인 Patrick Debois가 처음으로 "DevOps"라는 용어를 사용했다.

모든 소프트웨어 개발에는 기반시스템, 프로세스와 문화가 필요하다. 이를 종합적으로 합쳐서 부르는 마케팅 용어일 뿐이다. 구글과 같은 글로벌 대기업에서는 자체적으로 개발한 이런 종합 시스템을 가지고 있다. 그런 시스템을 개발할 전담팀이 없는 규모의 회사에서는 상용제품이나 오픈소스를 사용한다.


이 분야는 널리 알려진 수십개의 유명한 회사들을 비롯해 수 많은 회사들이 제품을 공급하고 있는데 무료 오픈소스부터 고가의 제품도 있다. 자동차의 예로 보면 트럭, 승용차, 버스, 경차부터 스포츠카까지 다양한 목적을 위한 제품들이 있으니 내가 필요로 하는 제품이 어떤 제품인지 판단하기도 어렵다. 필요도 없이 돈을 낭비하는 경우도 많고 가족수가 많은데 스포츠카를 사서 확장을 할 수 없는 경우도 있다.이런 다양한 환경과 목적에 따라 적절히 선택하여 사용하는 것이 예술이며 많은 경혐이 없이는 수행할 수 없는 작업이다.

그래서 전문가가 드물고 수요에 비해 공급이 절대적으로 모자란다. 개발자들이 도구 한두개 사용할 줄 안다고 DevOps 전문가가 되는 것이 아니다. 벽돌공은 될지언정 건축가는 되지 못한다.

DevOps의 사상에는 소프트웨어 개발에 필요한 모든 도구와 문화가 다 포함되어 있다고 해도 과언이 아니다. 자동차의 예와 같이 제품에 따라 일부분의 기능만 제공하는 것이 통상적이다.그렇기 때문에 하나의 도구를 사용했다고 다른 도구를 사용할 수 있는 것은 아니다. 영어를 할줄 안다고 중국어를 할 수는 없다.

먼저 또 유사한 용어인 CI/CD 와 구별을 할 필요가 있는데 CI/CD는 2010년에 처음 책에서 소개되었다. CI/CD는 Continuous Integration/Continuous Deployment를 수행하는 도구를 의미한다. 마치 컨베이어 벨트와 같이 한번 올라타면 자동으로 연결이 된다. 소스코드가 변경되면 빌드(Build)와 테스트를 거쳐 전개(Deployment)까지 자동으로 수행되는 기계적인 도구이다. 이런 오토메이션 과정은 60여년 소프트웨어 역사상 변한 적이 없다. 컨베이어 벨트의 각 영역을 수행하는 도구도 기술이 발전함에 따라 계속 진화되어 왔다. 가장 기본인 소스코드관리 시스템도 최초의 SCCS부터 Git까지 진화해 왔지만 그 속의 알고리듬은 수학적인 diff 알고리듬으로 변화한 적이 없다. 단 사용하기 편하게 껍데기만 변화했을 뿐이다. Jenkins와 같은 도구도 과거에는 shell script로 수행해오던 기능을 편리함과 생산성을 추구하는 현대의 개발자들은 UI 껍데기에 기반한 도구를 선호한다. 그러다 보니 "No Code"라는 개념까지 나오고 자동 코드생성도구도 많다.

현대까지 진화한 DevOps 도구 중에는 Atlassian의 Jira Family와 같이 연 수억의 비용을 지불하며 사용하는 초대형 회사에서 필요로 하는 도구도 있고 Gitea와 같이 50명의 개발자 이내에서는 CI/CD와 이슈관리를 효율적이고 무료로 관리할 수 있는 도구도 있다. 그 외에도 수 많은 상용 제품과 오픈소스가 있으니 좋다 나쁘다는 각자의 환경에 달려 있다. 소프트웨어 개발의 전체 사상은 같으나 제품의 한계와 특성상 각 개발팀이 중요시 하는 영역이 다르니 다양한 제품이 나올 수 밖에 없다. 자동차 한대로 모든 고객을 만족시키는 것은 불가능하다.

필자는 꼭 필요한 경우외에는 고가 명품을 구매하지 않는다. 프랑스의 저명한 사회학자인 장 보드리아드의 가치이론에 따르면 "명품 기호가치"는 사용가치는 낮지만 과시용으로 비싼 비용을 지불하며 구매하는 것이 현대인의 소비 행태이다. 롤렉스 시계는 사용가치는 매우 낮지만 과시용으로는 좋기에 고가의 비용임에도 구입하는 것이다. 한국이 전 세계에서 가장 중요한 명품시장이다.

소프트웨어 도구에도 이런 소비 문화가 없을 수가 없다. 오픈소스부터 최고가의 제품까지 다양하게 사용해본 필자가 볼 때 저비용 혹은 무료의 도구에도 충분한 경우에 쓸데 없이 복잡하고 고가인 제품을 사용하는 것을

많이 봐 왔다. 물론 그 반대의 경우도 있다. Git와 같은 소스코드관리 도구 하나로 소프트웨어를 개발하겠다는 무모한 돈키호테도 있다. 컨설팅하다 보면 아직 국내 개발문화가 글로벌과 수십년 이상 뒤떨어진 곳도 무시할 수 없이 눈에 띈다.

국내용이 아닌 글로벌 품질의 소프트웨어를 개발하기 위한 절대적으로 필요한 것이 DevOps의 사상을 잘 이해하고 각자의 환경에 맞게 적당한 도구를 선택하는 것이다. DevOps 도구중에서 국내에서 많은 중소형급의 개발자들이 사용하기에 적당한 Jenkins, OpenProject, Gitea와 같은 훌륭한 오픈소스를 중심으로 앞으로 소개하려고 한다.

2021년 5월 26일 수요일

당신은 소프트웨어 엔지니어가 아니다

 

한국에서 소프트웨어의 본질에 대해서 얘기하다 보면 소 귀에 경읽기와 같아 하고 싶지 않지만 가끔가다 얘기하고 싶게 만드는 자극적인 이벤트가 생긴다. 그런 이벤트는 둘 중의 하나인데 너무 어처구니없는 황당한 기사나 정책이 나올 때가 첫번째이고 두번째는 오랜 경륜을 거친 진정한 전문가가 나의 생각과 일치되는 말을 했을 때이다. 깊은 마음 속 감동의 기쁨이다

첫번째 경우는 너무 빈번하다 보니 요새는 무감각한 상태가 되어 버려서 왠만한 엉터리 정책이나 기사가 아니면 지적하고 싶은 자극을 받지 않는다. 이번 경우는 두번째 경우로서 2021525(즉 어제) “Microsoft Build Conference”의 키노트 연설에서 마이크로소프트의 CEO인 사티야 나델라가 한 말이다. 유튜브에 16분짜리 동영상이 있으니 부담 없이 시청할 수 있다.

 사티야 나델라는 기술 전략에 뛰어난 통찰력을 가지고 있어 망해가는 마이크로소프트를 살렸다고 해도 과언이 아니다. 나와는 직접 같이 일한 적은 없지만 썬 마이크로시스템즈에서 같은 시기에  소프트웨어 엔지니어로 근무 했었다. 그의 연설은 기본적으로 마이크로소프트의 전략과 기술 소개가 핵심이다. 그러다 보니 마이크로소프트가 인수한 GitHub, Azure, Teams와 같은 핵심 서비스들이 소개되고 Platform, Digital Twin등과 같이 기술 전략보고서에 늘 등장하는 단골 용어들도 나온다. 여기까지는 그냥 사실 확인 정도로 부담 없이 들을 수 있었다.  

 무심하게 듣고 있던 나를 깨운 것은 다음 문장이었다. 작년에 자동차 인더스트리에서 기계공학자보다 소프트웨어 엔지니어를 더 많이 채용했다 라는 말이었다.

 실리콘밸리에서의 내 직장 경험을 보면 원자력발전소에서 소프트웨어를 개발할 때는 같이 일하는 원자력공학 엔지니어가 있었다. 물론 그들도 소프트웨어 개발을 한다. 인공위성을 만드는 회사에 있을 때도 옆에는 인공위성 전문 엔지니어가 있다. 그들도 소프트웨어 개발을 한다. CAD를 만드는 회사에서 일했을 때는 옆에 전자공학 엔지니어가 있었다. 물론 그들도 하루 종일 소프트웨어를 개발한다.

 사티야 나델라는 이 연설에서 그런 산업 전문가를 Domain Experts” 라고 명명했다. 그리고 소프트웨어 전문가를 Pro-Developers라고 명명한다. 그리고 그들이 힘을 합쳐 일한다고 말한다. 여기서 중요한 것은 소프트웨어 엔지니어나 Domain Experts라는 사람들이나 모두 프로그램을 한다는 것은 비슷하지만 근본적으로 하는 일이 다르고 기술도 다르다는 사실이다. 프로그램을 한다고 해서 다 Pro-Developers는 아니다. 요새는 온 국민이 프로그램을 배운다고 하는데 그 중에 Pro-Developer가 될 확률은 거의 없다.

 나는 항상 소프트웨어 엔지니어였지만 원자력공학 엔지니어도 아니었고 전자공학자도 아니었고 기계공학자도 아니었다. 나는 소프트웨어 엔지니어로서 소프트웨어 개발을 필요로 하는 곳에서는 Domain(즉 산업분야)와 상관없이 내 소프트웨어 전문성으로 업무를 수행해 왔다. Domain Experts들은 소프트웨어 엔지니어들을 필요로 하고 소프트웨어 엔지니어들은 Domain 지식이 필요하다. 소프트웨어 엔지니어들만 모여 있다면 개발할 대상이 없기 때문에 할 일이 없다. 개발할 대상도 필요하고 그 대상 분야의 전문성이 필수적으로 필요하다. 반대로 소프트웨어 엔지니어가 없는 Domain Experts만 있다면 그들은 조그만 초가집은 만들 수 있을지 몰라도 Platform과 같은 거대한 빌딩은 만들어 낼 수 없다.

 Domain ExpertsPro-Developers는 서로 꼭 필요한 존재이다. 한 사람이 둘을 다 잘한다는 것은 시간적으로 불가능하다. 자신이 둘을 다 잘한다고 주장한다면 둘 다 모두 못한다는 얘기이다. 프로 농구선수와 프로 축구선수를 둘 다 한다는 것은 불가능하다. 그냥 보통 사람보다 잘 하는 동네 팔방미인 소리를 들을 수는 있지만 프로는 절대 아니다.

 사티야 나델라가 말한 통계로 추측하면 이제는 Domain 지식의 역할보다는 그를 엮어서 거대한 소프트웨어 제품을 만들어 내는 소프트웨어 엔지니어의 역할이 더 많아졌고 더 중요해 졌다는 것이다.

 여기서 잠깐 한국의 상황으로 돌아와서 나의 경험을 얘기하자면 한국에는 소프트웨어 엔지니어가 거의 없다. 한국에서는 소프트웨어 개발 역량이 중요한 것이 아니라 Domain지식을 많이 가지고 있는 사람이 중요한 것으로 인식되어 소프트웨어 개발 역량은 향상되지 않고(물론 배울 곳도 없고) 같은 종류의 회사 아니면 갈 곳이 없는 엉성한 Domain Experts 만 존재한다.

 대부분의 소프트웨어 개발자의 경력진행을 보면 최초에 어떤 Domain의 회사에 취업했는지가 평생 갈 수 있는 경로를 협소하게 정해 버린다. 금융계에서 소프트웨어 개발을 하던 사람이 자동차 회사에 취직하기는 불가능하다. 소프트웨어 엔지니어를 채용하는 것이 아니라 자동차 개발자를 원하기 때문이다.   

 그래서 나는 한국에서 소프트웨어 개발자라고 주장하는 사람들에 대해 당신들은 소프트웨어 개발자가 아니다라고 말한다. 그 대신 당신은 프로그램을 적당히 할 줄 아는 자동차 전문가다라는 식으로 말한다.

 그럼 도대체 무엇이 소프트웨어 전문가인가? 여기서는 이해하기 어려운 추상적인 영역으로 들어간다. Domain에 특화된 Hard Skill이 아닌 모든 소프트웨어 개발에 사용되는 일반적인 Soft Skill 분야인데 분석, 설계, 컴포넌트와 인터페이스의 이해, 협업 등 창조적이고 문화적인 요소가 중요하며 구체적으로 눈앞에 보여주기 어려운 영역이다. 인생에서 어떤 영역이든지 전문가가 되려면 구체적인 지식의 모음보다는 철학적이고 추상적이며 잘 보이지도 않는 단계를 꼭 넘어가야 한다

골프 등 모든 스포츠에서 공통적으로 힘을 빼라와 같은 추상적인 표현을 왜 뉴톤 단위의 숫자로 표현할 수 없는가를 이해할 수 있어야 비로서 전문가가 될 수 있다. 힘을 빼라는 코치에게 몇 뉴톤이면 됩니까하는 질문은 고등학생 정도나 할 질문이지 전문가가 할 질문은 아니다.  내가 고교생 수준에서 답을 해준다면 당신이 가지고 있는 모든 기술 중에서 Hard Skill은 20% Soft Skill은 80%를 가져야 한다고 억지로 답을 해주겠다. 현재 한국의 대부분의 개발자는 반대로 Hard Skill은 80%, Soft Skill은 20%를 가지고 있다. 소프트웨어 개발자라고 말할 수가 없다. 기본조차도 되어 있지 않은 경우가 대부분이다. 

하여튼 결론은 한국에는 진정한 소프트웨어 엔지니어는 없다. 내가 만약 과거에 없었던 새로운 산업이 생겨서 소프트웨어 개발자를 채용해야 한다면 마음에 드는 개발자는 극히, 아주 극히 소수에 불과하다. 예를 들어 구글이나 페이스북이나 클라우드나 블록체인이나  다 새로 생긴 산업이고 그런 경우에 80%의 Hard Skill은 아무 곳에도 쓸데가 없다. 새로운 사업에서 소프트웨어 개발자에게 필요한 것은 Soft Skill 뿐이다. 

현재 한국에는 다양한 산업의 수 많은 Domain Experts만 있다. Java나 Python으로 Git을 사용해 몇십년을 일했다고 해도 자아도취한 경이적인 숙련공이 될지는 모르지만 진정한 Pro-Developer가 되기 위한 조건과는 거리가 멀다. 프로그래밍 언어나 도구와는 별개의 문제이다. 하여튼 내가 원하는 개발자는 아니다.  이런 잘못된 결과의 피해는 어느 정도 규모 이상의 소프트웨어는 만들 수 없다는 것이다. 대표적인 것이 사티야의 연설에서도 나오는 플랫폼이다. 소프트웨어 전문가가 없이는 플랫폼을 만들 수가 없다. 몽상과 열정으로 시작해 흉내만 내거나 장난감하나 만들다가 끝난다. 그런 필연적인 결과를 모르고 시작할 뿐이다. 근거 없는 열정은 동키호테의 무모함으로 결국은 회사와 자신에게 피해를 입힌다. 어떤 산업 Domain 영역에서도 소프트웨어 전문가의 도움 없이는 큰 규모의 소프트웨어는 만들어 낼 수 없다.

 전문가는 커녕 소스코드 관리시스템도 사용하지 않으면서 소프트웨어 개발자라고 말하는 중견 소프트웨어 회사도 있다. 어떻게 이런 어처구니 없는 현상이 벌어졌는지는 미스터리 하지만 하여튼 소프트웨어의 60년 역사에서 보기 어려운 소프트웨어 개발자의 행태가 지금도 벌어진다. 반대로 진짜 소프트웨어 전문가는 그런 가짜 소프트웨어 개발자들 사이에서 오리 떼 속의 백조로 왕따당하는 것이 현실이다. 물론 이렇게 된 주요 이유 중의 하나는 회사의 무지한 리더나 관리자이다. 대학교육의 잘못도 절대 빼 놓을 수 없다

기술을 잘 이해하는 사티야 나델라는 빌 게이츠의 지원아래 소신대로 마이크로 소프트를 살려내 다시 훌륭한 회사로 만들어 낼 수 있었다. 빌 게이츠와 사티야 나델라가 없었다면 마이크로소프트는 지금과는 완전히 다른 평범한 회사가 되어 있었을 것이다.

 소프트웨어 엔지니어를 고용해서 엉성한 Domain Experts로 만들어 버리는 한국의 회사들은 영원히 대규모의 소프트웨어도 만들어 내지 못하고 지금까지 그래왔듯이 글로벌경쟁은 여전히 실현 불가능한 꿈으로만 남아 있을 것이다. 사티야 나델라의 지적처럼 Pro-Developer의 중요성을 이해하려면 이번 기회에 먼저 Pro-DevelopersDomain Experts와의 차이점을 정확히 이해하려는 노력을 하기위한 계기가 되기를 바란다.

 

 

 

2021년 3월 6일 토요일

개발자 한 명이 백 명의 일을 할수 있나?

 

소프트웨어에 대해서 얘기하면 꼭 나오는 말이 있다. 훌륭한 개발자의 능력이 보통 개발자의 능력보다 몇 배 뛰어난가 하는 주제이다. 소프트웨어 공학가인 자크만(Sackman)은 이미 1968년도에 개발자 사이에는 28배의 차이가 난다고 발표했고 페이스북의 주커버그는 2011년에 100배의 차이가 있을 수 있다고 그냥 말했다. 이런 말장난을 듣고 호들갑 떠는 한국 소프트웨어 관련 교수, 정부, 경영진들을 보면 소프트웨어를 손톱만큼이라도 이해하고 있는지에 의문이 든다. 나도 이런 말을 인용해서 사용하기는 했지만 "소 귀에 경읽기" 인 것을 알고 나면서부터는 별로 인용하지 않는다. 또 그런 논문이 잘못되었다고 반발을 제기하는 논문도 있다. 다 이론 가지고 싸우는 사람들의 소일거리며 밥벌이 수단이다.

 "True Technologist"라고 불리는 마이크로소프트의 팀장이었던 실전 소프트웨어 전문가인 조엘 스폴스키(Joel Spolsky) 같은 사람들은 그런 이론가들을 경멸한다. 나도 당연히 조엘 스폴스키, 스티브 맥코넬(Steve McConnel), 밥 글래스(Robert Glass), 켄트 벡(Kent Beck)같은 실전 전문가들을 좋아하고 공감한다. 40년의 경험과 일치하기 때문이다. 반면에 이론가들하고는 얼굴 마주치기도 싫다. UML을 만들어낸 "3 Amigo"라고 불리는 야콥슨, 부치, 럼바와 같은 이론가들도 유행을 만들어 유명해지는 데는 성공했지만 과연 소프트웨어의 개발역량에 이바지를 했는지는 회의적이다. 이미 다 행해지고 있는 관행을 도식화 했을 뿐이지 새로운 개념을 만들어 낸 것도 아닌데 그 처세술에 놀랍기만 하다. 그래서 조엘 스폴스키는 그런 사람들에게 "화성에 가서 살고 제발 지구에 내려와서 피해를 입히지 말라"고 했다. 나도 그런 한국의 교수들이나 대기업의 경영진들을 보면 화성에 가서 살라고 하고 싶다. 그들도 목구멍이 포도청이기 때문에 지구를 떠날 리는 만무하지만 제발 피해를 덜 입히는 좋겠다는 생각은 항상 가지고 있다.

 다시 100배 얘기로 돌아와서 나는 차라리 10,000배라고 말하겠다. 어차피 다른 사람은 못할 일을 한 사람이 할 수 있다면 무한대의 배율이지 몇 배가 아니다. 퍼센티지나 배수를 얘기할 때는 분자와 분모를 정확히 얘기해야 한다. 지식산업의 세계는 모차르트나 아인슈타인과 같이 배수로 판단할 수는 없는 것이다. 노동산업에서나 숫자가 가능한 것이다. 억지로 강조하려다 보니 그냥 100배라고 얘기한다. 본질은 이해하지도 못하고 진짜 100배인가 보다고 착각하고 어떻게 하면 개발자들을 더 훌륭하게 양성할 수 있을까 하고 고민 같지도 않은 고민을 하면서 일을 벌이고 회사에서 급여를 타가기도 한다. 무지가 판치는 세상이니까 가능한 현상이다

소프트웨어가 지식산업이라고 말로만 떠들지 전혀 이해하지 못한 상태에서 발전에 장애가 되는 짓만 한다. 소프트웨어 산업을 발전시킨다고 하면서 노동집약산업 형태의 공장으로 만들고 잘되기를 바라는 것은 망상이다. 폴리페서들과 공무원들의 이해 관계가 맞아 떨어진 탁상행정도 마찬가지이다. 지난 20년 동안  정부에서 20개 정도의 법이 소프트웨어 진흥을 위해 만들어 졌으나 노동산업을 기본사상으로 시작했으니 잘 될 리가 없다.

 한국에서는 100배를 위해 노력하고 말고 걱정할 필요도 없다. 노동산업에서는 그런 일이 벌어 질 수가 없기 때문이다. 숙련공이라야 기껏해야 몇 배의 효율 밖에 나지 않는다. 훌륭한 개발자는 몇 배의 차이 정도 나는 코딩을 잘하는 것이 아니다. 분석이나 설계에서만 10,000배라는 상징적인 차이가 날 수 있다. 아니면 다른 사람들이 아예 못하는 것을 할 수도 있다. 모든 개발자를 코딩의 노동공장에 쏟아 부으면서 100배의 차이를 운운하는 것은 완벽한 무지의 소치이다. "무지를 치유할 수 있는 약은 없다."라는 속담처럼 적어도 과거 20년은 변하지 않았다. 정부나 기업이나 앞으로도 몇 십 년은 변할 기미가 보이지 않는다.

새 개발 도구나 관리의 효율화 같은 것이나 생각하는 상태에서 100배는커녕 2배 차이가 나면 다행이다. 말 잘하는 아첨꾼들은 몇 배의 능력이 있는 것처럼 포장할 수 있겠지만 삽으로 땅 파는 능력에서는 큰 차이가 나지 않는다. 그러면서 100배 가치 있는 훌륭한 개발자를 찾는다고 하는데 현실은 바보 개발자를 피하는 노력에 불과하고 숙련된 목수를 찾는 것에 불과하다. 숙련공을 찾아 헤매면서 훌륭한 개발자를 찾겠다고 하는 착각이다. 유행하는 개발언어나 도구를 아는 것을 훌륭한 개발자라고 하는 착각은 어디서 시작되었는지는 모르지만 그런 잘못된 생각이 만연되어 있다. 소스관리도구인 GIT를 아는 데는 반 나절이면 충분하고 파이썬은 2시간에 가르쳐 주는 것이 내가 배운 과목에서 벌어진 현상이다. 또 파이썬으로 숫자 인식하는 인공지능 기계학습 프로그램을 만드는 데는 보통 개발자라도 해도 1,2일 아무리 많아도 1주일이면 충분하고도 남는다. 믿지 못하겠으면 구글 웹사이트 가서 찾아보고 실제 해보기 바란다

그런 도구를 안다는 것이 이력서에 자랑스럽게 적을지 모르지만 망치 다루는 것을 안다 뿐이지 건축가로는 인정하지 않는다. 개발자의 가치는 도구의 사용도나 능숙도가 아니다. 내가 과장해서 말한다고 할지 모르지만 자세히 설명하기도 불가능하지만 그런 것을 이해하지 못하는 것이 근본적인 문제인 것이다.

한국의 모든 고층건물은 외국 건축회사가 설계했다. 결국 시뮬레이션 소프트웨어 능력이 없어서이다. 한국이 자랑하는 인천대교와 영종대교도 외국 건축가가 설계 했다. 그나마 장비와 인부 동원해서 시공은 잘하니까 시공업체가 돈은 벌지 모르지만 고부가가치는 전부 외국의 몫이다. 이제 한국에서는 "훌륭한 개발자를 기르자" 같은 공허한 소리는 하고 싶지도 않고 듣고 싶지도 않다. 그럴 환경이 없다. 숙련공에 불과한 목수를 건축가라고 하지 말라.

 다행인 것은 그런 열악한 환경에서 이를 진심으로 인지한 유일한 회사는 삼성전자뿐이다. 삼성전자의 Metacognition, "자아인지" 역량은 한국에서 유일하다고 생각한다. 수년 전에 삼성전자가 스스로 평가하기를 삼성전자 개발자의 1,2 퍼센트 만이 구글의 문제해결 능력이 있다는 자체평가를 내렸다. 필자가 삼성에 교육을 해 본 결과 몇 퍼센트 정도는 된다고 본다. 나의 경험과 삼성의 평가가 거의 일치한다.  이런 정확한 인지능력은 미래의 발전 역량을 의미한다. 그나마 삼성 같은 회사가 있다는 것은 다행이다. 수십 개의 회사를 컨설팅 하면서 얻은 조그만 희망의 불꽃이다.

 그 외의 모든 회사는 잘 해보겠다고 헛된 노력을 많이 하지만 근본적인 이해가 전혀 없는 상태에서 망상에 불과하고 시간과 비용만 낭비할 뿐이다. 용어를 외웠다고 해서, 본질을 이해한 것도 아니고, 그를 실행할 수 있는 것도 아니다. 사마천의 사기 "손자,오기열전"에 나오는 말이 있다. 오왕 합려는 손자병법을 이해한 유일한 왕인데 손자가 말하기를 "당신이 손자병법을 이해는 했지만 실행하지는 못할 것입니다" 라고 했고 그 말을 듣고는 손자를 대장군에 고용하고 7번의 큰 전쟁을 모두 승리하며 초강대국이 되었다. 그런 합려가 아들인 부차를 꾸지르면서 한 말이 있다. .  "너는 손자병법을 외웠지만 한 글자도 이해하지 못했다."  손자병법은 6천자 정도로 종이 2장에 적히는 작은 양이다. 결국 외웠다는 것, 이해한다는 것, 실행한다는 것은 모두 하늘과 땅 차이가 있다. 이것을 이해한 오왕 합려는 자아인식 수준이 최고인 왕이었고 당연히 춘추오패가 될 수 있었다. 반면에 손자병법을 외우기만 하고 자만했던 부차는 월나라와의 전쟁에서 패해 자결한 오나라의 마지막 왕이 되었다.

 정부나 회사에서 어떤 정책을 펼쳐도 먼저 자아인식을 하지 않는 이상은 탁상공론만 나온다. 이런 말을 이해하지 못하겠다면 그냥 목표를 조그마하게 가지면 된다. 그냥 똑똑한 숙련공만으로 가능한 노동집약적인 비지니스를 찾아 국내에서만이라도 생존하는 것도 훌륭한 처세술이다. 지금 한국에서 살아 있는 99.9%의 소프트웨어 회사들이 다 그런 회사들이다. 절대 글로벌 회사가 될 수는 없지만 헛된 꿈을 쫓지 말고 현실을 아는 것만 해도 무척 현명한 것이다. 외화는 어차피 한국의 제조업에서 잘 벌어오니 글로벌 걱정하지 말고 그냥 국내에서 돌고 도는 돈만 가로채서 벌면 된다. 이기적이지만 법적으로 뭐라고 할 수는 없다. 그런 면에서 IT 강국이라는 말은 허상이다. 이런 상황에서 개발자가 농부나 시인이나 배달맨보다 훨씬 더 많이 버는 것도 부조리하다. 운이 좋은 것을 감사하며 살아야 한다.

내가 지난 20여년 동안 한국에서의 경험 중에 뛰어난 개발자를 몇 명 발견했지만 당연히 회사의 방침과는 다르게 간 사람들이었다. 회사의 방침대로 갔다면 잘 해야 숙련공이 되겠지만 숙련공이 되기도 전에 해고당하기 딱 좋은 케이스였다. 그들을 보호하고 성장하는 것을 보는 것이 나의 최고의 보람이었다. 하지만 그들도 결국은 노동집약 공장 속에 하나의 숙련공이나 관리자로 전락될 것을 생각하면 가슴이 아프다. 그런 사회에 속하게 된 하늘의 뜻을 탓할 수는 없고 자신의 운명으로 받아들이는 것이 현명하게 사는 법이다.

"100배 능력의 개발자" 같은 소리는 소프트웨어에 대한 모욕이고 한국에서는 벌어질 수 없는 현실이니 이제는 그런 소리는 더 이상 아무도 하지 않았으면 좋겠다. 나도 한국에서는 진정으로 이해하는 극히 소수의 사람들과의 대화에서만 사용할 것이다.

글로벌이니 4차 혁명이니 하는 용어도 한국에서나 호들갑으로 떠들어 댈 뿐이고 막상 그 안에 들어가 있는 회사는 그런 용어를 사용하지도 않는다. 아마존 책방과 예스24에 가서 검색하고 비교해 보면 알 수 있다. 그런 호들갑스러운 행동도 한국 갈라파고스 현상의 일부분이다. 먼저 자아인식을 하는 것이 모든 발전의 출발점이며 유일한 희망이다.

2020년 12월 10일 목요일

소프트웨어 진흥법 개정에 대한 의견


임마뉴엘 칸트는 역사상 위대한 5명의 철학자 중의 한 명이라고 한다. 칸트는 300년 전인 1724년에 태어나 80년을 살았다. 여기서 칸트의 철학을 논하자는 것은 전혀 아니다. 학자들의 부조리를 얘기하려고 한다. 철학과 관련된 사람들에는 철학을 하는 사람(“철학자”)과 철학을 연구하는 사람(“철학연구자”)의 두 종류가 있다. 진정한 철학자는 행동을 하는 사람이다. 칸트의 철학을 좋아한다면 칸트가 말한 대로 행동을 하는 것이다. 석가모니를 존경한다면 석가모니가 말한 삶을 따라 하는 것이다. 

칸트를 연구한답시고 전세계의 학자들이 몇백년 동안 논문을 발간하고 있다. 캘리포니아 대학교 도서관에만 해도 지난 5년간 칸트에 관한 200여 개의 저널이 있다. 칸트가 죽은 지가 200년이 넘는데 칸트가 한 말에 대해 연구를 계속하며 돈 벌이하는 것을 보면 칸트가 무덤에서 뛰어나올 만한 일이다. 칸트의 철학을 좋아한다면 칸트가 말한 대로 따라 하면 된다. “칸트연구자”들은 돈을 벌기 위한 도구로 칸트를 잘 활용하고 있다. 대부분은 그런 학자와 그 주위에 있는 집단이다. 진정한 철학자 중에는 그런 철학연구자 혹은 폴리페서를 경멸하는 사람들이 많다. 즉 폴리페서는 철학을 하는 것이 아니고 철학을 이용해서 돈을 버는데 특화된 아주 영악한 사람들이다. 300년이 지난 칸트를 뼈까지 우려내면서 고상한 지식인 척 하는 것을 보면 존경심이 생기지 않는다. 

이번에 개정되었다는 SW진흥법을 보면 SW를 하는 사람들이 아니고 SW를 연구하는 사람(SW연구자)들이 만들어 놓은 것으로 보인다. 기대도 하지 않았지만 탁상공론에 가깝고 악법이 될 가능성이 농후하다. 그 와중에 혜택을 입는 이익집단은 당연히 존재하고 새 법에 따라 새로운 일이 창출되는 관련업자들이다. 항상 그렇지만 법은 만드는 사람들의 이익이 반영되는 것이 진리이다. 

지금 SW를 잘해보겠다면 실제 SW하는 사람들이 실리콘밸리를 그럭저럭 흉내 내서 따라 해 보면 된다. 좋은 방법은 아니지만 진정한 스승이 없는 상황에서 그나마 최선의 길이다. 그러다 보면 잠시 엉뚱한 방향으로 가는 경우도 있지만 시간이 지나 결국은 제 길로 찾아오게 된다. 물론 스승이 있으면 시간이 절약되는 것이고 아니면 오래 걸릴 것이다. 이런 자연진화에 악법이 참견하게 되면 자연적인 진화능력을 빙해하기 때문에 SW발전에 해가 된다. 참견하지 않는 자연진화가 지금으로서는 최선의 길이다. 국내 SW의 지난 20년 과거와 지금 벌어지는 상황을 보면 변한 것 같이 보이지만, 사실은 변한 것이 없고, 앞으로 변할 수도 없어 보인다. 규정 몇 개 생겼다고 변하는 상황이 아니다. 실리콘밸리에서 지금과 같은 정책을 펴는 것을 본 적이 없다.

이 와중에 대표적인 이익 집단이 SW공학을 한다는 집단이다. 대학교수가 SW공학을 가르친다는 것은 근본적으로 상충되는 개념이다. SW공학을 하는 것이 아니라 SW공학연구자들이다. 즉 기본적으로 학교는 SW공학을 할 수 있는 기관이 아니다. SW 공학을 연구하는 대표적인 대학은 카네기멜론 인데 한두 군데 대학에서 굳이 그런 연구를 하겠다면 인정해 줄 수 있다. 그나마 그 속을 들여다 보면 결국 글로벌 SW기업의 관행을 정리해 놓은 것 이상도 이하도 아니다.  만병통치약처럼 문제만 있으면 껴드는 것이 SW공학인데 망상에 불과하다. 현실에서는 수 많은 칸트연구자처럼 국내의 과잉 상태인 SW공학연구자도 앞으로 몇십년은 잘 살아남을 것이다.

SW공학은 연구하는 것이 아니라 실행하는 것이다. 사실 지금 필자가 여기서 말하는 “연구자” 와 “실행”과 같은 내용은 현실감 있게 이해하기도 어렵고 이미 깨달은 사람만 공감할 수 있는 공허한 외침이고 소 귀에 경읽기 라는 것을 알지만 그래도 국내에서 소수의 선각자들은 공감해 왔고 이 글 역시 그런 소수와 공감하기 위한 것이 주목적이다.

SW기술자를 존중하자는 조항도 눈에 보인다. 그 동안의 시행착오에도 불구하고 법을 잘 개정하면 SW기술자를 공정하게 정의할 수 있을 것이라고 믿는 가정일 텐데 그런 불멸의 집착은 놀랍기만 하다. 가능한 것과 불가능한 것을 구별하지 못하는 무지는 경멸할 수 밖에 없다. 그런 것은 법으로 구별할 필요도 없다. 산업계에서 다 알아서 한다. 착한 사람 등급을 매겨서 우대를 하자는 것과 비슷한 오류이다. 그래서 AI가 대체할 수 없는 직종 중에 SW분석가가 있는 것이다. SW를 바라보는 근본적인 개념에 차이가 있다. 

또 수십년 간 문제가 되어 온 불공정한 SW사업계약관행에 대한 조항도 보이는데 아직까지도 그 근본 원인을 모른다는 것도 경이롭다. 또 땜방 처방이다. 필자가 이 블로그에서만 해도 수십번은 얘기한 주제라서 더 이상 얘기할 필요는 없다.

나머지 상식적으로 도움이 될 만한 조항도 있지만 필자가 보기에는 차라리 매년 발간되는 가트너의 “Gartner Top Strategic Technology Trend 2021”를 읽는 것이 훨씬 더 유용하다. 베낀 것을 보느니 원본을 보는 것이 더 정확하다.

결과적으로 새로운 것처럼 보이는 규정을 만들어 결과적으로 SW산업의 자연스런 발전을 저해하는 것으로 보인다. 그 와중에 혜택을 얻는 이익집단이 눈에 선명하게 보인다. 그들이 악의를 가지고 하는 일은 아니라는 것도 잘 알고 있다. 철학자 니체는 착한 사람들을 극히 경멸해 왔는데 그 의미는 착한 사람들은 이익집단에게 순진하게 이용당하는 것을 경멸해 왔다. 즉 사기 치는 사람보다 사기 당하는 사람들을 더 경멸했다. 소크라테스와 석가모니가 말하는 “무지가 악의 근원”이라는 것과 거기에 니체가 경멸하는 “착함” 또는 “순진함” 까지 갖추면 부정적인 상승작용을 일으켜 한국 SW의 미래가 어둡기만 하다. 

인류의 현자들이 지적해온 “선의를 가진 무지한 자들의 집념”이 가장 나쁜 악에 도달한다는 것을 인지할 필요가 있다. 그럼에도 불구하고 국내에서는 도토리들의 경쟁에서는 살아남을 수 있을지 모르지만 그런 자아도취의 역량으로는 글로벌 경쟁력을 가지기는 어렵다. 지금은 쓸데 없이 건드리지 않고 자연 진화하도록 두는 것이 결국은 SW업계가 더 빨리 발전하는 길이다. 

내 인생에서 35년 동안 SW 세상의 많은 것을 경험하고 나니 이제는 소프트웨어 소꿉놀이에 미련이 없어졌다.
앞으로는 인생에서 더 소중한 다른 일에 많은 시간을 보내야 겠다.




2020년 10월 12일 월요일

노벨 문학상 수상자와 IT 전문가의 삶

 2020년 노벨 문학상 수상자는 미국의 여류시인 루이즈 글릭(Louise Gluck)이다. 한국에는 거의 알려져 있지 않은 시인이다. 노벨 문학상이 발표된 후 노벨 재단에서 그녀와 전화 인터뷰를 하려고 미국 동부에 거주 중인 그녀에게 오전 7시경에 전화를 걸었다. 코로나 때문에 수상자들은 스웨덴에 가지 않고 자기 거주지에서 수상을 한다. 인터뷰의 내용을 간추리면 다음과 같다.

 

노벨 : 2, 3분 정도 인터뷰할 시간 있습니까?

루이즈 : 나는 지금 모닝 커피를 마셔야 하기 때문에 2분만 시간이 됩니다.

노벨 : 노벨상이 무엇을 의미합니까?

루이즈 : 전혀 모르겠습니다. 그런데 첫째로 드는 생각은 친구가 없어질 거라는 것입니다. 내 친구들은 모두 작가들인데 그런 친구들이 생기지 않을 것 같습니다. 현실적으로는 케임브리지에 콘도가 하나 있는데 버몬(현재 거주지)에도 집을 하나 마련할 수 있을 것 같습니다. 하지만 나는 현재 사랑하는 사람들과 지내는 일상 생활이 보전되지 못할 것 같아 걱정입니다. 이 모든 관심으로 인한 사생활을 침해하는 전화벨이 계속 울리고 있습니다.

노벨 : 자신의 작품에 대해 설명해 주시겠습니까?

루이즈 : 초기 작품은 읽지 말고 최신 작품인 “Averno”“Faithful and Virtuous Night” 을 읽기 바랍니다.

노벨 : 살아온 경험의 가치가 어떤 사건에 대한 관점에서 얼마나 중요하다고 생각합니까?

루이즈 : . 주제가 너무 큽니다. 그리고 지금 7시 이른 아침입니다.

노벨 : 당신의 작품의 주제가 ………. (계속 질문하려고 한다)

루이즈 : 2분 지났습니다.

노벨 : 죄송합니다. 충분히 괴롭혔습니다. 축하합니다.

 

이 인터뷰로 보면 루이즈 글릭에게는 노벨상의 가치가 버몬주에 집을 하나 살 수 있다는 것 이외에는 걱정이 더 많고 그리 반가워하지 않는다는 것을 명백히 알 수 있다. 모닝커피 마셔야 하니까 2분이 지나서 전화를 중단할 정도로 노벨재단에 대한 배려도 하지 않고 비중도 전혀 두지 않는다. 노벨재단 입장에서는 노벨상을 주었으니까 기뻐서 흥분할 것으로 기대했을지 모르지만 사람의 가치관에 따라서 필요도 없는 노벨상을 왜 주었냐는 식으로 다른 걱정이 앞서는 사람도 많다.

 

회사와 직원의 관계도 비슷할 수 있다. 회사에서 채용해 주었으니까 고마워하고 회사가 시키는 대로 충성을 다해야 한다는 봉건사회적인 사고방식은 바람직하지 않다. 반대로 산업의 첨단을 걷는 IT 근무자라면 자기의 전문성에 대한 긍지와 자존심이 있어야 하고 그럴 수 있도록 실력을 쌓아야 한다. 즉 봉건시대처럼 회사의 소작농으로 살아가면서 고마워 할 것인가 아니면 실력 있는 전문가로 대등하게 회사가 귀중히 여길 수 밖에 없는 노벨상 수상자가 될 것인가는 자신의 노력에 달려 있다.

 

IT 전문가로서 돈과 명예를 적극적으로 추구할 것인가, 자신이 즐기는 일상적인 생활을 하기 위한 도구로서의 가치를 둘 것인가는 인생관의 차이이다. 잘 알려진 박애주의자인 워런 버펫은 거의 100조 달하는 재산을 가지고도 강남의 아파트 한 채 값에 불과한 네브라스카주의 평범한 집에서 살고 있다. 자동차는 당시 가격이 5만불 정도인 2014년형 캐딜락 XTS를 타고 있다. 그러면서 모든 재산은 계속 기부하고 있다. 반면에 실리콘밸리에서 IPO가 성공할 때 마다 나오는 졸지에 생긴 부자들의 삶의 대부분은 비싼 집, 비싼 차의 추구가 첫번째 하는 행동이다. 과시욕만 제외하면 비싼 것과 좋은 것은 다르다. 그런 행동이 자신의 인생관이라고 말하려면 인생의 가치에 대한 깊은 탐구를 해 봤어야 한다. 그렇지 않다면 그냥 과시욕과 우월감을 자랑하려는 인간의 동물적인 본능에 불과하다. 불로장생을 찾아 헤맨 진시왕이나 알렉산더 대왕처럼 존재하지 않는 허상을 끝없이 추구하는 오류를 범할 수 있다.   

 

IT와 회사는 인생의 목적이 아니고 하나의 도구에 불과하다. 회사와 직원 모두 잘 인지해야 조화롭게 목적을 이룰 수 있다. 둘 다 주인도 아니고 노예도 아니다. 도구에 집착하여 인생을 소비하는 것에 대해 루이즈 글릭은 시집 Faithful and Virtuous Night 에서 다음과 같이 표현한다. 참고로 이 부분은 나의 주관적인 해석이므로 시의 특성상 다르게 해석될 수 있다는 것을 말해 둔다.

 

어느 날 잠에 들면서 깨달았다.

내가  그것의 노예로 살았고 강한 애정을 가졌던 모험이 끝났다는 것을.

과연 사랑으로 끝난 것일까?

내가 추구하던 것들이 무엇이라고 말할 수는 없지만 무엇인가 존재했다고 믿는다.

과연 그런 것이 정말로 가치가 있었던 것인가?

 

 

 

 

2020년 8월 2일 일요일

인공지능이 개발자의 48%를 대체한다

 

인공지능(AI)이 무서운 속도로 발전하고 있다. 불과 4년 전에 바둑에서 구글의 알파고가 인간의 자존심을 깨트렸는데 지금은 점점 더 차이가 벌어져 AI가 인간의 대국을 평가하는 상황이 되었다. 자동차의 자율 주행도 완전 자동화 단계인 무인자동차가 시험주행 중이다. 테슬라는 올해 안에 무인자동차를 완성시키겠다고 한다. 머지 않아 운전면허증이 필요 없는 세상이 오고 미국에서만 500만 명이 실직될 것이라고 예측한다.


홍콩의 핸슨 로보틱스라는 회사가 인간 신경계 모델을 기반으로 해서 만든 인간형 로봇 소피아는 사우디아라비아에서 시민권까지 부여 받았다. 인터뷰 동영상을 보면 자아, , , 사랑 등 다양한 주제에 대해 보통 인간보다 더 성숙한 대화를 한다. 노래도 하고 농담도 한다.


그런 AI가 소프트웨어 산업에 속한 직업을 얼마나 대체할 수 있을까?

AI가 직업에 끼치는 영향에 관한 옥스퍼드 대학의 연구 미래의 직업(The future of Employment)” 보고서에 의하면 미국의 대표적인 702개 직종 중 47%가 일이십년 내에 자동화되어 인간을 대체할 수 있다고 한다. 그 중에 가장 위험성이 큰 직업이 98%의 대체율인 운전사이다. 반대로 가장 대체가 어려운 직종 중의 하나가 1.5%의 대체율인 CEO이다. 다른 대체율을 보면 내과의사는 0.4%, 학교선생은 1%, 변호사는 3.5%, 회계사는 94%, 건설노동자는 88%이다.

 

그럼 702개 직종 중 소프트웨어에 관한 직업만 추려서 보자.

 

대체율(%)

직종

0.65

시스템분석가

1.5  

컴퓨터과학자

3    

네트워크/시스템 관리자

3.5  

정보 시스템 관리자

4.2  

응용프로그램 개발자

13    

시스템 소프트웨어 개발자

21    

정보보안 분석가

21    

웹 개발자

21    

네트워크 아키텍트

48    

프로그래머

 

 이 결과를 보면 "시스템분석가" 0.65%의 대체율로 대체가 거의 불가능하다. 가장 대체하기 쉬운 "프로그래머" 48%로 반이 없어진다. 중간의 "웹 개발자"20%의 대체율을 보인다

 

그럼 "시스템분석가", "개발자" "프로그래머"의 차이는 무엇일까? 사실 국내에서는 이 차이를 정확하게 구별하고 채용하는 회사도 없거니와 실제 회사 안에서도 이렇게 나누어져 있지도 않다. 국내 소프트웨어 산업자체가 이런 구분을 정확하게 하고 있지도 않다. 경력기간으로 분류하는 것은 잘못이다. 사병은 평생가도 장교가 되지 못한다. 하는 업무가 다르기 때문이다.


 주로 국내 대기업에서 보듯이 수많은 템플릿의 거대한 방법론을 가져다 놓고 템플릿 채우는 방법을 교육시키는 상황에서는 AI가 대체하기 쉬운 기계적인 환경이다. 템플릿 채우는 사람을 분석가라고 이름을 붙이는 것은 진짜 분석가에 대한 모욕이나 다름 없다. 분석가는 템플릿이나 방법론과 상관 관계가 전혀 없다. 그런 것들은 결과로 나타나는 하나의 표현 방법인 것이다. 템플릿은 생각의 자유를 제한하지만 공유하기 위해 사용하는 규칙에 불과하다. 템플릿을 많이 강제화하면 할수록 훌륭한 분석가의 역량을 사용하는데 방해가 된다.


 분석가는 템플릿이나 방법론으로 규정할 수 없는 순수한 두뇌활동의 종합예술이다. 타이피스트와 소설가가 다른 것과 같다. 템플릿과 가깝게 일을 한다면 그건 프로그래머에 가까운 일을 한 것이다. CEO도 마찬가지로 종합적인 판단을 하는 면에서 분석가와 같다. 당연히 CEO가 사용할만한 템플릿이나 방법론이 있을 수가 없다.


 그럼 반대의 극단으로 방법론 같은 것 전혀 없이 벤처기업에 존재하는 1인 영웅개발자의 직종은 무엇인가? 일단 프로그램을 해서 소스코드라는 결과를 만들어 내니까 일부 프로그래머에는 틀림 없다. 분석가라고도 주장하려면 분석한 결과가 있어야 한다. 어떤 행위를 했는데 아무런 결과가 없으면 그런 행위자라고 할 수 없다. 결과가 머리 속에 있다고 얘기할 지 모르지만 그런 것은 자아도취의 몽상가이다. 결과를 모두 건너 뛰고 소스코드를 적어낸다면 그건 영원한 1인 영웅개발자이고 회사 초기에만 잠깐 필요할 뿐 회사가 발전하는 데는 심각한 장애가 된다.


여기서 가장 어려운 것은 분석가, 개발자, 프로그래머의 역량을 구별하는 것이다. 물론 한 사람이 여러 역할을 하느냐 아니냐는 회사 규모와 처한 환경에 따라 다르지만 역량은 분명히 다르다. 요새 나온 신문기사 중에 대규모 외주 개발을 분할발주를 하는데 1단계 분석과 설계, 2단계 구현으로 나누어서 발주를 하겠다는 말이 있는데 이는 아직 분석, 설계, 구현을 전혀 이해하지 못해서 벌어지는 국내의 기이한 현상이다. 이런 식의 분할 발주는 국내를 제외하고는 전세계에 존재하지 않는다. 논리적으로도 존재할 수가 없다. 분할발주는 1단계 분석단계와 2단계 설계/구현 단계로 하는 것이 옳다. 분할발주에 대해서는 이전 기사들에서 누누이 설명했기 때문에 여기에서 또 설명하지는 않는다. 1단계 분석단계가 바로 분석가가 수행하는 작업이다. 2단계에는 개발자와 프로그래머가 섞여 있다. 분석가는 당연히 같은 경력기간의 프로그래머보다 연봉이 10배 정도 높을 수도 있다.


하여튼 국내 소프트웨어의 잘못된 관행이 빨리 없어지기 위해서는 먼저 본질에 대한 정확한 이해가 필요하다. 본질에 대한 정확한 이해 없이 표면적인 증상처방의 단세포적인 법규로 대응해야 과거 20년 이상 그랬듯이 점점 더 깊은 웅덩이로 빠질 뿐이다.


옥스포드의 결과에서 왜 AI가 프로그래머의 반을 대체하지만 분석가는 거의 없어지지 않는지의 이유를 심각하게 생각할 필요가 있다. 자신이 프로그래머라는 사실 자체도 인지하지 못하고 있을 수도 있다. 회사에 자기가 없으면 안된다는 생각도 대부분은 매우 위험한 착각이다. 하여튼 장기적으로 소프트웨어 관련 산업에 종사할 개인들로서는 자신의 직업의 본질과 그 위험성을 알고 현명하게 대처하는 것이 중요하다.