소프트웨어(SW) 개발자 부족 현상이 어제오늘 일이 아니다. 우리나라에 컴퓨터가 처음 도입된 1970년 초반부터 SW 개발자 부족은 일상적이었다. 그런 상황에서도 우리 기술로 1988년 올림픽을 성공적으로 관리했고, 2000년대에는 인터넷 포털 서비스와 전자정부 서비스를 시작했다. SW 개발자가 부족했지만 전자상거래가 급성장하고 세계 1등 전자정부를 갖게 된 것은 기적이다.
SW 개발자는 IT나 SW 전문회사 중심으로 채용했지만 요즘은 모든 영역의 대부분 회사가 찾고 있다. SW 능력이 바로 경쟁력의 중심이 되는 SW 중심사회로 우리 사회가 진입한 것이다. 그렇다면 SW 개발자 부족 현상이 심각해진 것은 당연하다. 개발자 부족이 국가 재난이 되어 간다는 주장도 있다. 기업 SW 개발인력 쟁탈은 전쟁 수준이다. 연봉 인상률은 통상 두 자릿수이고, 제조 기업에서도 개발자 확보에 글로벌 테크 회사를 흉내내고 있다. 항시 무료 고급식사를 제공하고, 스톡옵션을 제공하기도 한다. 대기업 스스로 교육시켜서 채용하는 것이 이제는 일상이 됐다.
SW 인력 문제가 반세기 동안 지속되지만 해결하지 못하는 것은 무슨 이유일까. 우선 가장 큰 이유는 세상이 SW와 인공지능(AI) 중심으로 바뀐다는 사실을 교육기관이나 정부에서 제대로 인지하지 못하기 때문이다. 산업, 기술, 학문이 컴퓨팅과 데이터 기반으로 바뀌어 엄청난 수의 SW개발 인력이 필요하지만 사회가 여기에 적절히 대응하지 못하기 때문이다. 입학 정원은 조정할 엄두도 못 내고, 실용적 교육은 천시받고 있다.
대부분 국가에서는 초등학교 때부터 공교육을 통해 컴퓨팅과 AI를 열심히 가르친다. 미국 어린이는 우리나라 어린이보다 컴퓨팅을 열 배 정도 더 배운다. 대학에서 컴퓨팅을 전공하는 학생도 우리나라보다 훨씬 많다. 우리도 2018년부터 초·중·고등학교에서 코딩을 정규 교육 과목으로 실시하기로 결정했으나 시수도 적고 가르칠 정보교사가 부족해 말로만 그치고 있다. 문재인 정부는 정보 교사 1만명을 양성하겠다고 약속했지만 지키지 않고 떠났다. 윤석열 정부도 구체성이 없어서 걱정된다.
컴퓨팅을 전혀 배우지 않고 대학에 진학한 그들을 대학 교육만으로 경쟁력 있는 개발자로의 양성에는 많은 어려움이 있다. 대학에서 컴퓨터공학을 전공하고 기업에 취업해도 현장에서 필요로 하는 서비스와 제품을 개발할 능력을 쌓지 못한다. 취업 후 추가 교육이 필요하다. 많은 대학이 있는데도 SW 개발자를 양성하는 사설학원이 성황을 이루고, 정부까지 나서서 국민 세금으로 무료 학원을 운영한다. 대기업은 자체 교육을 사회공헌으로 여긴다. 안타깝다. 양질의 개발자를 지속해서 양성하기 위해서는 대학의 SW 교육이 제자리를 잡아야 한다. 학원이나 기업에서의 양성은 단기 대안일 뿐이다.
입학하는 학생이 준비가 안 됐다는 것에 동의하지만 그렇다고 SW 개발자 양성에 실패하는 대학을 두둔할 생각은 없다. 대학의 SW 교육은 왜 실패하는가. 가장 큰 이유는 대학에서 목표가 명확하지 않기 때문이다. 현장에 강한 개발자를 양성하려는 의지가 부족하다. 이론만 가르치고 현장에서의 개발 능력에는 관심이 적다. 교수 상당수가 논문 생산에 매달려 자신의 박사논문 연구 주제를 수업에서 반복한다.
기술 발전에 따라 개발 행태가 많이 변했다. 시스템 복잡도가 높아졌기 때문에 대학에서 배운 이론과 기초기술만으로 현장에서 사용할 시스템을 신속하게 만드는 것은 거의 불가능하다. 완벽한(full-stack) 개발자가 되기 위하여 프런트 엔드와 백 엔드에 모두 정통하여야 한다. 논리 설계는 물론 인터페이스 개발, 데이터베이스 사용, 서버 구성, 클라우드 환경 이용 등 갖추어야 할 기술 요소가 한둘이 아니다. 각각을 잘 활용하는 데에는 상당한 전문성이 필요하다.
개발 효율성을 위해 현장에서는 특정 영역이나 기술 요소에 특화된 플랫폼과 도구를 사용한다. 좋은 플랫폼을 사용하면 쉽고 빠르게 시스템을 만들 수 있다. 코딩을 조금하거나(Low Coding) 코딩을 전혀 하지 않고도(No Coding) 원하는 서비스를 만들어 내는 플랫폼이 각광받고 있다. 특히 고도의 전문성을 요하는 인공지능 딥러닝 등에서 많이 쓰인다.
학교에서도 현장에서 사용하는 좋은 플랫폼과 도구를 사용할 수 있도록 배려해야 된다. 좋은 도구를 사용한다면 쉽게 시스템을 개발할 수 있는 것은 물론 산업계 표준에 쉽게 접근할 수 있다. 학교에서 훈련한 것을 취업 후 그대로 현장에서 사용할 수 있다.
학생 입장에서는 이론 이해가 부족한 상태에서도 플랫폼 사용법만 익혀서 재미있는 응용 시스템을 만들 수 있다. 자신이 만든 시스템을 사용해 보면서 자부심을 느끼고 동료들에게 자랑할 수도 있다. 이런 경험이 개발에 흥미를 느끼게 한다. 이론을 먼저 배우고 마지막 순간에 서비스를 만들어 보는 대학의 전통적 SW 개발자 교육 방법을 뒤집어야 한다. 배우고자 하는 의지가 있는 학생을 시간이 걸리고 어려운 이론 학습의 고통에서 해방시키는 것이 바람직하다. 스스로 시스템을 만들어서 사용해 보면 어려운 논리도 쉽게 터득할 수 있다. 개발 과정에 핵심 이론의 필요성을 느껴서 스스로 찾아 배울 수 있도록 지도하는 것이 바람직하다.
플랫폼에 의존하는 교육의 약점은 특정 도메인이나 환경에서만 작동한다는 점이다. 도메인이나 환경이 바뀌면 쓸모가 없을 수가 있다. 그래서 교육 기간이 상대적으로 짧은 전문대에서는 학생을 어떤 도메인의 전문가로 양성할 것인가를 결정한 다음에 교육을 시작하는 것이 좋다. 학생을 채용할 기업과 협약을 거쳐서 교육과정을 결정하는 것이 바람직하다.
대학이 SW 개발자 교육을 잘하지 못한다고 야단만 칠 것이 아니라 힘을 합해서 환경을 개선해 나가는 것이 필요하다. 등록금 동결 등으로 재정 상황이 어려운 대학에 현장에서 사용하는 각종 개발 환경을 알아서 구입하라는 것은 큰 부담이다. 실용적 개발자 교육이 대학에서 자리 잡도록 정부와 기업이 힘을 보태야 한다.
김진형 인천재능대학 총장 profjkim@jeiu.ac.kr
〈필자〉 김진형 총장은 1세대 SW 개발자로서 1973년부터 KIST에서 일했다. UCLA에서 박사학위를 받은 후 휴스AI연구소에서 연구했다. KAIST에서 1985년부터 2014년까지 AI연구실을 이끌며 약 100명의 석·박사를 양성했다. 소프트웨어정책연구소 초대 소장, 인공지능연구원 초대 원장, 과학기술정보원장, 공공데이터전략위원장, 정보과학회 회장을 역임했다. 현재는 인천재능대학 총장으로 재직하고 있다. 과학기술한림원과 공학한림원 원로회원이다.