개발2006.06.01 01:21

Year 2038 problem? 2038년에 무슨 문제가 있다는 것일까?

Millennium bug(Year 2000 problem, Y2K Problem, Y2K bug)라는 말은 한번쯤 들어봤을 것이다. 뉴스에서도 종종 떠들어댔으니까.

Millennium bug는 컴퓨터 소프트웨어에서 2000년을 1900년으로 잘못 표현하는 현상을 얘기하는데, 이는 시각을 표현함에 있어 하위 두자리만 기록했기 때문에 생기는 문제다. 즉, 2000년을 00년으로 기록하여 1900년을 의미하는 00년으로 인식이 된다는 얘기다. 개인이 기록한 게시물의 등록시간 정도야 틀려도 큰 지장이 없겠지만, 적금만기날짜나... 뭐 그런 중요한 시각(딱히 생각나는게 없어서 예시가 어정쩡하네...)이 잘못 기록된다면 문제가 심각할 것이다.

그러면 Year 2038 problem이란 무엇인가?
이 문제는... computing 분야에서 time 데이터를 POSIX time 방식으로 표현하는 데서 기인한 문제다. POSIX time representation은 서기 1970년 1월 1일 00:00:00(rTC)으로부터 몇 초(second)가 흘렀는지를 기록하는 방식인데, 대부분의 32-bit 시스템에서는 이 값을 32-bit signed integer 형식으로 기록한다. 32-bit signed integer가 기록할 수 있는 가장 큰 양수는 2147483647 (2^31 - 1)이다. 그럼 계산을 시작해보자.

1년 = 365일, 1일 = 24시간, 1시간 = 60분, 1분 = 60초.
압축해보면, 1년 = 31536000초가 된다.

그러면 2147483647를 31536000으로 나누면 68.096 정도가 되는데, 이는 POSIX time이 1970년으로부터 68년정도(2038년)까지만 표현할 수 있다는 얘기가 된다. 엄밀히 따지면 2038년 1월 19일 03:14:07(UTC)까지다. 따라서 2039년에 태어난 사람의 생년월일을 32-bit signed integer로 기록하면 1902년(1970 - 68)이라는 말도 안되는 출생년도로 표기될 수도 있다.

그럼 이 문제를 어떻게 해결해야 하는가? 정답은 아직 만만치가 않다. Time 데이터를 32-bit unsigned integer나 64-bit 형식으로 표현하면 되긴 되는데, 기존에 32-bit signed integer로 time 데이터를 다루던 소프트웨어나 시스템에서는 호환성 문제나 기타 등등의 문제로 인해 또다른 문제가 발생한다. (자세한건 묻지 마시라!)

아직 32년정도의 여유가 남아있는데, 그 사이에 똑똑한 사람들이 해결방안을 제시해줄거니까 큰 걱정은 안해도 된다. 하하하...

참고로 time 데이터를 64-bit unsigned integer 형식을 사용하면 292,277,026,596년 12월 4일 15:30:08 (UTC)까지 표현할 수 있단다. 그러면 292,277,026,550년쯤에 또 문제를 제기하고... 뭐 어쨌든 그 때는 128-bit를 쓰던가... 살아있는 친구들이 해결하라 그래!

참고:

Posted by roguebean
소식2006.05.19 01:33

iCdocs는 web에서 MS office 문서를 보여주는 ThinkFree Office의 openAPI다.

iCdocs의 사용법은 크게 두가지로 나뉜다.
첫번째는 웹페이지에 tag를 삽입하여 문서를 publishing하는 방법인데, 다음과 같이 보여진다.

Download를 클릭하면 해당 문서를 download할 수 있고, View를 클릭하면 해당 문서를 볼 수 있다. 웹 페이지에 들어갈 tag는 다음과 같이 쓰기가 복잡하니까 iCdocs의 publishing page를 활용하자.

< script language="javascript" xsrc="http://icdocs.thinkfree.com/js/snippet.js" mce_src="http://icdocs.thinkfree.com/js/snippet.js" > < /script > < div style="margin-right:10px;" > < img xsrc="http://icdocs.thinkfree.com/images/icdocs/icon_ppt.jpg" mce_src="http://icdocs.thinkfree.com/images/icdocs/icon_ppt.jpg" border="0" > < /div > < div style="line-height:20px;" > < a xhref="http://roguebean.net/project/test/apod.ppt" mce_href="http://roguebean.net/project/test/apod.ppt" > Download < /a > < br / > < a xhref="javascript:void(window.open(getViewerURL('http://roguebean.net/project/test/apod.ppt','SHOW_VIEWER')));" mce_href="javascript:void(window.open(getViewerURL('http://roguebean.net/project/test/apod.ppt','SHOW_VIEWER')));" target="_blank" > View < /a > < /div>

그리고 두번째는 iCdocs 페이지에 jsp 인자를 넘겨서 문서를 보는 방법이 있는데, 다음과 같이 url을 적으면 된다.

http://icdocs.thinkfree.com/view.jsp?open=http%3A%2F%2Froguebean.net%2Ftest%2Fapod.ppt&app=SHOW_VIEWER(클릭해보삼~)

iCdocs는 JRE를 구동해야 하므로 초기설치시 시간이 조금 걸리지만, 이후부터는 caching을 하므로 그다지 느리지는 않다. iCdocs의 모든 사용은 무료이며, MS Office 등 어떠한 다른 application도 필요하지 않다.

그리고, 다음과 같이 iCdocs의 두번째 방법을 활용한 편리한 도구들이 있다.

이제 office문서를 보기위해 MS Office를 꼭 사용할 필요는 없다(특히나 요금을 지불한다면). 그냥 간단히 drag & drop이나 url 입력을 통해 해당 office 문서를 바로 보여주는 위의 도구들을 사용하면 된다. 어떠신가? 편리하지 않은가!

그리고 이 것은 개인적인 얘기지만, iCdocs Widget은 programmed by YongHwan, designed by YoonSun. 내가 참여한 작품이니만큼... 나를 아는 분들은 꼭 한 번씩 사용해보셨으면 한다! :)

Posted by roguebean
소식2006.04.30 01:55

ThinkFree Online 서비스가 새로워졌다. 기존의 Office Suite 제공 외에도 문서의 publishing, sharing 등의 기능을 웹상에서 제공하고 있다. 아래 이미지는 로그인 후 My Office메뉴를 선택했을 때 나타나는 화면이다.

사용자 삽입 이미지

ThinkFree Online - My Office

ThinkFree Office는 주로 해외시장을 타겟으로 하고 있어, 국내 인지도는 상대적으로 낮은 편이지만 미국쪽에서는 꽤 호평을 받고 있다고 한다. 각종 언론매체에서 ThinkFree에 대해 다룬 내용을 살펴보자.

세계가 ThinkFree를 주목하고 있다. 얼마나 성장할 수 있을 지 모르겠지만, 좋은 시도라고 생각한다. 자, 모두 가입하고 사용해보자 :)

Visit ThinkFree Online !!!

Posted by roguebean