스마트카드란 집적회로(IC) 기억소자를 장착하여 대용량의 정보를 담을 수 있는 카드형태의 초소형 컴퓨터를 말한다. 국내에서 스마트카드와 관련된 사업은 1994년부터 본격적으로 시작된 것으로 알려진다. 그 이전에 있어 관련사업은 스마트카드라기보다 메모리카드 활용 수준에 지나지 않았다. 업체들은 1994년부터 해외에서 관련기술을 수입하며 응용분야를 모색하기 시작했다. 그러나 관련업체들이 주력으로 삼았던 응용분야가 전자주민증사업을 위시로 한 국가정책적인 사업이었으니, 이는 사회단체들의 반대로 인해 결국 1998년 사업 자체가 중단되고 만다. 이후로 한국형 전자화폐사업이 추진되면서 스마트카드는 다시금 자신의 쓰임을 찾아가는 모습이다.

기술에 대한 오해를 불식시켜라

"현재 TV 광고 중인 SK텔레콤 '모네타'와 KTF의‘K-merce'가 스마트 카드가 금융 분야에 응용된 대표적인 사례입니다. 모네타와 K-merce는 전자화폐로서 신용카드의 기능을 함께 가지고 있습니다. 또한 K-merce는 최근 국제로밍서비스 기능도 추가했습니다. 일본, 중국이 이웃의 전부라 할 수 있는 우리와 달리 유럽에는 수많은 나라들이 모여있습니다. 각 나라마다 통신회사가 다르기 때문에 국가 간 이동시 휴대폰을 자유롭게 사용하지 못한다는 점이 심각한 문제로 대두되었습니다. 로밍 기술은 자신이 가입한 지역을 벗어났을 경우, 타지역 사업자의 통신 설비를 통해 즉각적인 서비스가 가능하게 만든 기술입니다."

국내 스마트카드 연구에 있어 대표적인 학자로 꼽히는 안산캠퍼스 전자컴퓨터공학부 도경구 교수는 현재 가장 활성화된 스마트카드 활용 분야로 금융과 통신영역을 든다. 유럽의 경우 우리나라와 달리 신용카드 결제가 오프라인 인증을 중심으로 이루어졌던 탓에 상대적으로 신용카드 사기가 빈번하게 발생하는 문제가 있었다. 따라서 유럽연합은 2005년까지 기존의 모든 마그네틱 신용카드를 스마트 카드로 대체할 예정이라고. 얼마 전, 현금카드 및 신용카드 복제 사기로 떠들썩했던 우리나라도 이러한 추세에 동참하지 않겠냐고 도 교수는 전망한다.

그는 스마트카드의 최고 장점을 복제불가능과 높은 보안성이라고 설명한다. 이런 사실에도 불구하고 다수의 사회단체들은 보안의 취약성을 이유로 스마트카드의 범사회적 도입을 반대해왔다. 실제로 몇 년 전 주민등록증과 건강보험카드를 스마트카드로 대체하려는 정부의 움직임은 사회단체들의 거센 장벽에 부딪혀 좌절된 바 있다. 스마트카드 속에 들어가는 대용량의 신상 데이터가 누출될 경우, 사생활 침해는 보다 심각한 국면을 맞을 것이라는 주장이었다. 도 교수는 사회단체들의 이러한 주장은 지식의 결여에서 비롯된 오해일 뿐이라고 일축한다.

"예전부터 우리의 주민등록증이나 건강보험에 관련된 정보는 중앙에서 관리되고 있습니다. 이미 종이나 컴퓨터에 보관되었던 정보를 스마트카드로 대체한다고 해서 기존 시스템의 취약한 보안이 강화되는 것은 아닙니다. 오히려 스마트카드를 도입함으로서 보안 장치를 가중시킬 수 있습니다. 종이나 컴퓨터에 보관되었던 정보는 제3자에 의해 노출 가능성이 매우 큽니다. 하지만 스마트카드의 경우는 원천적으로 정보의 저장장소에 대한 접근 권한이 차별적으로 프로그램 되기 때문에 더욱 안전하게 되지요. 더불어 추가적인 안전 장치로 스마트카드는 암호화된 비밀번호도 갖게 됩니다."

현재 프로그램 검증은 '주먹구구식'

종이와 마그네틱카드를 대체해 나가고 있는 스마트카드는 일종의 휴대가능한 극소형 컴퓨터로 보는 것이 적절하다는 것이 도 교수의 설명이다. 컴퓨터와 마찬가지로 스마트카드는 중앙처리장치, 메모리, 응용프로그램, 운영체제 등을 내장하고 있기 때문. 단지 차이점이 있다면 극소형이기 때문에 저장용량이나 프로세서의 속도에 제한이 가해진다는 것이다. 사실 도 교수의 주요 관심 분야는 스마트카드가 아닌 프로그래밍 언어. 프로그래머가 스마트카드에 관심을 갖게 된 배경은 스마트카드도 결국 컴퓨터의 일종이었던 탓이다.

"프로그래밍 언어는 컴퓨터 프로그램을 작성하기 위해 고안된 언어입니다. 우리가 컴퓨터를 이용하여 어떤 문제를 풀기 위해서는 우선 그 연산과정을 컴퓨터에게 인지시켜야 합니다. 컴퓨터가 우리의 의도를 이해할 수 있도록 하기 위해 사용하는 것이 바로 프로그래밍 언어입니다. 프로그램이 원래 기획자 의도대로 구동되기 위해서는 사람이 논리적으로 사고하는 언어와 프로그래밍 언어가 비슷해야만 가능합니다. 하지만 간혹 인간의 언어와 컴퓨터의 언어가 일치하지 않아 심각한 문제가 발생하기도 합니다. 처음 프로그램 기획자의 의도대로 프로그램이 돌아가지 않는 경우가 생깁니다."

실제 윈도우 운영체제 같은 거대한 프로그램도 아무런 이유 없이 다운되는 경우가 잦다. 이른바 공포의 '블루스크린'은 완벽한 프로그램이란 결코 있을 수 없다는 사실을 화면 가득히 보여주며 시위하는 듯 하다. 프로그램에 오류가 발생한다는 것은 처음 기획자의 의도대로 프로그램이 실행되고 있지 않는 것이라고 도 교수는 말한다. 그리고 이러한 오류들은 드물지만 엄청난 재난과 막대한 손해를 몰고 올 수도 있다고. 만약 공항의 항공기 관제시스템, 미사일 발사 제어 시스템, 온라인뱅킹 시스템 등을 프로그램하는 과정에서 오류가 생겨 전혀 엉뚱한 해답이 나온다면 그 피해는 가늠하기 어려울 것이라는 설명이다.

현재 개발된 하나의 프로그램을 점검하는 방법은 대부분, 해당 프로그램을 반복 실행하여 발생하는 오류들을 제거해 나가는 경험적 방법에 의존하고 있다. 이 같은 방법의 문제는 막대한 시간과 비용이 소요되는 것은 물론, 무엇보다 오류로부터의 안전성을 100퍼센트 확신할 수 없다는 불안감에 있다. 도 교수가 프로그램의 오류를 자동으로 검증, 완벽하게 분석해내는 시스템 개발에 몰두하는 것은 이 같은 연구가 비록 요원한 과제이지만, 디지털 환경에서 반드시 해결하지 않으면 안될 과제인 까닭이다.

디지털 세상의 모든 Error를 지운다

"프로그램 오류로 인한 재난을 막기 위해서는 경험적 방법을 극복하고 오류를 자동으로 확인할 수 있는, 신뢰할 수 있는 검증 프로그램을 만들어 내는 것이 중요합니다. 검증 프로그램이 설계된 후에도 무조건 프로그램을 구동시키는 것에 의미를 부여해서는 안됩니다. 내 의도대로 프로그램이 잘 돌아가는지, 만약 그렇지 않다면 정확한 분석을 통해 이유를 규명하는 것이 중요합니다. 궁극적으로 프로그램의 오류를 100퍼센트 찾아내 완벽한 안정성을 검증해내는 것이 '검증 프로그램'의 목표입니다. 제가 프로그램밍 언어에서 특히 주목하고 있는 분야가 바로 이것입니다."

겉으로 보기에 프로그래밍 언어는 프로그램을 만들기 위한 언어에 지나지 않을지도 모른다. 하지만 궁극적으로 프로그램밍 언어는 인간과 기계를 연결해주는, 소통시켜주는 유일한 통로일지도 모른다. 감성을 지닌 인간과 합리적 사고중심인 기계가 소통하기 위해서는 상호 연동이 가능한 논리적 사고 체계를 갖는 것이 가장 중요하다고 도 교수는 말한다. 극도의 논리적 사고가 필요하고, 높은 수준의 완성도를 추구하는 탓일까? 프로그래밍 언어에 대한 학생들의 관심이 꾸준히 지속되지 않는 소속 학과의 현실은 도 교수가 가장 우려하는 부분. 어렵고 힘든 일을 싫어하는 요즘 학생들의 전형적인 모습이 아니겠냐고 부연하는 그의 얼굴에 옅은 근심이 깃든다.

"물론 전문가가 아닌 이상 프로그래밍 언어를 배울 필요는 없습니다. 더 나아가 컴퓨터를 배울 필요도 없습니다. 현재 컴퓨터를 사용하기 위한 수준은 TV 리모콘을 다루는 수준과 크게 차이가 나지 않습니다. 하지만 소수일지라도 프로그램의 완성도를 검증할 수 있는 전문가는 반드시 필요합니다. 자신이 쓰고 있는 프로그램이 인간의 편의를 위한 문명의 이기인지, 공동체의 안위를 위협할 폭탄의 뇌관인지를 누군가는 구별해 내야할 것 아닙니까?"


김자영 취재팀장 apriljy@ihanyang.ac.kr
사진 : 이재룡 사진기자 ikikata@ihanyang.ac.kr


학력 및 약력


도경구 교수는 1980년 본교 산업공학과를 졸업했다. 이후 1987년 미국 아이오아주립대학(Iowa State Univ.)에서 컴퓨터공학으로 석사학위를, 1992년 캔자스주립대학(Kansas State Univ.)에서 동일 전공으로 박사학위를 받았다. 이후 1993년부터 3년간 일본의 아이주대(Aizu) 조교수를 역임하고, 1995년부터 안산캠퍼스 컴퓨터공학과 교수로 재직 중이다. (주)스마트카드연구소 대표이사, 한국정보과학회 프로그래밍언어연구회 총무, 대한통신정보보호학회 이사, 한국정보과학회 편집위원 등을 두루 역임했다.