글쓴이 보관물: salab

2019년 가을호

소프트웨어에서의 개념설계 역량

김정호 (명지대학교 융합소프트웨어학부 교수)

국내 산업계에 커다란 화두를 던져준 책 ‘축적의 시간’에서는 한국 산업이 처한 위기의 본질을 ‘개념설계 역량’이 부족해서’라고 말하고 있다[1]. ‘개념설계 역량’이란 “제품이 되었건, 비즈니스 모델이 되었건 산업계가 풀어야 할 과제가 있을 때, 이 문제의 속성 자체를 새롭게 정의하고, 창의적으로 해법의 방향을 제시하는 역량”1을 말한다. ‘축적의 시간’의 후속서인 ‘축적의 길’2에서 저자는 ‘개념설계’의 의미를 쉽게 설명하기 위해 초고층 빌딩을 건축하는 예를 들고 있다. 건축물을 짓기 위해서는 설계도가 필요하고, 그에 따라 필요한 건축자재와 물품을 구매하고, 인력을 배치하고 법적 검토와 인허가 작업 등등 각각의 프로세스대로 실행하여 시공건축해 나가는 과정이 필요하다. 이 복잡한 과정은 두 단계로 단순화하면 ‘개념설계’와 ‘실행’으로 이루어져 있다 

개념설계는 건축물이나 자동차, 휴대폰 등과 같은 유형의 제품뿐 아니라 TV예능 프로그램이나 비즈니스 모델, 조직구조 등과 같은 무형의 서비스나 포맷에도 들어가 있다. 즉 다양한 분야에서 제품이나 서비스의 개념을 정의하는 개발 초기의 밑그림을 ‘개념설계’라 볼 수 있다. 소프트웨어 분야는 새로운 개념이 끊임없이 나오고 있는 분야이다. 만약 우리가 새롭게 등장하는 소프트웨어 개념을 효과적으로 설계할 수 있다면, 즉 소프트웨어의 개념설계를 잘 할 수 있다면, 이는 큰 산업 발전을 가져오고 우리의 미래를 바꿀 수 있는 역량일 것이다.

소프트웨어 산업에 있어서 개념설계란 “소프트웨어 제품의 개념을 정의하기 위해 밑그림을 그려내는 것, 즉 제품 개발 초기 단계에 제품의 목적을 명확하게 설명하는 행위”([3])3이다. 본 고에서는 기존의 소프트웨어 제품이 가지는 문제점과 이런 문제점을 피할 수 있는 방법으로서 개념설계 역량이 무엇인지 논의하고자 한다.    

소프트웨어 분야의 기술은 하루가 다르게 변하고 있다. 빅데이터와 AI(Artificial Intelligence: 인공지능)는 기본적인 기술이 되었고, 블록체인이나 마이크로서비스 아키텍처(Micro-Service Architecture)같은 새로운 기술들도 지속적으로 나오고 있다. 생산자 위주의 제품 개발에서 소비자 위주의 개발 시대로 넘어가면서 빅데이터를 활용하고, 보다 편의를 높이기 위해 AI기술을 접목시키려는 시도가 계속되고 있다. 그러나, 과연 우리는 이런 다양하고 새로운 기술들을 우리 산업 제품과 서비스에 제대로 활용하고 있는 것일까? 예를 들어 최근에 많은 가전 회사에서는 AI기술을 접목한 가전제품들을 선보이려 하고 있다. 그러나 현재까지 출시된 국내 가전 제품들의 소프트웨어는 구조적으로 이런 신기술을 쉽게 받아들일 수 있도록 설계되어 있지 않다. 즉, 제품을 개발할 당시에 이미 신기술을 수용할 수 있도록 개념설계가 되어 있어야 신기술의 용이한 수용이 가능한데 그렇게 하지 못하였던 것이다. 또 다른 예로 많은 한국 기업들이 마이크로서비스 아키텍처란 신기술을 도입하여 소프트웨어 시스템을 구축하려고 노력하는 중이다. 하지만 기존 기업의 기능을 마이크로서비스로 구분하여 설계하는 역량을 축적하지 않았기 때문에 마이크로서비스 아키텍처가 가지는 서비스의 유연성을 시스템에 녹이지 못하는 실정이다. 

이런 문제점을 해결하기 위해서는 세 가지의 개념설계 역량이 필요하다. 

   첫째, 제품의 품질을 파악할 수 있는 역량이 필요하다. 많은 사람들이 신기술이라고 하면 새로운 기능이 만들어지는 것이라고 생각한다. 하지만 최근의 신기술은 새로운 기능을 만들어내는 것보다는 제품의 품질을 높이기 위해 등장하는 경우가 많다. 따라서 제품 품질을 높이는 것이 신기술 적용의 목적일 가능성이 많다. 자동차를 예로 들어보자. 자동차가 나온 18세기 무렵의 고객들은 이전에 없던 자동차라는 새로운 이동수단의 등장만으로도 큰 가치를 느꼈을 것이다. 그러나 요즘에 자동차를 사려는 고객들은 단순히 자동차가 가진 이동수단 기능만으로 자동차를 사진 않는다. “얼마나 안전한가? (안전성)”, “얼마나 고장이 안 나고 오래 탈 수 있는가? (신뢰성)”, “얼마나 조용하고 편안한가? (사용성)”과 같은 다양한 자동차의 품질들을 기준으로 자동차를 사게 된다. 소프트웨어 제품도 마찬가지이다. 처음에는 시스템의 기능 그 자체에 매력을 느끼지만, 점차 새로운 기술을 적용한 고품질의 시스템을 고객은 원한다. 소프트웨어 제품들의 경우에도 역시 새로 나온 신기술들은 많은 경우 품질을 높여 주기 위해서 사용된다. AI는 “얼마나 정확한 예측을 해내는가?”라는 정확성이란 품질을 높여주고, 마이크로서비스 아키텍처는 “얼마나 급변하는 비즈니스 환경을 신속하게 반영할 수 있는가?”라는 유지보수성을 높여주기 위한 기술이다. 이런 품질 목표를 반영한 소프트웨어 개념 설계를 하려면 제품의 품질을 우선 파악하는 역량이 필요하다. 따라서 제품의 품질 목표를 정확하게 파악하는 능력, 이것이 소프트웨어 제품의 개념설계에 필요한 첫 번째 역량이다. 

둘째, 파악된 품질을 추상화할 수 있는 역량이 필요하다. 소프트웨어 제품의 품질 목표를 명확하게 이해한다고 해도 이를 개념설계에 반영하지 못한다면 소용없는 일이 되고 만다. 제품의 품질 목표를 개념설계에 반영하려면 추상화(abstraction)하는 능력이 필요하다. 추상화란 사물의 특징을 잘 드러나게 단순화하는 능력을 말한다 [2]. 복잡한 시스템을 목적에 맞게 단순화하면 그 목적을 파악하기가 쉽다. 예를 들어, 제품 개발 시점에 아직 나오지도 않은 새로운 기술을 알 수는 없지만 새로운 기술을 추가하게 될 가능성은 매우 높으므로 신기술을 쉽게 연동할 수 있도록 소프트웨어 제품을 추상화할 수 있을 것이다. 복잡한 시스템을 단순화하면서 보고 싶은 부분에 집중하는 추상화 능력, 이것이 신기술을 연동하는 개념설계에 필요한 두 번째 역량이다. 

셋째,  추상화된 개념을 프로토타입으로 구현할 수 있는 역량이 필요하다. 아무리 목적에 맞는 개념을 추상화하여 설계하였더라도 이것이 실현 가능하다는 확신(feasibility)을 줄 수 있다면 사람들은 믿지 못할 것이다. 다시 말해, 신기술이 들어간 개념설계가 실제 제품에 반영될 수 있다는 확신을 줄 수 있어야 하고 개념설계의 구현 방향성을 제시할 수 있어야 한다. 소프트웨어 시스템에서 개념설계가 올바로 되었는지 입증하려면 실제 구현(implementation)을 해 봐야만 알 수 있다. “축적의 시간”에서도 언급되었듯이 개념설계는 대부분의 경우 한번에 완성되지 않는다. 다양한 시행착오를 겪은 후에야 보다 정확하고 목적에 맞는 개념설계를 해낼 수 있게 된다. 소프트웨어 제품은 눈에 보이지 않아서 특히 더 많은 시행착오가 필요할 수 있다. 따라서, 소프트웨어 제품의 개념설계를 제품의 프로토타입 형태로 구현하고, 목적에 부합하지 않을 경우에 수정된 개념설계를 수행하는 일련의 반복적 시행 착오 과정이 필요하다. 이렇게 시행착오를 효과적으로 반복하여 소프트웨어 제품의 개념설계를 입증할 수 있는 프로토타입 구현 능력이 세 번째 역량이라고 할 수 있다. 

위에서 제시한 세가지 역량을 갖추었을 때, 소프트웨어 제품이 우리 산업 발전의 새로운 매개체가 될 수 있을 것이라 필자는 확신한다. 하지만 개념설계 역량이 산업 발전의 매개체로서 역할을 할 수 있기 위해서는 위의 개념설계 역량을 갖추는 것 만으로는 충분하지 않고, “축적의 시간”에서도 ‘위험 공유의 사회’의 필요성을 언급하였듯이, 새로운 개념설계를 장려하고 실패하더라도 용인할 수 있는 사회적인 인식도 필요하다. 

소프트웨어 개념설계를 위한 세가지 역량이 계발되고, 다양한 경험적 지식의 축적이 가지는 가치에 대한 사회적 인식이 확산되면 새로운 산업 발전의 돌파구가 만들어 질 수 있을 것이다.  

참고문헌

  1. 이정동 외, 축적의 시간, 지식노마드, 2015.
  2. 이정동, 축적의 길, 지식노마드, 2017.
  3. 렌 베스 외, 소프트웨어 아키텍처 이론과 실제, 에이콘출판사, 2007.

1 [1] p. 43. 
2 [2]
3 [3] pp. 19~23. 소프트웨어의 상위 수준 설계이며 제품의 목적을 보여주는 설계를 소프트웨어 아키텍처라고 부른다.

2019년 여름호

신뢰사회와 블록체인 (Trust Society and Blockchain)

금창섭(빅픽처랩 대표)

노스이스턴 대학교 심리학 교수이자 저명한 사회심리학자인 데이비드 데스테노(David Desteno)는 최근 그의 저서에서 “타인을 믿는 것은 위험하다. 그러나 믿지 않는 것은 더 위험하다. 누구를 어떻게 신뢰하느냐에 따라 삶의 모든 것이 바뀐다”라고 주장했다[1]. 20년이상 전문 분야에서 활동해온 필자의 경험을 반추하여도 ‘인생에서 누구를 얼마나 믿을지’는 삶의 매우 핵심적인 질문으로 여겨진다.   

마이클 토마셀로(Michael Tomasello)는 유인원 중에서 사피엔스만이 문명을 이룩할 수 있었던 이유가 ‘타인의 도움 없이는 혼자 존재할 수 없었던 미약함에서 탄생했다’고 적시한다[2]. 즉, 인류는 나약한 자신을 보호하고 생존을 위해 타인과의 협력을 지속해 왔고 이러한 협력을 통해 오늘날의 문명을 이룩했다. 신뢰는 배신의 가능성이 있음에도 불구하고 상대방을 믿는 것이다. 타인과의 협력에서 누구를 신뢰하고 신뢰하지 않는지에 따라 매우 다른 결과가 나올 수 있다. 신뢰 대상을 잘 선택하면 큰 경제적 이익과 관계에 의한 행복감을 얻고, 반대의 경우에는 막대한 금전적 손실과 더불어 정신적 피해까지 입을 수 있다.  내포된 위험을 무릅쓰고 인간 사회에서 여전히 신뢰를 하게 되는 이유는 평균적으로는 신뢰를 통해 얻을 수 있는 잠재적 혜택이 잠재적 손실보다 크다는 사실을 인간이 오랜 경험을 통해 체득했기 때문이다. 배신의 염려가 적어 배신 예방에 들여야 할 시간과 노력을 절약할 수 있는 상호 협력이 용이한 사회가 신뢰사회이다. 

프랜시스 후쿠야마는 어떤 나라의 경쟁력은 그 나라가 갖고 있는 신뢰 수준에 의해 결정된다고 주장했다[3]. 또한 그는 한 나라의 신뢰 수준이 낮은 국가는 앞으로 큰 발전이 어렵다고 지적하면서 그러한 국가의 미래에 대하여 부정적인 평가를 내리기도 했다. 본 소고에서 필자는 소프트웨어 기술인 블록체인이 어떻게 저신뢰사회를 보다 높은 차원의 신뢰가 가능한 고신뢰사회로 전환시킬 수 있는지에 대해 논의하고자 한다. 

블록체인 기술은 2008년 ‘사토시 나카모토’에 의해 제안된 비트코인 백서를 통해 세상에 알려지게 되었다[4]. 이 기술은 네트워크 구성원들 간의 안전하고 투명한 장부 공유를 통해 합의된 신뢰를 만들고 중개 기관의 개입 없이 거래 당사자들 간의 직거래를 가능하게 하는 분산 데이터 관리 소프트웨어 기술이다. 상호 신뢰할 수 없는 인터넷 공간에서 신뢰할 수 있는 트랜잭션 기록을 분산 복제하여 저장하고 참여자들이 함께 검증할 수 있게 함으로써 블록체인은 ‘신뢰 머신(trust machine)’으로 불리게 되었다. 블록체인은 다음과 같은 특징을 통해 거래 기록에 관한 데이터 신뢰를 확보한다[4].

  • 투명성. 블록체인에 참여한 구성원 모두에게 데이터가 투명하게 공개되고 구성원들은 데이터를 독자적으로 검증하고 기록하고 보관할 수 있어 투명성이 확보된다.
  • 탈 중앙화. 특정한 누군가를 신뢰할 수 있다는 특별한 권한을 인정하지 않는다. 불특정 다수의 합의에 의해 정보가 갱신되고 조작되지 않았음을 증명해주는 방식으로 제3의 보증기관이 필요하지 않다.
  • 누적된 신뢰 증명.  시간이 지날수록 조작이 더욱 어려워진다는 것도 블록체인의 주요 특징이다. 중요한 거래에 대한 불가역적인 기록은 사고 원인을 규명하는 블랙박스와 같이 거래 이후 문제의 근원을 파악할 수 있다.
  • 스마트 계약. 믿을 수 있는 분산 장부와 스마트 계약(smart contract)에 의해 자동으로 집행되는 계약을 통해 계약 신뢰도를 높인다. 계약과 이행이 인간의 판단없이 자동적으로 이행되는 것이 핵심이다.

이와 같이 블록체인 기술의 핵심은 ‘위변조 불가능한 기록을 원장(ledger)에 보관하고 이 기록을 참여자가 공유한다’는 것이다. 이러한 특성은 ‘Money over IP(Internet Protocol)’로 대표되는 암호화폐(crypto currency) 분야에서 그 효능이 확인되었다. 

그러나 암호화폐에서 확인된 데이터 신뢰는 익명의 상대방 간의 거래 기록에 대한 신뢰성(trustworthiness)을 보장한 것에 불과하다. 즉, 데이터 신뢰가 신뢰사회에 요구되는 사람과 사람의 협력에 관한 신뢰의 문제를 달성해 주는 것은 아니다.  협력을 위한 신뢰는 신원(Identity) 확인부터 시작해야 한다. 신원을 좀 더 세분화해보면 인증(Authentication)과 자격(Qualification)으로 구분할 수 있다. 본인 인증은 현재 공인인증서 등으로 해결되지만 중앙의 인증기관이 보유한 개인정보 보호 이슈와 해킹 문제가 크다. 최근, 이에 대한 해결책으로 블록체인 기반의 자기주권 신원 기술(SSID, Self-Sovereign Identity)유력하게 대두하고 있다.  SSID 기술은 중앙 기관에 전체 신원 정보를 모으지 않고 개인정보를 자신의 통제 하에 두고 필요시 분산 인증 방식으로 필요한 신원을 확인한다. 신원의 본인 인증 후에는 자격에 대한 확인이 중요하다. 학력, 경력, 전문 능력 등의 자격은 발급된 자격 확인 문서의 위변조가 없어야 하는데 블록체인을 통한 증명서 발급과 관리가 이루어진다면 높은 수준의 증명 신뢰를 보장할 수 있다. 

본인확인과 자격 확인 후에도 협력 대상의 능력에 대한 신뢰 문제가 있을 수 있는데, 이 경우 평판이 상대방에게 일을 맡길 만하지에 대한 신뢰성(trustworthiness) 지표로 활용될 수 있다. 오래 전부터 평판이 신뢰성의 객관적 지표로 인식되었음에도 그 적용은 지금까지 오프라인의 영역에만 머물러 왔으며, 개인의 평판은 주로 긴밀한 오프라인 네트워크를 통해 확인되어 왔다. 과거에도 평판을 온라인화 하려는 시도가 있었으나 가짜 댓들, 가짜 리뷰, 프라이버시, 해킹 등 인터넷 정보 신뢰에 대한 우려로 활성화되지 못하였다. 당장 모든 분야에서의 평판을 블록체인에 보관하기는 어렵지만, 학교, 직장, 지역사회 등과 같은 소규모 커뮤니티에서의 활동을 블록체인에 기록하고, 타인들의 평가 결과를 누적하여 위변조 할 수 없는 평판 정보로 관리한다면, 오프라인에서 다루던 신뢰 문제를 온라인으로 이동시켜 지인 중심의 협력을 넘는 사회 구성원간의 폭 넓은 협력이 가능한 “신뢰사회”로 나갈 수 있을 것이다. 또한 구성원들은 자신의 행동 결과가 누적되어 블록체인에 평판으로 남는다는 사실을 인지하게 되어, 그들이 단기간의 경제적 이익만을 위해 이기적으로 행동하는 것을 예방하는 효과도 기대할 수 있다. 

필자는 오프라인 영역에 머물던 신뢰를 블록체인 기반의 온라인 영역으로 확장하여 신뢰의 범위를 확장 시키고, 신뢰사회 구축에 소요되는 사회적 비용을 줄여 상호 협력이 보다 용이해진 신뢰사회를 이 소고에서 그려보았다. 이를 위해서는 블록체인 기반의 신뢰사회에서 신뢰할 수 있는 대상이 암호화폐를 넘어 신원 및 평판 정보를 포함하여야 한다. 현재 기술수준에서는 탈중앙화를 일정수준 희생하고 속도와 보안성을 높인 프라이빗 블록체인[4] 기술이 실생활에서 활용될 가능성이 높다. 향후 블록체인이 점차 암호화폐의 유통을 통해 암호화폐 경제를 이끄는 역할을 하고 나아가 제2의 인터넷 역할도 하게 된다면 자율과 탈권위의 시대적 흐름과 만나 결국 신뢰사회로의 전환을 크게 촉진시키리라 예측한다. 

참고문헌

  1. 데이비드 데스티노, 신뢰의 법칙, 웅진지식하우스, 2019
  2. 마이클 토마셀로, 생각의 기원, 이데아, 2017
  3. 프랜시스 후쿠야마, 트러스트, 한국경제신문사, 1996
  4. 금창섭, 블록체인 미디어 적용 가능성과 블록체인 아키텍처 분석, 방송과 미디어 제23권 3호, 2018

2019년 봄호

소프트웨어 전문가가 본 소프트웨어산업진흥법의 문제점

이선아(경상대학교 교수), 김휘식(변호사)

2018년 신문에서는 소프트웨어산업진흥법의 입법 예고에 대한 기사를 끊임없이 냈다. 그리고 마침내2018년8월22일 소프트웨어산업 진흥법이 개정되었다. 그 내용은 제14조의2를 신설하여 공공 소프트웨어 사업의 민간시장 침해를 사전에 검증하는“소프트웨어사업 영향평가” 제도를 도입하는 소폭의 개정이었다. 대규모 개편을 예고하였으나 소규모 개정만으로 끝난 이번 개정을 계기로, 이 소고에서는 지금까지 총37번 차례 개정된 소프트웨어산업 진흥법을 살펴보고 소프트웨어 전문가의 입장에서 보는 소프트웨어산업 진흥법의 문제점과 향후 개선방향을 논의한다.

소프트웨어산업진흥법은 총5장, 38조로 구성된다[1]. 제1장은 총칙으로 목적(제1조), 정의(제2조), 책무(제3조), 계획수립(제4조)를 포함한다. 제2장은 기반 조성에 관한 것으로 제5조부터 제18조까지이며, 소프트웨어진흥시설, 단지, 전담기관, 창업활성화, 지방자치단체의 지원,인력 양성, 개발 촉진, 표준화, 품질 인증, 시험, 산업 관리, 유통, 국제 협력,해외 진출, 세제 혜택 등의 내용을 담고 있다. 제3장은 활성화에 관한 것으로 제19조부터 제26조까지이며, 수요 조사, 계약, 과업변경심의, 하도급 제한, 심의 요구, 하자 담보, 제안서 보상, 대가지급, 프로세스 품질 인증, 사업자 신고, 중소기업 지원, 기술자 신고, 부문별 활성화, 소프트웨어산업협회의 설립 내용을 담고 있다. 제4장은 소프트웨어공제조합에 대한 조항들로 제27조부터 제36조까지이며, 제5장은 보칙들을 담고 있는데 제37조,제38조로 구성되어, 청문, 규제의 재검토에 대해 규정하고 있다.

상기 법 조항에서 가장 큰 문제가 되는 것은 제24조 제3항의 소프트웨어기술자의 신고에 관한 조항이다. 요지는 소프트웨어기술자의 경력을 정부에서 관리하겠다는 것이다(제1호). 또한 이를 위해 그 진위를 관련 업체에 문의할 수 있고(제2호), 거짓이면 취소할 수 있으며, 해당 검증 내용을 기반으로 소프트웨어기술경력증의 발급을 수행한다(제4호). 또한 발급 비용은 신청인으로부터 받는다(제6호). 이에 대해서 기관에서 발급 업무를 대행할 수 있도록 명시하고 있는데(제5호) 현재 대행업체는 소프트웨어산업협회(KOSA)이다. 

필자는 20년 넘게 소프트웨어 분야에서 일했지만, 정부의 이러한 경력 관리 규정을 이제까지 들어본 바가 없다. 글로벌 시대의 개발자들은 오픈소스인 깃 허브 등에 자신이 공부한 내용과 개발한 프로젝트를 게시하는 등의 주로 오픈 소스에의 공헌을 통하여 자신의 실력을 입증하게 되고, 또한 업체에서는 이를 통하여 인재를 선발한다. 뿐만 아니라 글로벌 시대인 만큼 이들의 해외로의 취업과 교류도 활성화되어야 한다. 이러한 상황에서 소프트웨어산업진흥법 제24조 제3항과 같이 소프트웨어기술자에게 근무처, 경력, 학력 및 자격 등을 별도로 신고하여 한국에서만 인정받을 수 있는 소프트웨어기술경력증을 발급받도록 하는 규제는, 해외로 진출하고자 하는 개발자에게는 불필요하고 해외에서 들어와 일하고자 하는 개발자에게는 추가적인 신고를 하게 하여 한국을 소프트웨어의 갈라파고스로 만드는 데 일조할 뿐이다. 따라서 이러한 규제는 소프트웨어 산업 진흥을 도모하여 글로벌 경쟁력을 갖추기에 적합하지 않다.

다음으로 문제가 되는 것은 제12조로 소프트웨어 표준화 추진에 관한 조항이다. 이 조항의 요지는 과학기술정보통신부에서 소프트웨어 표준화를 추진하고 소프트웨어사업자에게 이를 권고할 수 있다는 것이다. 정부에서 소프트웨어 표준화를 추진한다는 내용에 대하여는 여러 가지 의문점이 제기될 수 밖에 없다. 예를 들어, 정부에서 추진할 수 있는 소프트웨어 표준화의 범위가 어디인지, 또한 이로 인해 제 12조가 앞서 제24조3항과 같은 갈라파고스 규제로의 변질 위험성은 없는지 우려된다. 그런 대표적인 예로, 2001년 대한민국의 표준 모바일 플랫폼으로 개발한 위피(Wireless Internet Platform for Interoperability; WIPI)는 모바일 플랫폼을 표준화함으로써 단일 콘텐츠를 여러 통신사에서 서비스하려는 취지로 개발하였으나, 결과물은 썬 마이크로시스템즈의 특허를 침해하였고 외국 단말기 제조사들이 국내 판매를 포기하는 규정이 되고 말았다[2]. 결국2009년에WIPI 탑재 의무화를 해제하면서 아이폰이 국내에 출시될 수 있었다. 이러한 규제가 일시적으로는 국내 시장을 보호하는 장치가 될 수 있으나 장기적으로는 해외의 수출입을 막는 갈라파고스 규제가 될 수 있다. 따라서 상기의 규제는 제16조에 있는 국제협력 조항의 “과학기술정보통신부장관은… 국제표준화 사업을 지원할 수 있다” 정도의 규제 강도가 적절해 보이며, 제12조와 제16조를 연계하는 등의 방안도 고려해 볼 수 있다.

마지막으로 우려되는 조항은 제23조의 소프트웨어 프로세스 품질인증이다. 이 조항의 요지는 과학기술정보통신부에서 품질인증을 실시할 수 있다는 것이다. 이하 각 조에서는 이를 대리할 인증기관을 지정하고 취소하는 조건에 대해 기술하고 있다. 여기서 우려되는 부분은 각 조항의 문제점이 아니라, 프로세스 품질인증의 규제가 강화될 경우 제24조의2의 중소 소프트웨어사업자의 사업 참여 지원을 간접적으로 저해할 위험성이 있다는 것이다. 잘 알려진 바와 같이 소프트웨어 프로세스 품질인증은CMM(Capability Maturity Model)과SPICE(Software Process Improvement and Capability Determination)의 프로세스 성숙도 모델을 기반으로 한다. 이름에서 알 수 있듯이 프로세스는 성숙해 가는 과정이 필요하며, 단번에 프로세스 품질의 성숙도가 높아지지 않는다. 또한 프로세스 품질분야의 선구자 왓츠 험프리(Watts Humphrey)는 “개선된 소프트웨어 프로세스가 개선된 제품 품질로 이어진다(Improved software processes lead to improved product quality)”고 하였다. 이러한 프로세스 품질과 제품 품질의 연관성을 살펴볼 때, 해당 제 23조는 제 13조의 품질인증과 연계하여 기술되어야 하며, 중소 소프트웨어사업자의 프로세스 품질에 대한 지침을 주면서도 과도한 규제로 연결되지 않도록 향후 완화돼야 할 것으로 보인다.

필자는 이 소고에서 4차 산업 혁명을 맞이하며2018년에 활발히 개정이 논의된 소프트웨어산업진흥법을 검토하고 문제점을 논의하였다. 소프트웨어 기술은4차 산업의 근간이기 때문에 관련 법의 제정에 신중을 기해야 하며, 현재도 신기술 개발이 활발하게 만들어지고 있어 법으로 제약하는 것은 바람직하지 않다. 이러한 맥락에서 소프트웨어산업진흥법이 소프트웨어산업의 규제로 인해 산업의 발전을 저해하지 않으면서 원래의 취지에 맞게 소프트웨어산업 진흥에 도움을 주기 위해서는, 특히 세 가지를 중점적으로 개정해 나가야 할 것으로 보인다. 첫째, 쓸모 없이 규제만 하는 내용은 삭제하고, 둘째, 한국의 소프트웨어 산업이 갈라파고스화되지 않고 글로벌 사회와 발맞추어 나갈 수 있도록 입법을 진행하여야 한다. 셋째, 소프트웨어산업의 진흥을 위한 실질적인 지원이 강화되는 방향으로 개정해야 한다.이를 통해 소프트웨어 산업과 기술자들이 창의력을 바탕으로 글로벌 경쟁력을 갖추어 나갈 수 있는 토대 역할을 하는 소프트웨어산업진흥법이 되길 기대한다. 

2019년3월 31일

참고문헌
[1] 소프트웨어산업진흥법, 국가법령정보센터, 2019년 3월 3일 접속, http://www.law.go.kr/법령/소프트웨어산업진흥법
[2] 김윤명, 이민영, 소프트웨어와 리걸 프레임10가지 이슈, 커뮤니케이션북스, 2016년