“소프트웨어란 무엇일까요?”
소프트웨어 산업의 핵심 본질에 대한 이해없이는 소프트웨어 산업에 대한 진흥이란 있을 수 없다는 것이 저의 생각입니다.
이전 삼성 그룹의 전략기획실에 몸담고 있을 당시 사용되었던 전략 분석 기법 중에 하나가 '업의 본질'이라는 것이 있습니다. 각 사업의 핵심 특성을 이해하고 이를 바탕으로 핵심 사업 전략을 수립해야 한다는 방법론입니다. 그동안의 소프트웨어 진흥 관련 정책들은 대부분 소프트웨어 산업을 '교육산업'으로 인식하고 소프트웨어 인재 100만 양성론, 해커 100만 양성론 등 소프트웨어 교육 사업에 투자해야 한다는 정책이 주를 이루었습니다.
천재 프로그래머 한 명이 나라를 구하고, 국가대표 소프트웨어 회사 하나가 작은 국가의 GDP에 맞먹는 수익을 가져갈 수 있는 현실에서 이 전략은 그다지 효과적이지 못했습니다. 결과적으로 소프트웨어 산업 진흥에 성공하지 못했으므로 실패한 전략이고, 산업의 핵심 특성을 파악하지 못한 것으로 보아야 합니다.
제가 생각하는 소프트웨어 산업의 본질은 '재사용 가능한 지적재산업'입니다. 여기서 주목해야할 내용은 재사용이 가능해야 한다는 것입니다. 즉 하나의 소프트웨어를 만들어서 하나의 고객에게만 판매하는 것이 아니라 열 명의 고객, 백 명의 고객, 더 나아가 수천만, 수억 명의 고객에게 판매할 수 있어야 합니다. 이것이 가능해지려면 추가 생산 비용이 거의 제로(0)에 가까워져야 합니다.
현재 국내 소프트웨어 산업에서는 소프트웨어의 재사용 비중이 매우 낮습니다. 2018년 패키지 소프트웨어 생산 규모는 약 9.5조원으로 전체 소프트웨어 시장의 17% 정도를 차지하고 있습니다. 21%를 차지하고 있는 게임 소프트웨어나 61%를 차지하는 IT서비스에 비하면 매우 적은 비중입니다. 패키지 소프트웨어는 소프트웨어 복사본을 판매하는 것으로 소프트웨어의 변형없이 판매하므로 재사용 형태로 판매되는 것입니다.
이에 반해 국내 소프트웨어 산업의 주류를 차지하는 IT서비스는 각각의 고객의 요구사항에 맞추어서 소프트웨어를 특화 개발하는 것으로 소프트웨어의 재사용이 거의 이루어지지 않는 분야입니다. 이것은 마치 자동차를 고객 하나 하나마다 별도로 주문 생산해서 판매하는 것과 유사한 형태로, 개발자들이 하나하나 수작업으로 코딩을 수행해야 하기 때문에 수익이 나기 어려운 구조입니다. 여기에 더해서 '갑을병정무기경신임계…' 계약구조로 이루어지는 다단계 하청계약, 갑인 고객의 단가 후려치기 등 고질적인 적폐가 만연해 있습니다.
패키지 소프트웨어는 재사용 형태로 복사해서 무한대로 판매할 수 있기 때문에 소프트웨어 하나의 복사본의 단가가 낮더라도 많이 팔게되면 수익이 기하급수적으로 증가하기 때문에 소수의 개발자들에게 충분한 보상을 지불할 수 있게 됩니다. 또한 다수의 고객이 사용하더라도 오류가 없어야 수익을 낼 수 있으므로 우수한 실력의 고급 개발자들을 고용해서 높은 품질의 소프트웨어를 만들게 됩니다. 여기서 배양된 고급 소프트웨어 개발자들이 더 좋은 새로운 패키지 소프트웨어를 만들어내어 좋은 인력 양성과 소프트웨어 산업 발전이라는 선순환 구조를 가져가게 됩니다.
IT서비스 산업의 경우는 매우 많은 양의 1회성 소프트웨어를 단기간에 많은 수의 개발자들을 동원해서 매우 적은 단가로 개발하게 됩니다. 물론 매번 100% 커스텀 개발은 아니지만 핵심 모듈의 구조적 변경이 수반되는 대규모 변경이라 사실상 매 고객마다 재개발한다고 해도 과언이 아닙니다. 게다가 우리나라의 소프트웨어 개발 단가는 저개발국가인 베트남이나 태국 등의 SI단가에 비해서도 절대 금액이 낮으므로 물가나 소득 수준을 비교하면 매우 낮고, 시간을 축소하는 형태로 단가 후려치기가 이루어지므로 사실상 최저임금 수준에도 못미치는 경우가 비일비재합니다. 예를 들면 중급 개발자가 6개월을 개발해야 하는 것을 1달로 줄이면 사실상 개발단가가 6분의 1로 줄어드는 것이 됩니다.
그럼 개발시간을 충분히 주고, 설계 시간도 반영하고, 테스트 시간도 반영하고, 또 개발단가도 충분히 높이면 되지 않을까라고 생각할 수 있습니다. 하지만 국내에서는 인력양성 사업의 부작용으로 초급 개발자들이 과도하게 배출돼 있어 영세한 개발 회사나 낮은 급여로 일할 수 있는 개발자들을 비교적 쉽게 구할 수 있기 때문에 높은 가격을 부르는 회사들은 대부분 일거리를 잃게 됩니다. 이처럼 IT서비스 산업에서 높은 품질의 제품을 높은 비용으로 개발하는 소프트웨어 회사는 존재할 수 없는 악순환 상태에서는 백약이 무효한 상황입니다.
그럼 어떻게 해야 할까요? 가장 중요한 정책은 IT서비스 시장 비중을 획기적으로 줄이는 것입니다. 특히 정부 공공 발주에서의 불필요한 소프트웨어 외주 개발은 불법화해야 합니다. 소프트웨어 기업인 모임에서 종종 듣는 뉴스는 정보 모부처에서 자신들의 회사 주요 소프트웨어 제품과 동일한 제품을 외주 개발하기로 했다는 소식입니다. 패키지 소프트웨어를 구매해서 사용하면 관련 부서 전체가 쓸 라이센스 구매 비용이 수백억이 들어가지만 외주 개발하면 1억 이하로 비용을 절감해 개발할 수 있다는 논리입니다. 공공 비용을 획기적으로 절감한 담당자는 우수 공무원 표창을 받아 승진하게 됩니다.
이러한 현상은 대기업 발주 사업의 경우도 마찬가지입니다. 패키지 소프트웨어를 구매하는 비용을 절감하기 위해 외주개발 사업을 띄우고 소프트웨어 코드에 대한 저작권까지 가져갑니다. 영세한 소프트웨어 개발 업체가 혹시 파산하게 되면 개발된 소프트웨어의 유지보수를 하기 어렵다는 논리입니다.
제 경우도 모 대기업에 보안 모듈을 납품하고 개발 인건비로 1억 정도의 비용을 받았습니다. 그런데 유사 해외 모듈은 라이센스료만으로 수천억을 지불했다는 소식을 듣고 소프트웨어 사업에 회의가 들어 더 이상 SI사업(현재는 IT서비스로 용어를 변경)은 하지 않겠다고 마음먹었습니다.
해외 소프트웨어 시장을 보면 약 10% 정도의 게임 소프트웨어 시장을 제외하면 패키지 소프트웨어와 IT서비스 비중이 각각 45% 정도로 거의 비중이 동일합니다. 국내의 경우는 IT서비스 시장이 패키지 소프트웨어 시장의 3배 이상으로 기형적으로 큰 이유는 위에 설명드린 것과 같이 해서는 안될 IT서비스 개발이 이루어지고 있기 때문입니다.
저는 이를 막기 위해 2가지 정책을 제안합니다. 첫째는 국내에 동일한 기능의 패키지 소프트웨어가 존재하는 경우, 공공기관은 원칙적으로 외주개발을 할 수 없게 해야 합니다. 또한 불가피하게 커스터마이즈할 필요가 있더라고 코드 변경은 전체 소프트웨어의 10% 이내로 제한해야 합니다. 둘째로 대기업을 포함한 사기업의 경우에는 외주 개발 형태로 개발을 하더라고 사내 사용량을 구체적으로 명시하고, 사내 사용량에 따라 라이센스 비용을 개발 회사에 지불하도록 의무화해야 합니다. 이렇게 되면 저가의 외주 발주 수요가 줄어들어 고품질의 패키지 소프트웨어 구매가 늘어나게 됩니다.
저는 개인적으로 공공기관에서 국내 소프트웨어를 우선 구매하도록 강제하는 것은 과감히 규제를 없애는 것이 좋다고 생각합니다. 국내외 패키지 소프트웨어 회사들간의 자유 경쟁을 유도하는 것이 국내 소프트웨어 산업의 경쟁력을 강화하는데 도움이 되기 때문입니다. 이처럼 우수한 패키지 소프트웨어의 수요를 늘려 국내의 많은 소프트웨어 회사들의 수익이 늘어나게되면 더 많은 우수한 인력들이 소프트웨어 산업으로 유입되게 되고, 대학이나 다른 소프트웨어 교육 기관들도 우수한 인재 양성을 위해서 노력하게 됩니다.
우수한 소프트웨어 인재 양성의 필요성에는 동의하지만 지금처럼 시장이 없는 상태에서 인력 양성에만 집중하는 것은 산업 발전에 도움이 안됩니다. 제가 알고 있는 많은 우수한 인재들도 기업에서 개발자로 일하기보다는 벤처캐피탈 심사역이나 대학의 교수로 일하는 경우를 많이 보았습니다.
소프트웨어 산업을 발전시키고 우수한 소프트웨어 인재를 양성하기 위해서는 시장 경제 원리에 따라 패키지 소프트웨어 사업의 수익성을 높일 수 있도록 여건을 조성하는 것이 급선무입니다. 그 시작은 IT서비스 산업에서의 불필요한 SI 사업 발주의 악순환을 끊는데서 시작할 수 있습니다.
따라서, 이번 18년만에 어렵게 발의된 소프트웨어진흥개정(정부안)은 그간의 대한민국 SW산업발전을 저해하던 오랜 폐단을 극복하고 국가를 부흥시키는 새로운 지적자산의 산업적 가치 근간을 이루는데 크게 기여하게 될 것입니다. 따라서 더 이상은 결코 미룰 수 없고 이번 20대 국회 회기 내 반드시 통과를 시켜야할 것으로 사료됩니다.