brunch

You can make anything
by writing

C.S.Lewis

by 정광섭 May 13. 2021

레이몬드 첸의 ‘윈도우 개발 282 스토리’를 읽고

TL;DR

이 책은 Microsoft의 개발자인 레이몬드 첸이 그의 블로그인 “old and new thing” 에 올린 글중 windows 95 개발에 얽힌 뒷이야기를 다룬 책으로 우연히 온라인 중고서점에서 발견해서 구입했습니다.


windows 95 는 출시된지 25년이 지났고 이 책도 오래되서 다루는 기술적인 내용은 재미외에는 쓸모가 없을지도 모르지만 제품과 서비스의 본질에 대한 그의 태도와 설계 기법등 배울 점이 많아서 기록 차원에서 남겨봅니다.


Windows 95 성공의 이유

"조엘 온 소프트웨어"에는 마이크로소프트의 콜센터" 이야기가 나오는데 저런 조언을 한 레이먼드 첸은 경력있는 고객 지원 담당자라고 생각했습니다.


그런데 웬걸, 레이몬드 첸은 개발자, 그것도 Windows 95 개발에 깊이 관여한 개발자였고 실력과 함께 제품의 본질에 대한 확고한 철학을 갖춰서 Windows 95 의 대성공에 가장 큰 역할을 하였다고 봅니다.


운영체제라는 제품에 대한 그의 확고한 철학은 “application 을 실행하기 위해 사용하는 것”이고 이를 위해 windows 95에서 기존 DOS 나 Windows 3.1 app 가 문제없이 돌아가도록 호환성을 확보하는데 모든 노력을 기울였습니다.


예로 windows 95 의 정식 버전은 4.0 이지만 API 로 Version 을 얻어내면 3.95 가 전달되는데 그 이유는 다음과 같이 날코딩한 windows 3.1 프로그램때문이었습니다.  


Windows 3.1 에서만 동작하는 날코딩


만약 Win95 버전을 4.0 으로 리턴했다면 MinorVersion 이 10 이하가 되기때문에 기존에 날림으로 만든 프로그램들이 95에서 실행이 안 되므로 3.95 를 리턴했다고 합니다.


이렇게 하위 호환성을 위해 API 의 세부 동작까지 다 수정했고 그래도 windows 95 에서 돌아가지 않는 app 가 있다면 그는 개인적인 실패로 받아들여서 이를 해결하기 위해 노력했습니다.


심지어 DOS 용 심시티가 windows 95 에서 테스트해보니 자주 죽었고 기계어 수준으로 디버깅을 해보니 심시티가 해제한 메모리를 다시 참조해서 죽는 것을 알아냈습니다.


그 후 심시티가 windows 95 에서 잘 동작하도록 해제된 메모리를 참조하는 프로그램이 심시티면 프로그램을 종료하지 않도록 운영체제의 핵심인 kernel 의 memory manager 를 수정했다고 합니다.


이렇게 하위 호환성을 처절할 정도로 지키기 위해 운영체제의 핵심부분까지 수정한 노력덕에 대부분의 DOS 와 Windows 3.1 app 들은 문제없이 95 에서 실행되었고 형편없는 안정성이라는 사이드 이펙트가 있었지만 “app 를 구동하기 위한 SW” 라는 OS 제품의 본질에 충실한 95에 고객은 PC 운영체제 석권이라는 보답을 돌려주었습니다.


(태생적으로 불안정할수밖에 없었던 windows 95 기반 kernel은 Windows ME 에서 마지막으로 사용되었고 Windows XP 부터는 NT 기반 kernel 로 교체되었다고 합니다.)


저의 경우에는 제품 이름을 외우기도 벅찰 정도로 요새는 너무 많은 기술과 프레임워크가 쏟아져 나오고 있습니다.


하지만 특정 언어나 프레임워크를 사용했다고 그게 바로 고객의 편익 증대와 연결되는 것은 아닙니다.

기술의 홍수속에서 정작 우리가 만들려는 제품이나 서비스의 본질이 무엇이고 고객의 어떤 불편함을 해결해 줄 수 있는지를 잊고 있는 것 같아서 오래된 책이지만 지금 시대에도 의미가 있다고 생각해서 기록해 봅니다.


P.S

이외에도 windows 95 에 세계 지도와 time zone 기능을 넣었다가 출시 얼마전에 급하게 뺀 사연도 재미있습니다.


95년에 페루와 에콰도르간 전쟁이 벌어져서 양국 정부에서 windows 95에 표시한 국경이 잘못되었다고 거센 항의를 했고 인도 정부에서는 파키스탄과 분쟁중인 지역이 파키스탄 영토로 표시되었다며 모든 MS 제품을 시장에서 퇴출하겠다고 위협해서 기능 자체를 뺐다고 합니다.


글로벌 제품에 지도 기능을 넣는 것을 고려할 경우 유용하게 새겨둘만한 내용입니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari