2011년 10월 14일 금요일

왜 공개소스 소프트웨어여야 하나

IT 산업계의 빅뉴스가 속속 터지면서 국내 고유 OS 확보에 대한 사회적 논의가 진행되고 있다. 최근의 이슈가 플랫폼을 넘어‘생태계 조성’에 초점이 맞춰진 것을 염두에 둔다면, 공개소스 개발 방식에 대한 분명한 이해가 필요한 시점이다. 공개소스 개발은 커뮤니티에 의한 개발과 검증을 거치면서 발전하는 소프트웨어 개발 패러다임이다.



정확하게 20년 전, 핀란드의 한 젊은이가‘그냥 취미로’운영체제를 만들었다. 이 운영체제는
다음 날부터 뉴스그룹을 통해 급속히 퍼져 나갔고, 10여 년 후엔 세계적인 소프트웨어·하드웨
어·반도체 회사들이 모두 그 운영체제를 적극 지원한다고 나섰다. 20년이 지난 지금은 전 세
계의 서버 가운데 60% 이상, 전 세계 스마트폰의 50% 정도가 이 운영체제를 사용하고 있다.
바로 리눅스이다.

리눅스의 성공 배경은…
리누스 토발즈가 20년 전 처음 만들어 공개했던 리눅스는 이제 서버와 슈퍼컴퓨터, 모바일
시스템 산업을 지탱하는 중요한 부분이 되었다. 그리고 최근에 폭발적으로 증가하는 클라우드 컴퓨팅 환경의 양 끝단에서도 리눅스는 큰 역할을 하고 있다.

이러한 리눅스의 기적적인 발전과 성공은 공개소스 소프트웨어로서, 자신의 창의적인 아이디어를 그 안에 담고자 했던 수많은 자원 개발자들의 기여, 리눅스를 사업에 활용하는 많은 기업들의 지원, 그리고 더 많은 기능과 혁신을 끊임없이 요구했던 사용자들이 있었기때문이다. 새로운 커널이 릴리즈 되기까지는 100개 이상의 회사에서 1000명 이상의 개발자들이 기여했으며, 리눅스 커널을 개발하는 커뮤니티 크기는 해마다 10% 정도씩 늘어나고 있다.

리눅스 재단은 2008년 리눅스 커널의 가치를 14억 달러 정도로 평가했으며, 레드햇의 Fedora 9 배포판을 기준으로 할 때, 리눅스 플랫폼 전체를 처음부터 만든다면 108억 달러가 들 것으로 예상했다.

Fedora 9는 무려 2억 450만 라인의 소스로 구성됐으며, 71만 맨먼스(Man-Month)를 소요해야 개발될 수 있다고 추정한다(1).

공개소스 소프트웨어의 힘
공개소스 소프트웨어는 어떤 솔루션을 만들어내기 위한 방법론이기도 하지만, 일종의 문화 현상과 같은 것으로 이해하는 것이 좋다. 음악·미술·문학이 모든 인간에게 위로와 감동·환희를 주며, 그것이 사회의 건전한 발전에 기여한다. 공개소스 소프트웨어는 개발자와 사용자 커뮤니티에 의해 이루어지는 개발과 리뷰·시험·검증 과정을 거치면서 품질이 개선되고, 널리 배포됨으로써 정보통신 산업뿐만 아니라 전 융합 분야의 발전에 크게 기여한다.

공개소스 소프트웨어의 의미는 백과사전 만들기와 비교될 수 있다. ‘마이크로소프트 엔카르타’(2)는 마이크로소프트가 1993년부터 2009년까지 만들었던 디지털 멀티미디어 백과사전이다. 이 사전은 6만 2000개의 주제와 관련된 멀티미디어 데이터를 포함하고 있었으며, 여러 언어로 발매됐다. 이 제품은 마이크로소프트가 심혈을 기울인 사업의 결과물이지만, 백과사전을 이루는 다양한 지식을 한 회사가 관련 전문가들을 고용해 수집하고 내용의 변화에 빠르게 대응하기에는 너무나 많은 비용이 들었기 때문에 결국 포기하기에 이른다.


반면, 위키디피아(3)는 2001년에 지미 웨일즈와 래리 생어에 의해 만들어진 온라인 백과사전
으로 1900만 개(영어 기준으로 370만 개)의 주제를 포함하고 있다.

이 주제들에 대한 내용은 전 세계의 자원봉사자들에 의해 유지된다. 2011년 7월 기준으로 약 9만 명의 적극적인 자원봉사자들이 282개 언어로 백과사전의 내용을 지속적으로 개정하고 확대해 나간다. 위키디피아의 문서들은 기본적으로 CC(Creative Commons) 라이선스돼 누구나 보고 인용하고 수정할 수 있다(기본적으로 Creative Commons Attribution
/Share-Alike(CC-BY-SA 3.0) 라이선스가 적용되며, 대부분의 자료는 GFDL(GNU Free
Document License) 라이선스도 동시에 적용된다. 위키디피아의 사진, 영상 등은 각각 다양한 라이선스를 가진다).

저비용으로 표준 기술을 수용하는 방법
위 예에서, 엔카르타는 소스가 공개되지 않은사적 소프트웨어에, 위키디피아는 공개소스 소
프트웨어에 비유할 수 있다. 성공한 공개소스 소프트웨어들은 집단지성에 의해 만들어지고, 그 소스가 리뷰·검증됨으로써 사적 소프트웨어에 비해 높은 성능은 물론, 신뢰성과 보안성 측면에서도 우월하다.

국내에서는 2009년 스마트폰이 도입되면서, 특정 업체의 기술에 의존하는 정부와 금융 서비
스가 문제가 되고, 공개 표준에 대한 중요성이 크게 부각되기 시작했다. 공개소스 소프트웨어
는 공개 표준을 기반으로 만들어지기 때문에, 가장 적은 비용으로 표준 기술을 수용할 수 있는 방법을 제공한다.

현재도 IT 제조업의 선도국가로서 우리나라는 스마트폰, 디지털 TV, 셋톱박스 등 많은 제품에
리눅스를 비롯한 많은 공개소스 소프트웨어를 적용하고 있다. 정부도 공개소스 소프트웨어 기반으로 전자정부 표준 프레임워크(6)를 구축해 전자정부 응용 소프트웨어 구현의 생산성을 높이고 재사용을 촉진하기 위해 노력하고 있다. 이 표준 프레임워크는 민간 영역으로 확산되고 있다. 공개소스 소프트웨어의 사용은 외산 유료 소프트웨어 라이선스에 소요되던 서비스 구축 비용의 대부분을 기술 지원 부문으로 돌림으로써, 국내 IT 일자리 창출에도 크게 기여한다.


‘생태계 형성’에 주목하라!
안드로이드 스마트폰 플랫폼을 만든 구글이 얼마 전‘모토로라 모빌리티’인수를 발표했다.
이 사실이 기사화될 때, 국내에서는 다음 두 가지 포인트가 뉴스의 핵심이었다. 첫째는 그간 공개소스를 표방해왔던 구글이 제조사를 인수함으로써 공개소스 정책에 대한 의지가 시험대에 올랐다는 측면이고, 둘째는 국산 모바일 소프트웨어 플랫폼의 필요성에 관한 측면이다.

첫 번째 측면을 먼저 살펴보자. 현재 모바일 소프트웨어 플랫폼으로서 안드로이드의 가치는 공개소스 소프트웨어이기 때문에 만들어진 것이며, 앞으로도 그럴 것이라고 보는 것이 타당하다. 이는 안드로이드 프레임워크와 그 하부를 이루는 리눅스 커널의 소스를 볼 수 있는 많은 개발자와 연구자들이 구현된 내용을 검증하고, 다양한 방향으로 개선하고 새로운 기능을 추가하고 있다는 점과, 그렇게 만들어진 플랫폼을 여러 제조사들이 실제 스마트폰에 적용함으로써 가능한 것이다.

즉, 안드로이드의 가치는 스마트폰 플랫폼의 개발·제조사들의 활용, 개인 또는 기업 개발자
들에 의한 응용 프로그램의 개발, 마켓에 의한 유통을 아우르는 큰 규모의 생태계가 구성돼 이룩된 것이다.

이런 생태계는 공개소스 소프트웨어가 아니었다면 이룰 수 없었을 것이며, 구글의 안드로이드 사업을 성공으로 이끌었기 때문에, 구글이 이를 포기한다는 것은 생각하기 힘든 선택이 될 것으로 판단된다.

두 번째 측면은 독자적인 국산 플랫폼을 만들어야 할 것인가가 핵심이다. 많은 전문가들, 스마트폰 제조사들은 국산 모바일 플랫폼 개발에 대체적으로 부정적인 것 같다. 독자적인 플랫폼 추진 또는 반대에는 나름대로 많은 이유들이 있지만, 반대하는 이유의 핵심 또한 공개소스 소프트웨어와 관련이 있다.

모바일 플랫폼에는 공개소스가 아닌 애플의 iOS와 구글이 주도하는 안드로이드, 인텔과 노키아가 주도하지만 장래가 불투명한 Meego(4), 아직은 SDK조차 내놓지 못하고 있는 리모 재단의 Limo(5)까지 여러 공개소스 소프트웨어 모바일 플랫폼이 존재한다. 현재 상황을 미루어볼 때, 이미 안드로이드가확고한 시장 주도적 위치에 올라, 다른 공개소스 모바일 플랫폼이나 전혀 새로운 플랫폼이 시장에서 자리를 잡을 가능성은 매우 낮다.

공개소스 플랫폼인 Meego와 Limo가 모바일 환경에서 활용 가능한 공개소스 솔루션들을 거의 모두 포함하고 있음에도 불구하고, 성공하지 못하고 있는 것이 그 증거로 제시되고 있다. 그렇다고 공개소스 소프트웨어를 전혀 활용하지 않는 새로운 모바일 플랫폼을 개발하는 것은 이 글 앞머리의 리눅스 가치 논의에서처럼 천문학적 비용과 노력·기간이 소요돼 현실성이 없으며, 커뮤니티에서 장기간에 걸쳐 완성된 공개소스 기반 플랫폼에 비해 기술적 혁신성도 기대하기 어렵다는 것이다.

하지만 국방, 자동차와 같은 일부 산업 분야에서는 국가적인 소프트웨어 플랫폼이 성공할 가능성도 높다. 이 경우에도 개발은 공개소스 소프트웨어 개발 방식을 따르는 것이 바람직하다. 공개소스 개발방식이 품질과 성능·보안성을 담보하고, 새로운 기능에 대한 실질적 사용자들의 요구가 빠른 시간 내에 수용될 수 있는 가장 효율적인 방법이기 때문이다.

공개소스 소프트웨어 발전을 위한 지원 방향
IT, 소프트웨어 산업의 안정적인 발전을 위해서는 공개소스 소프트웨어에 대한 지속적인 지원이 있어야 한다. 공개소스 소프트웨어에 대한 투자는 소프트웨어의 개발을 위한 지원, 효과적이면서 안전한 활용을 위한 지원, 개발 및 활용 인력양성을 위한 지원, 그리고 공개소스 소프트웨어에 대한 인식제고를 위한 지원으로 구분할 수 있다.

이러한 지원 활동에는 정부, 기업, 교육계 각자의 몫이 있다.현대적인 시장질서 하에서 정부가 인위적으로 시장을 창출하기는 어렵지만, 적어도 공공사업에서 공개소스 소프트웨어 활용을 권장하고,전자정부 표준 프레임워크(6)와 같은 기술적 지원 활동, OLC 사업(7)과
같은 공개소스 소프트웨어 기술 교육 사업 등이 가능하다.우리 IT 관련 기업들도 공개소스 소프트웨어의 활용에 따른 이득의 일부를 커뮤니티에 환원함으로써 커뮤니티를 발전시키고, 다시 그를 통해 개선된 결과를 자신의 제품 혁신에 사용할 수 있는 선순환 구조를 만들 수 있다.

또 자사 소프트웨어 엔지니어들이 공개소스 커뮤니티 활동을 할 수 있도록 지원하고, 필요한 새로운 기술의 개발을 공개소스 방식으로 주도함으로써 기여도 하고 가장 유리한 입장에서
그 결과물을 활용할 수 있다. 기업들은 문화 현상으로서의 공개소스 활동이 결국 소프트웨어적 창의성에 기여한다고 할 때, 문화·예술 활동에 지원하는 메세나 운동처럼, 우선 자사와 관련이 있는 부분에서부터라도, 외부에서 자발적으로 이뤄지는 공개소스 커뮤니티 활동에 세미나 공간이나 간식을 제공하는 등의 다양한 방법으로 지원하는 것도 좋다.


대학을 비롯한 교육계 역시 특정 회사의 비공개소스 교육도구 의존성을 낮추고, 공개소스를 생산하고 활용할 수 있는 인력 양성에 더욱 힘써야 한다. 즉 공개소스 운영체제와 도구를 이용한 교육을 하고, 캡스톤 디자인 등의 과정을 공개소스 방식으로 진행해 공개소스 소프트웨어 및 커뮤니티에 익숙하게 하는 것이다. 이러한 교육 방식은 학생들이 교육 과정에서 행하는 활동과 개발 결과물을 통해 커뮤니티에 기여하도록 함으로써 공개소스 소프트웨어 생태계의 중요한 일원이 되도록 해 지속 가능성을 확보한다. 또 커뮤니티 활동 경험과 기여는 학생들의 취업에도 큰 도움이 된다.

장기적 관점에서 접근
정부지원에 의한 R&D 가운데 가능한 것들을 공개소스 개발 방식으로 진행해, 연구의 전 과정을 공개함으로써 R&D 결과의 활용성을 넓히는 방법도 있다. 현실적으로 국내외 기업 및 공공기관 등에서 공개소스 소프트웨어를 활용한 소프트웨어 개발이 점진적으로 증가하고 있으므로, 이를 제도화해 개발의 효율성을 높이고, 자원의 재활용, 결과물의 보급이 용이하도록 하는 것이다.

현재는 적지 않은 국가 R&D 결과물이 그 성공여부를 떠나, 잘 활용되고 있지 않은 상황이다. 또 국가 R&D에서 공개소스 소프트웨어의 활용이 점차 늘어나고 있음에도 불구하고,
공개소스 소프트웨어 거버넌스의 적용이 거의 이뤄지지 않고 있기 때문에, 국가 R&D 결과물
의 활용에 소프트웨어 라이선스 문제가 따르기도 한다.

이를 위해서는 좀 더 적극적으로 과제의 기획 단계에서부터 공개소스 개발 방식의 이득 평가,
기존 공개소스 솔루션에 대한 성숙도 평가, 기존 소스 활용, 프로젝트 관리·운영·결과의 공개
등을 체계적 관리·운영하기 위한 지침과 공개 소스 소프트웨어 거버넌스 적용이 필요하다.

공개소스 소프트웨어는 IT 제조 강국으로서 우리나라의 IT 및 융합 산업에 아주 중요한 기초
자산으로 활용돼야 한다. 또한 공개소스 소프트웨어는 단기적으로 우리가 창의성을 전제로 하는 서비스 및 콘텐츠 부분에 역량을 집중할 수 있게 해주는 고마운 존재이다. 하지만 최근의 국산 소프트웨어 플랫폼 논의에서 보는 바와 같이 핵심 소프트웨어 경쟁력의 확보를 위해서는 장기적인 관점에서 공개소스 소프트웨어에 대한 정부와 기업의 지속적 지원과 교육 환경의 개선이 반드시 필요하다.

<글: 글 이민석 한성대학교 컴퓨터공학과 교수>
<출처: www.kait.or.kr, 이음n울림 2011년 9-10월호>

댓글 없음:

댓글 쓰기