소프트웨어 중요성에 대해 재론할 여지가 없는 세상에 우리는 살고 있다. 유비쿼터스 컴퓨팅이라는 용어를 창안한 마크와이저의 표현을 빌리자면 소프트웨어가 사회 곳곳에 스며들어 편재해 있는 상태다. 정보화 사회에서 초연결 사회로, 또 인공지능 사회가 될 것이라고 이야기한다. 이러한 변화를 견인하는 핵심요소가 소프트웨어이고 달리 말하면 소프트웨어에 대한 의존성이 더 높아진다고 할 수 있다.
최근 알파고라는 인공지능 소프트웨어가 보여 준 위력을 고려한다면 개인의 능력에 의존하던 많은 분야에서 곧 인공지능이 활용될 것이다. 다양한 분야에서 자원을 관리하고 활용이 최적화되고 제조분야는 사람의 개입이 최소화된다. 관리자나 의사결정권자는 인공지능의 도움으로 더욱 스마트해질 것이다. 자율주행자동차는 교통체계 및 이동문화의 근본적인 변화를 가져올 것이고 무인화를 이끄는 선도적 역할을 할 것이다. 국방 분야에서도 무기체계의 첨단화에 따라 지능화되고 무인화 되는 비율이 더욱 커질 것으로 예상된다. 미국 전 국방장관 럼스펠드가 말한 것처럼 피를 흘리지 않는 '클린워'가 실현되는 날이 멀지 않은 것 같다.
이러한 예상은 소프트웨어가 정상적으로 작동한다는 가정 하에 가능한 시나리오다. 만약 우리가 의존하는 운영 시스템과 기반체계에서 소프트웨어가 부정확한 결과를 내 우리의 판단을 오도하거나 시스템의 오작동을 유발한다면 치명적인 상황을 초래할 수 있다. 부품이나 원재료가 부족함에도 공장을 가동해 큰 손해가 날 수도, 잘못된 시장 분석 보고서를 기초로 의사결정을 해 큰 돈을 날릴 수도 있다.
차가 좌표에도 없는 목적지를 향해 돌진하는 사태가 발생할 수도 있다. 최악의 경우 적의 위협이 없음에도 공격을 개시하는 사고를 맞게 될지도 모른다. 이 모든 문제의 근본에는 소프트웨어가 자리 잡고 있다. 최근 자동차, 원전, 철도 등의 산업을 중심으로 시스템 및 소프트웨어 안전성에 관심을 기울이고 있다. 인명의 안전과 밀접한 산업계에서 우선 드라이브하고 있는 형국이다. 특히, 요구하는 국제표준을 충족하고 이를 기준으로 한 안전성 인증 활동에 산업 전체가 나서거나 개별기업이 중심이 되어 유관 기업 간 협업을 진행하고 있다.
자동차의 경우에는 2009년 도요타 렉서스 ES350차량의 급발진 사고에 대해 도요타가 차량 리콜과 과징금을 통해 책임을 지게 된 사건이 계기가 됐다. 비슷한 시기에 기능 안전성 국제 표준으로 ISO 26262가 2011년 제정되었으며 자동차 산업계가 적용에 발 벗고 나서고 있다. 차량이 최대한 안전하게 제조됐느냐는 입증에 따라 배상책임을 면하거나 경감해 주는 제조물책임법을 고려할 때 ISO 26262의 준수는 그 해답이 될 수 있을 것이라 더욱 주목된다.
이 같은 점은 원전의 IEC 61513 이나 철도의 IEC 62279 처럼 안전성이 중시되는 산업에서 동일하게 적용될 수 있는 표준으로 기능하고 있다. 소프트웨어가 일으키는 시스템의 고장이라는 문제 또한 신뢰성에서 생명의 안전을 담보하는 안전성으로 패러다임이 바뀌어 가는 중이다.
우리 사회 전체적으로도 세월호, 메르스 사태를 연속적으로 겪으며 안전에 관한 관심이 고조되어 있다. 부처를 개편하고 대응 매뉴얼을 보완하고 컨트롤타워를 새로이 정비하는 등의 작업이 이뤄졌거나 진행 중이다. 2015년을 기점으로 미래부가 ICT 기반 시스템의 안전 점검을 중요 시스템에 대해 실시하게 된 것도 같은 맥락이라 하겠다. 거의 같은 시기에 소프트웨어 안전에 관한 종합적인 계획 수립이나 소프트웨어 안전 산업을 육성한다는 방향도 함께 고려한 것으로 안다.
하지만 소프트웨어가 모든 산업과 기반 시스템에 쓰이게 되면서 안전에 관한 문제를 소프트웨어에 한정해 바라보기 어렵게 됐다. 즉, 해당 산업의 주요 제품과 기술에 내장된 소프트웨어의 경우 주요 하드웨어의 구성품이나 완성품과 분리하여 기능과 안전을 다루기가 불가능해진 것이다. 하드웨어에 내장된 임베디드 소프트웨어를 미래부가 아닌 산업부가 담당하게 된 이유이기도 하다. 미래부의 ICT 및 소프트웨어에 관한 정책과 각종 법제도에서 임베디드 소프트웨어가 제외되어 있다는 사실이 이를 보여준다. 따라서 이번 기반 시스템 안전성에 관한 점검에서도 그 역할의 한계가 명확하게 드러났을 것으로 본다.
소프트웨어 산업 전체에서 보면 얼마 되지 않는 테스트와 컨설팅 기업 중심으로 대부분 시스템 차원의 안전성에서 접근해 점검하고 진단하는 일에 완전성을 기대하는 것은 처음부터 무리한 요구다. 더구나 미래부가 주관하는 영역 외의 산업까지 포괄해 시행해야 하는 제도나 사업의 실효성도 제한적일 수밖에 없다.
미래사회에서 무엇보다 중요한 소프트웨어 안전을 확보하려면 소프트웨어를 가장 전문적으로 다루어 온 미래부가 컨트롤타워로서 기능할 필요가 있다. 임베디드 소프트웨어에 대한 정책 또한 전체 소프트웨어 산업의 일부로서 수립하고 발전시켜야 한다. 이를 통해 최소한 소프트웨어 산업 전체의 수준과 관련 통계는 제대로 밝혀질 수 있을 것이다.
또 미래부는 소프트웨어 산업 정책의 주무부처로서 소프트웨어가 중요하게 쓰이는 모든 산업에 필요한 공통 기술과 지침을 마련해 제공하는 지원자가 돼야 한다. 이를 통해 각 산업별로 별도의 지침과 매뉴얼을 제작하거나 공통적인 기술을 중복 개발하는 낭비요인을 줄일 수 있다. 또 소프트웨어 안전 요구를 분석해 구현하고 하드웨어와 통합적으로 안전 시험을 수행할 수 있는 임베디드 소프트웨어 고급인력 양성이 필요하다. 이 또한 주무부처인 미래부가 나서서 해결해야 할 과제로 각 산업에 필요한 소프트웨어 인력 공급자의 역할을 담당해야 할 것이다.
이외에도 소프트웨어 안전이라는 새로운 요구사항을 공공 부문 소프트웨어 발주관리 프로세스에 포함해 관리하고 그에 맞는 비용 산정체계 및 예산 항목을 마련하는 일도 중요한 과제다. 새로운 과업의 실행에 필요한 예산이 뒷받침될 때 정부가 이야기하는 안전 산업이 조성되고 일자리도 창출될 수 있다. 소프트웨어 중심 사회를 건설하는 것 못지않게 소프트웨어 사고가 국가사회에 재앙이 될 수도 있는 안전 문제 또한 적극적인 정책과 노력이 필요하다.