중 여성과학자, 미국 암호체계 뚫었다
[란보라의 중국속으로] 40세 여교수, 암호체계 연속격파, 정보업계 경악
 
란보라
 
[뉴스로 보는 중국인들의 심성_24] 세계를 놀라게 한 중국 과학계의 쾌거
 
세계 암호영역의 양대 보루가 모두 중국 산둥대학 정보연구소의 여성 과학자  40세의 왕샤오윈(王小雲)소장이 이끄는 연구팀에 의해 격파되었다.

세상에 알려지지 않았던 왕 소장은 하루 만에 세계 명인이 되었고, 암호연구 영역에 알려지지도 않았던 산둥대학 정보연구소는 급기야 세계 암호연구영역에서 가장 주목을 받는 연구소로 되었으며, 국제 암호연구계는 충격에 휩싸여있다. 

미국에서는 미국의 암호영역이 중국 전문가에 의해 격파되었음을 시인하고 미국의 정보안전이 위험에 처했다고 했다. 
 국제 전문가들은 정보안전에 대해 다시 연구하고, 암호계산법을 새로이 만들어야 할 일이 긴박한 시점에 와있음을 분분히 주장했다.
 
예고없이 발생된 강진

▲금년에 40세에 나는 왕샤오윈(王小雲) 산둥대학 정보연구소 소장. 그는 자기의 연구팀을 이끌어 세계 암호영역의 2대 보루인 MD5와 SHA-1 암호표준을 격파했다.     ©자료사진
지난해 8월전만 해도 왕샤오윈은 국제 암호영역에서 이름이 없는 사람이었다. 바로 지난해 8월,  미국 캘리포니아에서 개최된 국제암호학술회의에서 원래 발언명단에 없었던 왕 소장은 집행위원회를 찾아가 자기가 소장으로 있는 산둥대학 정보연구소의 4편의 연구결과를 들고 자기에게 발언권을 줄 것을 요청했다. 그의 요청에 따라 집행위원회에서는 왕 소장에게 발언권을 주었다.

세상에 이름이 알려지지 않은 왕소장이 발언대에 올라갈 때까지만 해도 회의참가자들은 별로 주목을 하지 않았지만, 왕소장이 산둥대학 정보연구소의 세번째 성과를 발표했을 때, 왕 소장은 회의장에서 울리는 박수소리 때문에 몇 번이나 발언을 중단할 수 밖에 없었다. 그가 4개의 연구성과를 모두 발표했을 때, 회의장에는 장시간 박수가 끊기지 않았다.

이번 암호학술연구회에서 왕 소장은 자기들의 연구성과, 즉 세계 암호계의 주류인 MD5、HAVAL-128、MD4와 RIPEMD를 모두 격파했다.

이번 회의가 끝 난후 이번 회의 총결보고에는 "우리는 어떻게 해야 할 것인가? MD5는 중상을 입어 장차 응용영역에서 물러나게 될 것이다. SHA-1이 아직까지 살아있다고는 하지만, 그 기간도 얼마 남지 않았다. 지금부터 SHA-1을 갱신해야 할 것이다."라고 결론을 내렸다.
 
▲암호표준 격파 설명서.     ©인터넷자료

이번 회의에서 왕소장의 연구결과 발표로 세계 양대 암호보루인 MD5는 무너지고 말았다.

MD5가 왕 소장에 의해 격파된 다음에도 세계 암호연구영역에서는 여전히 SHA-1은 안전한 것으로, 아직까지 그것이 격파될 충분한 이유가 없으며 2010년 전까지 그보다 더 안전한 SHA-256, SHA-512연산법으로 전환할 것을 주장했으며, 이런 내용은 2월 7일에 발표된 미국국가표준연구원에서 발표한 성명서에 적혀있었다.

그러나 미국 국가표준연구원에서 이런 성명을 발표한 불과 한주일 만에 왕 소장 연구팀은 SHA-1 암호시스템도 그들에 의해 격파되었음을 증명했고, 세상에 공포했다.

왕소장의 SHA-1격파소식은 세계 암호영역에 엄청난 충격을 안겨주었다. SHA-1은 미국을 비롯한 나라들에서 많이 사용하는 것으로 국제사회는 놀랐다. 왕 소장의 연구는 전자 사인을 위조할 수 있음을 증명했다.
 
▲산둥(山東)대학은 중국 기초과학인재배양기지(수학)이기도 하다.     ©안터넷사진
최근 국제암호전문가 Lenstra는 왕 소장이 제공한 MD5충격이론에 따라 X.509에 부합되는 수학증서를 위조해냈다. 이는 왕 소장의 연구는 이론에서 실제 응용에로 들어갈 수 있으며, MD5의 응용영역 퇴출은 눈 앞에 대두되었음을 말해준다. 따라서 왕 소장은 SHA-1도 이미 격파했기에 그의 응용영역에서의 퇴출도 시간문제라고 했다.
 
왕샤오윈 소장

금년 40세인 왕 소장은 책에만 붙박혀 있는 사람이라는 뜻에서 '시체여성'이라는 별명이 있다고 그의 동료들은 말했다.1990년부터 왕 소장은 중국 과학원 원사이며 중국 수학계의 거두인 판청둥(番承洞)과 딩쓔웬(丁秀源)교수의 제자로 가르침을 받으면서 1990년대 말부터 Hash함수의 연구, 즉 암호영역의 연구에 몰두했다.
 
▲산둥대학 총장이며, 왕 소장의 스승이었던 판 교수. 중국 수학연구영역의 거물급 인물이기도 하다.     © 인터넷사진
판 교수는 중국 수학연구 영역의 권위자로 중국 과학원 학부위원이며, 산둥대학의 총장을 지냈다. 판 교수는 골드바하 추측에 대한 연구 영역에서 큰 성과를 올린 거물급 인물로, 골드바하추측 연구에서 재래식의 연구방식에서 벗어나 {1,5}과 {1,4}의 성립을 증명, 뒤의 명제인 {1,3}과 {1,2}의 증명을 위해 기초를 닦아 놓았다.

딩 교수 역시 중국 수학계의 유명 인물로, 4차에 걸쳐 중국 국가 자연과학기금회에서 지원하는 프로젝트를 주최한 바 있으며, "암호과학기술진보상"을 받은 적이 있는 중국 암호연구영역의 거물급 인물이다.

이들로부터 가르침을 받은 왕 소장은 3명의 여성연구원들을 이끌고 국제 암호영역의 2대보루를 격파했던 것이다.

왕 교수가 암호 2대보루를 격파하기 전에 국제 암호영역에서는 MD5와 SHA-1암호방식은 금성철벽으로 인정했었다. 그러나 왕 소장은 자기의 연구팀을 이끌고 불과 2개월 같의 연구를 거쳐 이 금성철벽으로 인정받은 SHA-1를 격파했던 것이다.
 
▲왕 소장의 스승인 딩슈웬(丁秀源)교수. "암호과학기술진보상" 수상자이기도 하다.     © 자료사진

따라서 왕 소장은 하루밤 새에 명인으로 되었다. 원래 이름이 별로 알려지지 않았던 왕 소장의 이름이 구글에서는 수 천개 항목에 올라와 있고, 중국의 가장 큰 검색엔진에 오른 왕 소장의 이름은 무려 9천개에 가깝다.
 
국제암호연구영역의 반응

MD5、SHA-1 암호표준은 국제적으로 광범위하게 응용되는 암호표준이기도 하다. MD5는 국제저명한 암호학자이면서 듀링상의 수상자이자 공공키암호연산법인 RSA의 창시자인 Rivest가 설계한 것이고, SHA-1은 미국에서 전문암호연산법을 제정하는 전문기구인 미국국가표준기술연구원(NIST)과 미국 국가안전국(NSA)에서 설계한 것이다.

이 두 암호표준은 전자서명과 기타 암호응용영역이 널리 쓰이는 관건기술로, 금융, 증권과 전자비즈니스에서 광범위하게 응용되고 있다.

왕 소장의 소개에 따르면 세계적으로 지문이 같은 사람이 없기에 지문은 가장 안전한 신분표시로 되고 있다. 네트웍 안전협의에서는 Hash함수로 전자사인을 처리하여 이론적으로는 중복되지 않는 "지문"을 생성하여 "디지털손도장"을 만든다. 이상적인 안전요구에 따르면 Hash함수로 생성되는 만큼, 원시 정보가 한자리 수만 변해도 확연히 다른 "지문"이 생성된다. Hash의 함수가 충돌되는 방법을 연구해낸다면 같지 않은 데이타가 동일한 "지문"을 생성할 수 있게 되는 것이다. 이렇게 되면 자연 전자사인을 "위조"할 수 있는 것이다.

▲학생들을 지도하는 판교수(이미 작고했음)     ©자료사진
 왕 소장이 자기의 연구팀을 이끌어 MD5와 SHA-1 암호표준을 격파함으로 국제암호영역에는 강진이 발생했다.  

국제 암호영역의 정상급 학자 Shamir는 “이는 최근년간 암호영역에서 거둔 가장 아름다운 과실인바, 나는 이는 장차 큰 파동을 일으키게 될 것이며 새로운 Hash함수 연산법을 연구하는 것은 극히 중요할 일이라고 본다"고 했으며, MD5의 설계자 Rivest는 “SHA-1이 격파되었다니 참으로 놀랍다", "디지털사인의 안전성은 내려가고 있는 바 연산법을 교체할 것을 제시하고 있다"라고 했다. 

미국 국가표준기술연구원과 유명 글로벌회사들에서도 적극적인 반응을 보이고 있는 바 Seagate Technology사의 안전문제연구총감 Mark Willet는 "지금은 미국 국가표준기술연구원에서 암호를 갱신하는 날짜를 앞당겨야 할 시점이다"라고 했다.

이외 MS사, SUN과 Atmel 등 글로벌 사들 역시 자기들의 대응책을 내놓았으며 미국 변호사협회의 한 고문은 "중국의 이 몇몇 연구원들은 아주 미쳐버렸나바"라고 감탄했다.

최근 몇 년간, 중국은 기초과학 영역과 응용과학 영역에서 괄목할만한  발전을 가져 오고 있는 바, 그 발전은 빠르다고 하기보다는 비약하고 있다고 해야 할 것이다. 나노과학 연구의 실제 응용에서 이미 커다란 성과를 거두어 나노재료를 항공기연구제작에 쓸 것으로 전망되고 있으며, 2006년 연말에는 달 탐사선을 발사한다고 중국 관련당국에서는 선포한 적도 있다.

개혁개방의 심화와 실무적인 새로운 국가지도부의 출범으로 중국은 지금 놀라운 속도로 발전하고 있다.
신고
출처 : http://www.zdnet.co.kr/news/network/0,39024416,39133244,00.htm



다음RSS넷은「현대판 봉이 김선달?」

이석원 기자 (ZDNet Korea)  
2005/01/25        

다음(www.daum.net)이 지난 1월 5일부터 시작한 RSS넷(rss.daum.net) 서비스가 논란이 되고 있다. RSS넷은 뉴스나 블로그 등 업데이트되는 콘텐츠 목록을 가져와 손쉽게 구독할 수 있게 해주는 RSS(RDF Site Summary or Really Simple Syndication) 리더를 인터넷 상에서 구현한 것. 인터넷의 다양한 콘텐츠를 손쉽게 가져올 수 있어 맞춤형 뉴스 서비스의 혁명이 될 것으로 기대를 모았다.

서비스도 늘어나고 있다. 이미 다음이 RSS넷 서비스를 시작했으며 야후도 지난해부터 피플링(kr.ring.yahoo.com)이라는 RSS 구독 서비스의 베타서비스를 시작했다. 또 네이트 역시 툴바 형태의 RSS 서비스인 통(tong.nate.com) 서비스를 시작할 예정이다.

하지만 다음의 RSS넷은 서비스 한 달도 안되어서 일부 네티즌의 강한 반발에 부딪혔다. 문제는 개인 블로그나 홈페이지의 내용을 긁어올 때 저작권 표시를 없앤다는 것.

물론 다음RSS넷이 저작권을 위반한 것은 아니다. 개인의 콘텐츠를 도용하거나 저장하는 것은 아니기 때문. 하지만 저작권 표시를 아예 없애 저작인격권은 무시한다는 비난이 쏟아지고 있다.

실제로 다음 RSS넷에서 디폴트로 설정한 블로그는 다른 사람의 것임에도 불구하고 RSS넷 이용자의 블로그처럼 보이게 된다. 동의도 구하지 않은 채 다음의 콘텐츠인 것처럼 포장한다는 것도 문제라고 지적한다.

또 원래 블로그의 주소는 물론 글쓴이, 댓글 등은 모두 사라지게 된다. 네티즌들은 내용만 빼간 다음 RSS넷이 블로거끼리 상호 커뮤니케이션을 원천적으로 가로막는 데 문제가 있다고 말한다.



블로그 서비스인 이글루스(www.egloos.com)는 다음 RSS넷 서비스가 시작되자 XML 블록 기능을 추가해 RSS넷을 비롯한 RSS 서비스로 콘텐츠를 긁어 가는 걸 차단해버렸다. XML 블록 기능을 추가한 사이트를 긁으면 존재하지 않는 콘텐츠라는 표시만 나온다.

또 일부 블로거들은 RSS넷 링크 거부 동맹 페이지(fantasy.new21.org/norssnet.htm)와 반대 배너를 블로그에 다는 등 강하게 반발하고 있다.

다음은 문제가 불거지자 하단 태그바에 '다음 RSS넷의 콘텐츠는 다음 커뮤니케이션의 것이 아니다'는 문구를 넣었다. 또 25일 새벽 공지를 올려 XML 자체 내용에 작성자 항목이 있다면 다음 RSS넷에서도 표기되도록 수정하고, 원문 바로가기 버튼도 만들었다. 전문가들은 이번 다음 RSS넷의 논란을 주목받고 있는 RSS 서비스의 장점에 가린 저작인격권 등 단점에 대한 보완책을 마련하는 계기로 삼아야 한다고 입을 모으고 있다. @  

신고

  [김익환의 '대한민국에 SW는 있다'] 진정한 SW 전문가란...'과거형'과 '미래형'의 차이
  
좋은 소프트웨어를 만들기 위해서는 정부, 학계와 기업의 역할도 중요하지만 역시 가장 중요한 것은 전문 개발자이다.

전문 개발자가 없으면 아무리 좋은 정책에 좋은 기업이 있어도 품질 좋은 소프트웨어를 만들어 내기는 어렵다. 좋은 소프트웨어의 생산에는 개발자들의 능력과 열정이 핵심일 수 밖에 없다.

전문 개발자가 되기 위해 어떤 요소가 필요한 지를 살펴보자.

소프트웨어 개발자중에 자기가 없으면 회사가 큰 일 난다고 말하는 사람들이 있다. 거기에는 두 가지 의미가 있을 수 있는데 첫째는 '자기 혼자 밖에 모르는 비밀을 갖고 있는' 과거지향형과 둘째는 '저 사람은 무슨 일을 시켜도 잘 해'라는 미래지향형이 있다.

과거지향형 인력 중에는 핵 폭탄이라고 불리는 극단적인 비밀지향형 인력도 있다. 전문가일 수도 있고 아닐 수도 있는 이 핵 폭탄은 회사로서는 치명적이다. 이 사람이 없어지면 단기적으로 큰 영향을 받는다.

반대로 미래지향형 인력은 지금 없어도 당장에 큰 타격은 없으나 회사의 미래를 위해 많은 기여를 하며 회사의 성공을 위해 꼭 지켜야 할 핵심 인력이다.

미래지향형 전문가가 많은 회사와는 믿고 거래할 수가 있다. 회사로서는 과거지향형 인력은 적으면 적을수록 좋고 미래지향형 인력은 많으면 많을수록 좋다.

이 두 가지 종류의 인력은 쉽게 판별 가능하다. 소스코드와 같이 개발해 놓은 발자취를 살펴 보면 판단을 할 수 있는데, 자기만을 위해 쓴 코드와 다른 사람을 위해 쓴 코드는 웬만한 경험을 가진 사람이면 쉽게 분별할 수 있다.

잘 아는 경영 컨설팅전문가가 하는 얘기가 있다. 어느 회사든 컨설팅을 가보면 회사인력 중에 자기의 핵 폭탄을 믿고 회사생활을 자기 멋대로 하려는 사람들이 꼭 있다고 한다. 이럴때 컨설턴트가 경영층에게 하는 조언은 항상 같은데, "지금 아무리 큰 타격이 있더라도 빨리 내 보내라"고 한다. 그러지 않으면 문제가 계속 더 커지고 언젠가는 폭발하기 때문이라고 한다.

반면에 미래지향형 인력은 자기의 많은 것을 다른 사람과 공유하기때문에 손해 보는 듯 보이지만 회사에서는 가장 중요시 해야 하는 인력이다. 능력 있는 경영자라면 안다.

지식의 깊이에는 세 종류가 있다. 첫째는 남이 말하면 이해하는 표면적인 수준의 지식이다. 둘째는 나 스스로 항상 알고 있는 지식이다. 셋째는 남을 가르칠 수 있는 지식 수준이다. 똑 같이 안다고 얘기해도 이 지식 수준의 차이에 따라 업무의 능력이 천차만별로 차이가 난다.

남이 얘기하면 "나도 그거 알아"라는 말은 누구나 할 수 있다. 전문가라고 말할 수 있으려면 남을 가르치고 지도할 수 있는 지식을 가져야 한다. 다른 사람의 설명을 듣고 이해해서 판단을 해야 한다면 전문가도 아니고 판단의 질도 떨어질 수 밖에 없다. 시행착오를 겪을 확률이 높다. "잘 모르지만 시키면 뭐든지 다 할 수 있습니다"라는 말은 정열은 인정하나 아직 준비가 되어 있지 않다는 말이다.

언제든지 무슨 일에 부딪쳐도 당장 실행할 수 있는 포괄적이고 깊이 있는 능력을 기르는 것이 중요하다. 그래서 전문가가 되려면 많은 시간과 노력이 필요하다. 배워야 할 기술이 얼마나 많은가? 예를 들어 XML이나 웹 서비스(Web Services) 같은 용어를 수도 없이 들었지만 이 기술을 언제든지 활용할 수 있게 깊이 알고 있는 소프트웨어 인력은 많지 않을 것이다.

이렇게 전문가가 되기 위해서는 많은 지식을 깊이 쌓아야 하는 데 그러기 위해서는 좋은 스승과 본인의 노력 모두를 필요로 한다. 지식을 혼자서 배우는 것에는 한계가 있다.

이런 우화가 있다. 바둑의 고수가 되기 위해 젊은 사람 둘이 산속에 들어가서 몇 십년을 연구하고, 이쯤이면 고수가 되겠지 하고 세상에 나왔다. 그런데 그들은 아직도 초보자에 불과했다. 혼자서 책만 보고 배워서는 절대 전문가가 될 수 없다. 스승은 자기보다 더 많이 아는 사람이면 금상첨화겠지만 누구든지 스승이 될 수 있다. 동료나 후배도 스승이 될 수 있다.

소프트웨어에서는 모든 사람이 서로 배운다. 간단한 문서 작성기도 사용하는 사람마다 사용법이 다 다르고 꼭 나보다 더 좋은 방법을 사용하는 부분이 있다. 똑 같은 문제를 푸는 알고리즘도 놀라울 정도로 열이면 열사람 모두 다른 방법을 사용한다. 다른 사람이 하는 것을 보고 서로 장점을 배우면 된다. 그래서 같이 검토하고 의견을 나누는 시간을 많이 가져야 한다. 요구사양서부터 설계, 코딩에 이르기까지 어떤 분야에서든지 항상 다른 사람에게서 배울 수 있다.

가장 효과적으로 배우는 방법은 전문가한테서 배우는 것이다. 미국에서 윈도우용 디바이스 드라이버를 개발할 때 였다. 물론 우리 회사에도 전문가가 있었지만 개발 중 막히거나 더 좋은 방법을 요구하는 경우가 나온다. 이럴 때 외부에 있는 같은 분야의 동료에게 묻는 등 여러 가지 방법이 있겠으나 궁극적인 정보소스는 마이크로소프트였다.

한밤중이라도 마이크로소프트 유료 기술지원부서에 전화를 걸어 물어 보곤 했다. 대부분의 경우 기술지원 첫 한 두 단계에서 해결되기도 하나 그 쪽 분야의 최고 전문가가 아니면 대답할 수 없는 문제도 있었다. 그런 문제의 경우에는 아무리 주위에 물어봐도 옳은 답을 얻을 수 없다. 많은 비용을 지불하고서라도 이렇게 전문가의 도움을 받는 것이 결국은 시간도 절약하고 비용도 절약하는 것이다.

물론 중요한 것은 지식의 터득이다. 썬 워크스테이션(Sun Workstation)에서 개발을 할 때는 썬 마이크로시스템즈(Sun Microsystems)에 근무하는 사람에게 물어볼 수 밖에 없는 경우가 꼭 생긴다.

혼자서는 평생 연구해도 모르는 경우가 있다. 근래에는 웹에 많은 정보가 들어 있어 정보습득이 훨씬 용이해 졌으나 그래도 전문가한테서 배우는 것 만큼 효율적인 방법은 없다. 'Random Fix'라고 혼자서 이것 저것 해 보다가 우연히 문제가 해결되는 경우도 있으나 그것은 지뢰와 마찬가지다. 완벽한 이해 없이 우연히 구동되는 것만큼 위험한 경우도 없다. 주위에 다양한 전문가를 많이 가지고 있는 것이 얼마나 중요한지를 강조하고 싶다.

전문가에게 요구되는 것은 기술도 기술이지만 계획성도 있다. 계획성은 대부분의 기술자에게서 발견되지 않는 취약한 분야이다. 그냥 최선을 다 한다는 것처럼 무모한 것은 없다. 항상 무슨 일을 하든 일정계획을 세우게 되는데 문제는 계획한 일정대로 진행이 안 된다는 것이다.

몇 해 전의 미국 소프트웨어 프로젝트 통계에 의하면 16%의 프로젝트만이 제 시간에 제 예산으로 성공적으로 개발되었다고 한다. 지연되는 것이 예외가 아니라는 것이다. 지연 자체가 문제가 아니라 지연될 경우 지연될 것이라는 것을 조금이라도 빨리 예상해서 대처하는 것이 전문가의 능력이다.

무모한 낙천주의와 열정으로 시간을 맞추려고 혼자서 고생은 고생대로 하며 진행하다 마지막 순간에 포기하는 최악의 상황을 만들어 내는 것을 흔히 본다. 미리 대처할 수 있게 만드는 것이 경험 있는 전문가의 역할이다. 프로젝트 관리 방법론에 의하면 정확한 예측(Estimate)은 일이 다 끝나야 나온다고 한다. 프로젝트 종료시까지는 항상 말 그대로 'Estimate'이라고 생각해야 하는 것이 현실이다. 미리 대처할 수 있게 하는 사람이 전문가이며 신뢰할 수 있다.

전문가라면 또 현명해야 한다. 동일한 일을 두 번 세 번 중복해서 하는 경우가 생기면 뭔가 조치를 취해야 한다는 생각을 해야 한다. 형상관리이건 코딩이건 효율적인 방법이 있을 것이라는 생각을 해야 한다. 놀랍게도 습관적으로 생각없이 같은 일을 반복하는 경우를 많이 본다. 빌드나 설치, 테스트 같은 업무라면 당연히 자동화를 생각해야 하며 코딩이라면 공통 라이브러리를 생각해야 한다. 반복적인 일을 하고 있다면 무엇인가 잘못된 것이다.

시간이 걸리더라도 빨리 효과적인 방법을 정립하고 다시 시작해야 한다. 지금 수행하는 프로젝트가 늦어질까 봐 계속해서 똑 같은 일을 반복적으로 하는 것처럼 비효율적인 것은 없다.

전문가라면 새로운 기술에 대한 접촉은 항상 유지해야 한다. 소프트웨어 기술 중에 필자가 생각하는 가장 유망한 미래의 기술을 꼽으라고 하면 웹 서비스(Web Services)를 꼽는다. 일전에 어느 회사에서 기술이사와 웹 서비스를 논의할 경우가 생겼는데 코바(CORBA)라는 기존 기술이 있는데 그것으로 웹 서비스가 할 수 있는 것을 다 할 수 있는 데, 왜 웹 서비스가 필요하냐고 하는 경우를 보았다. 마치 자전거로 어디든지 다 갈 수 있는 데 왜 자동차가 필요 하느냐는 식이다.

이는 소프트웨어 전문가라고 할 수 없다. 모든 분야의 근간이 되는 핵심기술은 확실히 알고 있어야 한다. 그런 기술은 언제든지 사용될 수 있는 가능성이 있기 때문이다. 모르고 있으면 그 혜택을 입지 못한다. 혜택을 입지 못한다는 사실 자체도 모르니 불행하지는 않지만 능력을 인정받지 못한다. 아는 것이 힘이다.

소프트웨어회사의 '역량성숙도모델'로 전 세계에서 비공식표준으로 사용되고 있는 카네기멜론대학의 SEI에서 정립한 CMM의 현 자문위원이며 카네기멜론대학의 교수이고 또 보잉사의 Chief Scientist인 존 뷰(John Vu)가 한국에 강연을 왔을 때 점심을 같이 하면서 얘기를 나누었다. John Vu와는 80년대 중반 국방부 프로젝트 회사인 GTE Government Systems에서 같이 근무하기도 했다.

John Vu는 소프트웨어에서 경험의 중요성을 강조한다. 경험이 무엇보다도 중요하다고 한다. CMM같은 이론은 제대로 사용하면 매우 유용하다. 하지만 충분한 경험없이 CMM을 사용하는 것은 큰 효과가 없다고 한다. 카네기멜론대학에서 CMM을 공부는 했지만 경험은 없는 20대의 인력들이 30대, 40대의 경험있는 인력들한테 소프트웨어 프로세스를 컨설팅한다고 하는 경우를 가끔 보는 데 난센스라고 한다.

그는 또 경험과 책의 중요도를 비교하며 이렇게 얘기한다. 강연을 하다 보면 청중중에 책을 인용하면서 "책에는 이렇게 적혀있는데 왜 다르게 말하느냐"고 질문하는 경우가 있다고 한다. 그럴 경우에 이렇게 말한다고 한다. "나를 믿던지 그 책을 믿던지 그건 당신 자유다. 하지만 나는 내 경험에서 이것이 옳다고 확신하기 때문에 가르친다".

주로 경험없는 사람들이 책의 한 구절을 갖고 '맞다 틀리다' 주장한다. 전체 문맥을 볼 수 있는 경험이 부족하기 때문이다. CMM 자체에서도 말하기를 CMM이나 기타 유사한 소프트웨어 엔지니어링 기법을 있는 그대로 실행해서도 안되며 오용과 남용을 해서도 안 된다고 말한다. 또 CMM은 규칙이나 법이 아니라 알아서 실행하는 안내지침이라고 한다. 경험이 없이 그대로 따라 한다는 것은 또 다른 시행착오를 부른다.

무슨 분야에서든 전문가가 되기는 쉽지 않다. 소프트웨어 전문가가 되기 위해 필요한 지식과 경험을 가져야 하는데 그렇게 되기 위해 좋은 환경, 좋은 스승, 좋은 방법과 올바른 자세가 필수적이다. 하지만 이러한 기회를 찾고 분별하는 것은 각 개인의 능력일 수 밖에 없다.


김익환 SW컨설턴트 ik_kim@yahoo.com
2004년 05월 21일  
신고
http://entertain.inews24.com/php/news_view.php?g_serial=136072&g_menu=120300

[해설] 소리바다 '운영자는 무죄, 사용자는 유죄?'

함정선기자 mint@inews24.com
2005년 01월 12일  

  

관련기사
소리바다 운영자 '무죄' 판결





많은 관심을 끌어오던 소리바다에 대한 재판이 결국 '운영자는 무죄'로 판결났다.

재판부가 내린 판결문 중 주목할 것은 "소리바다 사이트를 이용해 P2P 방식으로 파일을 공유한 사람들은 음악파일 저작권자의 복제권과 저작인접권을 침해했다고 인정되지만, 소리바다 운영자인 피고인들이 이들의 저작권 침해 행위를 방지할 적극적인 의무가 있다고 보기 어렵다"라는 부분이다.

소리바다라는 장소를 제공한 운영자의 경우 무죄이나 소리바다를 통해 음악 파일을 주고받은 네티즌들에게는 죄가 있다는 뜻이기 때문이다.

재판부는 또 "온라인서비스 제공자는 자신이 운영하는 시스템에서 일어나는 구체적인 저작권 침해행위를 일일이 점검할 의무는 없고 저작권자로부터 구체적인 침해 내용을 통지받아 알게됐을 때만 이를 방지할 의무가 있다"고 명시, 운영자가 저작권 위반을 방조한 것은 아니라고 밝혔다.

이와 같은 판결이 나온 이유는 실연권자와 음반제작자에게 전송권이 부여되기 전인 2001년 1월 음반제작자들이 소리바다 운영자를 '복제권'과 '배포권' 위반으로 고소했기 때문이다.

이에 재판부는 "개정된 저작권법에 따르면 공유폴더에 MP3 파일을 저장한 채 소리바다 서버에 접속해 다른 회원들로 하여금 음악파일을 다운로드 받아갈 수 있도록 한 행위나 파일 교환행위 자체는 디지털 형태의 저작물을 컴퓨터 통신을 통해 서로 주고받거나 그 이용에 제공하는 것에 해당한다"며 "저작권법상 배포가 아니라 전송으로 봐야한다"고 설명했다.

즉 '파일 공유 행위는 저작권법상 '전송권'에 해당하기 때문에 '배포권' 위반으로 볼 수 없다'는 것이다. 이를 본다면 음반제작자들에게 '전송권' 부여되는 개정 저작권법이 발효된 뒤의 재판이었다면 소리바다 운영자가 유죄판결을 받았을 수도 있다고 추측할 수 있다.

중요한 것은 소리바다 운영자의 유,무죄 논란이 아닌 소리바다 이용자들에 대한 처벌이다.

재판부는 "'소리바다' 이용자 조씨 등이 불특정 다수의 이용자들과 파일을 공유한 이상 저작권법상 '사적이용을 위한 복제'라고도 볼 수 없어 이들의 유죄가 인정된다"고 밝혀 소리바다 이용자들이 저작권법을 위반하고 있음을 뚜렷하게 명시했다.

재판부는 또한 "2000년 7월부터 시행된 개정 저적권법에 따라 저작권자의 허락없이 인터넷에서 MP3 파일을 다운로드 받아 자신의 PC에 저장하는 것도 '복제권 침해'로 인정된다"고 밝혔다. 소리바다 이용자의 경우 어떤 경우라도 '저작권 위반'을 피해갈 수 없는 상황이다.

이렇다보니 사이트를 운영하는 운영자는 '무죄'이나 그것을 이용하는 이용자는 '유죄'인 상황이 발생하게 됐다.

게다가 재판부는 "P2P방식의 소리바다 서비스 자체를 저작권 침해의 용도로만 사용될 목적으로 제작된 불법도구라고 단정할 수 없다"고 판결했다. 이는 소리바다가 앞으로 합법적인 장치로 사용될 가능성을 높게 평가 한 것이라고 해석할 수 있다.

16일 전송법이 발효될 경우 실연자와 음반제작자들도 저작권법 위반으로 소리바다 이용자를 고소할 수 있게 된다. 이에 업계에서는 앞으로 저작권자가 불법으로 파일을 주고 받는 네티즌 개개인에게 민,형사상 책임을 묻는 일이 증가할 것이라고 예상하고 있다. 저작권법에 대한 지식없이 소리바다 서비스를 이용하다가 소송에 휘말리는 네티즌들이 늘어날 수 있다는 얘기다.

소리바다 측은 오늘 판결에 대해 "저작권이 있는 저작물을 복제하는 것은 위법이나 P2P 서비스를 제공하는 것 자체는 무죄라는 판결은 이미 해외에 선례가 있다"고 말하고 "운영업체인 소리바다가 무죄 판결을 받게 될 것을 예상했다"고 설명했다.

소리바다 이용자들이 처벌을 받게 될 것이라는 예상에 대해서 소리바다 측은 "'사적 복제'의 정의에 따라 처벌 기준이 달라지기는 하겠지만 2천만 소리바다 유저를 전부 처벌하기는 어려울 것"이라는 입장을 밝혔다. 또한 소리바다 측은 "소리바다는 현재 회원들을 보호하거나 독려해줄 수 있는 입장은 아니다"라고 덧붙였다.

소리바다는 현재 진행중인 '음악사랑 캠페인'을 통해 높은 수익을 올리고 있는만큼 음반사와 권리자들과 앞으로 이야기를 쉽게 풀어나갈 수 있지 않겠느냐는 생각이다.

'음악 사랑 캠페인'은 유료 음악 1곡을 구입하면 일주일동안 음악 파일 공유 서비스를 무료로 이용할 수 있도록 하는 캠페인이다. 소리바다 측에 따르면 업계 1위의 유료다운로드 사이트가 1달에 내는 수익을 하루에 내고 있다는 것.

또한 소리바다는 앞으로 실질적인 유료모델을 선보일 것이라고 밝혀 이같은 노력이 소리바다 사용자들을 얼만큼 보호해줄 수 있을 지 관심이 주목된다.
신고
http://www.zdnet.co.kr/techupdate/lecture/etc/0,39024989,39131935,00.htm





초보 개발자의 고민「첫 언어 선택은 이렇게!」

김정인(도명정보대학교 교수), 김재우(블루엣 인터내셔널 기술이사), 김상훈(동명정보대학교 연구원)  
2004/12/07        

첫 번째 프로그래밍 언어의 선택은 아주 중요하고도 민감한 문제다. 모든 프로그래머는 평생 동안 처음 배운 프로그래밍 언어의 영향에서 쉽게 벗어나지 못하기 때문이다. 이는 한국에서 태어나 한국어를 첫 번째 언어로 배운 사람이 영어나 일본어 등을 배울 때 자신이 처음 접한 언어인 한국어를 기본으로 그것과 비교하게 되는 것과 같은 이치이다.

첫 번째 배운 프로그래밍 언어는 프로그래머 사고의 기틀이 된다. 또한 프로그래밍은 분야별 특성을 감안한 구체적인 실용성을 논외로 하더라도 창의적 사고를 훈련하는 일반적인 교육 수단으로서의 가치도 있다. 모든 경우에 '첫 번째'라는 어휘가 갖는 의미는 그 뒤에 따르는 같은 수단이지만 다른 도구 또는 객체를 사용하는 비슷한 일들과는 다른 의미를 가지게 되고, 프로그래밍 언어에 있어서는 그 선택의 비중이 매우 크다고 할 수 있다. 그렇다면 처음 배우는 프로그래밍 언어로 어떠한 언어를 선택하는 것이 좋을까? 프로그래밍 언어의 패러다임을 매개로 하여 그 해답을 찾아보자.

모든 이가 프로그래밍을 배워야 하는 이유?
프로그래밍 학습은 문제의 해법 그 자체보다는 올바른 해법을 설계하는 절차를 오류 없이 기술해낼 수 있는 사고를 강조하며, 서술된 문제로부터 해법의 모형을 만들고 모형의 타당성을 검증하는 과정에서 창의성 및 비판적 사고와 추론 능력을 훈련하는 효과가 있다(이는 국내외의 다양한 교육과정 및 관련 연구를 통해 타당성이 입증되어 왔다).

그리고 프로그래밍 기술은 분야별 전문성과 생산성을 한 차원 높은 수준으로 끌어올리기 위해 기계 중심의 사고에서 벗어나 전문 응용 분야별 사고력과 표현력을 향상시키는 쪽으로 발전해왔다. 프로그래밍 기술이 이와 같은 방향으로 진보하고 있다는 것은 프로그래밍 작업이 전통적인 수행적 행위에 근접해가고 있다는 것을 입증하는 것이기도 하다.

프로그래밍 언어는 전산학이나 컴퓨터공학 같은 특정 분야를 전공하거나 집중적인 교육을 이수한 전문인만이 활용할 수 있는 도구의 기술에서 이미 벗어났고, 모든 분야의 전문 인력이 자신의 분야에서 발생하는 다양한 문제 풀이를 위해 그 분야 전문가들의 지식을 공유하고 해법을 나누기 위한 사고의 수단으로 자리매김하고 있다. 이제 프로그래밍 언어는 전문 프로그래머들의 전유물에서 벗어나고 있는 것이다.

CAD를 사용하는 건축 또는 조선 설계 전문가건, 컴퓨터공학을 전공하여 전문 프로그래머로의 길을 원하는 학생이건, 경영학이나 유통학을 공부해서 기업 경영을 꿈꾸는 경영학도건, 월말이면 직원들의 급여를 계산하기 위해 엑셀을 사용하는 경리부서의 직원이건 모두 알게 모르게 프로그래밍 언어를 사용하고 있다.

이렇게 사람들이 원하는 해답을 찾기 위해 문제를 풀어가는 방식은 프로그래밍 언어를 사용하여 문제를 해결하는 기법과 닮아가고 있다. 복잡한 이론을 설명하거나 논문의 예를 들지 않더라도 이는 현재 화제가 되고 있는 문제이며, 결론적으로 요즘 세상에서 뒤쳐지지 않으려면 누구나 프로그래밍 언어를 배워야 한다는 것이다.

프로그래밍은 여러 문제의 해법을 찾아내고 해법을 조합해서 더 큰 문제의 해답을 찾아내는 능력을 요구한다. 엑셀을 사용하는 능력을 기르고 싶다고 사설 학원에서 배우는 소프트웨어 사용법을 배우는 것은 곤란하다. 특정 회사의 소프트웨어 사용법을 기계적으로 암기하고 익숙하게 만드는 반복학습으로는 더 큰 문제가 주어졌을 때 올바른 방법으로 빠르게 풀어내는 능력을 키울 수 없기 때문이다.

대부분의 소프트웨어는 복잡한 문제를 논리적으로 접근하여 오류 없이 빨리 해결하는 데 그 목적이 있다. 창의적 문제 해결 도구로서의 소프트웨어 기술 활용을 익히기 위해서는 높은 추상화의 수준에서 문제를 해결하는 방법을 연구해야 하고, 다양한 문제 해결 기법을 종합 활용하여 개인의 생산성 향상을 체득할 수 있는 훈련이 필요하다. 그렇다고 해서 '막연히' 프로그래밍을 배우겠다는 생각은 좋은 것이 아니다.

프로그래밍 훈련이 문제 해결 능력에 도움을 주는 것은 사실이지만, 프로그래밍 언어를 '아무거나' 선택해서 '적당한' 방법으로 익힌다는 것은 문제 해결 능력의 향상에 별 도움을 주지 못한다. 표현 수준이 낮은 언어를 선택하거나, 문법이 너무 복잡한 언어를 선택하는 것은 낮은 언어의 표현을 문제를 해결하기 위한 표현 수준으로 끌어들이는 작업에 더 많은 노력을 기울여야 하기 때문이다. 또한 문법과 의미가 복잡한 언어를 선택했을 경우 언어 자체가 가진 문법과 언어를 이해하는 데 질려버려(문제 해결 기법을 익히고자 하는 목표에 도달하기도 전에 익혀야 하는 문서의 양에 질린다) 프로그래밍 언어 자체에 대한 흥미를 잃어버리게 되는 경우도 허다하다.

마이크로소프트(이하 MS)의 비주얼 베이직을 처음으로 배운 사람이라면 다른 모든 언어를 학습하고자 할 때 비주얼 베이직에 대한 이해를 기본으로 접근하게 된다. 비주얼 베이직은 MS 엑셀이나 DTS 등의 사무 생산성을 위한 도구나 데이터 관리를 위한 도구에 광범위하게 사용되어 실무 활용도가 높은 언어라는 장점이 있긴 하다. 하지만 비주얼 베이직은 문법과 의미가 복잡하게 설계되었고(영어 표현에 익숙하지 않은 한국인이라면 더욱 접근하기 힘들다), 애초에 언어 자체가 무원칙하게 설계되어 있어 순수한 수학적 사고에 기반한 문제 해결 능력을 익히는 데 좋지 않은 영향을 줄 수 있다.

어떤 언어가 적당하다고 할 수 있는가?
표현 수준이 낮은 언어를 배우게 되면 문제를 푸는 데 집중하지 못할 가능성이 커지게 된다. C/C++ 류의 언어를 예로 들어보자. C/C++는 문제의 해법을 개발하는 기법을 익히기에 앞서 전공 수준의 전문 지식을 요구한다. 정확히는 컴퓨터 시스템의 기억 공간의 관리 및 기계 수준의 효율적 데이터 처리 방식 등의 동작원리를 정확하게 이해하지 않으면 문제를 풀기위한 표현 수단을 개발하기 힘들다. 복잡한 문제를 풀기 위해서는 자료구조나 알고리즘에 대한 이해가 필수적이고, 문제를 풀기 위한 기반 표현 수단을 생성하기 위해서는 컴퓨터 시스템에 대한 전문적인 지식을 요구하게 된다. 자바나 C# 또한 마찬가지다(C#의 #은 C++의 ++을 겹쳐 놓은 것이라고 한다).

자바나 C#과 같은 언어는 C/C++에 비해 기계 중심적인 사고를 덜 요구하긴 한다. 하지만 자바 또는 C#은 객체지향성이라는 특정 패러다임을 문법적으로 강요한다. 또한 아주 단순한 응용에 있어서도(예를 들면 그림을 그린다거나 데이터를 처리하는 등의) 단순한 응용을 위한 전문 영역 언어를 별도로 학습해야 하는 부담이 따른다(포트란도 C/C++, 자바, C# 등의 단점을 그대로 공유한다).

물론 전문 프로그래머로 활동할 의사가 있는 사람이라면 조금 다르게 생각할 수도 있다. 전문 프로그래머가 될 사람이라면 산업계에서 널리 사용되고 있는 C/C++, 자바, C# 등의 언어를 익혀놓고, 특정 언어 기반에서 사용되는 모든 전문 영역 언어(Domain-Specific Language)를 사용할 수 있는 능력을 기르는 것이 앞으로의 밥벌이(?)에 지대한 영향을 줄 것이라고 생각하는 독자도 있을 것이다.

그렇다면 이쯤에서 반문하고 싶은 것은 자바 또는 C#이라는 언어가 시장에서 쓰이기 시작한 것이 얼마나 되었느냐 하는 것이다. C#은 MS에서 2001년 발표한 새로운 언어이다(발표된 지 3년이나 지난 언어를 새로운 언어라고 불러도 되는지는 모르겠다). MS라는 기업의 영향력 때문인지 C#은 새로 시작하는 프로젝트에서 가장 심각하게 고려되는 언어로까지 성장했다. 자바를 사용할 줄 아는 프로그래머라면 Anonymous Class 구조를 사용하는 이벤트 모델에 익숙할 것이다. 반면 C#은 델리게이트(delegate)를 사용하여 이벤트를 구현한다. 첫 번째 언어로 자바를 선택하고 죽도록 공부한 사람이라면 C#의 이러한 구조가 쉽게 받아들여질 리 만무하다.

전문 프로그래머로 활동할 의사가 있는 사람이라면 급변하는 프로그래밍 환경에 탄력적으로 적응할 수 있는 훈련도 필요하지만 첫 번째 프로그래밍 언어는 이러한 프로그래밍 환경에 적응하는 기반을 마련해 줄 수 있는 언어를 선택하는 것이 마땅하다. 'C#을 잘 사용하는' 프로그래머보다는 '프로그램을 잘 짜는' 프로그래머가 되는 것이 우선이다.

과연 C/C++는 마땅하지 않은가?
C/C++, 자바, C#처럼 기계 중심 패러다임(Imperative Paradigm)을 사용하는 언어를 사용하는 것이 바람직하지 않다고 이야기할 수는 없다. 오히려 '반드시 거쳐가야 되는' 쪽이 더 적합한 표현일 것이다. 분명히 C/C++는 현재 사용되고 있는 프로그래밍 기술을 충분히 맛보기에 아주 좋은 언어이다. 또한, 기계 중심 패러다임이 문제를 풀이하는 데 반드시 사용되어야 하는 경우도 허다하다. SICP(Structure and Interpretation of Computer Programs, MIT Press)에서 빌려온 다음 예를 살펴보자.

"우리는 보통 세상을 독립 물체들이 살고 있는 곳으로 본다. 각 물체는 자기만의 상태가 있고, 그 상태는 시간에 따라 변화한다. 어떤 물체가 '상태를 가진다'는 말은 그 행동이 그 역사를 지닌다는 뜻이다. 은행 거래를 예로 들면, '지금 100달러를 인출 할 수 있는가?'라는 질문의 답이, 예금과 인출의 지나간 역사에 의존한다는 점에서, 은행 계좌는 상태를 가진다고 할 수 있다."

시간에 따라 상태가 변하는 계산상의 물체라는 것이 어떠한 것인지를 설명하기 위해 은행 계좌에서 돈을 인출하는 상황을 예로 들어보자. 인출 동작은 인출 금액을 amount라는 인자로 받는 withdraw라는 프로시저로 표현한다. 계좌에 예금된 돈이 인출하기에 충분한 금액이라면 withdraw 프로시저는 잔고를 보여주고, 그렇지 않다면 ‘잔고 부족’이라는 문자를 보여주어야 하는 상황이다.

C#을 사용하여 이와 같은 상황을 프로그래밍한다면 객체지향 패러다임(Object-Oriented Paradigm)에 입각하여 <리스트 1>과 같이 프로그래밍할 것이다.

  <리스트 1> C#으로 작성한 코드
  

public class Account {
    private int balance;
    
    public Account(int balance) {
        this.balance = balance;
    }

    public void Withdraw(int account) {
        if (this.balance >= account)
            Console.WriteLine(this.balance - account);
        else
            Console.WriteLine("잔고 부족");
    }
}



프로그램을 실행하려면, Account 객체를 생성하고 생성된 객체에서 값을 빼나가야 한다.


Account account = new Account(100);
account.Withdraw(25);
(75를 화면에 출력한다)
account.Withdraw(90);
("잔고 부족"을 화면에 출력한다)
account.Widthdraw(15);
(60을 화면에 출력한다)


SICP에서는 우리에게 익숙한 이와 같은 프로그래밍 방법을 다음과 같이 설명한다.


"각 물체는 상호 작용으로 객체간에 의존하는 상태 변화를 만들면서 서로에게 영향을 준다. 이렇게 시스템을 분리된 객체의 합성이라고 보는 시각은, 시스템의 상태 변수를 밀도 있게 결합된 여러 개의 서브 시스템으로 묶을 수 있고 서브 시스템끼리는 느슨하게 묶인 구조를 유지하는 경우에 아주 쓸모 있다."

이런 사고방식은 시스템 계산 모델의 조직을 짜맞출 때 아주 쓸모 있는 틀이 된다. 모듈별로 잘 구성된 모델을 만들려면 시스템 내의 실제 물체를 본뜬 계산상의 물체로 모델을 분할해야 한다. 각 계산 객체는 실물의 상태를 묘사하는 자기 상태 변수(local state variable)를 가지고 있어야 한다. 그리고 실물(Object)의 상태는 시간에 따라 변화하기 때문에 이에 대응하는 계산상의 물체 상태 변수가 존재해야 한다. 컴퓨터의 계산 시간으로 시스템의 시간을 흉내내고자 한다면, 프로그램 실행 중에 행동을 바꿀 수 있는 객체를 표현할 수 있는 방법이 있어야 한다. C/C++, 자바, C#에서는 이와 같이 프로그램 실행 중에 행동을 바꿀 수 있는 객체를 표현할 수 있는 방법으로 배정 연산자(Assignment Operator)를 지원한다. 물론 '= '이다.

다시 첫 번째 프로그래밍 언어의 선택 문제로 돌아가 보자. 앞의 예제는 너무도 간결하지만 첫 번째 프로그래밍 언어로 C/C++, 자바, C# 등의 언어가 마땅하지 않은 이유는 우선 문법과 의미가 상당히 복잡하다는 것이다. C++는 기초 수준의 언어만을 익히는 데 수천 페이지의 전문적인 설명서가 필요하다. C++보다 훨씬 의미가 간결한 자바나 C#만 하더라도 대부분의 관련 교재에서 문제 해결 방법을 이야기하는 것이 아닌 언어 그 자체의 문법과 의미를 설명하는 데만 수백 페이지를 할애하는 데 그 문제가 있다.

두 번째 문제는 객체지향성과 같은 특정 패러다임의 이해를 문법적으로 강요한다. <리스트 1>에서 Account 클래스를 선언했는데 자바 또는 C#에서는 이와 같이 클래스 없이는 프로그램을 작성할 수 없고, 언어적으로 객체지향 패러다임을 강요하게 된다. SICP에서 교육용 언어로 선택한 Scheme에서 배정 연산자는 다음과 같이 사용할 수 있다.


(set! )


C#으로 작성한 <리스트 1>을 Scheme으로 작성하면 <리스트 2>와 같이 된다.

  <리스트 2> Scheme으로 작성한 코드
  

(define balance 100)
(define (withdraw amount)
    (if (>= balance amount)
        (begin     (set! balance (- balance amount))
            balance)
    "잔고 부족"))



<리스트 1>과 마찬가지로 balance 변수가 공유 환경에서 동작하지 않도록 하고 싶다면 다음과 같이 해서 '가두어 이름 짓기' 기법으로 withdraw 내부에 가두어버릴 수 있다.

(define widthdraw
    (let ((balance 100))
    (lambda (amount)
        (if >= balance amount)
            (begin     (set! balance (- balance amount))
                balance)
        "잔고 부족")

여기서는 Scheme 문법을 잘 모르는 독자들이 보기에 익숙하지 않은 명령들이 있으므로 어려울 수도 있지만 <리스트 1>과 <리스트 2>를 비교해 보았을 때, 어떤 언어를 선택하는 것이 ‘문법의 횡포’로부터 자유로울 것인가를 느낄 수 있을 것이다.

C 언어 문법과 고급 프로그래머가 되는 길      

인터넷에 떠도는 이야기 1 - 켄 톰슨과 데니스 리치의 가상 인터뷰
우린 멀틱스를 보고(가능한한 아주 복잡하고 암호같이 모호해서) 일반 사용자들은 아예 사용할 엄두를 내지도 못할 새로운 시스템을 설계했습니다. 그리고 멀틱스의 패러디로 이름을 유닉스로 정했죠. 뭐 일부는 좀 비꼬는 듯한 암시를 주기 위한 이유도 있었지만요. 그 다음 데니스와 브라이언은 파스칼을 완전히 뒤섞어 놓은 듯한 언어를 만들고 이름을 `A`라고 했습니다.

그 뒤 사람들이 그 언어로 진짜 중요한 프로그램을 개발하려고 시도하고 있다는 것을 알고 나서 우리는 재빨리 언어를 암호화해서 더욱 사용하기 어렵게 만들었고 이 언어는 `B`를 거쳐 BCPL, 그리고 결국 C가 되었습니다. 우린 다음과 같은 문장을 깨끗하게 컴파일할 수 있을 때가 돼서야 비로소 개발을 중단했습니다.

for(;P("\n"),R-;P("|"))for(e=C; e-; P("_"+(*u++/8)%2))P("|"+(*u/4)%2);

현대의 프로그래머들이 이렇게 암호 같은 문장을 허용하는 개떡 같은 언어를 사용할 것이라고는 전혀 생각지 못했습니다. 그건 우리의 상식 밖이었죠. 우린 실제로 이걸 소련에 팔아서 소련의 컴퓨터 과학기술을 20년 이상 퇴보하게 만들 생각이었거든요.

인터넷에 떠도는 이야기 2 - 초급 프로그래머와 고급 프로그래머의 차이
다음은 모두 모니터 화면에 "Hello, World"를 찍기 위한 프로그램입니다.

대학 신입생
program Hello(input, output)
begin
writeln('Hello World')
end.

신임 교수
#include
void main(void) {
char *message[] = {"Hello ", "World"};
int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

계약직 전문가
#include

class string {
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char('\0')) {}

string(const string &s) : size(s.size) {
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string() {
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

// 생략...
str = "Hello World";
cout << str << endl;
return(0);
}

숙련된 해커
% cc -o a.out ~/src/misc/hw/hw.c

구루(지존) 해커
% cat
Hello, world.
^D


  

  


다양한 프로그래밍의 틀을 활용할 수 있는가?
흔히 말하는 객체지향 언어가 아닌 Haskell이나 Scheme을 사용해서도 C#이나 자바와 같은 객체지향 언어가 하고자 하는 메시지 전달(message-passing) 프로그래밍 기법을 사용할 수 있다. 다음 프로시저는 인출 계산기를 표현하는 프로시저이다.


(define (make-withdraw balance)
    (lambda (amount)
        (if (>= balance amount)
            (begin     (set! balance (- balance amount)
                balance)
            "잔고 부족")


다음과 같이 make-withdraw를 2번 선언하면 W1과 W2는 두 개의 물체를 만드는 목적으로 사용할 수 있다. W1과 W2는 각각 자신만의 상태변수 balance를 가지고 있는 완전한 독립물체이다.


(define (W1 (make-withdraw 100))
(define (W2 (make-withdraw 200))


다음과 같이 하면 인출뿐만 아니라 예금(deposit)을 관리하는 물체도 만들 수 있고, 그렇게 하면 간단한 은행 계좌를 표현하게 된 셈이다. 다음은 초기 잔고를 주고 ‘은행 계좌’를 만들어 주는 프로시저다.


(define (make-account balance)
  (define (withdraw amount)
    (if (>= balance amount)
        (begin (set! balance (- balance amount))
               balance)
        "Insufficient funds"))
  (define (deposit amount)
    (set! balance (+ balance amount))
    balance)
  (define (dispatch m)
    (cond ((eq? m 'withdraw) withdraw)
          ((eq? m 'deposit) deposit)
          (else (error "Unknown request -- MAKE-ACCOUNT"
                       m))))
  dispatch)


이와 같이 만든 make-account는 계좌를 표현하는 완전한 독립 물체, 즉 객체로 동작하고, Dispatch 프로시저 그 자체가 은행 계좌 물체를 표현하는 값이 된다. 이는 객체지향 패러다임을 완전하게 구현한다. 또한 배정문을 사용하여 메모리의 지정한 곳에 값을 저장할 수 있다는 점에서 기계 중심 패러다임을 사용할 수 있는 환경이라는 것 또한 알 수 있다.

C/C++, C#, 자바 등의 언어 패러다임인 이 방식은 컴퓨팅 역사(Computing History)를 순차적으로 풀어야 하는 문제에 가장 적합한 방식이다. 하지만 득이 있으면 실이 있는 법, 배정 명령의 사용에서 발생하는 손실은 당연히 발생한다. 배정 명령을 사용하지 않는다면, 같은 프로시저를 인자로 프로시저를 실행하면 언제나 같은 값이 나오게 된다. Square를 계산하는 다음과 같은 함수가 있다고 하자.


square(x) = x * x


함수를 연산하는 프로시저를 다음과 같이 작성할 수 있다.


(define (square x) (* x x))


작성된 프로시저에 2 값을 주면 언제나 4라는 값을 반환한다. 이런 경우 프로시저를 수학적 함수(Function)로 볼 수 있고, 이를 값 중심(Value-Oriented) 프로그래밍이라고 한다. '대치 계산 모델(Substitution Model)’은 프로시저의 적용이란 인자를 값으로 바꾸어서 프로시저의 값을 계산하는 방법으로, 값(함수) 중심 패러다임(Functional Paradigm) 전개 방식이다. 제곱들의 합을 계산하는 sumofsquare 함수는 다음과 같이 작성된다.


sumofsquare(x) = square(x) + square(x)


하지만 배정문을 사용할 때 대치 모델은 더 이상 사용할 수 없게 된다. 프로그래밍 언어에서 널리 사용되는 개체와 배정 명령은 사실 그 적절한 이론적 기반이나 깔끔한 수학적인 모델이 존재하지 않기 때문이다.

배정 명령은 문제를 복잡하게 만든다. 배정 명령이 어떤 식으로 문제를 복잡하게 만들 수 있는지 알아보기 위해 일정 금액 balance에서 입력한 금액을 빼는 make-decrementer 프로시저를 작성해 보자. 배정 명령문을 사용하지 않았기 때문에, 금액을 누적하는 효과는 없다.


(define (make-decrementer balance)
  (lambda (amount)
    (- balance amount)))


배정문을 사용하지 않으므로 대치 모델로 make-decrementer가 어떻게 식의 계산 과정을 분석하여 어떻게 동작하는지를 알아낼 수 있다.


((make-decrementer 25) 20)


식을 조합하는 연산자를 간략하게 만들기 위해 make-decrementer를 펼치고 balance를 25로 대치한다. 그러면 다음과 같은 식으로 줄일 수 있다.


((lambda (amount) (- 25 amount)) 20)


이제 lambda 식 내의 amount를 20으로 대치해서 연산자를 적용하면 다음과 같다.


(- 25 20)


마지막 계산 결과는 5다. 그러나 배정문을 사용한 다음 프로시저는 이와 같은 결과를 기대할 수 없게 된다.


(define (make-simplified-withdraw balance)
  (lambda (amount)
    (set! balance (- balance amount))
    balance))


같은 방식으로 make- simplified-withdraw를 분석해 보자.


((make-simplified-withdraw 25) 20)


먼저 연산자를 간략하게 만들기 위해 make-simplified-withdraw 내의 balance를 25로 대치하면 다음과 같은 식이 된다.


((lambda (amount) (set! balance (- 25 amount)) 25) 20)


이제 lambda 식의 amount를 20으로 대치하여 연산자를 적용한다.


(set! balance (- 25 20)) 25


엄격하게 대치 모델에 따라 이 프로시저 적용 과정이 뜻하는 바를 설명해야 한다면, 우선 balance를 5로 둔 다음, 25가 전체 식을 계산한 값이 된다고 할 수밖에 없다. 즉, 이런 식으로 계산하면 틀린 답이 나온다. 맞는 답을 얻으려면 어떻게든 첫 번째(set! 실행의 효과를 반영하기 전의) balance와 두 번째(set!을 실행한 효과가 반영된) balance를 반드시 구분할 수 있어야만 한다. 그러나 대치 모델로는 이런 현상을 설명할 수 없다.

이런 문제가 생기는 원인은 결국 대치 모델이 언어 내의 심벌이란 값에 붙인 이름일 뿐이라는 사실에 바탕을 두고 있기 때문이다. 그러나 set!을 쓰면서 변수의 값을 바꿀 수 있게 되면서부터 변수는 그저 이름일 수가 없다. 이제 변수는 어떻게든 값을 저장했다가 필요에 따라 바꿀 수도 있는 ‘저장소’를 가리키게 된다.

어떤 언어에서 언제나 식의 결과에 영향을 주지 않고 ‘같은 것으로 같은 것을 대치할 수 있다’는 개념이 보장된다면, 그 언어가 ‘참조에 투명(referentially transparent)’하다고 말한다. 우리가 써온 컴퓨터 언어에서 배정문을 쓰게 되는 경우 참조 투명성을 보장할 수 없다. 이로 인해 언제 대치 모델을 써서 식을 줄여도 되는지 판단하기 쉽지 않다. 결국, 배정 명령을 사용하는 프로그램은 엄청나게 논증하기가 어려워진다.

일단 참조 투명성을 포기하고 나면 두 객체가 ‘같다’는 개념을 정형적 방법으로 잡아내는 게 어려워진다. 사실, 실세계에서는 ‘같다’는 의미, 그 자체가 깔끔하지 않다. 일반적으로 확실히 동일한 두 개체가 정말 같은지 증명할 수 있는 유일한 방법은 한 개체를 고쳤을 때 다른 개체도 같은 방식으로 변하는지를 살펴보는 것이다. 그러나 ‘같은’ 개체를 두 번 관찰해서 그 개체가 가지는 어떤 속성이 처음과 다르다는 사실을 확인하는 것 외에 정말 하나의 개체가 ‘변했다’고 말할 수 있는 다른 방법이 있을까? 그래서 ‘같음’의 개념을 먼저 정립하지 않고서는 ‘변화’를 판단할 방법이 없는 것이고, 변화의 효과를 살피지 않고서는 같음을 입증할 수 없는 것이다.

C#이나 자바 같은 언어에서 값 타입의 ‘같음’과 참조 타입의 ‘같음’이 확연하게 구분되는 이유도 바로 여기에 있다. 하지만 C/C++, 자바, C# 등의 언어를 사용한다면 우선의 구현이 눈앞을 가리게 되고 그 구현에만 급급하면 프로그래밍 언어의 목적인 문제를 올바른 방법으로 해결하는 데에 대한 생각이 무색해지게 된다.

SICP에서는 이런 문제의 해결을 위하여 스트리밍 패러다임(Streaming Paradigm)이라는 기법을 제안하고, “이렇게 좋은 대안이 있는데도 여전히 무식한 기법을 쓸래?”라고 묻는다. 여러 패러다임을 다 수용할 수 있는 언어를 첫 언어로 선택함으로써 얻을 수 있는 이점은 바로 이런 것이라 할 수 있다. 프로그래밍을 업으로 삼는 사람과 그렇지 않은 사람을 막론하고, 여러 방향으로 문제를 해결할 수 있는 방법을 제시하고, 문제를 해결하는 방법에 대한 원론을 제시함으로써 다른 문제에 부딪히게 될 때 올바른 해결 방안을 찾아갈 수 있는 길을 열어준다는 것이다.

맥락을 제거한 언어의 우열 논의는 의미 없다
이 글을 읽은 독자가 “그렇다면 자바가 안 좋은 언어라는 말입니까?“ 또는 ”지금 열심히 C#을 배우기 시작했는데 말짱 헛일이었다는 말입니까?“라고 질문할 지도 모르겠다. 필자에게 누군가 그런 질문을 직접 한다면 적당한 말로 얼버무리거나 그 자리를 피하려 할 것이다. 그런 질문 자체가 넌센스이기 때문이다.

어디를 가든지 자신이 하고 있는 것이 옳은 것이고 더 힘든 것이며 심오한 영역에 있는 것이라고 생각하는 사람들이 있는 법이다. 독일어를 쓰는 게르만 족이 머리가 좋은 이유가 독일어의 사용이 사용자의 정신 능력을 향상시키는 데 일조하기 때문이라는 연구가 나온 적도 있었다. 하지만 언어학자들의 연구 결과는 한 언어가 표현할 수 있는 것은 다른 모든 언어로도 표현 가능하다는 것이었다. 따라서 자바와 C# 등 언어의 우열 논의는 무의미한 것이다.

자바로 표현 가능한 것은 C#으로도 표현 가능하기 때문이다. 문제는 자바 또는 C#을 가지고 주어진 문제를 어떻게 표현하느냐 하는데 달린 것이므로 각 언어의 우위를 구분하는 것은 아주 어리석은 일이 된다.

여러 인터넷 게시판에서 아직도 C 언어를 가르치고 있는 국내 대학의 현실에 개탄하면서 이제는 C 따위는 버리고 자바를 가르쳐야 한다고 목청 높여 외치는 글을 여러 번 봤다. C 언어를 가지고 하드웨어를 직접 제어할 일이 별로 없는 지금의 현실에서 C 언어를 배우는 것이 큰 의미가 없다는 주장이다. C/C++가 기계에 직접 명령을 내리기에 아주 적합한 구조의 언어라는 것은 확실하다. 그리고 또 한 가지 확실한 것은 대학에서 배우는 정도의 C/C++로는 하드웨어를 확실하게 제어하기 어렵다는 것이다(API를 조작하거나 OS 레벨을 조작하여 결과를 얻어내는 경우도 있긴 하다. 필자는 한 학생이 OS 레벨을 조작한 프로그램으로 블루 스크린이 아닌 레드 스크린을 화면에 펼치고 있는 것을 본 적이 있다).

여기까지 신경 써서 글을 읽은 독자들이라면 필자가 무슨 말을 하고 있는지 이해할 수 있을 것이라 믿는다. 요즘 시대에 선택해서 사용할 수 있는 프로그래밍 언어는 수없이 많다. 이렇게 많은 언어들 중에서 어떤 언어를 자신의 첫 언어로 선택하여야 할까? 물론 아무 언어나 선택해서 공부해도 열심히만 공부하고 언어의 맥락을 이해하여 문제 해결에 집중할 수 있다면 상관없다. 하지만 첫 언어가 앞으로의 프로그래머로서의 인생에 크게 영향력을 미치는 중요한 요소가 될 것임을 생각한다면 첫 언어의 선택은 신중해야 할 필요가 있다. 이제 결론을 내려보자. 첫 번째 프로그래밍 언어의 선택은 다음 두 가지 기준을 모두 만족해야 한다.


◆ 현재의 프로그래밍 기술을 충분히 맛볼 수 있는가?
◆ 다양한 방식으로 프로그래밍할 수 있는 생각을 갖출 수 있도록 하는가?


한 마디로 말하자면 고급 문제를 쉽게 해결할 수 있고, 특정 패러다임에 종속적인 사고를 강요하지 않으면서도 모든 패러다임을 다 수용할 수 있는 언어라면 아무거나 골라 써도 좋다는 말이다. 물론 그렇게 선택하여 배운 언어가 산업 현장에 투입되었을 때 그다지 많이 활용되지 않는 언어일 수도 있다. 하지만 이 두 가지 기준을 모두 만족하는 언어를 사용하여 여러 패러다임을 전개하며 문제를 해결하는 방식을 충분히 습득했다면 그 사람은 아마 여러 사람이 감탄하는 좋은 프로그램을 작성하고 있을 것이다.

아직도 C/C++ 또는 자바, C#을 첫 프로그래밍 언어로 공부하는 것이 옳다고 생각하는 사람이 있다면 MS가 2006년에 발매할 예정인 윈도우 롱혼의 권장 사양을 살펴보라. 윈도우 롱혼이 나올 때쯤이면 CPU가 2개 달리고 현재로서는 상상할 수 없는 큰 메모리가 장착된 컴퓨터를 홈쇼핑에서 판매할 것이다. CPU가 2개 달린 컴퓨터가 보편화되었을 때 변화할 상용 언어들의 패러다임에 대해 상상해 보는 것도 즐거운 시간이 될 것이다. @

* 이 기사는 ZDNet Korea의 자매지인 마이크로소프트웨어에 게재된 내용입니다

신고


엄청난것을 발견했다.

우리나라 인터넷 인구가 3000만명이 되었다고 한다.
그리고 그 바로 위에.. 싸이월드 회원이 1000만명이 되었다고 한다.


인터넷 하는 사람중에 -_- 1/3 이 -_- 싸이를 하고 있다 -_-
신고
[김은식의 맛있는 IT] 첫 번째 채팅의 추억

http://www.zdnet.co.kr/news/column/kes/0,39024733,39129139,00.htm




[김은식의 맛있는 IT] 첫 번째 채팅의 추억

김은식(컬럼니스트)  
2004/07/16        

오랜만에 내린 큰비 때문인지, 저녁 내내 인터넷이 연결되지 않았다. 이왕 늦은 시간이라 서비스 업체에 신고를 하기도 무엇하고, 그저 깔끔하지 못한 기분으로 이것저것 오랜만에 네트워크가 없이도 할 수 있는 일들을 하기 시작했다. 그런데, 정말 인터넷에 연결된 채 켜져 있는 컴퓨터가 없으면 기분이 깔끔하지 못하다. 왜 그럴까.

사실, 인터넷이 없다고 해서 큰 지장이 있을 것도 없었다. 아니, 인터넷에 연결이 된다고 해서 크게 즐거울 일도 없었다. 요즘 따라 나는 이것저것에 싫증을 느끼고 있던 참이었다. 한동안 심하게 열을 올렸던 고스톱이나 네트워크 퀴즈 같은 게임들에 물리기 시작했고, 그 사이 덩달아 몇 군데 들락거리던 커뮤니티도 뜸해졌다. 업무 자료를 찾는 데야 몇 십 분이면 충분했고, 그렇다고 여기저기 도배질을 할 만큼 글이 잘 써지는 것도 아니었다.

그래서 기껏 여기저기 포탈 뉴스섹션에서 중요한 뉴스, 재미있는 제목의 뉴스, 그리고 기어이 선정적인 제목의 뉴스까지 훑어가며 시간을 죽이는 것이 나의 최근 인터넷생활이다. 그러면서도 딱 끊고 책이나 읽거나 잠이나 잘 마음이 생기지 않는 것을 보면 벌써 심상치 않은 중독증상인 것 같기도 하다.

어쨌건, 그래서 요즘 나의 고민은 인터넷을 딱 끊지는 못하더라도, 이놈을 가지고 정말 재미있게 노는 방법을 찾아내는 것이다. 그야말로 무슨 중독자처럼 반사적으로 마우스를 움직이며 풀어진 눈으로 모니터와 눈싸움을 벌이는 것 말고, 뭔가 정말 신이 나고 가슴 떨려가면서 놀아볼 방법이 뭔가 없을까 하는 생각에 또 이곳저곳을 들쑤시고 있는 것이다.

지금 나를 이렇게 무섭게 옭아매고 있는 네트워크라는 놀이터를 처음 알게 된 것은 불과 십여 년 전, 대학에 다닐 무렵이었다. 한 삼사학년 되었을 무렵, 호프집 테이블에서 갑자기 생소한 화제들이 등장하기 시작했다. 몇몇 친구들이 채팅이라는 것에 대한 경험담을 나누면서 나를 따돌리기 시작하더니, 저희들끼리 무슨 아이디라는 것을 나누고 밤에 채팅으로 만나자거나 하는 생뚱맞은 약속을 하기까지 했었다. 왠지 뒤떨어지는 느낌이 싫어서 내가 이래저래 컴퓨터통신에 접속하기 시작한 것이 그 무렵이었다.

한 달에 만 원 하던 접속요금을 과감하게 결제하고, 들어선 곳에서 나는 본전을 뽑아야 한다는 일념으로 제일 먼저 자료실 곳곳을 뒤져대기 시작했다. 그때 말로 ‘다운족’이었다. 그리고 무슨 무슨 연구회니 하는 폼 나는 동호회 몇 곳을 가입했고, 게시판 유머방에서 죽을 치고 반나절씩 혼자 깔깔대곤 했었다. 그러는 사이 수화기를 들었다가 난데없는 소음에 놀란 어머니에게 한 번씩 구박을 듣는 일도 늘어갔다.

그렇지만 정작 채팅이라는 것을 시작하기까지는 또 얼마간의 시간이 필요했다. 꼭, 초등학교 입학 날 처음 만난 사이에도 왁자지껄하던 다른 녀석들 한 편에서 꿔다 놓은 보릿자루처럼 혼자 어색해 어쩔 줄 모르던 그 때처럼, 영 낯선 사람 접하기가 겁나고 어색했던 것이다. 그러나 어쨌든 통신의 재미는 채팅이라던 친구들의 말을 믿고, 큰 용기를 한 번 내보기로 했었다. 얼굴도 안 보이는 곳에서 실수를 하면 하는 것이지, 뭐 부끄러울 것이 있겠나. 심호흡을 댓 번은 하고서야 채팅방에 들어섰다.

‘***님이 입장하셨습니다’ 하는 글줄과 함께 내 아이디가 박힌 입력커서가 떠올랐다. 그리고 그 순간 서너 명이나 되는 사람들이 동시에 나에게 인사말을 던져왔다.
‘안냐세여’ ‘방가’ ‘오홋, 새 손님이군’ 따위였을 인사말들. 나는 얼른 답글을 올려야 한다는 생각에 자판을 두드렸지만 연신 오자에 오류에 난리였다. 도대체 이 얼굴도 뵈지 않고 목소리도 들리지 않는 통신공간에서 사람과 실시간으로 의사소통할 수 있다는 사실이 신기하고 놀라운데다가, 생각 밖에 갑자기 말을 걸어오는 사람들 때문에 머릿속은 아연해질 지경이었고 갑자기 후끈 달아올라 요란해진 가슴의 박동이 손가락까지 흔들어놓고 있는 것 같았다.

결국 ‘안녀허새이..’ 정도 되었을까, 알아볼 수도 없는 만신창이 인사말 한 줄을 올렸을 때는, 이미 서너 개의 인사말에 이어, ‘뭐야, 왜 암말도 없어요’ 같은 재촉글과 ‘아 짱나네, 짐 머하냐’ 같은 비난이 이어지다가 ‘걍 강퇴시켜’ 같은 주문까지 등장한 다음이었다. 아, 길고 당황스럽고 화끈거리던 시간이여. 물론, 내 답변이 올라간 것을 보고 한 숨 돌리는가 싶던 그 순간, 나는 이미 대기실로 밀려나고 있었다. 비참한 첫 경험이었다.

이왕 달아오른 김에 솟아난 오기로 나는 두어 번 더 도전을 했고, 역시 비슷한 방식으로 쫒겨나거나, 아니면 아무도 상대해주지 않는 왕따가 되어 한참동안 남들 잡담 구경이나 하다가 스스로 걸어나와야 했다. 자판이 익숙지 않아 손가락 두어 개로 더듬어대던 ‘독수리 타법’에다가, 아무도 알아볼 리 없는 새까만 모니터 앞에서 왜 그리 긴장은 되었던지. 나는 달아오른 얼굴을 식히느라 세수를 두어 번이나 해대야 했었다.

매운 맛을 보고 나서 재도전하는 데는 적지 않은 용기와 시간이 필요하다. 내가 다시 채팅에 도전한 것은 그 뒤로 몇 달이 지나서였다. 그 때도, 꽤나 뜸하던 자료실에 더 이상 다운받을 신통한 자료들이 남지 않은데다 동호회 기웃거리기도 지겨워졌을 무렵이었다. 그리고 첫 날의 상처가 웬만큼 아문데다, 흥분하지만 않으면 어떻게 끼어볼 수 있을 것 같다는 자신감도 좀 생길 무렵이었다. 나도 이젠 몇 달이고 경력이 생겼고, 컴맹은 아니지 않은가 하는 생각이었다.

그 날은 용의주도했다. 저희들끼리 화기애애한 공간에 끼어들어서 살아남기는 어려울 것 같았고, 그래서 단 한 사람이 들어가 있는 방을 공략하기로 했다. 혼자 심심하게 기다리느니 나하고라도 몇 줄이나마 놀아주지 않겠나 하는 생각이었다.

그런데 그나마 만만치가 않았다. ‘안녕하세요’를 집중 연습했던 덕에 두 번 정도 인사말을 트는 것은 성공했지만, 사는 곳이 어디고 뭘 좋아하고 등등 자기소개를 하는 데는 첫 날 인사말 쓸 때만큼이나 오랜 시간이 필요했고, 그 사이 혼자 대여섯 줄씩 채우는데 짜증이 난 상대방들은 의외로 쉽게 짜증을 내고 막말을 하며 나가버리곤 했다. 아, 네티즌들 예의 없다는 소문이 있더니 이렇게 실감할 줄이야. 언제 본 사이라고 상욕을 해대다니.

그러나 그 날 마지막이다 하고 마음먹으면서 들어섰던 어느 방에서 나는 처음으로 채팅다운 채팅을 경험할 수 있었다. 그곳에서 혼자 글쇠를 이용해서 그림 그리는 연습을 하고 있던 주인장은 나를 반갑게 맞아주었고, 나는 들어서자마자 타자가 느리니 이해해달라는 말로 인사를 대신했다. 그리고 초보라 그렇다는 부언을 놀라울 정도의 속도로 덧붙이는데 성공했다.

주인장은 괜찮다고 했고, 실제로 오타가 몇 개씩 섞여 들어가는 나의 글줄을 보고는, 너무 서두르지 말라는 따뜻한 말까지 건네 왔다. 밖에 나가 나쁜 아이들에게 얻어맞고 와서는 엄마에게 응석 부리듯, 나는 이전에 만난 놈들이 얼마나 험한 짓을 나에게 했는지 일일이 일러바치기 시작했고, 상대방은 가끔 허허 웃어가면서 요즘 그런 아이들이 많다며, 이해하라고 했다. 얼음기 짱짱하던 통신공간에서 이렇게 따뜻한 사람을 만나다니, 나는 코끝이 시큰거릴 지경의 감격에 빠져버렸다. 그 순간 나는 그의 성별이 궁금해졌다.

친구들 중에서 가끔은 채팅으로 만난 여대생과의 데이트 경험담을 늘어놓는 녀석이 있었다. 대개, 기대에 형편없이 떨어지는 외모에 실망했다는 것이긴 했지만, 나는 이렇게 따뜻한 사람이라면, 그리고 다행스럽게 여성이기만 하다면 외모에 상관없이 꼭 한 번 만나보고 싶은 마음이었다. 그리고 마침 그 때, 고맙게도 상대가 먼저 나의 신상을 묻기 시작했다.

“님 몇 살?”

나이를 묻고 나면, 아마 성별을 물을 것이다. 아니, 묻지 않는다면, 이번에는 내가 질문이 있다면서 물으면 될 것이다. 쾌재를 올리며 답했다.

“24. 군대를 안가서 아직 대학생이예요”

군대 이야기. 슬쩍 남자라는 사실을 흘려보내기 위한 고도의 장치였다. 꼭 필요한 순간에 지능이 발휘되어 주면 신이 나게 된다. 그 순간에 그랬다. 어떻게 이런 생각을 해낼 수 있었을까. 스스로 대견했다.

그런데, 다음 순간 떠오른 한 줄의 글. 한 삼십여 분 넘게 채팅하는 내내 혼자 흥분했던 나에게 찬 물 한 바가지가 확 끼얹어지는 느낌이었다. 그인지, 아니면 그녀인지 아직도 알 수 없는 그 상대방의 답변은 정말 기가 막힌 것이었다.

“악, 나의 두 배. 이젠 아저씨라고 부를게요.”

이내 순간적으로 반 쯤 마비된 두뇌에 억지로 ‘X×2 = 24’라는 유치한 수식을 굳이 그려 넣고서야 한참동안 나의 응석을 받아주고 위로를 해주던 저 따뜻하고 마음씨 고운 상대방의 나이인 X가 12. 고작 초등학교 5학년 쯤 되었을 어린아이라는 사실을 알 수 있었다. 어쩌면, 나는 저 상상만 해도 혀가 짧아지는 어린 아이와 그 오랜 시간 진심을 다 해 이야기를 나눌 수 있었다는 말인가? 그 스스로 황당하고, 민망해 혼미한 정신을 수습하러 나는 황망히 인사말을 던지고 빠져나왔고, 내 인사말을 받은 순간부터 그 아이는 다시 태연하게 글쇠를 이용해 뱀이니 풍선이니 하는 것들을 그리기 시작했다.

하긴, 다시 생각하면 오로지 분하고 억울한 사연을 하소연하느라 나는 정신이 나가 있었고, 그 아이가 해준 거라고는 가끔 하하 웃어주고, 또 맞장구 몇 번 쳐준 것뿐이 아니던가. 내가 혼자 흥분해서 그려놓은 그림에서 멀찍이 서있던 녀석을 발견하고는 스스로 당황해 어쩔 줄 모르던 순간.

글쎄, 정말 그 친구는 남자였을까, 여자였을까. 그 때, ‘앞으로는 형, 혹은 오빠라고 부를게요’라고 썼다면 알 수도 있었을 텐데, 하필 애매하게 ‘아저씨’로 부르겠다는 글만 보고 나왔으니. 어쨌건, 아마 지금쯤 대학생이거나 아니면 벌써 졸업을 했을 지도 모르는 그 친구. 요즘 내가 메신저라도 탈 없이 쓰는 것도 어쩌면 그 친구 덕분일까.

하긴, 메신저라는 것을 처음 접했을 때도 적잖이 긴장을 했었다. 매일매일 대화명을 바꾸느라 짧지 않은 시간을 흘려보냈고, 또 시시때때로 나를 찾는 사람이 실망할까봐 ‘로그아웃으로 보이기’, 혹은 ‘다른 업무중’ 같은 표시를 달아 놓느라 분주하기도 했었다. 그러나 또 몇 달 지나지 않아 심상해진 요즘. 이렇게 나는 쉽게 물리고, 쉽게 무뎌진다. 그러고는 또 다른 재미를 찾아 건들거리고.

그런데 다시 생각하면, 그래서 무뎌지기 전의 기억을 떠올린다면 사람을 만난다는 것은 얼마나 신선한 일인가. 그리고 그와 대화를 나눈다는 것은, 얼마나 가슴 떨리고 즐거운 일인가. 초등학교 입학 첫 날, 선생님이 맺어준 대로 여자짝꿍과 손잡고 자기소개를 나누던 순간처럼, 그리고 그야말로 진지하고 깊이 있는 대화를 나누었던 열 두 살 차이 꼬마아이와의 첫 번째 채팅 때처럼 말이다.

혹, 메신저에 둥둥 떠 있는 저 아이디들도 혹 절절한 외로움을 멀뚱한 무관심으로 두르고 있는 것이라면, 이렇게 비어있는 시간에라도 내가 한 번 대화의 상대로 나서봐야 하겠다. 그래서 언제 한 번 한꺼번에 이런 메일이라도 날려볼 작정이다.

“너희들, 솔직히 요즘 심심하지 않냐?” @
신고
PC 부팅없이 DVD 바로본다


김응열 uykim@ 2004/07/08



'인스턴트 온' 기능 채택 실행시간 단축
삼보 유일시장 도시바 가세…확산 주목


PC로 다양한 엔터테인먼트를 즐기는 사용자들이 많아지면서 PC를 정상적으로 부팅하지 않고도 TV나 DVD를 감상할 수 있도록 해주는 `인스턴트 온'(instant on) 기능 제품에 관심이 높아지고 있다.

현재 국내 시판되는 브랜드PC 가운데 인스턴트 온 같은 기능을 채택한 제품은 삼보컴퓨터의 데스크톱PC `루온 모듈러'이 유일할 정도. 하지만 도시바코리아가 조만간 이런 기능을 지닌 노트북PC `새틀라이트 M30 SE'과 `AV―PC'를 선보일 예정이어서 확산 가능성이 주목된다.

인스턴트 온은 미국의 인터비디오사가 개발한 기술로, PC에 엔터테인먼트용 운영체제(OS)를 별도로 설치해 불필요한 부팅 과정과 시간을 줄여주는 게 특징이다.

삼보와 도시바 제품 역시 윈도와는 별도로 1GB 용량의 파티션에 엔터테인먼트 전용 리눅스 OS를 설치했으며, DVD감상과 TV시청을 위한 전용 버튼을 갖추고 있다. DVD 버튼을 누르면 윈도가 아닌 리눅스 OS가 구동, 정상적인 부팅 과정을 거쳐 DVD를 감상하는 것보다 소요되는 시간을 약 9분의 1 수준으로 줄여준다는 게 이들 회사의 설명이다.

홍정완 도시바코리아 프로덕트마케팅 과장은 "노트북PC의 경우 윈도를 정상적으로 부팅해 DVD와 TV 등을 시청하는 데 통상 3분 가량이 소요되는 데 비해, 인스턴트 온과 같은 기능을 이용하면 17∼20초안에 DVD나 TV를 즐길 수 있다"고 말했다.

PC업계는 인스턴트 온 기능이 PC사용자들의 멀티미디어 데이터 접근권을 높여 주고, 불필요한 배터리 사용을 차단하는 등 사용자 편리성을 높여준다는 점에서 조만간 이를 채택한 PC제품들이 증가할 것으로 예상하고 있다.

업계 한 전문가는 "세계적으로 인스턴트 온 기능을 채택한 PC제조업체는 아직까지 일본의 샤프, 중국의 레전드그룹 등으로 많지 않은 상황"이라며 "그러나 가정과 학교 등을 중심으로 엔터테인먼트용 PC보급이 늘면서 이를 채택한 제품도 증가할 것"으로 예상했다.

한편, 업계 일각에서는 "PC사용자의 대부분이 DVD를 감상하면서 인터넷 서핑을 하는 경우가 많아 결국은 본래의 OS로 부팅하는 이중의 일을 하게 된다"며 "이같은 이유로 적지 않은 PC제조업체들이 인스턴트 온 기능에 회의적인 입장을 보이고 있다"는 주장도 나오고 있다.
신고



NHN이 새로운 개념의 네트워크 기반 통합 커뮤니케이션 솔루션을 선보였다. 이 서비스는 지인 네트워크 기능은 물론 협업을 통한 미니 인트라넷 기능까지 구현해 통합적인 커뮤니케이션이 가능하다는 점이 특징이다.

NHN(www.nhncorp.com)은 국내외 최초로 기획한 새로운 개념의 네트워크 기반 통합 커뮤니케이션 솔루션인 ‘플랜훗’(www.planhood.com)의 국내 테스트 버전을 오픈했다고 밝혔다.

‘플랜훗’은 오프라인에서 연결된 개인의 사회적 관계(Social Network)를 온라인 네트워크로 구현해 지인(知人)들과 효과적인 커뮤니케이션을 지원하는 프로그램으로, 개인의 정보를 관리하는 ‘내 플랜훗’ 기능과 그룹 기능을 이용해 그룹 간 협업 시스템으로도 활용할 수 있는 ‘팀 플랜훗’ 기능 등 크게 두 가지 기능으로 구성된 휴먼 네트워크 서비스다.

개인이 사용하는 ‘플랜훗’은 개인의 지인들과 ‘후디’를 맺음으로 네트워크가 형성되고, ‘후디’ 간의 메시지 채널인 ‘후디메일’을 통해 스팸이 전혀 없는 메일을 사용할 수 있다는 특징이 있다. 또한 일정관리, 메모장, 주소록, 개인 프로필 관리 등 다양한 기능으로 ‘후디’와의 커뮤니케이션은 물론 개인의 정보관리까지 가능하다.

또한 ‘팀 플랜훗’은 조직의 인트라넷처럼 이용할 수 있을 뿐 아니라 개인의 그룹간 커뮤니케이션 채널로도 이용이 가능하다. 그룹으로 지정된 사람들과 별도의 메일 관리, 팀 게시판을 이용한 업무공유, 팀 스케줄 관리 등이 가능하고, 팀 일정에 새로운 일정이 등록되거나 수정되면 알리미를 통해 모든 팀원에게 자동 전달되어 주요 일정을 팀원들과 편리하게 공유할 수 있다. ‘플랜훗’은 시드(SEED) 암호를 채택하여 철저한 보안이 보장된다.

이 밖에도 원하는 조건의 사람을 찾아볼 수 있는 ‘휴먼네트워크 검색’ 기능을 이용하면 지역, 성별, 나이 등 조건에 맞는 인물 검색이 가능하며, 동문 검색도 가능하다. 내 ‘후디’가 아닌 사람이 검색될 경우 나와 이 사람과의 연결고리가 될 수 있는 내 ‘후디’만을 알려주는 등, 나와 직접 연결된 ‘후디’ 이외에는 개인 정보를 알 수 없도록 해 개인정보 보호 기능을 강화했다.

NHN의 김범수 대표는 “최근 화두가 되고 있는 SNA를 적용한 새로운 프로그램인 ‘플랜훗’은 지인들간의 신뢰를 기반으로 한 새로운 정보 유통 경로로 앞으로 새로운 커뮤니케이션 툴로 떠오를 것으로 기대된다”며 “앞으로 ‘플랜훗’을 통해 전 세계에 흩어져 있는 개인의 글로벌 네트워크 관리가 가능해질 것”이라고 밝혔다.

지난해 블로그 열풍에 이어 올해 인맥관리 서비스가 주목을 받자 각 포탈이 소셜 네트워킹 서비스를 내놓고 있다. 이번에 NHN이 내놓은 플랫훗은 데스크톱 소프트웨어 기반이라는 점에서 기존 웹 서비스 방식의 지인 네트워크와 차이가 난다. 하지만 오늘 오전 ZDNet 코리아가 확인한 결과 회원가입 단계에서 직업 선택 기능이 빠져 있는 등 아직 완성도가 뒤따르지 않은 것으로 보인다.

또한 지난해 열풍을 불러일으켰던 쿠쿠커뮤니케이션의 자동 주소록 개념을 도입하면서 아이디를 이메일로 한정해 직장을 바꾸는 등 이메일이 바뀌는 경우 재가입을 해야 하는 불편이 따른다는 점도 장애요소다. NHN은 지난해 쿠쿠커뮤니케이션을 인수한 바 있다. @
신고
PC통신 ‘하이텔’, 역사 속으로


[한겨레] KT, 포털사이트 '파란'에 통합 인터넷이 제대로 보급되기 이전 천리안과 함께 피시(PC)통신의 황제로 군림했던 하이텔이란 이름이 인터넷에서 완전히 사라지게 됐다.
케이티(KT)의 자회사인 케이티에이치는 포털사이트인 하이텔과 한미르를 통합한 새 포털사이트 이름을 ‘파란(paran.com)’으로 정하고, 오는 21일부터 시범서비스에 들어간다고 31일 밝혔다.

1992년 전화 접속 모뎀을 이용한 피시통신으로 첫 발을 내디딘 하이텔은 90년대 젊은이들의 필수 커뮤니케이션 수단으로 자리를 잡으면서 한때 350만명의 회원을 거느린 강자로 군림하다가 지난해 인터넷 기반 커뮤니티로 전환됐다. 현재 피시통신엔 5만명 정도의 회원만 남아 명맥을 유지하고 있다.

케이티에이치 관계자는 “알을 깨면서 포털 업계에 등장한다는 의미로 파란이라는 이름을 짓고 도메인을 확보했다”며 “막강한 통합 포털로 과거 하이텔 때의 명성을 되찾겠다”고 말했다. 케이티에이치쪽은 유·무선 통합 포털로 나가기 위한 필수조건인 케이티에프의 무선 포털 ‘매직엔’ 통합은 케이티에프의 반대로 일단 무산됐다고 밝혔다.

서수민 기자 wikka@hani.co.kr ⓒ 한겨레(http://www.hani.co.kr),
신고
http://www.zdnet.co.kr/webtv/?newsid=69015
신고





마이크로소프트가 운영하는 인터넷 포털 MSN(www.msn.co.kr)은 MSN 메신저를 기반으로 한 지인(知人) 네트워킹형 개인 커뮤니티 서비스 ‘MSN 홈피’(hompy.msnplus.co.kr)를 전세계 MSN 중 우리나라에서 제일 처음으로 시작한 다고 10일 밝혔다.
지금까지 홈피 서비스에서 출발해 메신저를 연동시킨 사례는 있었지만, 애초 메신저를 기반으로 기획한 홈피 서비스는 MSN이 처음이다.
 
‘MSN 홈피’ 서비스는 ▶국내 최대 메신저인 MSN 메신저 및 MSN 메신저 아바타 서비스와 연동되며 ▶확장성이 뛰어난 안정적인 시스템 설계로 속도가 빠르고 ▶사진자동재편집 기능 등 강력한 멀티미디어 기능을 지원하며 ▶블로그형 오픈 네트워크 채택으로 사용자가 자신의 네트워크를 손쉽게 확장할 수 있는 반면 ▶다중 안전장치를 통해 사용자의 프라이버시를 보장하는 ▶업계 최초의 성장형 네트워크 커뮤니티 서비스이다.
 
‘MSN 홈피’의 가장 큰 특징은 하루 사용자 수 700만 명, 월 사용자 수 1,200만 명에 달하는 사용자를 확보하고 있는 국내 최대 메신저인 MSN 메신저와 연동된다는 점이 다. MSN 메신저를 통해 자신의 홈피는 물론, 메신저 버디 홈피의 변동사항까지 실시간으로 확인할 수 있다.
 
또한 기존 홈피 서비스의 문제점으로 지적돼 왔던 속도와 사진 기능을 대폭 개선했다. 확장성에 큰 비중을 두고 시스템을 설계했기 때문에 속도가 매우 빠르며, 사진자동재편집 기능을 갖추고 있기 때문에 용량이나 형식의 제한 없이 어떤 사진이라도 손쉽게 업로드할 수 있다. 또 사진앨범 열람 기능에 기존 서비스의 ‘펼침으로 보기’ 외에 ‘목록으로 보기’ 기능이 추가되어 많은 양의 사진도 잘 정리된 검색결과 목록처럼 한눈에 일목요연하게 파악할 수 있다.
 
‘MSN 홈피’는 다중의 안전장치를 마련함으로써 사용자의 프라이버시가 최대한 존중되도록 했다. ‘홈피 친구 추가’ 기능을 통해 원한다면 누구라도 친구를 삼을 수 있는 오픈 네트워크 방식을 채택하고 있는 반면, 게시판 및 사진앨범에서 게시물 등록 권한의 타인 허용 여부 및 허용 수준을 사용자가 직접 관리하도록 했다. 등록된 게시물의 공개 여부 및 공개 수준과 꼬리글 및 스크랩(퍼가기)의 허용 여부도 게시물 건마다 각각 설정할 수 있다. 또한 내 홈피를 방문한 사람을 확인할 수 있는 기능과 방문자의 홈피를 방문할 수 있는 기능을 제공하는 반면, 방문자가 자신의 방문 기록을 지울 수 있는 기능도 함께 제공한다.
 
‘MSN 홈피’만의 색다른 특징은 업계 최초로 시도되는 성장형 홈피 서비스라는 점이다. 홈피 주인과 홈피를 방문하는 사람들의 활동에 따라 홈피가 성장하며, 성장단계에 따라 구매가 불가능한 특별한 스킨(아이템)이 보상으로 제공된다. 최고단계인 5단계에 이르면 ‘츄아프런스’라는 이름의 ‘전설의 꽃’을 가질 수 있다.
 
이외에도, MSN 메신저 사용자가 자신의 대화명 변천사를 한눈에 파악할 수 있도록 최근 한 달 간 사용했던 메신저 대화명을 자동 보관해 주는 ‘대화명 스토리’ 기능이 무료로 제공된다. 기간의 제한 없이 특별히 간직하고 싶은 대화명은 유료 아이템인 ‘대화명 보관함’을 구매해 별도로 보관할 수 있다.
 
MSN 코리아 이구환 이사는 “최근 들어 인터넷 커뮤니티는 메신저와 블로그, 모바일 등과 연계되면서 Social Networking 서비스로 급속히 진화하고 있다”며, “MSN 홈피 서비스는 사용자의 실제 오프라인 인맥이 온라인으로 전환된 메신저 서비스를 기반으로 운영되기 때문에 인터넷에 자신의 영역을 만들고 이를 확장해 나가고자 하는 욕구를 가진 사용자들에게 기존의 유사 서비스들에 견주어 가장 신뢰도 높은 인적 네트워크를 제공할 것으로 기대한다”고 말했다.
 
한편, MSN은 ‘MSN 홈피’ 서비스를 조만간 모바일은 물론, MSN의 다양한 서비스들과 연동시켜 나간다는 계획이다.
신고
http://www.zdnet.co.kr/techupdate/trend/article.jsp?id=68463




C 개발자들의 숙원, 보안 강화「해법 보인다」







2004/04/16




C 개발자들이 오랜 기간 꾸준히 제기해 온 보안 강화 문제가 드디어 해결될 전망이다. MS가 비주얼 스튜디오 2005에서 보안을 강화한 새로운 C 런타임 라이브러리 루틴을 포함시키기로 한 것이다.








John McCormick (ZDNet Korea)
참여
원문보기






일부 C 런타임 라이브러리 루틴이 단순히 기능 위주의 루틴들보다 훨씬 안전하다는 것은 더이상 비밀이 아니다. 안전해 보이는 루틴에 버그와 보안 취약점이 존재한다는 것 역시 사실이다.



MS의 수석 보안 엔지니어 마이클 하워드가 최근 C를 더 안전하게 하기 위한 프로젝트가 어디까지 진행되고 있는지 밝혔다. 이 프로젝트의 첫번째 결과물은 strsafe.h로, 이는 지난 2002년 MS가 발표한 비주얼 스튜디오 닷넷 2003과 플랫폼 SDK 문자열 함수(string function)이다. MS의 비주얼 C++ 팀은 필자의 제안대로 C 런타임 라이브러리 함수의 보안 성능을 평가중이다. 그러나 이들은 개발자 개인이 할 수 있는 영역을 훨씬 넘어서는 일을 하고 있는데, 예를 들면 보안 향상을 위해 약 400개의 루틴을 재작성하기도 했다.



새로운 C 함수은 비주얼 스튜디오 2005을 통해 첫선을 보일 예정으로, 이 가운데 일부는 재컴파일을 통해 구식 코드를 향상시키게 될 것이다. 그러나 하워드의 현명한 지적처럼, 대부분 코드의 보안을 강화하기 위해서는 개선된 라이브러리만으로는 부족하다. 가장 안전한 함수과 지침을 실행하는 데에도 관심을 가져야 한다.



새로운 컴파일러는 구형 함수 이름들을 유지하게 되며, 일부 구형 함수들은 명료하게 개선될 예정이다. 그러나 개발자들이 구형 코드를 컴파일하려면 구형 코드를 변경하거나 컴파일러 세팅을 변경해야 한다. 새로운 컴파일러는 오래된 안전하지 않은 버전의 함수을 찾아내면 에러를 발생시키기 때문이다. 또한 비주얼 스튜디오 2005 컴파일러는 어떤 코드를 변경해야 하는지 화면에 알려주므로, 이름이 변경된 함수를 사용하는 이미 최상의 지침을 따르는 코드를 이용할 수 있게 하고, 구형 라이브러리에 존재하는 기존 문제를 수정해 보안을 강화한다.



이와 같은 새로운 라이브러리들은 아직도 개발, 테스트 과정이기 때문에 일부 변화는 불가피하다. 그러나 하워드의 발표 내용에는 몇가지 흥미롭고 중요한 변경사항이 포함돼 있다. 필자는 최종버전에서 다음과 같은 사항이 유사하거나 거의 동일한 형태로 반영될 것으로 예상한다.



  • Calloc 함수는 보다 많은 매개변수 체크할 수 있도록 강화될 것이며, 함수 이름은 기존과 동일하게 유지될 것이다.




  • 큰 골치거리였던 Strncast 함수는 ‘strncat_s’라는 완전히 새로운 함수로 거듭난다. 새로 추가되는 함수에는 strncpy_s 함수도 있는데, 이들 두 함수의 새로운 버전들은 다음과 같은 서명(signature)를 갖게 된다.
  • - 포인터가 아닌 에러코드 (errno_t)를 리턴

    - 목적 버퍼 (char *)

    - 목적 버퍼의 총 문자 수 (size_t)

    - 소스 버퍼 (const char *)

    - 소스 버퍼의 총 문자 수 (size_t)


    새로운 버퍼 카운트는 ‘목적 버퍼 카운트를 계속 계산할 필요’가 없다. 두 함수 모두 ‘항상 널터미네이트(null-terminate)된 문자열’이며 입력 매개변수 체킹 기능이 향상됐다. 또한 새로운 C++는 표준 템플릿 라이브러리를 수정/보완할 것으로 보인다. 현재 이 라이브러리는 반복자(iterator)를 잘못 사용하면 버퍼 오버런 오류가 발생한다.



    필자는 MS가 옳은 방향으로 가고 있다고 믿는다. 이처럼 런타임 라이브러리가 개선된다면 C 개발자들은 비주얼 스튜디오 2005를 심각히 고려할만 하다. MS는 이와 같은 변경사항을 이미 표준 단체에 제안한 바 있다. 30쪽 분량의 이 제안서(영문 PDF 자료임)에는 표준 함수 호출과 관련된 수많은 변경사항들이 자세히 기술돼 있다.



    오늘날 C는 마치 공룡과 같다. 놀랍만큼 뛰어난 활용성 아니라면 개발자 누구도 더 이상 사용하지 않을 것이다. 오랫동안 C에 대한 대규모 보안 업데이트가 필요했다는 점을 고려하면, 지금까지 MS의 행보는 옳은 방향을 향해 큰 걸음을 떼고 있는 것으로 보인다. 지금도 개발이 진행중이고 테스트를 할 수 있는 상황도 아니기 때문에 비주얼 스튜디오 2005에 대해 지지를 표시할 순 없지만, 지금까지 공개된 내용을 토대로 판단해 보면, 개발자들은 비주얼 스튜디오 2005을 이용해 더 쉽게 안전한 애플리케이션을 개발할 수 있을 것으로 보인다. @



    신고
    http://www.zdnet.co.kr/news/internet/article.jsp?id=68269&forum=1













    2004 키워드는「사이버 인맥 구축」









    명승은 기자
    (ZDNet Korea)
    width=68 height=14 border=0 align=center>참여






    2004/04/16






    지난 해 이라크전과 함께 인터넷에서 강력하게 부상한 흐름이 블로그였다면 2004년은 소셜 네트워킹(Social Networking)이 키워드가 될 것으로 보인다. ZDNet 등 주요 IT 외신들은 본격적인 경기회복 시기에 새로운 키워드로 부상하게 될 소셜 네트워킹에 투자자들의 관심이 집중되고 있다고 전했다.



    이 소셜 네트워킹은 ‘인맥 구축’, ‘사회 연결망’, ‘지인 네트워크’ 등으로 불리며 올해들어 국내외 언론에서 주목하는 이유는 세계적인 인터넷 기업인 구글(www.google.com)이 인맥 구축 사이트인 오컷(www.Orkut.com)이란 사이트를 시범적으로 운영하면서 내년 이후에 이 사이트를 구글 검색 사이트와 통합시키겠다는 계획을 발표하면서부터다.



    구글의 발표 이후 MS도 인맥 관리 프로그램을 내놓을 것임을 밝혔으며 야후도 자체적으로 인맥 구축 서비스에 대한 관심을 표명했다. 이 외에도 다수의 벤처 투자자들도 인맥 구축 사이트에 대한 기술과 서비스 개발에 투자하겠다고 나서면서 이 분야는 제 2의 닷컴 신화를 이끌 것이란 전망이 나오고 있다.



    소셜 네트워킹이란 직역하면 ‘사회 연결망’이라고 표현할 수 있지만 의미로 보자면 ‘친구 맺기’나 우리식대로 ‘인맥 쌓기’, ‘인맥 구축’ 정도로 해석할 수 있다.



    기존 중앙집중식 커뮤니티의 패러다임이 근본적으로 바꿀 것으로 예상되는 소셜 네트워킹 서비스란 것은 무엇일까.



    소셜 네트워킹은 이용하면 누가 어떤 주제로 어떤 사이트를 만들어주는 것이 아니라 인터넷에 내 영역을 만들어 놓고 일차적으로 가까운 내 친구들을 끌어모은다. 개인을 중심으로 된 서비스이기 때문에 내 영역에는 내가 가진 사상이나 생각, 일상 등을 솔직하게 기술할 수도 있고 이를 가까운 친구들에게 전파시킬 수 있다.



    여기서 내 친구들도 따로 나와는 별도의 가까운 친구들이 있다는 것이 핵심이다. 즉 A와 B가 알고 B와 C가 서로 알지만 A와 C가 서로 모를 때 B가 A와 C를 서로 소개시켜줄 수 있고 A가 B를 거쳐 우연하게 C까지 도달해 친구를 맺을 수 있게 된다. 이렇게 되면 A, B, C는 서로 친구가 될 수 있다. 이런 방식이 확대되면 몇 단계만 건너뛰어도 자기가 만나고 싶은 지인과 교류할 수 있는 연결 통로가 생긴다. 이른바 ‘한 다리 건너 아는 사람’들끼리의 네트워크가 형성되면서 그 네트워크는 무한대로 넓혀지게 된다.



    그런데 여기까지만 봐도 어디서 많이 보아 온 모델처럼 느껴진다. 바로 SK 커뮤니케이션즈가 운영하는 싸이월드(www.cyworld.com의 모습이다.



    싸이월드 신병휘 팀장은 “현재 전세계적인 키워드가 되고 있는 소셜 네트워킹은 이미 지난 98년부터 등장한 개념”이라고 말한다. 싸이월드가 처음 생긴 99년만 해도 전세계적으로 유명한 소셜 네트워킹 개념의 서비스들이 있었다는 것이다. 하지만 2000년 이후 수익 모델의 부재에 따라 사업 축소나 서비스 폐쇄의 길을 걷게 됐다는 것이 신 팀장의 설명이다.



    최근 들어 마치 새로운 개념처럼 다시 등장한 것은 전 세계적으로 커뮤니티에 대한 욕구와 이를 사업화시킬 수 있을 것이란 기대가 다시 커지면서 투자자들이 연이어 대규모 투자를 실시하고 있기 때문이다. 특히 마이크로소프트와 야후, 구글 등이 이 분야에 뛰어들 것이란 소문에 선점 효과를 노린 서비스 업체들이 우후죽순처럼 생기리라는 예상이다.



    구글의 오컷과 비슷한 사이트로 유렉스터(www.eurekster.com)는 소셜 네트워킹을 활용한 기술적 진보의 보습을 보여준다.



    예를 들어 내가 처음 검색을 해서 원하는 결과를 찾으면 나와 연결된 다른 사람들도 비슷한 패턴으로 검색할 것이란 가정 하에 그들에게 내가 최종적으로 선택한 검색 결과를 최우선적으로 보여주는 식이다. 이 같은 데이터베이스가 쌓이게 되면 각자 자기에게 최적인 검색을 손쉽게 찾을 수 있게 된다.



    우리나라에서도 딱히 소셜 네트워킹이란 단어를 차용해 만들어진 서비스는 최근 새로 오픈한 플레너스의 하이프렌(hifren.mym.net) 서비스를 들 수 있다. 이 서비스는 블로그처럼 개인 영역에 자신의 일상들을 기록할 수 있는 공간이 마련돼 있고 이 정보를 짝꿍, 인맥, 비공개, 모두 공개 등으로 단계별로 공개할 수 있다.



    최근 ‘카페’라는 이름을 놓고 다음(www.daum.net)과 신경전을 펼쳤던 NHN의 네이버(www.naver.com)도 블로그와 카페를 연동시키면서 초기적인 소셜 네트워킹 서비스를 하고 있다. 여기에 지난해 자동 주소록 소프트웨어 개발사인 쿠쿠커뮤니케이션을 인수하면서 올해 안에 이를 대폭 개선한 버전을 내놓고 본격적으로 소셜 네트워킹 분야에 뛰어들 채비를 서두르고 있다.



    이런 분위기에 어느 때보다 의기양양한 쪽은 싸이월드이다. 이미 미니홈피라는 개념을 성공시키면서 친구끼리 촌수를 맺어 서로 연결시킨다는 개념으로 650만 명의 회원을 확보한 데다 최근에는 하루에 3만 5000명에서 4만명 가량의 추가 회원이 등록을 하는 등 비로소 전성기에 진입했다는 자체 분석이다.



    신병휘 팀장은 최근의 싸이월드 붐에 대해 “소셜 네트워크의 특성상 처음에는 네트워크가 서로 이어지는 고리가 적고 지인 폭이 넓지 못해 비즈니스 모델로서 가치가 떨어지지만 일단 개인이 개인을 다단계 방식으로 끌어들이는 방식이기 때문에 탄력이 붙으면 폭발적으로 성장하게 된다”고 설명한다.



    이 때문에 사용자가 급속히 증가하고 각 개인끼리 서로 아는 사이로 묶여 있어 이를 이용한 기업 프로모션이나 연예인, 정치인 등의 개인 홍보가 이뤄져도 스팸메일과 같은 거부감이 없어 효과가 더 높다는 것이다. 싸이월드는 이같은 효과를 내다보고 기업에게도 개인과 같은 방식의 홈피를 제공하고 있다. 이들 기업 홈피는 자체적인 팬을 확보하고 있어 사이버 입소문의 진원지가 되고 있다. 최근 영화배우 '최성국'이나 정치인 한나라당 박근혜 대표의 경우에도 홈피를 이용해 사이버 지지자들을 확대해 나가고 있는 중이다.



    이런 점들 때문에 최근에는 일본이나 미국 등 전 세계에서 싸이월드를 벤치마킹하기 위해 문의전화가 줄을 잇는다는 것이 관계자의 말이다. 사실상 싸이월드가 다른 나라에서 본받을만한 사이트가 없는 것도 다른 나라에서는 같은 개념으로 시작해도 수익 모델 개발에 실패했기 때문이다. 싸이월드도 2003년 수익 모델에 대한 고민을 했지만 미니홈피라는 쉽고 편하고 아기자기하게 꾸밀 수 있는 개인 공간을 마련해준 것이 주효했다고 분석한다.



    최근 커뮤니티와 블로그의 만남이나 모바일 기능의 강화, 메신저 기능과의 연계 등은 모두 궁극적으로는 인터넷 커뮤니티의 근본적인 변화를 반영하는 기술적인 진보라고 평가할 수 있다.



    한 대학연구소가 여론조사전문기관에 의뢰해 한국인의 ‘사회 연결망’을 조사한 결과 ‘3.6’이라는 수치가 나왔다. 전혀 모르는 사이라도 서너 다리만 거치면 다 알게 된다는 뜻이다. 미국에서도 비슷한 연구를 1960년대 시행한 적이 있었다. 우리나라의 ‘다리’ 개념으로 보면 6다리를 거치면 아는 사람과 만난다고 한다. 사이버 세상에는 과연 몇 사람의 홈피를 거치면 전부터 아는 사람과 만나게 될까? @


    신고
    http://www.zdnet.co.kr/news/internet/article.jsp?id=68112





    「사이버 친척」만들기 붐

    ‘나랑 일촌 맺자.’ 사이버 문화 패러다임이 급속하게 지인 중심으로 재편되고 있다.
    이한나 기자 (매일경제) 참여
    2004/04/07    
    인터넷은 90년대 중반 인터넷이 막 소개됐을 때만 해도 낯선이들과 소통, 열린 공간 등이 관심이었지만 이제는 오프라인 네트워크와 닮은 방식으로 관계를 강화하는 수단으로 급부상하고 있다.

    최근 문화현상으로 급부상한 싸이월드 ‘미니홈피’가 대표적 사례. 불특정 다수에게 본인을 노출시키는 블로그 방식에서 발전해 ‘일촌맺기’ 개념을 통해 온라인 네트워크를 형성하고 강화하는 수단이 되고 있다.

    현재 싸이월드는 월 순방문자 수 1000만명(2월 코리안클릭 조사결과 기준)을 돌파해 인기를 모으고 있으며 회원 600만명이 ‘싸이질’이란 신조어를 만들어낼 정도로 본인 미니홈피 꾸미기에 빠져 있다.

    개인간 네트워크를 중심으로 만들어진 커뮤니티는 신뢰를 바탕으로 해서 만족도가 높아진다.

    외국에서도 지인 네트워크 서비스가 화두로 떠오르고 있다. 웹에 기반한 인적 네트워크를 이용한 미팅 서비스인 ‘프렌즈터닷컴’(Friendster.com)이나 ‘라이즈닷컴’(Ryze.com) 등이 인기다.

    최근 마이크로소프트 메신저 서비스 MSN의 정보·상용서비스 담당 유서프 메디 부사장은 블로그와 지인 네트워크 제품을 내놓을 계획을 발표했다.

    MSN은 현재 국내에서 하루 사용자만 700만명에 달하고 주1회 이상 접속하는 사람만 1800만명에 달하는 만큼 본격적인 지인 네트워크 서비스가 가미되면 폭발적으로 확산될 것으로 예상된다.

    검색분야 강자인 구글도 ‘오쿠트(Orkut)’라는 지인 네트워크 서비스를 개발, 검색 서비스와 통합할 준비를 하고 있다.

    국내 업체들도 싸이월드에 이을만한 히트작을 만들기에 고심한다. 플레너스 포탈사이트 ‘마이엠’은 지인기반 인맥 커뮤니티인 ‘하이프랜’(hifren.mym.net) 서비스를 시작했는데 이는 싸이월드 ‘일촌’ 개념에서 더 나아가 일촌을 맺은 사람(짝꿍)간 신뢰관계에 바탕해 이촌(짝꿍의 짝꿍)이 형성될 수 있도록 함에 따라 인맥이 확장될 수 있는 길을 연 것이 특징이다.

    NHN도 지난해 인수한 자동주소록 생성 소프트웨어 ‘쿠쿠커뮤니케이션’을 통한 네트워크 서비스를 올 상반기께 시작할 계획이다. 야후코리아도 개인화 검색을 강화한 것에 기반해 인맥기반 커뮤니티 서비스를 제공한다는 방침이다.

    닷컴 업계 관계자는 “과거 ‘아이러브스쿨’이나 ‘다모임’과 같은 지인 커뮤니티가 유행하다 사라졌듯 지인 네트워크도 흐름에 불과하다”고 평가하기도 한다. 그러나 스팸메일과 바이러스 유포 등 인터넷에서 불안요소가 늘어나면서 편하고 믿을 만한 지인 네트워크가 더욱 강화될 것이란 주장도 만만치 않다. @
    신고
    마소 2004년 4월달. 이달의 독자란 ( p 83 ) ( 직접 타이핑 )

    내가 빼앗긴 채 살고 있는 것은 무엇일까?


    소설책 읽을 시간에 새로운 C# 책 한 줄을 더 읽어야 한다고 생각했다. 게임에 신경쓸 시간에 개발출에 좀더 익숙해저여 한다고 생각했다.  코더가 아닌 프로그래머가 되기 위해, 아니 먹고 살기 위해 컴퓨터 외의 것을 신경쓰면 이 분야에서 도태될것 같은 불안한 마음이 있었다. 그래서 컴퓨터 외에는 무관심하다. 아니, 관심을 두지 않으려고 애써 노력했다. 우리나라에서 나만이 이렇게 하고 있을까? 아니 ' 개발자' 란 직함을 갇고 있는 사람만 이럴까? 헌전사상 초유든 말든 '대통령 탄핵' 또한 나와는 상관없는 일이라는, 바로 무관심 속에 그냥 지나갈 줄만 알았다.

    광화문 역 입구에서 양쪽으로 늘어선 의경들이나 그런 의경들과의 작은 마찰들로 인해 새삼 긴장도 됐지만 그런 감정은 잠시였다. 처음 만난 사이인데도 친근한 말투와 서로에 대한 배려, 그리고 그 사이 사이에 배어있는 하나의 목적으로 이루어진 공감대에 물드는 건 아주 잠깐의 시간이 소요될 뿐이었다. 주변에 나 같은 개발자가 또 있을까 싶어 손에 들고 있는 책이나 그들의 이야기에 귀 기울였지만 찾을 수 없었고, 순간 괜히 온건 아닐까란 생각도 들었다. "내가 여기에 왜 온 것일까?" 아무리 생각해봐도 며쾌한 답을 내리기가 힘들었다. 그리고 이내 그 질문은 "내가 왜 이렇게 살고 있을까" 로 옮겨갔다.  한가지 확실한 건 탄핵이 가결될 때의 국회 모습을 보고 숨쉬기가 어려웠다는 것 정도다.

    그날 광화문에 모인 사람은 어린 아이들부터 나이 지긋한 어르신까지1세대를 거쳐 2세대, 아니 3세대가 모인 느낌이었다. 누가 강요해서 참석한 건 아니란 사실은 참석해 본 사람이라면 느낄 수 잇는 분위기 였다. 여성 사회자는 "우리가 피땀 흘려 얻은 민주주의를 뺏길 수 없어" 라며 울분을 토해냈다. 나도 빼앗긴 걸 아닐까? 어쩌면 내가 그동안 무관심하게 살았던 것이 '끝없는 신기술 습득' 이란 이 분야의 생존법칙에 따라야 한다는 부담감 때문이 아닐지도 모른다. '끝없는 야근' 으로 회사가 앗아간 내 시간을 스스로 찾기 위한 노력초자 포기한 것이 주범이 아니었을까? IT 초등학교 경진대회를 앞두고 더 많은 입상자를 배출해 학원 좀 알려보겠다는 학원 원장의 의지 하나로 엄청난 라인의 코드를 외우는 아이들과 내가 별반 차이가 없었다는 걸 느꼈다.

    이내 날은 어두워지고 촛불을 밝히게 되면서 본격적으로 준비된 여러 행사가 시작되었다. 시위 현장에 처음 참석한 나로서는 대학시렁데 본 시위현장을 떠올려 봤을 때 왠지 부리부리하게 눈뜨고 꽉진 주먹을 높이 쳐들며 무시무시한 단어를 내 뱉는 줄만 알았다. 하지만 그것은 그냥 생각일 뿐이었다. 그날 과격한(?) 사람은 여성사회자와 나뿐이었다. 집으로 돌아오면서 남들 다가는 집회 한번 다녀온 것 뿐인데도 뭔가 큰일을 한 것같은 유아틱(?)한 기분이 드는것은 자제할 수 없었다. 추위에 떨고 배고픔에 속이 쓰렸지만 마음만은 크게 부풀릴수 있었던 자리였다.
    신고
    http://www.hani.co.kr/section-010100001/2004/03/010100001200403231910292.html

















    ■주민등록번호 수집금지 추진배경
    공인인증서로 본인확인 가능
    번호유출꺼려 도용 악순환
    외국선 주민번호 요구 안해


    우리나라에서는 인터넷 사이트 회원으로 가입하려면 반드시 주민등록번호를 입력해야 한다. 거부하면 회원으로 받아주지 않는다. 한국정보보호진흥원이 지난해 7월 448개 사이트를 조사했더니, 447곳이 주민등록번호를 입력하지 않으면 회원 가입을 할 수 없는 것으로 나타났다. 최근 확인해 보니, 나머지 한 곳도 같은 방식으로 바꿨다.



    인터넷 사이트 운영자들은 회원들의 주민등록번호를 수집하는 이유를 “본인 확인을 위해서”라고 설명하지만 정작 “인터넷을 이용하는 데 왜 본인 확인이 필요하냐”고 물으면 제대로 된 답변을 내놓지 못한다.


    하지만 네티즌들은 주민등록번호를 제공하는 것을 꺼림칙하게 생각하고 있다. 유출되거나 엉뚱한 목적으로 이용될 수 있다고 걱정한다. 정보보호진흥원이 지난해 10월 네티즌 500명을 대상으로 설문조사를 했더니, 응답자의 91.8%가 제공하기 꺼려지는 개인정보로 주민등록번호를 꼽았다.


    정현수 정보보호진흥원 개인정보침해신고센터 팀장은 “인터넷 사이트는 요구하고, 내 것을 제공하기에는 꺼림칙해하는 상황이 주민등록번호 도용 문제를 일으키고 있다”고 지적했다. 정보보호진흥원 설문조사에서도 12%가 타인 주민등록번호를 도용하고 있다고 응답했다.


    ■ 주민등록번호 도용을 막는 조처=인터넷 사이트의 회원 주민등록번호 수집을 금지시키기로 한 정보통신부 방침은 주민등록번호 도용을 막기 위한 것이다.


    김남철 정통부 정보이용보호기획담당 사무관은 “주민등록번호는 행정 편의를 위한 것이지, 인터넷 업체들의 회원 관리용이 아니다”라며 “도용을 막는 수단으로, 주민등록번호를 입력하지 않아도 회원 등록을 할 수 있게 하는 방안을 마련하고 있다”고 말했다.


    실제로 정보보호진흥원이 지난해 2~10월 개인정보침해신고센터에 신고된 개인정보 침해 사례를 분석한 결과를 보면, 56.4%에 이르는 4400건이 주민등록번호 도용과 관련된 것으로 나타났다. 정보보호진흥원은 “인터넷 사이트마다 회원 등록 때 주민등록번호를 요구하는 게 번호 도용을 부추기고 있다”고 풀이했다.



    정보보호진흥원이 지난해 10월 네티즌 500명을 대상으로 실시한 설문조사를 보면, 네티즌들은 인터넷 사이트나 서비스 회원으로 가입하기 위해 남의 주민등록번호를 도용할 때, 친구나 가족 것을 우선 생각하는 것으로 나타났다.


    비경험자 중에는 72.7%가 필요하다면 가족 것을 도용하겠다고 밝혔다. 61.8%는 주민등록번호 생성기를 통해 만들어서, 56.8%는 본의 아니게 알게 된 타인 것, 54.8%는 친구 것, 26.8%는 직장 동료 것을 이용하겠다고 응답했다.


    네티즌들이 흔히 경험하는 주민등록번호 도용 사례로는, 인터넷 사이트에 회원 등록 신청을 했을 때, 이미 등록돼 있다는 메시지가 나오는 경우다. 누군가가 주민등록번호를 도용해 회원 등록을 한 것으로 볼 수 있다.


    정통부는 인터넷 사이트 운영자들에게 회원들의 주민등록번호를 수집하지 못하게 하는 대신, 회원의 본인 확인이 필요하면 공인인증서를 이용하도록 권할 방침이다. 또 성인 인증이나 연령에 맞는 마케팅을 위해 필요한 경우에는, 생년월일을 받아 이용하도록 권하기로 했다.


    김 사무관은 “게임업체 넷마블이 정부의 권고를 받아들여 미성년자 회원을 등록할 때는 주민등록번호 대신 생년월일을 입력하게 하고 있는데, 서비스 제공에 아무런 문제가 없다”고 말했다.


    ■ 외국에서는?=우리나라의 주민등록번호처럼 국민에게 식별번호를 부여하는 나라는 많다. 하지만 한번 받은 번호는 평생 바꿀 수 없게 하면서 인터넷 사이트 회원 등록 때 입력하게 하는 곳은 우리나라밖에 없다.



    미국은 국민들에게 사회보장번호를 부여한다. 하지만 사회보장번호 공개는 법으로 금지돼 있다. 따라서 인터넷 사이트에서도 이를 요구하지 않는다. 사회보장번호를 제공하지 않는다고 인터넷 사이트 회원 등록이나 서비스 제공을 거부하지도 않는다.


    일본도 주민기본대장카드가 있지만, 이곳에 입력되는 주민표 코드의 민간 이용은 금지된다. 또 주민표 코드는 해당 주민의 신청에 따라 언제든지 변경할 수 있다.


    정현수 팀장은 “주민등록번호는 인터넷에 흩어져 있는 개인정보를 통합시키는 열쇠말 구실을 한다”며 “주민등록번호를 이용한 사생활 침해를 막기 위해서는 지금이라도 인터넷 사이트의 회원 주민등록번호 수집을 금지시켜야 한다”고 지적했다.


    김재섭 정보통신전문기자 jskim@hani.co.kr

    신고




    [유춘희의 IT 눈대목] 죽으라고 일만 하시는 분들에게 드림











    유춘희 (Golf for Women 편집장)

    2004/02/27











    align="left" valign="top" border="0" hspace="4">정보기술(IT) 기자 생활을 하면서 알고 지냈던 사람 중 한 분과 엊그제 만났다. 대기업 SI 업체 출신인 그는 우리나라 네트워크 산업의 산증인이라고 불러도 좋을 만큼 인정받던 사람이다. 기술자로서 네트워크에는 척척박사였다. 그런데, 다니던 외국계 회사에서 자의반 타의반 나왔다고 했다. 막상 나오고 보니 어찌해야 할지 몰랐단다. 닿고 닿아 필자와 연락이 된 것이다. 필자 역시 그와 최근에 만난 게 3년은 족히 넘었지 싶다.



    그는 “내가 헛살았다”고 말했다. 자신의 현재 처지를 얘기하고 도움을 청할 사람이 정말 없더라는 것이다. 오죽했으면 지금은 골프 잡지를 만들고 있는 나에게까지 연락을 하였을까. 술만 입에 댔다 하면 얼굴이 빨개지는 통에 술친구도 없다. 영업사원이 아니어서 밖의 사람들과 어울릴 기회가 없었다. 오로지 일밖에 몰랐다. 어렴풋한 기억이, 언젠가 축구 한일전을 보기 위해 저녁식사 겸 음식점으로 향할 때 그는 관심도 없다는 듯 회사를 지켰다.



    회사와 집밖에는 몰랐다니…



    그렇게까지는 생각을 못했는데 그는 회사와 집밖에는 몰랐다고 했다. 학교 다닐 때도 집과 학교밖에 몰랐다는 것이다. 대학교 들어와서 처음으로 영화 구경을 했다고 하니 누가 믿겠는가. 남들이 출근하기 전에 이미 회사에 나오고 별 특별한 일이 없으면 회사에서 일을 더 하고 집으로 갔다. 정말 회사와 집밖에 몰랐다! 이쯤 되면 그의 성격에, 아니 취향에 좀 문제가 있다고 해야 할지도 모르겠다.



    어찌 됐든, 지금까지 그를 지탱한 것은 바로 일에 대한 집착과 열정이었다. 그런 열정이 그를 전문가로 만들었을 것이다. 그나마 몇 안되는 친구도 만나지 않을 만큼 일에 몰두하는 그의 취향이 성공의 원동력이었다. 기술적으로 부족한 기자들에게 언제라도 정열적으로 조언을 해주고, 원고가 ‘빵꾸’나면 마감 몇 시간 전이라도 훌륭하게 메워주는 역할도 종종 해주었다.



    나와 얘기 도중 그는 손을 몹시 떨고 있었다. 손이 떨리고 온몸에 피곤이 몰려오고 기운이 떨어지는 증상, 갑상선 질환을 앓고 있다고 했다. 심할 때는 떨리는 손이 잔을 건드려 탁자 밑으로 떨어뜨린 적도 있고, 물을 마실 때 컵 안의 물이 출렁거릴 때도 있단다. 누가 볼까 봐, 자신이 약해 보이는 게 싫어서 회사 동료들과 멀리 떨어진 곳에서 차를 마시곤 했다는 얘기를 듣고 마음이 아팠다. 그가 회사를 그만둔 이유 중에는 그런 것도 있었다.



    나 자신이 그 사람과 같은 라이프스타일과 대인 관계로 살지 않아서인지, 나보다 연장자인데도 불구하고 그에게 오히려 나의 살아온 내용을 조언해주듯이 말했다. 언제나 멀게 느껴졌던 다른 사람들과 지금이라도 저녁도 함께 먹으며 우애를 쌓으라고 권했다. 그리고 걱정하지 말라고 했다. 성공을 위해 달려온 만큼 당신은 성공을 이뤘고, 지금 상황에 실망할 게 아니라 평정을 찾고 있는 과정이라고 생각하라고 했다. 그러나…



    회사에 충성을 다한 결과가 결국…



    “정말 지쳤어. 이젠 어디 취업하겠다는 생각조차 안해. 돈은 쓸 만큼 번 것 같고…” 그리고 “지금이라도, 이제까지 만나지 못한 사람들 하나씩 만나고, 골프도 배워야겠다”고 덧붙였다. 그러고는 좋은 골프클럽 좀 추천해주고 골프에 관해서 도움 좀 달라고 지나가는 듯이 말했다. 이제야 그는 주위를 둘러보며 인생에 관심을 가져야 할 다른 것들이 많다는 사실을 깨달은 것처럼 보였다.



    지금 그는 일을 떠나, 세상과 소통하는 방법을 배우려고 한다. 이제까지 외부로부터 자신을 차단시켜왔던 그가, 이제 어딘가에 열정적으로 집중하려고 한다. 그게 골프가 됐든, 친구들이 만든 술자리에 적극적으로 나가는 것이든, 자신이 자리를 만들어 아는 사람을 부르든 간에. 바깥 세상을 열었다 닫았다 하는 방법을 빨리 체득해서, 그의 인생이 가을에서 봄으로 바뀌었으면 하는 바람이다.



    올림픽 유도 경기에서 금메달을 딴 선수가 이런 얘기를 한 적이 있다. “꼭 이겨야 되겠다는 생각보다 매트 위에서 경기를 즐기겠다는 생각으로 임했다”고. 참 어려운 얘기다. 내 가족의 생계를 위해 회사와 사장의 명령이기에 어쩔 수 없이 하는 일은 당장 나에게 도움이 되지 않는다. 가족과 친구들까지 돌보지 못하면서 일에 빠지지는 말자.



    만약 지디넷 독자들 중에 회사에 충성을 다한 결과가 이 사람처럼 나타났다면 어떻게 할 텐가. 돈을 벌었다는 것 빼고. 아니 돈을 벌었다고 쳐도. 직접적인 원인이었는지는 몰라도 그는 병까지 얻었다. “당신이 이제까지 회사에서 달성한 여러 가지 것들을 자랑스러워해야 하시라”는 것뿐 누가 그걸 알아줄까. 그의 육체적 노동과 정신력 노력들, 덧붙여 그의 독특한 인간 관계는 그에게서 너무 많은 것을 앗아갔다.



    도대체 우리 직장인들이 일을 ‘즐기면서’ 할 수 있는 날은 언제나 올까. 진정한 삶의 의미를 찾으려면 일과 사회 생활을 적절하게 병행할 줄 알아야 하는 것 같다. @
    신고
    ZDNet : 마이크로스프트웨어 에서 읽은 내용임.














    S/W 개발 방법론의 반항아「익스트림 프로그래밍」














    전통적인 소프트웨어 개발 방법론과는 달리 문서를 강조하지 않고 변경을 장려하며, 개발 초기부터 테스트를 병행할 것을 강력히 권고하는 새로운 방법론이 있습니다. 바로 '익스트림 프로그래밍(eXtreme Programming ; XP)'이라는 방법론으로, 우리나라에서는 대략 3년 전부터 관심을 끌기 시작했습니다.











    김기주 (마이크로소프트웨어)

    2004/02/16














    컴퓨터가 발명되고 소프트웨어가 개발되기 시작한 이래로, 시간이 흐르면 흐를수록 소프트웨어는 점점 더 그 규모가 커지고 복잡해지기만 합니다. 초창기에는 컴퓨터 시스템 개발비용의 대부분이 하드웨어 개발비였으나, 요즘은 하드웨어 개발비용보다 소프트웨어 개발비용의 비율이 더 높다고 합니다. 소프트웨어 개발의 비중이 높아지면서 소프트웨어 개발 방법에 대해서 많은 사람들이 고민했고, 그 결과로 여러 가지 소프트웨어 개발 방법론이 제안됐습니다.



    소프트웨어 개발의 각 단계를 나타내는 라이프사이클(lifecycle) 모델로 대표적인 폭포수 모델(waterfall model, <그림 1>)도 제안됐고, 요즘은 이를 개선한 나선형 모델(spiral model, <그림 2>)이 많은 지지를 받고 있기도 합니다. 폭포수 모델은 소프트웨어 개발의 각 단계를 구분했고, 각 단계에서 해야 하는 일을 명확히 했습니다. 하지만 개발 과정을 단순하게 나타내는 단점이 있고, 이전 단계에서 한 일에 대한 오류가 나중 단계에서 밝혀질 경우 이를 바로잡기 위한 작업을 나타내지 못하는 문제가 있습니다.



    <그림 1> 폭포수 모델
    <그림 2> 나선형 모델


    이에 비해 나선형 모델은 전체 시스템이 갖춰야 할 특성을 단계별로 나누어, 각 단계별로 폭포수 모델에서 제시한 것과 비슷한 단계들을 밟아 조금씩 시스템의 완성도를 높여가는 방식의 소프트웨어 개발 과정을 그리고 있습니다. 나선을 따라 한 바퀴 돌 때마다 이전 단계에서 미흡했던 부분을 보완할 수 있고, 개발 일정을 모두 마쳤을 때에만 구현된 소프트웨어를 볼 수 있었던 폭포수 모델과는 달리, 각 바퀴를 돌 때마다 부분적으로 완성된 시스템을 볼 수 있다는 장점이 있습니다.



    익스트림 프로그래밍

    우리나라에서는 대략 3년 전부터 관심을 끌기 시작한 것으로 보이는데요, 이 방법론이 만들어진 것은 1990년대 중반이라고 합니다. 위원회에서 만들어진 알골(ALGOL)보다 개발자에 의해 만들어진 C 언어가 더 널리 쓰이게 된 것을 생각하면, 연구소 등에서 만들어진 기존의 다른 방법론보다 아마도 회사에서 경험적으로 만들어진 익스트림 프로그래밍(XP)이 개발자들에게 좀 더 가깝게 다가올 것 같기도 합니다. 지금부터 XP에 대해서 알아보겠습니다.



    1996년 켄트 백(Kent Back)과 워드 커닝험(Ward Cunningham)은 함께 다임러 크라이슬러 프로젝트를 진행하면서 새로운 소프트웨어 개발 방법을 정리하게 되는데, 그것이 XP 방법론입니다. XP는 고객이 원하는 소프트웨어를 고객이 원하는 시기에 제공하는 것을 목표로 하며, 프로젝트 막바지에도 나올 수 있는 요구사항 변경에 더욱 잘 대처할 수 있도록 합니다.



    소프트웨어 프로젝트를 개선하기 위해 켄트 백은 네 가지 요소가 중요하다고 했는데, 이것은 의사소통(communication), 단순성(simplicity), 피드백(feedback), 그리고 용기(courage)입니다. XP 개발자들은 고객 및 동료 개발자들과 의사소통을 잘 해야 하고, 개발하는 소프트웨어에 대해 개발 첫 날부터 유닛 테스트를 통해 피드백을 받습니다. 개발 중인 시스템을 최대한 빨리 고객한테 보여줌으로써 고객들이 원하는 변경 사항을 빨리 도출할 수 있으며, XP 개발자들은 이러한 기초 위에서 요구사항이 계속 바뀌더라도 용감하게 나아갈 수 있습니다.



    <그림 3> 전통적인 변경 비용 곡선
    <그림 4> 켄트 백의 변경 비용 곡선


    지금까지 XP의 탄생과 중요시하는 요소(value)에 대해 알아보았습니다. 이제부터 XP의 대표적인 작업들을 따라가며 XP가 구체적으로 어떻게 이뤄지는지 알아보겠습니다.



    <그림 5> 익스트림 프로그램 프로젝트


    유저 스토리

    XP를 이용해서 프로젝트를 시작한다면 먼저 유저 스토리(user story)를 모아야 합니다. 유저 스토리는 일종의 요구사항(requirement)입니다. 폭포수 모델이나 나선형 모델에서 ‘Requirements Process’나 ‘Software Requirements’ 단계를 거치는 것과 비슷합니다. 유저 스토리는 UML(Unified Modeling Language)의 유스 케이스(<그림 6>)와 같은 목적으로 만들어지지만 형식이 없고(informal) 고객에 의해 작성된다는 것이 다릅니다.



    <그림 6> 유스 케이스 다이어그램


    유저 스토리는 시스템이 고객을 위해 해야 하는 일들을 담고 있고, 유저 인터페이스 외의 요구사항도 포함할 수 있으며, 개발자의 말이 아니라 고객의 말로 쓰여야 합니다. 유저 스토리를 가지고 개발 일정(release plan)을 잡게 되고, 뒤에 설명할 승인 테스트(acceptance test)를 만드는 토대가 됩니다.



    유저 스토리가 전통적인 소프트웨어 개발 방법론의 요구사항 명세(requirement specification)와 크게 다른 것은 유저 스토리에는 요구사항 명세처럼 세세한 것까지 적지 않는다는 것입니다. 유저 스토리에는 그것을 구현할 때 얼마나 걸릴 것인가를 예측할 수 있을 정도로만, 그것의 구현에 있어 주요한 어려움(risk)이 어떤 것이 있을지를 살펴 볼 수 있을 정도로만 적으면 됩니다.



    구현하기 위해 필요한 세부사항은 해당 유저 스토리를 구현할 때 고객을 만나 다시 들으면 된다는 것이죠. ‘시간과 돈이 충분한 프로젝트는 없다’는 말이 있습니다. 주어진 고객의 요구사항을 모두 구현한다는 것이 거의 불가능하다면, 구현하지도 않을 요구사항을 자세히 명세하느라 시간을 낭비하느니 간략하게 적어서 전체 일의 크기만 가늠하고, 실제 구현할 것만 그때그때 자세히 알아보는 것도 좋은 생각인 것 같습니다.



    스파이크 솔루션

    유저 스토리가 만들어지면 그 가운데 어려워 보이는(risky) 문제에 대해 스파이크 솔루션(spike solution)을 만듭니다. 스파이크 솔루션은 기술적 또는 설계상의 어려운 문제를 해결하기 위한 것입니다. 스파이크 솔루션은 숨어 있을 수 있는 문제를 찾아내기 위한 아주 간단한 프로그램입니다.



    처리해야 하는 문제 외의 다른 조건들은 모두 무시하고 프로그램을 만듭니다. 대부분의 스파이크 솔루션은 계속 두고 쓸 정도로 좋지는 않으므로 조만간 짜야 합니다. 스파이크 솔루션을 만드는 목적은 기술적인 문제를 줄이고 유저 스토리를 가지고 추정한 개발 일정에 대한 신뢰도를 높이는 것입니다.



    주기 계획

    각 주기가 시작될 때마다 주기 계획 회의(iteration planning meeting)를 합니다. 각 주기는 1~3주 정도입니다. 각 주기에 처리할 유저 스토리는 고객이 고릅니다. 고객에게 가장 가치있는 부분을 가장 먼저 만들기 위함입니다.



    처리할 유저 스토리는 이를 구현하기 위한 프로그램 과제(programming task)로 나눠집니다. 유저 스토리를 고객의 말로 적는 데 비해 과제는 개발자의 말로 적습니다. 각 과제를 개발자에 할당하고 소요기간을 예측하게 되는데, 같은 일이라도 소요기간은 사람마다 다를 수 있기 때문에 예측은 반드시 담당 개발자가 합니다.



    각각의 과제는 하루에서 사흘까지 걸리게 됩니다. 하루가 안 걸리는 과제는 몇 개를 묶어서 하나로 만들고, 사흘보다 더 걸리는 과제는 더 잘게 나눕니다. 각 주기에 할 일이 너무 적거나 너무 많으면 처리할 유저 스토리를 더하거나 뺍니다. 유저 스토리를 가지고 예측했던 소요시간은 과제를 가지고 예측한 것으로 보완합니다.



    계획에 포함되어 있지 않는 기능을 추가하려고 하면 안됩니다. 계획되지 않은 기능을 추가하려다보면 계획된 개발 기간을 초과하게 됩니다. 추가하고 싶은 기능이 있으면 그에 대한 유저 스토리를 추가하고 다음 주기를 기약합니다.



    <그림 7> Iteration


    주기 개발

    각 주기의 길이를 비슷하게 유지하는 것이 좋습니다. 각 주기의 길이가 일정하면 프로젝트 진행에 대한 측정과 계획이 쉽고 믿음직스럽게 됩니다. 프로그램 과제를 미리 스케쥴하면 안됩니다. 각각의 주기에 해야 할 일은 해당 주기가 시작될 때 주기 계획 회의를 통해 결정합니다. 고객의 요구사항은 계속 바뀌기 때문에 미리미리 계획해두지 않는 것이 좋습니다.



    주기 데드라인을 엄수해야 합니다. 주기 중 진척상황을 확인해서 데드라인을 넘길 것 같으면 주기 계획 회의를 다시 소집해서 일부 과제를 빼야 합니다. 다른 과제를 구현 안 된 채로 남기더라도 고객이 고른 가장 중요한 과제에 집중합니다.



    승인 테스트

    주기가 시작되면 주기 계획 회의에서 골라진 유저 스토리를 가지고 승인 테스트를 만듭니다. 여기서도 고객이 참여해 구현될 코드를 검사할 시나리오를 만들게 됩니다. 승인 테스트는 블랙박스 테스트입니다. 고객은 승인 테스트가 올바르게 만들어졌는지를, 그리고 실패한 테스트의 중요도를 확인합니다. 승인 테스트는 또한 나중에 리그레션 테스트(regression test)로도 쓰입니다.



    승인 테스트를 통과해야 유저 스토리에 대한 처리가 완료됩니다. 승인 테스트를 자동화해서 자주 테스트하는 것이 좋습니다. 승인 테스트를 통과한다는 것은 고객의 요구사항을 만족한다는 뜻입니다.



    유닛 테스트

    개발을 하다보면 종종 한 두 사람이 맡고 있는 부분이 늦어져서 전체 프로젝트를 지연시키는 수가 있습니다. 이 경우 다른 사람들이 도와줄 수 있다면 좋을 것입니다. XP에서는 집단 코드 소유(collective code ownership, <그림 8>)라고 하는데, 필요하면 누가 어떤 코드든지 고친다는 뜻입니다. 이렇게 하기 위해서는 유닛 테스트(unit test)가 필요합니다.



    유닛 테스트는 XP의 초석(cornerstone) 가운데 하나입니다. 유닛 테스트는 자주 실행할 수 있도록 자동화돼야 하고(JUnit과 같은 유닛 테스트 프레임워크를 이용하기도 합니다), 모든 모듈을 테스트할 수 있도록 만들어져야 합니다. 그리고, 될 수 있으면 코드를 작성하기 전에 유닛 테스트를 작성하는 것이 좋습니다. 유닛 테스트는 코드와 함께 코드 저장소(code repository)에 저장됩니다.



    프로젝트를 진행하게 되면 언제나 시간이 모자라기 때문에 유닛 테스트를 만드는 시간이 아깝게 느껴지기 쉽습니다. 하지만 자동화된 유닛 테스트는 문제점을 찾아내는 데 있어서 훨씬 더 많은 시간을 절약해 주는 것으로 알려져 있습니다.



    <그림 8> 집단 코드 소유


    찻길 한복판으로 걸어가면 사고가 난다

    얼마 전까지만 해도 XP는 문서작업을 강조하지 않고, 컴퓨터 한 대를 놓고 두 사람이 짝 프로그래밍(pair programming)을 하며, 리팩토링(refactoring)이란 방법으로 끊임없이 코드를 고치는 개발 방법론으로 알고 있었습니다. 물론 이런 것들도 XP의 요소이기는 하지만 이것보다는 앞에서 얘기한 전반적인 절차가 XP를 더 잘 설명하는 것 같습니다.



    XP는 애자일 방법론(agile methodology) 가운데 하나입니다. 애자일 방법론은 고객에게 고객이 원하는 소프트웨어를 빨리 전달하는 것을 목표로 합니다. 1~3주 내에 구현할 수 있는 수많은 요구사항(유저 스토리) 가운데 고객이 가장 중요하게 생각하는 것을 먼저 구현합니다. 시간이 모자라면 유저 스토리 가운데도 고객이 가장 중요시하는 과제를 먼저 구현합니다.



    프로젝트가 예측한 시일 안에 끝날 수 있도록 1~3주마다 진행상황을 점검하고 다음 1~3주 동안 할 일을 계획합니다(주기 계획 회의). 유닛 테스트를 통해 구현된 코드가 유저 스토리를 만족한다는 것을 확실히 합니다. 유닛 테스트를 이용함으로써 틈틈이 리팩토링을 통해 코드의 질도 높일 수 있습니다.



    짝 프로그래밍은 개발자 사이에 의사소통을 원활히 하는 한 방법이고, 코드와 동떨어지게 되거나 그렇지 않아도 읽어 볼 사람이 없는 문서라면 만들지 않습니다. 심지어 요구사항 분석이나 구현 일정도 당장 구현할 내용이 아니라면 자세히 만들지 않습니다. 요구사항은 종종 바뀌고 미리 만든 계획은 쓸모없어지기 때문입니다.



    하지만 XP를 도입하고자 할 경우 주의해야 할 것들이 있습니다. 사람이란 원래 편하고 쉬운 것을 택하고 불편하고 어려운 것은 버리고자 하는 경향이 있기 때문에, 문서를 만들지 않는다든지, 미리미리 계획하지 않는다든지, 세세하게 설계하지 않는다든지 하는 것은 받아들이기 쉽지만, 코드를 작성하기 전에 유닛 테스트를 만든다든지 틈틈이 리팩토링을 한다든지, 고객과 자주 만나 주기 계획 회의를 한다든지 구현이나 승인 테스트를 위한 세부 스펙을 정한다든지 하는 것은 등한시하기 쉽습니다.



    예전에 어떤 무술 영화에 이런 말이 나옵니다. “길 이쪽 편으로 다니면 안전하고, 길 저쪽 편으로 다녀도 안전하다. 하지만 찻길 한복판으로 걸어가면 사고가 난다.” 기존의 방법론을 제대로 사용해도 효율은 떨어질지 모르지만 안전하게 프로젝트를 수행할 수 있고, 새로운 방법론을 제대로 익혀 사용해도 프로젝트를 안전하게 수행할 수 있습니다. 하지만 새로운 방법론을 어설프게 따라하다가는 프로젝트를 위험에 빠뜨리게 됩니다.



    시간이 모자랄 때 구현하지 않게 될 지도 모를 부분을 미리 자세히 설계해 둘 필요가 없다는 말이지 스펙이 닥치는 대로 일단 코딩부터 하고 보면 된다는 것은 아닙니다. 읽지 않을 문서를 만드느라 시간과 노력을 낭비하지 않는 대신 소스 코드에 충실한 코멘트를 달아야 합니다. 함께 일하는 사람이 꼭 읽어야 할 문서가 있다면 반드시 만들고 언제나 소스 코드와 일치하는 정보를 지니도록 갱신해야 할 것입니다. 참고자료를 보면 XP를 도입하고자 하는 사람들이 주의해야 할 사항들이 잘 정리되어 있습니다.



    새로운 방법론을 대할 때에는 확실히 공부하고 정말 중요한 것이 무엇인지 잘 생각해서 받아들여야 합니다. 개발 일정에 쫓겨 프로젝트에 대한 통제력을 잃고 있다면, XP와 같은 새로운 방법론도 공부해 보고 현재의 개발 관행에 대해서도 다시 한번 돌아보기 바랍니다. @





    신고
    ZDNET [박민우의 e-Simple] 디지털 컨텐트에서 디지털 자산 관리로?



    http://www.zdnet.co.kr/anchordesk/todays/mwpark/article.jsp?id=67055&forum=1
















    [박민우의 e-Simple] 디지털 컨텐트에서 디지털 자산 관리로?











    박민우 (메타와이즈 사장)

    2004/02/11











    align="left" valign="top" border="0" hspace="4">‘디지털 컨텐트’란 무엇일까? 사전에서 디지털 컨텐트에 대한 정의를 찾아보면 다음과 같다.



    "인터넷이나 컴퓨터 통신 등을 통하여 제공되는 각종 정보나 그 내용물"



    백과사전에서 ‘디지털 컨텐트’를 찾아보면 좀 더 구체적으로 설명하고 있다.



    "유무선 전기 통신망에서 사용하기 위하여 문자·부호·음성·음향·이미지·영상 등을 디지털 방식으로 제작해 처리·유통하는 각종 정보 또는 그 내용물을 통틀어 이르는 개념이다. 컨텐트는 본래 문서·연설 등의 내용이나 목차·요지를 뜻하는 말이었다. 그러다 정보통신 기술이 빠르게 발달하면서 각종 유무선 통신망을 통해 제공되는 디지털 정보나 그러한 내용물을 총칭하는 용어로 널리 쓰이게 되었다."



    이제는 거의 일반 명사화 된 디지털 컨텐트란 용어를 다시 되새기는 이유는 디지털 자산(Asset)에 대한 설명을 하기 위함이다. 사전적 의미를 빌리지 않더라도 디지털 컨텐트는 이미 우리 주변에서 생활의 일부가 되었다. 그리고 비용을 지불하고 컨텐트를 구매하는 것이 이제는 낯설지 않게 되었다.



    유선과 무선에서 디지털 컨텐트에 대해서 비용을 지불하는 방식의 차이가 있다. 유선의 경우 정액제가 대부분을 차지한다. 월사용료를 지불하고 해당 컨텐트를 무제한으로 이용하는 방식이다. 각종 텍스트로 된 컨텐트뿐만 아니라 이미지, 동영상, 음악 스트리밍까지 보편화된 컨텐트 타입들이다. 하지만 무선에서는 정액제 보다는 건당 과금이 주류를 이룬다. 그림친구, 벨소리, 컬러링, 게임 등이 그렇다. 즉 유선에서는 월사용료를 내고 컨텐트를 임대하는 형식으로 서비스를 받고 있지만 무선에서는 파일을 비용을 지불하고 소유(보통 컨텐트 유효기간이 들어있으므로 일정기간 소유하게 됨)하게 되는 방식이므로 디지털 자산 관리는 무선에서 매우 중요한 화두가 될 것으로 보인다.



    그렇다면 디지털 자산이란 무엇인가?

    필자가 얘기하고자 하는 디지털 자산의 개념은 무선에서 컨텐트를 건당 과금으로 구매를 하면서 자연스럽게 생기게 된 소비자의 요구사항의 한 형태라 말할 수 있다. 예를 들면 사용자가 500원을 주고 벨소리를 다운 받게 되면 다운 받은 벨소리는 디지털 컨텐트이자 본인의 디지털 자산이기도 하다. 이렇게 비용을 지불하고 구매한 개개의 파일들은 라이선스 문제가 해결된 개인 소유의 자산인 것이다.



    하지만 디지털 컨텐트 유통을 맡고 있는 무선 포탈 사이트들과 이동통신사들은 이렇게 개인들의 디지털 자산이 된 디지털 컨텐트에 대한 인식이 매우 부족한 것이 현실이다. 비용을 지불하고 구매한 벨소리가 휴대폰의 용량이 부족하여 더 이상 다운 받을 수가 없게 되었을 경우 사용자는 휴대폰의 다른 벨소리나 또는 게임과 같은 기 구매된 디지털 자산을 삭제해야 한다.



    하드웨어의 한계로 인해 스스로 자산을 소멸시키는 것에 대해서는 이의가 없다. 하지만 동일한 컨텐트를 사용자가 필요시에는 재구매를 해야 한다는 사실이다. 컨텐트 유통을 맡고 있는 서비스 업체에서는 기 구매한 사용자임을 이미 알고 있음에도 불구하고 여러가지 비논리적인 핑계로 자산에 대한 권리를 인정하지 않고 있는 것이다.



    물론 각종 휴대폰 제조사에서 디지털 컨텐트들(MOD, VOD 등은 현재 제외)을 백업 받을 수 있는 PC용 솔루션을 제공하고 있다. 하지만 대부분의 솔루션들이 휴대폰 제조사에 종속적이며 해당 업체에서 제공하는 PC-휴대폰 케이블을 이용해야만 한다. 하지만 이 케이블을 이용하기 위해서는 적지 않은 인내와 IT 지식이 필요하다.



    앞으로는 점점 컨텐트에 대한 소비욕구와 시장이 커지면서 디지털 자산 관리에 대한 필요성도 높아질 것으로 보인다. 많은 제조사들이 쉽고 편하게 디지털 자산을 관리 할 수 있는 도구를 제공하고 있지만 필자는 궁극적으로 컨텐트 제공사와 컨텐트를 유통하는 이동통신사에서 책임감을 가지고 지원을 해야 된다고 생각한다.



    이미 대부분의 멀티미디어 컨텐트들은 단말기에 종속적이기 보다는 이동통신사에 종속적인 상태이다. 016용 벨소리와 011용 벨소리는 호환이 될 수 없지만 같은 011 번호 사용자들은 삼성 휴대폰이든 큐리텔 휴대폰이든 큰 문제가 없다. 따라서 디지털 자산에 대한 관리도 이동통신사 무선인터넷 서비스 별로 관리 돼야 한다.



    디지털 자산에는 비용을 지불하고 구매한 디지털 컨텐트도 해당이 되지만 본인의 주소록, 이메일, 카메라폰 사진들까지도 자산으로 볼 수 있으므로 제한된 저장 공간의 한계를 가지는 휴대폰은 고질적인 문제를 안고 갈 수 밖에 없는 상황이다.



    물론 고용량의 휴대폰들이 출시가 되겠지만 하드웨어 비용 상승에 대한 부담도 간과할 수는 없다. 현재로서 가장 좋은 방법은 컨텐트를 유통하는 무선포탈 서비스 업체들이 이미 구매한 사용자에 대한 히스토리를 활용해 동일한 컨텐트를 재구매시에는 추가 비용을 지불 하지 않도록 구매 시스템에 대한 수정 변경이 이루어져야 한다. 비용을 지불하지 않은 주소록, 일정, 이메일, 사진들은 해당 이동통신사에서 WAP 디스크와 같은 형태로 휴대폰 내 디지털 자산들을 웹사이트나 PC로 옮겨줄 수 있도록 하는 방법을 제공해 주어야 한다.



    이미 이동통신 시장은 음성통화 시장에서 무선컨텐트 시장으로 많은 전환이 이루어진 상태이다. 이동통신사는 통화품질 뿐만 아니라 소비자의 디지털 자산에 대한 권익까지 보호해주고 지원해 줄 수 있어야 진정한 무선 컨텐트 유통 서비스 기업으로 거듭날 수 있을 것이다. @


    신고

    + Recent posts