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