반응형



지난 2008년 12월 31일, 마이크로소프트의 MP3 인 Zune 30 Gb 모델이 부팅시 다운되는 버그가 발생하여 인터넷 상에서 화제가 된 적이 있었다. 국내에서는 Zune 사용자가 많지 않아서인지 그렇게 널리 알려지지는 않았지만...

(모 사이트에서 2000년대의 대표적인 IT 실패작 중 하나로 Zune 을 꼽기도.. )

Zune 의 부팅 버그를 일으킨, 문제가 된 소스 코드는 다음과 같다 한다.



7 번째 라인에서 days > 366 으로 되어 있어 day == 366 일 경우에는 처리가 되지 않고 무한루프에 빠지게 된다.
2008 년은 윤년이었고, 12월 31일이 2008 년의 366 일째 되는 날이라 12월 31일에 부팅시 다운되는 버그가 발생한 것.
boundary value 체크가 안된 흔한 실수. 문제는 상용 프로그램에서 이런 코드가 작성되었다는 것인데...

위의 코드가 거재된
원문 블로그의 댓글들을 보면 재미있다.

I bet this was programming from india
( 이 코드는 인도 개발자가 만든 것이 틀림없어 )

(댓글) -> And I also bet that this was designed by an AMERICAN project manager.
            ( 그리고 이 코드는 분명히 미국인 PM 이 디자인 했겠지 )

Zune 사용자 포럼을 보면, 이 버그를 고치지 않으면 윤년이 다시 돌아오는 4 년 후에도 동일한 버그가 또 발생할 것이란 글이 있다. 여기에 대한 압권의 댓글...

I wonder how many people will still be using Zune 30's in 4 years
( 4 년후에 Zune 30Gb 모델을 몇명이나 쓸까? )

참고 : algospot 의 게시글

       


+ Recent posts