공공분야 공개 소프트웨어 생태계 발전방향
날짜2017.04.27
조회수10662
글자크기
    • Development Directions for the Ecosystem of Open Source Software in the Public Sector
    • 1. 소프트웨어 생태계와 공개 소프트웨어
    • 정보 사회에서 소프트웨어는 단순한 기술이기보다 사회를 움직이는 동력으로 중요한 역할을 담당한다. 특히 최근 소프트웨어가 제4차 산업혁명을 실현하기 위한 핵심요소로 지목되면서, 소프트웨어가 가지는 사회적, 국가적 중요성은 더욱 커지고 있다. 이제 소프트웨어는 단순히 개발자나 기업에 의해 일방적으로 생산되고 소비자에 의해 사용되는 제품을 넘어, 사회 내에서 다양한 주체 간 상호적인 활동을 통해 보완되는 사회적 산물로서 인식할 필요가 있는데, 이는 소프트웨어 생태계라는 단어로서 설명할 수 있다.
    • 소프트웨어가 사회에서 가치를 실현하고 성공하기 위해 소프트웨어와 관련된 정부 및 공공기관, 기업, 사용자(개인, 기업, 정부), 개발 공동체, 대학 및 연구기관 등 여러 주체들이 적절한 역할을 담당하고, 서로 간 원활하게 상호 작용을 해야 한다. 그리고 이러한 소프트웨어 관련 주체들의 활동이 사회가 요구하는 바람직한 가치를 창출할 수 있도록 공정한 경쟁, 신뢰된 관계 등을 보장하는 기반 환경도 갖추어져야 한다. 소프트웨어 생태계란 이러한 주체들과 환경을 포괄적으로 일컫는다.
    • 소프트웨어 생태계가 이상적으로 조성, 유지, 활성화되고 이와 함께 건전한 생태계로서 동작하기 위해서는 기본적으로 개방성에 기초한 공생적인 구조가 요구된다. 이에 개발자와 개발공동체(커뮤니티)의 자발적인 참여에 의해 발전되는 공개 소프트웨어는 소프트웨어 생태계의 구현과 발전에 있어 중요한 역할을 담당할 수 있다.
    • ‘ 소프트웨어와 소스 코드를 자유롭게 열람하고, 사용하고, 수정할 수 있고, 다른 사람에게 배포할 수 있는 소프트웨어’로 정의되는 공개 소프트웨어는 일반적으로 다수의 사용자와 개발자들이 커뮤니티를 이루어 협력적 방식으로 개발된다. 또한 이러한 참여에 있어 제약이나 장벽이 없고, 기능 추가 등의 소프트웨어 발전 역시 개방된 환경에서 참여자간 합의에 의해 결정된다. 이러한 속성으로 인해 공개 소프트웨어는 소프트웨어 생태계에 여러 주체들이 참여하기 위한 기반을 제공할 수 있고, 특히 공공분야에서 요구되는 공익성과 소프트웨어 산업의 다양성을 보장할 수 있다.
    • 다시 말하면, 공공분야 소프트웨어 생태계가 바람직하게 구성되고, 발전하기 위한 수단으로 공개 소프트웨어의 역할이 매우 중요하다. 이미 미국 등 주요 선진국들은 소프트웨어 산업 발전과 공공 부문의 호환성 등을 목적으로 공개 소프트웨어에 대한 정책을 수립하고, 이를 실현하기 위한 여러 노력을 기울이고 있다.
    • 본고에서는 공공분야 소프트웨어 생태계의 구성요소 중에서 최근 정부 주도로 개발되어 정부 부처에 적용되고 있는 개방형 운영체제(OS)의 도입방향을 검토하고, 개방형 소프트웨어 생태계 조성을 위한 발전 방향을 제시하고자 한다.
    • 2. 개방형 OS의 공공분야 도입방향
    • 공공분야에서 개방형 OS는 주로 서버용 OS로 사용되고 있다. 정부통합전산센터나 국방통합데이터 센터와 같은 공공분야 데이터센터는 x86기반 범용 하드웨어에 리눅스 OS를 설치, 사용하고 있다. 하지만 매일 업무에 사용하는 데스크톱 PC의 OS는 대부분 Windows라는 특정 OS에 종속되어 있고, Windows7에 대한 지원이 종료되는 2020년 이후에도 이런 경향이 지속될 것이라고 전망되고 있어, 공공분야에서는 이러한 일반 데스크톱 PC에 대한 개방형 OS의 도입이 주로 논의되고 있다.
    • 현재 우리 정부가 도입·개발하고 있는 개방형 OS로는 하모니카(HamoniKR)와 구름(Gooroom)이 있다. 먼저 하모니카는 미래창조과학부가 Windows OS에 대한 의존도를 줄이기 위해 2014년에 개발한 개방형 OS이다. 미래창조과학부는 2020년까지 공공기관 데스크톱 OS를 하모니카로 전환하는 것을 목표로 설정하고, 이를 활성화하기 위해 2014년부터 공공기관 시범사업을 추진하고 있다. 국방부도 2015년에 인터넷 환경의 사이버지식정보방을 대상으로 개방형 OS 시범사업을 추진한 바 있다. 한편 구름은 국가보안기술연구소가 2015년부터 개발 중인 보안성 강화에 초점을 둔 OS로, 클라우드 환경에서 운영 가능한 특징을 가진다. 구름은 일정 수준의 보안이 요구되는 업무망 환경에서 활용하기 용이한 OS이고, 하모니카는 상대적으로 보안이 민감하지 않은 인터넷 환경에 적합한 OS라 할 수 있다.
    • 개방형 OS의 공공분야 도입과 확산을 위해서는 단순히 OS 자체만을 논의하는 것이 아니라 OS, 웹브라우저, 오피스 소프트웨어 등을 포함한 시스템 전체 관점에서 접근할 필요가 있다. 사용자 입장에서는 OS 환경에서 수행하는 웹 검색이나 온나라 시스템과 같은 업무포털 사용이 중요하며, 업무자료 작성에 필요한 오피스와 같은 소프트웨어가 중요하기 때문이다. 이를 위해 <그림 1>과 같이 시스템 전체 관점의 소프트웨어를 5개 계층으로 구분한 시스템 경관(System Landscape)을 참고할 필요가 있다.
    • [그림 1] 시스템 경관(System Landscape)
      <그림 1> 시스템 경관(System Landscape)
    • 공공분야 개방형 OS 도입목적은 크게 네가지로 설명할 수 있다. 첫째, 공공기관은특정 OS에 대한 종속성에서 벗어나기 위해 다양한 OS 환경에서 소프트웨어를 사용할 수 있어야 한다. 둘째, 공공기관은 국가 예산을 사용하는 조직이기 때문에 예산을 절감할 수 있는 대안으로 개방형 OS를 포함한 공개 소프트웨어 도입을 고려해야 한다. 셋째, 공공기관은 안정적이고 보안에 강한 OS와 소프트웨어를 사용해야 한다. 개방형 OS는 소스코드가 공개되어 있다는 점에서 보안에 취약하다는 견해도 있지만, 개방형 OS의 핵심인 리눅스 커널의 높은 보안성, 전문기업과 공개 소프트웨어 커뮤니티의 적극적인 지원을 고려하면 오히려 안정적인 대안이 될 수 있다. 넷째, 공공 기관은 궁극적으로 국민과 사회를 위한 공익을 추구하려는 목적을 가지기에, 소프트웨어 산업 활성화를 간접적으로 유인하기 위한 방안으로 개방형 OS 도입을 추진해야 한다.
    • 이러한 개방형 OS 도입목적과 함께 고려해야 하는 요소는 업무의 중요도와 네트워크 환경이다. 먼저, 업무의 중요도는 조직의 핵심자산 관리여부와 시간에 대한 가용성에 따라 다르게 할당될 수 있다. 예를 들어 원자력발전소의 제어시스템(소프트웨어)은 매우 중요한 자산을 관리하는 동시에 고가용성이 반드시 보장되어야 하기에, 이러한 점이 개방형 OS의 도입에 있어 고려되어야 한다. 그리고 공공분야의 네트워크 환경은 크게 인트라넷과 인터넷 환경으로 구분되는데, 이는 결국 업무(중요도)와 연관되기에 고려할 필요가 있다. 공공분야 인터넷 환경에서는 주로 웹검색, 대외협력이나 대민 서비스를 제공하는 업무가 수행되며, 인트라넷 환경에서는 전자행정이나 자원관리 업무가 주로 수행된다.
    • 즉, 공공분야로 개방형 OS를 도입하기 위해서는 목적과 대상(업무 중요도), 그리고 환경(네트워크)을 함께 고려하여 도입방향을 설정해야 한다. 예를 들어, 무선 네트워크 환경에서 군사작전을 실시간으로 지원하는 군사용 소프트웨어를 사용하는 단말기는 보안성 보장에 초점을 두고 개방형 OS 도입을 검토해야 하며, 지역별 주민센터에서 단순인터넷 포털 검색용으로 사용하는 단말기는 중앙에서 통제할 수 있는 VDI(Virtual Desktop Infrastructure) 방식의 개방형 OS 도입을 검토할 수 있다.
    • 3. 개방형 소프트웨어 생태계 조성을 위한 발전방향
    • 개방형 OS를 포함한 개방형 소프트웨어 생태계가 건강하기 위해서는 제도적 기반과 함께 조직 문화의 변화가 필수적이다. 현재도 예산안 작성 단계의 지침에서 개방형 소프트웨어를 검토하도록 규정하고 있음에도 불구하고 개방형 소프트웨어 도입이 더디게 진행되고 있는데, 이유는 기존에 사용중인 상용 소프트웨어를 공개 소프트웨어로 변경하는 것이 단순한 과정이 아니기 때문이다.
    • 소프트웨어 유지관리 방식은 공공기관 발주자가 공개 소프트웨어를 선뜻 도입하지 못하게 제한하는 주요 요인의 하나이다. 예를 들어, 상용 소프트웨어는 구매 후에 상용 소프트웨어 개발사 또는 전문 협력 기업에서 체계적인 유지보수를 제공하지만, 공개 소프트웨어는 커뮤니티 중심의 제한된 유지보수를 제공하기 때문에 이슈에 대한 적시적인 대응이 제한될 수밖에 없다. 이를 보완하기 위해서는 공공 분야를 위한 공개 소프트웨어 기술 전문기관을 상시 운영할 필요가 있다.
    • 소프트웨어 유지관리의 대가방식도 상용 소프트웨어와 공개 소프트웨어 간에 차이가 있어, 공개 소프트웨어 도입의 장애물로 작용한다. 상용 소프트웨어는 개발사의 라이선스 정책에 따라서 과금 방식이 다르며, 사용자당 라이선스 또는 서버 CPU(또는 코어)당 라이선스 방식을 취하는 것이 일반적이며, 최근에는 마이크로소프트의 오피스 365와 같이 구독(Subscription) 방식의 라이선스 정책도 확산되고 있다. 하지만 공개 소프트웨어의 과금 방식은 소프트웨어 자체에 대한 대가보다는 소프트웨어를 기술적으로 지원하는 노력에 대한 대가를 산정하는 방식에 가깝다. 또한 공개 소프트웨어 기반으로 구축하는 과정에서 맞춤형 개발 노력이 포함될 수 있기 때문에, 정확하게는 소프트웨어 개발노력과 공개 소프트웨어 기술지원
    • 노력이 혼합된 형태로 볼 수 있다. 특히, 기존 소프트웨어와 연동되는 다른 소프트웨어가 많다면, 공개 소프트웨어로 전환한 후에 연동 기능에 대한 개발 노력이 많이 소요될 수 있다. 이러한 소프트웨어 유지관리 대가방식의 차이를 발주자가 인식하고 공개 소프트웨어 도입을 검토할 수 있도록 사업 기획 단계에서 내용연수 기간을 고려한 총 소유비용(Total Cost of Ownership) 개념의 예산 산정을 권고할 필요가 있다.
    • 한편, 새로운 소프트웨어를 도입하는 상황과 같이 새로운 변화에 대하여 사용자는 쉽게 적응하지 못하는 경향이 있다. 신규 정보시스템의 운영 직전에 사용자의 요구사항이 폭증하는 이유도 이러한 변화에 대한 수용성의 문제로 볼 수 있다. 더구나 공개 소프트웨어의 편의성이나 사용성은 전반적으로 상용 소 프트웨어의 그 것보다 다소 낮은 수 준이기 때문에 사용자의 불 만이 가중될 가능성이 높다. 물론 지속적으로 공개 소프트웨어의 전체적인 품질도 향상되고 있기 때문에 이러한 문제는 단기적인 제한사항일 수도 있다. 장기적으로는 공개 소프트웨어의 협업적 개발 문화가 협업적 조직 문화로 연결될 수 있는 환경을 조성할 필요가 있다.
    • 앞서 언급한 제도적 기반이나 조 직 문 화보다 더 중 요한 것은 조 직의 전사적인 지원이다. 조 직의 전사적인 지원은 조직의 최고 의사결정자의 강한 의지와 사용자의 적극적인 활용을 의미한다. 공개 소프트웨어를 도입하는 조직은 공개 소프트웨어의 많은 장점을 지속적으로 교육하고, 사용자는 공개 소프트웨어 사용 과정에서 발생하는 이슈를 적극적으로 공유하고 소프트웨어 지원조직과 함께 이를 해결해야 한다. 소프트웨어는 보이지 않지만 살아 있는 생명체와 같기 때문에, 건강한 소프트웨어 생태계를 유지하기 위해서는 생명체‘( 소프트웨어’)에 대한 먹거리‘( 전사적 지원’)를 지속적으로 제공해야하며, 이것이 공공분야 개방형 소프트웨어 생태계의 지속가능성을 향상시킬 수 있을 것이다.