왜 공개 소프트웨어인가?

4차 산업혁명이 성공하기 위해서는 소프트웨어(SW) 원천기술 확보가 매우 중요하고 이를 위해서는 고급인력 양성이 핵심이라는 사실은 누구나 다 인지하는 사실이다. 그런데 SW 인력 양성을 위해서는 오픈소스 소프트웨어(OSS : Open Source Sofware)가 거의 필수적이다. OSS는 소스코드가 공개되어 있어 내부설계를 공부해볼 수 있으며, SW를 마음대로 보여주고 바꾸고 공유해볼 수 있도록 라이선스가 제공되기 때문이다. 그러므로 선진국 대학들은 OSS를 매우 활발히, 적극적으로 도입하고 있다.

그러나 그보다 더 중요한 이유들이 있다. 첫째, OSS는 사회에서 실제로 사용하고 있는 SW이기 때문에 크고 복잡도가 높다. 학생들이 작성하는 소규모 SW로는 배울 수 없는 거대하고 복잡한 문제들을 학생들은 OSS를 통해 배우게 된다. 둘째, OSS는 전 세계 개발자들이 공동 개발한다. 그러므로 OSS로 교육시키면 글로벌 개발자들과 어떻게 협업해야 하는지 배우게 된다. 셋째, SW는 하드웨어(HW: Hardware)와 뚜렷하게 구별되는 속성을 갖는데, SW는 배포되고 나면서부터 본격적인 일이 시작된다는 점이다. 라디오 같은 HW 경우 고객들이 구매해 간 라디오를 지속적으로 upgrade시켜주어 HDTV로까지 만들어주지는 않는다. 그러므로 SW 경우엔 릴리스시키고 난 후에도 Github issue tracker와 같은 도구를 통해 끊임없이 전 세계 고객들과 소통하고 upgrade를 지속적으로 해주어야 한다. 교실에서 실습하는 소규모 SW 프로젝트에서는 이러한 경험을 해볼 수가 없다. 마지막으로, OSS로는 SW 역공학이 가능하다. 우리나라가 과거 자동차, 가전 등의 산업에서 눈부신 업적을 냈던 것은 역공학이 가능했었기 때문이다. 그럼에도, SW는 소스코드 감추기와 지식재산권 때문에 오랫동안 역공학이 불가능했었다. 하지만 이제, OSS가 출현하면서 SW 분야에서도 본격적으로 역공학을 해볼 수 있는 시대가 도래한 것이다. SW 교육을 혁신시킬 수 있는 시대가 도래한 것이다. 그러면 어떻게 OSS를 교육에 활용할 것인가?

어떻게 OSS 교육을 시킬 것인가?

첫째, 표준 OSS 교과과정을 만들어야 한다. 한중일 OSS 포럼 WG2 산학연 대표들은 지난 10여 년간 표준 OSS 교과과정을 꾸준히 공동 개발해왔지만 Cloud 등 새로운 기술이 계속 나오고 있으므로 이 표준 교과과정도 계속 개정해나가야 한다. 그리고 이 과목들 중 어떤 과목이 대학에서 전공필수가 되어야 하며 어떤 과목이 선택되어야 할지를 대학들이 결정해야 한다.

둘째, OSS 동영상 강좌를 인터넷에 올려 모든 사람이 공유할 수 있도록 MOOCs 플랫폼을 만들어야 한다. 왜냐하면 첫째, 많은 직장인들도 OSS를 공부할 수 있어야 하기 때문이다. 국내 수많은 SI 개발자들도 OSS 동영상을 통해 클라우드 같은 기술을 공부하지 않으면 이들이 대량 실직자로 밀려나기 때문이다. 둘째, 모든 대학이 모든 OSS 과목을 다 가르칠 수는 없기 때문이다. 특히, 우리나라 컴퓨터학과들은 외국에 비해 교수 수가 매우 영세하기 때문에 (미국 컴퓨터학과 교수들은 80명 내지 120명인 경우가 흔하다) 모든 과목, 모든 실험실습을 도저히 다 가르칠 수 없다. 미국은 이렇게 교수 수가 많은데도 불구하고 edX, Coursera 같은 MOOCs를 통해 9,400개 코스를 800여 개 대학들이 공유하고 있다. 우리나라 대학들은 훨씬 영세하면서도 훨씬 폐쇄적이다. 셋째, 많은 OSS들은 대학 밖에서 만들어졌기 때문에 개발자 커뮤니티나 회사 전문가들이 더 잘 가르칠 수도 있다. 예를 들어 Linux Foundation은 수많은 OSS 강의들을 온라인으로 제공하고 있다. 넷째, 4차 산업혁명은 1차 산업혁명보다 훨씬 진행 속도가 빠른데, 우리나라 대학 체제로는 이 빠른 속도에 신속히 적응하는 것이 어렵다. 새 SW 분야가 출현할 때마다 새로운 교수 정원을 확보하고, 예산 문제를 해결하고, 교과목을 추가하고, 교수를 공채하는 등의 기나긴 프로세스를 거치다 보면 4차 산업혁명의 속도를 도저히 따라갈 수 없다. 그러므로 전국 대학들이 MOOCs를 통해 새로 나오는 강의들을 신속히 공유할 수 있어야 한다.

국내 학원들이 온라인 강좌를 많이 제공하고 있는데 왜 정부가 온라인 교육 시장에 개입하느냐고 할 수도 있겠으나 학원들은 돈벌이 되는 과목만 취급할 수밖에 없다. 수강 인원이 적어 돈벌이가 안되는 강좌라도 사회적 요구만 있다면 신속히 올리는 MOOCs 플랫폼이 필요하다. 또, 외국 MOOCs에 가면 좋은 강좌들이 많은데 왜 국내 MOOCs가 더 필요하냐고 질문할 수도 있다. 외국 MOOCs는 물론 영어가 가장 큰 문제이다. 그러나 그 외에도 외국 OSS 강좌들은 매우 고가라는 문제가 있다. 예를 들어 Linux Foundation은 비영리법인이지만 거기서 제공하는 온라인 강좌를 일주일 정도 수강하는데 보통 5,000달러 수준이다. 이는 국내 개발자들에게는 너무 높은 금액이다.

대학들이 MOOCs에 올라와 있는 강의를 기반으로 거꾸로 교실 (Flipped Learning)을 할 수 있게 해주고, 이를 학점으로 인정해주어야 한다. edX와 coursera는 수많은 과목에 대해 대학 명의로 certificate을 주고 있고, 명문 GIT 대학은 coursera에서 온라인으로 석사학위까지 주고 있다

특히, 최우수 학생들이 OSS 강의를 많이 수강해야 한다. 예를 들어 반도체, 스마트폰, 가전, 자동차 회사들이 앞으로도 국제시장 점유를 계속 유지하려면 OS, Compiler, DB 같은 시스템소프트웨어 과목에서 OSS를 통해“실전적 원천기술”을 확보해야 하는데 이러한 시스템소프트웨어는 최고 수준의 인재들이 수강하지 않으면 도저히 따라갈 수 없는 고난도 과목들이다. 그러므로 SW 중심대학 학생들이 OSS를 반드시 수강하도록 의무화해야 한다

OSS에 기여할 경우 그것을 교수와 학생의 실적으로 인정해주고 평가에 반영해주어야 한다. OSS 강좌를 개설하거나, OSS를 개발하는 등의 작업은 엄청난 시간과 노력이 들어가는 일이다. 무엇보다 SW 실습교육은 이론교육보다 훨씬 더 어렵다. 왜냐하면 최신 SW일수록 제대로 된 교과서나 파워포인트가 없는 것은 물론이고, 배울 방도가 마땅치 않고, 코드 실습이 중요하므로 실습시스템도 설치/관리해야 하고 학생들 프로젝트 관리까지가 모두 교수의 부담이기 때문이다. 그런데도 현재처럼 아무도 SW 실습교육에 대한 평가와 보상을 해주지 않는다면 아무도 OSS를 가르치거나 개발하려 하지 않을 것이다. 스탠퍼드대학 같은 경우 이미 오래전부터 OSS에 대한 기여를 교수의 승진 등에 반영해주고 있다.

어떻게 OSS를 공부하게 만들 것인가?

그러나 아무리 훌륭한 강좌를 제공해도 학생들이 듣지 않으면 소용없는 일이다. 학생들이 열심히 OSS를 수강하게 하려면 동기를 부여해 주어야 한다. 필자가 과거 서울대학교에서 리눅스 커널 강의를 할 때에도 수강신청 인원이 너무 적어 폐강 위기에 처한 적이 한두 번이 아니었다. 학생들은 왜 OSS 과목을 기피하는가? 첫째, OSS 강의들은 너무 많은 시간과 노력을 요하며 어려운 과목이기 때문이다. 둘째, 그렇게 어렵고 힘들게 공부해도 그것이 장래에 자신에게 유익하지 않다고 생각하기 때문이다. 즉, 직장에서 OSS를 요구하지 않는다고 생각하기 때문이다. 그러나 오늘날 OSS야말로 산업체가 가장 절실히 필요로하는“실전적 SW 기술”의 하나이다. 그러나 이러한 상황이 학생들에게 제대로 전달되지 않고 있다. 그러므로 기업들은 OSS 인력이 직장에서 환영받고 대우받는다는 사실을 학생들에게 적극적으로 널리 홍보해야 한다. 입사시험에 OSS를 포함시키고 OSS가 연봉과 승진에 중요하다는 사실을 학생들에게 널리, 적극적으로 알려야만 학생들이 우선순위를 조정해서 OSS 공부를 하게 된다. 미국 Computerworld라는 언론사는 OSS skill set 연봉을 매년 조사해서 전국적으로 발표하고 있다. 우리나라 언론도 OSS skill set 연봉을 매년 조사해서 전국적으로 발표하면 보다 많은 학생들이 OSS 과목을 수강할 것이다.

공공기관이 앞장서서 OSS를 도입해야 한다. 우리나라에는 아직 OSS 보급이 매우 저조하다. 그 이유는 OSS 생태계가 조성되어 있지 않기 때문이다. 이러한 상태에서 민간에게 OSS를 도입하라고 요구하기는 어렵다. 그래서 어느 나라나 국가와 공공기관이 OSS를 앞장서서 도입하고 있다. 국가가 OSS를 도입하면 자연스럽게 OSS 생태계가 조성되고 그러면 민간이 뒤이어 OSS를 수월하게 도입할 수 있게 된다.

정부는 IT 시스템을 도입할 때 모든 인터페이스를 특정 기업에 의존하지 않는 개방형 표준(open standards)으로 정해야 한다. 영국은 이미 전자문서를 도입할 때 특정 회사의 문서 인터페이스가 아니라 개방형 표준 즉 ODF(Open Document Format)를 따르도록 정하고 있다. 문서뿐 아니라 웹, 보안, OS, DB 등 여러 시스템에서 개방형 표준을 쓰지 않고 특정 기업이 정한“비표준 비공개 유료”인터페이스를 정부가 채택하면 그 특정 회사만 납품할 수 있게 되고 경쟁은 사라지게 된다. 경쟁이 사라지만 더 이상 기술을 발전시킬 필요성이 사라지고, 서비스 개선도 안 되며, 가격을 일방적으로 올려도 속수무책이 될 수밖에 없게 된다. 개방형 표준 인터페이스를 채택하면 모든 기업이 공정하게 경쟁할 수 있게 된다. 개방형 표준(open standards) 채택은 OSS로의 이행을 보다 원활하게 해준다.

앞에서도 언급한 바와 같이 우리나라에서 OSS 도입이 더딘 이유는 우리나라에 OSS 생태계가 아직 없기 때문이다. 자동차를 예로 들어보자. 자동차의 경우 주유소, 수리점, 파트 공급소, 수리 전문가 등이 자동차 생태계를 구성하는 요소라고 할 수 있다. 100년 전 우리나라 민간회사에게 우마차 대신 자동차를 도입하라고 하면“생태계가 아직 없기 때문에 한 민간회사가 자동차를 도입하는 것은 어렵고 우마차를 계속 쓸 수밖에 없다”라고 답했을 것이다. 그러므로 정부가 앞장서야 한다. 물론 공공기관도 생태계가 아직 없는 상황에서 OSS를 도입하라고 하면 때로는 여러 가지 어려움에 처할 수 있을 것이다. 공공기관이 OSS를 도입했는데 생태계 때문에 문제가 발생하게 되면 이를 담당한 공무원에게 책임을 돌리거나 추궁하지 않는 인사정책이 만들어져야 한다. 오히려 생태계가 열악한데도 불구하고 공공기관이 앞장서서 모험을 각오하고 OSS를 도입하면 예산상 이익을 주고, 인사고과에 반영하는 등, 여러 가지 인센티브를 주어야 한다. 왜냐하면 OSS 생태계 구축은 그 나라가 SW 원천기술을 확보하게 해주고, 외국 SW 회사가 제공하던 서비스를 국내 인력으로 대체 함으로써 일자리를 창출하게 해주고, 반도체, 자동차 등 모든 산업의 경쟁력을 제고시키는 데 큰 기여를 하게 되기 때문이다.

나가며

정부와 기업들은 국내 OSS 커뮤니티 관련 민간 조직들을 적극 지원해야 한다. OSS는 전 세계적으로 순수 민간 자율에 의해 만들어지고 운용되고 있다. 그래서 국내에서도 OSSF(오픈소스 소프트웨어 재단)나 다양한 OSS 커뮤니티 같은 민간 조직들이 만들어지고 있다. 그런데도“국내 95% 기업이 오픈소스 SW를 활용하면서도 93% 기업은 전혀 오픈소스 SW 커뮤니티를 후원하거나 지원하지 않고 있다”고 NIPA는 보고하고 있다. OSS 생태계를 만드는 데에는 협조하지 않으면서 OSS만 대거 도입하는 것은 매우 위험한 발상이다. 그것은 마치 자동차 생태계를 만드는 데에는 아무도 협조하지 않으면서 누구나 자동차를 도입하는 것과 마찬가지이다. 내 자동차가 소중하다면, 그리고 과거 기술, 우마차로는 되돌아갈 수 없다면 자동차 생태계 조성에도 모두가 협조해서 기여해야 한다. OSS도 마찬가지이다. OSSF가 발족할 때에도 오직 LG 전자 등 극소수의 기업만 후원에 참여하였다. 이는 개방·공유·참여의 4차 산업혁명의 정신과 어긋나는 것이어서 우리의 미래 전망을 매우 어둡게 만드는 단면이다.

오픈소스 소프트웨어 월간SW중심사회 2018년 8월호