컴퓨터 과학 & 영상처리 관련

[퍼옴] 대학 컴퓨터 학과가 IT 강국의 견인차가 되려면 - 고건 교수

꺄뜨르 2014. 6. 7. 19:26

퍼옴  http://blog.naver.com/bongkwankim/220021227575

 

한국 대학의 컴퓨터 공학과가 가지고 있는 근본적인 문제점과 개선책에 대한 가장 현실적인 분석과 방안이라고 생각하여 공유합니다. 다이내믹한 변화가 일어 났으면 좋겠습니다.

김 봉관​

 

대학 컴퓨터학과가 IT 강국의 견인차가 되려면

고 건 교수
이화여자대학교 컴퓨터공학과 석좌교수

 

 

 

 

 

 

 

한국 정보 과학회 뉴스레터 제 521호 2014년 6월 5일

 

미국 학생들은 대학교를 다니다가 벤처를 시작하는 경우가 허다하다. 마이크로소프트의 빌 게이트, 썬 마이크로시스템즈의 빌 조이는 오래 전 이야기이고 최근에도 페이스북, 구글 등 많은 벤처회사들이 재학 중인 학생들에 의해 창업되고 있다. 미국 학생들이 재학 중에 이렇게 활발히 창업하는 이유 중 하나는 미국 대학이 이론과 실험을 균형 있게 교육시키기 때문이다. 미국대학은 OS DB SE PL 등 과목에서 너무나 실습을 철저히 시키기 때문에 그것이 부담되어 컴퓨터 분야를 기피하는 학생이 있을 정도라고 한다. 미시간 대학의 신강근 교수에 의하면 미국 컴퓨터학과는 명문대학도 실습을 철저히 시키고 있다고 한다. 이에 반해 국내 S전자 C 부사장 얘기에 의하면 우리나라 대학 졸업생들은 OS, DB, Network, Compiler 같은 시스템을 잘 다루는 “skill set” 능력이 거의 없어 연구개발에 어려움이 많다고 호소하고 있다. 몇 년 전 필자가 차상균 교수에게 “SAP이 채택한 메모리 데이터베이스를 개발하면서 가장 큰 애로사항이 무엇이었냐”고 질문하니 “서울대 학생들이 C 프로그램도 제대로 못 짜더라”는 고민을 털어놓는 것을 들었다. 이것이 우리나라 컴퓨터학과 교육의 현주소이다. 사실 이웃나라 중국도 비슷한 상황이다. 북경대 LI Xiao-ming 교수가 2005년 국제사회에 투고한 글을 보면 “What they learned in university is not relevant to job. ... CS major students can only do simple programming. ... Everyone can program as well as CS graduates”라고 적고 있다. 대학에서 제공하는 교육과 산업체의 기대치 간에 큰 간격이 존재하고 있는 것이다. 중국 정부는 이러한 문제를 극복하기 위해 10년 전부터 대대적인 컴퓨터교육 개혁을 추진하고 있다. 우리나라도 컴퓨터전공 학생들의 skill set 부족을 보충해주기 위해 몇 가지 노력들이 진행되고 있지만 이들은 주로 대학 밖에서 이루어지고 있는 교육 프로그램들이다. 예를들면 소프트웨어 마에스트로, NHN NEXT, 삼성전자 교육프로그램 등과 같은 프로그램들이다. 그러나 이러한 노력들은 그 효과가 한계가 있다. 왜냐하면 절대 다수의 (그리고 상당히 우수한 자질을 갖춘) 학생들은 대학 밖이 아니라 대학 안에 있기 때문이다. 그리고 이상적인 교육은 학원 같은 곳에서 skill set만 별도로 교육시키기 보다는, 이론과 skill set을 함께 교육시킬 때에만 진정한 올바른 교육이 되기 때문이다.

 

대학이 실험 교육(즉 skill set)에 얼마만큼 치중해야 하는가는 사회의 요구가 어디에 있는지에 초점이 맞춰져야 한다. 필자는 Bell과 IBM 연구소에 수년간 재직한 경험이 있는데 그러한 초일류 연구소들도 업무를 분석해보면 90% 이상이 개발이고 연구는 10% 이내이다. 이 연구들도 대부분 개발 중인 시스템에서 제기되는 이슈들이고, 개발과 거리가 있는 순수 이론연구는 이보다도 훨씬 적다. 즉 대부분의 연구는 개발 중인 시스템을 전제로 하는 것이다. 그러므로 대학에서 배출하는 학생들의 90%는 사회에 나가 개발을 제대로 할 수 있도록 교육시켜야 한다. 컴퓨터학과는 OS, DB, Network, 임베디드 시스템 등을 개발할 수 있도록 교육시켜야 한다. (응용프로그램 개발은 비전공자들에 맡기면 되니까 컴퓨터 전공 학생들은 시스템프로그램 개발을 할 수 있어야 한다.)

 

그런데 우리나라 현실은 어떤가? 이와는 정 반대이다. 필자의 제자가 동경대 포스닥을 다녀온 적이 있다. 2년 동안 무슨 일을 했느냐고 물으니까 “도착 첫날 Linux CD와 비어있는 로봇을 주더니, 이 로봇에 Linux를 넣고 Linux 상에서 로봇이 짐을 나르도록 만들어 달라”는 지시만 있었고, 논문에 대한 요구는 일체 없었다고 한다. 우리나라는 어떠한가? 서울대에 외국 학생이 오면 동경대와 같은 시스템 개발 요구는 일체 없고 SCI 논문만 일년에 몇 편 요구하는 것이 우리나라의 현실이다.

 

왜 우리나라 컴퓨터 교육은 이처럼 미국이나 일본과 판연히 다른가? 그 원인은 몇 가지로 짚어볼 수 있다. 우리나라 대학들이 이론에 치중하고 실험은 상대적으로 소홀하게 된 첫 번째 원인은 대학의 실험 환경이다. 80년대, 90년대에는 하드웨어가 한 학과가 갖추기에는 너무나 비쌌다. (OS나 네트워크 같은 시스템소프트웨어 교육을 위해서 전자계산소 컴퓨터를 실험용으로 쓸 수는 없으므로 학과 전용 컴퓨터, 또는 교수마다 실험실 전용컴퓨터가 있어야 한다.) 실험에 쓸 소프트웨어도 컴퓨터학과 경우에는 소스코드가 있어야 시스템소프트웨어 실험을 할 수 있는데 예를들어 UNIX 같은 운영체제의 소스코드는 로열티가 300만 달러나 요구하여 정부가 난색을 표했었다. 이에 반해 미국이나 일본 컴퓨터 기업들은 하드웨어와 소프트웨어 소스코드까지를 자국 대학에는 모두 무상으로 제공하였으므로 미국과 일본 대학들은 일찍부터 이론과 실습이 균형 잡힌 교육을 할 수 있었다.

 

다행히 이렇게 열악했던 실습 여건은 반도체 기술의 발전, 공개소프트웨어의 출현으로 2000년을 전후해 많이 해결되기 시작하였다. 그러나 바로 이 시기에 실습을 어렵게 만드는 두 번째 장애요소가 출현하였다. 그것은 SCI 제도였다. SCI 제도가 왜 실험분야를 황폐화시키는가? 실험 분야는 이론 분야보다 논문 수가 훨씬 적은데도 불구하고 SCI 제도는 논문 수로만 교수, 그리고 학생의 우열을 판가름 짖기 때문이다. 예를 들어 새로운 “다중프로세서 스케줄링 알고리즘” 이론은 수개월이면 만들어낼 수 있지만, 그 이론을 운영체제에 구현하고 검증하는 실험을 하려면 수년이 더 필요하기 때문이다. (예를 들어 리눅스는 수천 명의 개발자가 십 년 이상 쓴 방대한 코드이기 때문에 그것을 이해하는 데에는 적어도 이, 삼 년 이상 시간이 걸리기 때문이다.) 그러므로 Stanford 총장을 지냈고 RISC 분야를 개척했던 Hennessy 교수도 “Experimentalist는 논문수가 이론 분야보다 훨씬 적을 수밖에 없고, 그나마도 대부분 저널이 아닌 컨퍼런스 논문이다. 그리고 논문이 아닌 소프트웨어와 같은 artifacts로 평가 받아야 하는 경우도 자주 있다. 실험 분야가 이론 분야와 이처럼 매우 다르다는 점을 교수 인사평가 시 반드시 감안해야 한다”고 주장하였다(출처: “Academic Careers for Experimental Computer Scientists and Engineers”). 실험분야가 논문 수에서 이처럼 불리한데도 불구하고 우리나라는 이를 인정하지 않고 SCI 편수 한 잣대로만 일원화함으로써 대학에서 실험분야를 고사시키는 원인을 제공하였다. 그에 따라 실험하는 교수와 학생들은 마치 논문을 못쓰는 2류와 같은 취급을 오랫동안 받아왔다. 학위, 연구비, 임용, 승진 등에서 절대적으로 불리한 조건을 감수해야 했었음은 물론이다. 결과적으로 대학들은 이론논문, 이론졸업생 배출에만 치중하게 되었고, 전국 대학에서 이론 편향화를 더욱 가속화시키는 결과를 초래하였다.

 

우리나라 대학들이 이론에 치중하고 실험은 상대적으로 소홀하게 만든 세 번째 원인은 실험에 대한 지원-평가-보상이 없는 제도 때문이었다. 여러 분야가 실험 교육을 하지만 그 중에서도 컴퓨터 분야야말로 가장 실험 교육이 어려운 분야이다. 왜냐하면 물리나 화학 같은 분야는 실험 환경을 한번 구축해놓으면 10-20년을 써도 되지만, 컴퓨터 분야는 이삼 년만 지나면 어김없이 새로운 실험 환경으로 바꿔 주어야 하기 때문이다. 또 컴퓨터 분야는 변화가 너무 빠르다 보니 출판사의 책들이 미처 따라오지 못하는 경우가 허다하다. 예를 들어 Linux 2.4 책은 Linux 2.4이 출현한 후 4년 정도 지나야 출판되는데 그책이 나올 때 쯤이면 세상은 다시 Linux 2.6으로 옮아가 있다. 그러므로 정작 Linux 2.4 책이 나왔을 때에는 아무도 2.4 책에는 흥미를 안 가지고 2.6에 대해서만 관심을 가지게 된다. 그러니 사실상 항상 책이 없는 상황에서 교안을 만들어야 하고, 책이 없는 상황에서 슬라이드를 만들어야 하고, 실험 장비를 구축하고, 조교를 훈련시켜야 한다. (이에 비해 이론 분야는 출판사가 책뿐만 아니라 슬라이드 파일도 보내주므로 교수가 교안을 구상하거나 슬라이드를 만들 필요가 없게 된다.) 그만큼 실험교육은 교수에게 큰 부담을 주는 것이다. 조교가 해야하는 일도 이론 과목보다 실험 과목이 훨씬 많다. 실험 과목의 조교는 시스템 운용법을 익혀야 하고, 학생들의 상담에 응해야 하며, 중간고사나 기말고사 채점 외에도 수많은 프로그램 숙제와 프로젝트를 지도하고 채점해야 한다. 이 모든 노력을 들여 교과목을 개발해놓아도 실험과목의 교안과 실습장비는 이삼 년이면 상당부분 다 다시 만들어야 한다. 소프트웨어는 이론보다 훨씬 짧은 생명주기를 갖고 있기 때문이다. 이렇게 실험교육이 이론교육보다 더 힘들다고 해서 실험교육에 특별히 더 지원을 해주는 것도 아니다(실습장비, 조교의 수, 교안개발비, 공간 등). 연구의 경우에는 연구비라는 재정적 지원, 승진이라는 신분적 보상이 따라 온다. 그런데 실험교육의 경우에는 아무런 지원도 평가도 보상도 없다. 그러면서 실험교과목 강의를 전력을 다해, 철저히 준비하라는 요구는 너무 현실과 동떨어진 요구 아니겠는가? “대학이 이 모든 문제를 알아서 해결해야지” 라고 할 수도 있겠지만 그건 대학 사정을 잘 모르고 하는 이야기이다. SCI 같은 제도를 대학이 만든 것도 아니거니와, 우리나라 학과장들은 미국과 달라서 교수에 대한 인사권이나 재정권이 전혀 없다. 교수들의 교육 평가에 따라 연봉이나 임금액을 조정하는 연봉제도 아니다.

 

우리나라 대학들이 이론에 치중하고 실험은 상대적으로 소홀하게 만든 네 번째 원인은 교육시켜야 할 분량의 폭발적 증가와 이 부하를 감당하기에는 턱없이 부족한 교수 수 때문이다. 컴퓨터 분야처럼 교육시켜야 할 내용이 폭발적으로 증가하는 분야는 드믈다. 보안, 무선통신, HCI, Web, Object Oriented 등과 같은 교과목들은 다 최근에 추가되고 있는 과목들이다. 실습시켜야 할 Skill set도 과거엔 C 언어와 윈도우만 가르치면 되었으나, 최근에는 C++, java, Python, UNIX, Linux, Virtual Machine 등 한없이 증가만 있고 있는 현실이다. 취업 분야도 임베디드 시스템, 실시간 시스템, 엔터프라이즈 시스템 등으로 끝임 없이 다양해지고 있다. 반면에 스탠포드 대학에서 작성한 “Software Entrepreneurism in Korea” 보고서를 보면 미국 대학은 컴퓨터학과 교수 수가 통상 50명에서 150명인데 비해 한국 대학 컴퓨터학과 교수 수는 그보다 훨씬 적고, 보다 더 심각한 사실은 컴퓨터학과 교수 중에서도 “소프트웨어”를 전공하는 교수 수는 훨씬 더 소수라는 사실이라고 위 보고서는 지적하고 있다. 이 보고서는 바로 이점이 향후 한국 소프트웨어 발전의 발목을 잡는 중요한 요인이 될 것이라고 이미 1999년에 예측하고 있다. (“In Korea, the CS faculty is very small compared to the EE faculty, and software faculty is only a small fraction of the total CS faculty – this may be very problematic for the software education – unless something is done, the quality of software education is likely to deteriorate”) CS 분야의 비대화, 그리고 CS 교수 수의 부족을 종합해보면 국내 어느 한 대학도, 어느 한 학과도 우리 사회가 필요로 하는 모든 컴퓨터 과목을 다 제대로 가르치는 것은 구조적으로 어렵다는 결론이 나온다.

 

마지막으로 우리나라 대학들이 이론에 치중하고 실험은 상대적으로 소홀하게 만든 다섯 번째 이유는 일부 잘못된 인식 – 즉 “skill set은 대학교수가 가르칠만한 내용이 아니다. 그것은 학원이나 기업이 가르쳐야 한다”는 인식 때문이다. 그것은 틀린 생각이다. OS, DB 등과 같이 고도의 이론과 skill을 집대성해서 만들어진 시스템을 학력을 제대로 못 갖춘 학원 강사가 가르칠 수 있다고 생각하는 것은 너무 안이한 발상이다. 운영체제의 예를 들면 BSD, MACH, MINIX, X Windows과 같은 시스템들은 모두 명문대학 교수와 학생들이 직접 코딩하여 만든 시스템들이다. 컴퓨터학과 과목 중에는 이론이 강조되는 과목들도 있겠으나, 운영체제처럼 실험이 이론과 병행되어야 하는 과목들도 많은 것이 사실이다. 근본적으로 “컴퓨터과학”이라는 분야 명칭에서 “science”는 가설을 실제 컴퓨터시스템에서 구현하고 demonstrate 해보임으로써 그 가설이 성능, 경제성, 편의성, 구현가능성, 안정성 등 여러 측면에서 문제가 없는지를 실제적으로 확인해 보이는 과정이 컴퓨터 분야에서의 science가 뜻하는 의미이다. 왜 이러한 demonstrate 과정이 필요한가? 컴퓨터 시스템은 워낙 복잡하고 천문학적으로 많은 요소들로 구성되어 있기 때문이다. 그러므로 아무리 그럴듯하게 들리는 가설도 실제 시스템에서 구현해보고 확인해보기 전까지는 그 가설이 전 세계적으로 보급되는 것이 좋은지 판단하기 어렵기 때문이다. 바로 이러한 demo.의 필요성 때문에 컴퓨터 분야에서는 저널보다 컨퍼런스를 더 중요하게 여기는 것이다. 저널은 특정한 장소에 사람들이 모일 필요가 없지만, 컨퍼런스는 여러 학자들이 한 장소로 모이는 학술대회이다. 자연과학(Natural Science)의 경우는 저널논문만 보면 동일한 실험을 전 세계 어디에서도 재현해볼 수 있지만(물리적, 화학적 여건이 전 세계적으로 동일하므로), 컴퓨터 경우에는 동일한 실험장비를 갖추지 않고서는 그 실험을 재현해볼 수 없기 때문에 컴퍼런스가 필요해진다. 많은 커퍼런스들이 demo. 요구를 거절할 경우 논문 채택도 자동 거절됨을 내부 규정으로 정하고 있다.

 

위에서 우리는 우리나라 대학들이 이론에 치중하고 실험은 상대적으로 소홀하게 된 원인들을 살펴보았다. 그러면 우리나라 대학교 컴퓨터 교육을 정상화시킬 방법은 없겠는가? 필자는 그 해답을 세 가지에서 찾을 수 있다고 본다.

첫째는 공개소프트웨어이고

둘째는 MOOC(Massive Open Online Course)이고

셋째는 제도 개선이다.

 

앞에서 우리는 우리나라 대학들이 오랫동안 실험실습 여건을 갖추지 못했었고, 특히 대학에 소스코드가 없어서 대학 교육은 뒤처질 수밖에 없었다는 사실을 지적한 바 있다. 그래서 한국이나 중국 같은 나라들은 소스코드 없이 소프트웨어 사용법만 교육시킬 수밖에 없었다. 이것은 마치 자동차과가 자동차 내부설계는 안 가르치고 자동차 운전만 교육시키는 것에 비견시킬 수 있다. 그러다 보니 우리나라 소프트웨어는 SI 분야만 발전한 기형적 나라가 되버리고 말았다. 그러다가 2004년부터 Linux가 전 세계로부터 받아들여지기 시작하면서부터 공개소프트웨어 시대가 개막되기 시작했고 OS, DB, Web 등 거의 모든 분야에서 공개소프트웨어가 출현하기 시작했다. 공개소프트웨어가 대학교육에 중요한 이유는 일차적으로 소스코드가 공개 되어 있기 때문이다. 그러나 그것 못지않게 중요한 점은 공개소프트웨어만이 학생들에게 마음대로 바꾸어 보고, 공유해보고, 실험해보고, 다른 기계로 옮겨볼 수 있는 법적 권리를 부여해주는 라이센스가 있다는 점이다. 그리고 공개소프트웨어는 수많은 논문, 책, 커뮤니티들이 있어 학습이 용이하기 때문이다. 따라서 대부분 나라들은 공개소프트웨어를 대학교육 정상화의 유익한 방편으로 보고 있다. 문제는 공개소프트웨어는 극히 최근에 출현됬기 때문에 이를 이해하는 전문가가 매우 적다는 점이다. 즉 대부분 대학에는 공개소프트웨어를 잘 아는 전문가가 없다는 것이 문제이다. 그러면 어떻게 해야 전국 대학들이 공개소프트웨어를 활용해 실험 교육을 조속히 정상화 시킬 수 있을 것인가?

 

필자는 그 해답이 Coursera나 edX와 같은 MOOC(Massive Open Online Course)에 있다고 본다. 미국에서는 스탠포드, 하버드, MIT, 프린스턴 등 수많은 명문대학들이 MOOC를 활용하고 있다. Coursera에서는 이미 펜실베니아 대학, 존스홉킨스 대학, 듀크 대학 등 100개 이상 대학들이 온라인 동영상으로 강의를 제공하고 있고, 인증서를 주고 있다. 프린스턴대는이미 백만 명 이상의 학생들이 Coursera 동영상으로 수강하고 있다. 우리나라도 OLC(www.oss.kr)와 같은 한국형 MOOC 사이트에 공개소프트웨어 기반 시스템소프트웨어 강의들을 올리면 많은 문제들이 해결될 것 같다. 학과마다 교수 수가 미국에 비해 턱없이 부족하고, 반면에 가르쳐야 할 교과목 수는 한없이 늘어만 가는 구조적인 문제를 “education of scale”로 해결할 수 있다. 연구는 (논문을 통해서) 전 세계로 Best Practice를 신속히 공유해온데 반해 교육은 그러한 신속한 공유가 불가능했었는데, MOOC를 활용하면 교육도 Best Practice를 전국적으로 신속히 확산시키고 공유할 수 있게 된다. 전국 모든 대학 모든 학과가 동일한 공개소프트웨어 기반 시스템소프트웨어 교안을 중복해서 개발할 필요는 없어 보인다. 예로부터 “why reinvent the wheel?”라는 속담도 있지 않은가? MOOC를 통해 전국이 공유하면 된다. 이렇게 하면 교육도 연구처럼 Best Practice의 신속한 공유가 가능해지게 된다. 또 외국 대학에 좋은 강의가 있다면 그 외국어 동영상을 한글화해서 가져다 쓰면 된다. 여러 대학의 다양한 강의들을 학생들이 접할 수 있게 되면 customized curriculum이 가능해진다. 무엇보다 강의를 촬영하여 파일로 영구 보관하면 강의의 질이 올라가게 된다. 우선 본인이 자신의 강의를 되돌아볼 수 있게 되면 강의는 발전하기 마련이다. 일단 촬영된 강의는 그것을 Peer들이 평가할 수 있게 된다. Peer들의 강의평가가 학생들의 강의평가보다 훨씬 정확한 것은 물론이다. 평가가 합리적이고 정확해지게 되면 교안을 개발하는데 들인 노력에 대한 보상도 가능해진다. 전국적으로 호응이 좋고 기여를 많이 한 교안이라면 그것을 개발한 교수에게 신분적 재정적으로 보상해줄 수 있게 될 것이다. 즉 MOOC와 병행해서 교육과 관련된 제도를 함께 개선하면 된다. 사실 지금까지는 교육을 제대로 평가할 수 있는 수단이 없었기 때문에, 그 첫 단추부터 풀리지 않아서 교육에 대한 보상을 제대로 못해주었던 것도 사실이다. MOOCs를 활용하면 기업체 전문가들도 동영상을 볼 수 있게 되므로 산학간의 gap이 줄어들게 된다. 즉 기업들은 “대학 교육이 불만이다”라고 추상적으로만 말하지 말고 “구체적으로 어느 강의 어느 부분이 어떻게 변화되어야 한다”라고 보다 구체적이고 정확한 피드백을 대학에 줄 수 있게 된다. 아예 기업의 엔지니어가 자신의 전문분야를 동영상에 올려 대학 학생들이 이를 활용하게 하면 된다. 마지막으로 학생들이 동영상으로 예습 복습을 할 수 있게 되면 학습능률이 올라가는 것은 물론이다.

 

공개소프트웨어를 활용해 시스템소프트웨어 실습교육을 강화하고, 한국

 

형 MOOCs를 활용하여 우수한 강의를 전국적으로 신속히 공유하자. 교안

 

개발에 들어가는 노력도 제대로 지원해주고 제대로 평가해주고 제대로

 

보상해주자. 기존 SCI 체제를 하루빨리 합리적 체제로 바꾸자.

이러한 개혁들이 신속히 이루어진다면 우리나라도 명실공히 IT 강국 반열에 낄

수 있을 것이다. 이에 대해 활발한 공론화가 이루어지길 기대한다.

우리에게 주어진 시간은 많지 않다.

업혁명 몇백년에 걸쳐 경쟁이 진행되었지만, 정보기술은 일이십년만에 국가

승패가 결정된다고 보기 때문이다.

산업혁명은 원료, 자본, 항만 등 여러 요인에 달려있지만,

정보혁명은 오직 인재에 달려있기 떄문이다. 그리고 인재양성

은 내년부터 이러한 개혁이 대학교육에 반영된다고 하더라도 그 열매가 15년

후에나 나타나는 시간이 오래 걸리는 일이기 때문이다