본문 바로가기

일상

무기체계 소프트웨어와 OSS(Open Source Software) 사용

무기체계 소프트웨어와 OSS(Open Source Software) 사용


  최근 무기체계 소프트웨어 개발 업체들이 공통적으로 고민하는 이슈가 있다. 오픈소스 소프트웨어의 사용이(Open Source Project) 그것이다. 민수산업과는 달리 무기체계 소프트웨어 개발은 폐쇄적이며, 보안 유지가 중요하다. 무기체계의 중요한 알고리즘이나 제원이 적에게 노출될 경우 임무 실패라는 치명적인 결과를 초래할 수 있기 때문이다. 그래서 관련된 소프트웨어 산출물의 공개는 금기 시 된다. 하지만, 오픈소스 소프트웨어의 무분별한 사용은 이러한 무기체계 소프트웨어 특수성에 반하는 결과를 초래할 수 있어 조심히 사용해야 한다.

  과거에 비해 소프트웨어가 무기체계의 성능에 미치는 중요도 및 소프트웨어 규모 자체도 매우 커지고 있으며, 모든 무기체계의 모든 기능을 밑바닥부터 개발하는 것은 거의 불가능하다. 이에 회사가 보유한 자체 자산을 사용할 수도 있지만, 이 또한 매우 제한적이며, 빠르게 변화하는 고객 및 시장의 요구에 대응하기에는 회사가 보유한 자산이 턱 없이 부족하다.

  그래서 소프트웨어 개발자들이 찾는 것이 오픈소스 프로젝트들이다. 소스코드가 공개되어 있어 쉽게 접근할 수 있으며, 많은 상용 소프트웨어에도 이미 많이 사용되고 있기 때문이다. 하지만 의외로 오픈소스 소프트웨어를 사용할 경우 라이선스를 유심히 봐야한다고 생각하는 개발자는 드문거 같다.

  체계적인 OSS 사용을 지원하기 위해 우리 부서는 다양한 측면에서 프로세스 개선을 고려하고 있다하지만, 관련된 프로세스 개선보다는, 이해당사자들(개발자, 관리자, 고객 등)의 인식 전환이 더 중요하다. 나는 이런 이슈가 있으면, 항상 미국 국방산업에서는 어떻게 하고 있는지 찾아 보곤 한다. 간단한 검색결과 미국방성에서 운영하고 있는 한 사이트를 찾았다. DoD OSS FAQ 사이트(http://risacher.github.io/DoD-OSS-FAQ/)란 사이트로 미국 무기체계 소프트웨어에서 OSS를 어떻게 다루고 있는지 확인할 수 있다. 본인은 해당 사이트를 확인하기 전 까지도, 미국도 우리나라와 마찬가지로 소스코드 공개에 대한 제약 조건으로 인해 OSS 사용을 금지하고 있을 것이라고 생각하고 있었는데, 결과는 오히려 반대였다. 심지어, 미국방부는 OSS 사용을 장려하고 있으며, OSS 사용 시 관련된 라이선스 정책에 반드시 따라야 한다고 명시하고 있다. 덧붙여 "Clarifying Guidance Regarding Open Source Software" Memorandum을 보면 OSS를 사용하는 이유로 아래와 같이 7가지 이유를 들고 있다.

    (i) The continuous and broad peer-review enabled by publicly available source code supports software reliability and security efforts through the identification and elimination of defects that might otherwise go unrecognized by a more limited core development team.

    (ii) The unrestricted ability to modify software source code enables the Department to respond more rapidly to changing situations, missions, and future threats.

    (iii) Reliance on a particular software developer or vendor due to proprietary restrictions may be reduced by the use of OSS, which can be operated and maintained by multiple vendors, thus reducing barriers to entry and exit.

    (iv) Open source licenses do not restrict who can use the software or the fields of endeavor in which the software can be used. Therefore, OSS provides a net-centric licensing model that enables rapid provisioning of both known and unanticipated users.

    (v) Since OSS typically does not have a per-seat licensing cost, it can provide a cost advantage in situations where many copies of the software may be required, and can mitigate risk of cost growth due to licensing in situations where the total number of users may not be known in advance.

    (vi) By sharing the responsibility for maintenance of OSS with other users, the Department can benefit by reducing the total cost of ownership for software, 5 Attachment 2 particularly compared with software for which the Department has sole responsibility for maintenance (e.g., GOTS).

    (vii) OSS is particularly suitable for rapid prototyping and experimentation, here the ability to “test drive” the software with minimal costs and administrative delays can be important.

  이에 따라, 미국방부에서는 http://www.forge.mil/Community.html 이란 사이트를 운영하고 있으며, OSS 라이선스 정책에 따라 공개해야 하는 소프트웨어 소스코드가 있다면, 해당 사이트를 통해 공개하고 있다. 미국의 사례에서도 볼 수 있듯이, 우리 무기체계 소프트웨어에서의 OSS 사용은 좀더 진지한 측면에서 접근되어야 할 것이며, OSS에 대한 무조건적인 불신을 버려야 할 시기가 온 것 같다.