완벽함이란 더 이상 무엇인가를 더할 것이 없을때 이루어 지는 것이 아니라, 더 이상 무엇인가를 뺄 것이 없을 때 이루어진다. - 앙뜨완느 마리 로제 드 생떽쥐페리
by 미친병아리 이글루스 피플 2006 이글루스 TOP 100 2007 이글루스 TOP 100
포토로그
메뉴릿
주저리 주저리
라이프로그
하위호환성..
재미나게 읽었던 조엘 스폴스키의 2권의 책을 보면 공통적으로 등장하는 내용이 있는데, 바로 Microsoft가 얼마나 하위호환성 보장을 위해 노력했는지에 대한 내용이다.. 조엘이 지적한대로 많은 S/W 엔지니어들 (설계자 및 프로그래머)이 이러한 코드를 좋아하지 않으며, 심지어는 소용없는 짓이라고 생각하는 사람도 있다.. 조엘은 애플사의 엔지니어들을 이 예로 들고 있다.. 사용자 입장에서도 사용하던 S/W를 다시 구매하는 경우가 화나겠지만, 개발자 입장에서도 이전 OS 버젼에서 작성한 코드를 새 버젼에서 사용하기 힘들다면 맥이 빠질 것이다.. 국내에 애플 S/W 개발사가 많지 않은 것은 사용자가 적기 때문만은 아닌 것 같다..

조엘이 엄선한 소프트웨어 블로그 베스트 29선 7장
이 방식에 동의하지 않는 개발자와 엔지니어도 많습니다. 응용프로그램이 바보 같은 짓을 하거나 문서화되지 않은 현상을 이용해 구현됐다면, OS를 업그레이드할 때 문제가 생기도록 그냥 내버려둬야 한다는 주장입니다. 매킨토쉬가 처음 나왔을 때, 애플의 매킨토시 OS 개발팀이 이쪽 진영에 속했습니다. 이후로 애플 사는 하위 호환성 개선을 위해 많은 노력을 기울였습니다만, 초기 매킨토시 응용프로그램이 지금은 거의 돌아가지 않는 이유가 바로 여기에 있습니다. 응용프로그램 제작업체를 망하게 하는 회사가 잘 될 리가 만무하지요. (실제로 대부분 망했답니다.)
마이크로소프트가 OS의 하위호환성 확보를 위해 노력한 내용을 보면, 정말 MS 아니면 할 수 없는 일이라는 생각도 들고, 하위호환성 확보라는 것이 매우 중요한 일임을 공감하기 때문에 저런 환경에서 S/W를 개발해보고 싶다는 부러움도 많이 생긴다..

조엘 온 소프트웨어 42장
레이몬드의 블로그에서 가장 인상적인 부분을 꼽으라면, 윈도우 팀이 하위 호환성을 지원하기 위해 수년 동안 쏟아부은 엄청난 노력에 대한 이야기입니다.

고객 입장에서 생각해 봅시다. 프로그램 X, Y, Z를 샀습니다. 그리고나서 윈도우 XP로 판올림을 했더니, 시스템이 종종 죽습니다. 프로그램 Z은 아예 돌지도 않습니다. 고객은 친구에게 말할 겁니다. “윈도우 XP로 판올림하지마. 시스템이 이유없이 죽고, 프로그램 Z와 호횐도 안돼.” 시스템이 죽는 이유는 프로그램 X때문이고, 프로그램 Z는 문서에도 없는 윈도우 메시지를 쓰기 때문에 안 돌아간다는 사실을 밝히려고 고객이 직접 시스템을 디버깅할까요? 천만에 말씀입니다. 그냥 윈도우 XP 박스를 들고 환불받으러 올 겁니다. (프로그램 X, Y, Z는 몇 달 전에 구매했기 때문에, 30일 환볼 보장이 안됩니다. 반환할 수 있는 건 윈도우 XP뿐이죠.)

저는 이런 이야기를 심시티 개발자에게서 처음 들었습니다. 당시 게임 프로그램에 결정적인 버그가 있었다고 하더군요. 해제한 메모리를 참조하는 심각한 버그인데, DOS에서는 운좋게도 문제가 없었으나 윈도우에서는 말썽이었답니다. 윈도우에서는 해제한 메모리를 다른 응용프로그램이 바로 채어갈 가능성이 높기 때문이죠. 윈도우 개발팀 테스터는 많은 응용프로그램을 구해다 테스트를 했는데, 심시티는 계속 죽었답니다. 테스터는 윈도우 개발팀에게 이 문제를 보고했고, 윈도우 개발팀은 심시티를 역어셈블한 다음에 디버거로 추척해 버그를 찾아냈답니다. 그리고는 심시티를 돌릴 경우 메모리 할당자를 특수 모드로 돌려서 해제 후에도 메모리를 참조할 수 있게 만들었답니다.

이 정도는 보통이었습니다. 윈도우 테스트팀은 그 규모가 대단했을 뿐만 아니라, 어떤 사용자도 운영체제 판올림에 문제가 있어서는 안된다는 점을 지상최대 목표로 삼았습니다. 괴상한 짓을 하는 응용프로그램, 문서화되지 않은 함수를 호출하는 응용프로그램, 윈도우 버전 N에 있었던 버그를 이용하여 구현되었으나 윈도우 버전 N+1에서 버그가 없어지면서 문제를 일으킬 소지가 있는 응용프로그램 등, 사용자가 어떤 응용프로그램을 설치했건 판올림 후에도 문제없이 돌아야 했습니다. 레지스트리에서 AppCompatibility 부분을 뒤져보면, 윈도우가 특별취급하는 응용프로그램 전부를 확인할 수 있습니다. 옛 버전에 있었던 버그나 기이한 현상을 잘 흉내내서 응용프로그램이 계속 돌아가게 합니다. 다음은 레이몬드 첸이 한 말입니다. “마이크로소프트 사가 OS 판올림을 이용해 응용프로그램을 고의로 못쓰게 만든다는 비난을 받을 때면 저는 굉장히 화가 납니다. 윈도우 95에서 응용프로그램이 실패하면, 저는 이를 개인적인 실패로 여겼습니다. 윈도우 95에서 돌릴 수 있도록 남의 프로그램 버그까지 디버깅하느라 밤을 샌 적이 하루이틀이 아니었습니다."
다른 프로그램의 버그까지 분석하여 대처하는 모습은 정말 감동적이기까지 하다.. 물론 MS처럼 거대한 회사에서 이런 부분에 대한 반대세력도 많겠지만, OS 개발의 모토에 하위호환성 보장이라는 부분을 주요부분으로 인정해주고 지원해주는 개발환경은 부럽지 않을 수 없다.. 어쩌면, 일정안에 이러한 것들을 해내는 개발자들의 능력이 더 부러울 것일지도 모르지만..
by 미친병아리 | 2006/03/11 23:59 | ▣ 컴터야그 ▣ | 트랙백 | 덧글(4)
트랙백 주소 : http://madchick.egloos.com/tb/1259551
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 아크몬드 at 2006/03/19 13:09
조엘이 강조하는 하위 호환성부분이네요.. 저도 참 인상적이라고 생각했습니다.
이번 윈도우 비스타에서도 그 호환성을 제대로 지켜낼 수 있을지 궁금합니다.ㅎㅎ
Commented by 바나나우유 at 2006/03/19 23:02
저도 이책 사놨었는데,다른 볼책들이 밀려있는 관계로 아직 못보고 있네요.
이번주에는 꼭 봐야겠습니다.
Commented by CN at 2006/03/22 12:48
최근의 MS는 undocumented 뿐만 아니라 기존 플랫폼의 잘못된 설계로 인한 결과 역시 하위 호완성 보장을 안해주는 쪽으로 흘러가고 있습니다. Firefox나 Apache와 같은 오픈소스 쪽의 개발자들도 대세는 그렇구요. 조엘이 여전히 MS에 있었다면 호완성 쪽에서는 마이너 쪽에 속하지 않았을까 생각합니다.
Commented by 미친병아리 at 2006/03/27 13:11
아크몬드님 : 비스타에서도 하위호환성은 보장되리라 기대됩니다..

바나나우유님 : 재밌게 읽을 수 있으실 겁니다..

CN님 : 조엘이 자신의 책에서 그러한 부분에 대한 아쉬움을 표현했지요.. 하지만, 많은 부분에서 하위호환성 보장 부분은 계속 이어지리라 생각됩니다.. Microsoft의 입장에서는 그것이 수익과 직결되는 부분이라서..

:         :

:

비공개 덧글

Creative Commons License

< 이전페이지 다음페이지 >


이글루 파인더
카테고리
태그
최근 등록된 덧글
참 오래간만이시네요.^^..
by gonny at 11/03
ㅅㅂ 나도 몰른다고
by 야동매니아 at 10/20
하하, 이런경험 있는데..
by 씩씩한강냉이 at 10/03
꺅. 한글이 위대하기에 ..
by 씩씩한강냉이 at 10/03
소설식이라 편하고 재미..
by ohyecloudy at 10/01
환영합니다 미병님~^^
by Paromix at 09/16
온국민이 싫어하고 혐오..
by 닭날다 at 09/16
살아계셨군요... 계속..
by 미친감자 at 09/08
가끔씩 들리는데, 진짜..
by 랄라 at 09/05
웰컴~투~~~~~~..
by S2nNAMU at 08/25
좋은 정보네요 ^^ 그..
by 난복잡한것은 at 08/24
kk//ㅗ^^ㅗ
by 뭐야이미친놈. at 08/23
반갑습니다. 알려하지 ..
by 쩌비 at 08/20
Welcome to your blog..
by 우하하 at 08/20
1년간 무엇을 하였는지 ..
by falconer at 08/13
지난 1년간 365번 이상 들어..
by 김상형 at 08/13
바뀐게있나하며꽤많은..
by inJURa at 08/12
1년만에 돌아오셔도 많은..
by 오픈검색 at 08/06
^^*
by 검은흰새™ at 08/06
웰컴 투 이글루스~~~
by Funny at 08/05
최근 등록된 트랙백
데드라인 - 소설로 재미..
by Ohyecloudy's S3
실전적 문장비법 글쓰기..
by 블로거1.0의 WEB2.0 도전기
우분투 리눅스 8.10 하루..
by joogunking
마이클잭슨 사망 소식들..
by Bluesky
후아유(2002) : 2000년대 ..
by 생활의 발견
知的人의 생각
by peter_c's me2DAY
톰캣!!
by 나두미키님의 이글루
정규 표현식 완전 해부와..
by 김재호의 디지털보단 아..
HTML 소스 제대로 보자,..
by [부동산]개발.정비구역
내 손안의 PC - 자바가 ..
by 上善若水
Stringbuilder OutOfMe..
by Pinch of Smack for D..
웹 오피스 정리
by Web N Bizr
네이버 블로그 검색 - ..
by InformationRedesign
에반게리온: 서 - 사운드..
by LG전자 XCANVAS홈..
블로그에서 수익은 기대..
by IT, 모바일, 엔터테..
"다음으로 지원한 이메일..
by 민노씨.네
알라딘 TTB2 둘러보다
by NKOKON's Web-Note
문답 # ActiveX 문답
by 아이리스가 만개한 언덕..
미친병아리의 생각
by madchick's me2DAY
소비지향의 대학축제
by 세상을 보는 또 다른 시선
이글루링크
EBC (Egloos Broad..
erehwon.LAB
About willy
Living Loving and L..
修身齊家萬事成
【 이름쟁이™의 눈으로 】
개 풀 뜯어먹는 소리
觀鷄者의 망상 공간
Oz in Wonderland
김명신의 즐거운 하루
함께.. 늘 그렇게..
荷花(hehua)
소스코드위를 걷다.....
가로등 프로젝트
zoops 이야기
까모의 룰루랄라~
▒ 제닉스의 사고뭉치 ▒
河伊兒의 고물상
가로수들은 여전히 제자..
餘分D: physics and fun
극한추리 hansang's wo..
길고양이 이야기
어쨌건간에 흘러가는 者
선인장 일지
~★~ 우하하!!~ 프로..
without coffee
Lady Nariel's Golde..
검색엔진 루씬 Lucene..
fire, walk with me
디지털을 말한다 by oojoo
♠후리지아 향기처럼♠
일상 생활 속의 파편들
뽐뿌 inside
책읽는 엄마의 보석창고
Mono log
blogger jely
반복되는 일상속의 비정..
골룸의 골방
질풍 17주의 머브러브 라..
maniacs
AURA's Showcase
ozzyz review 허지웅..
디제의 애니와 영화 이야기
ANTIEGOIST : GyuHo..
미달이의 육아일기
All about IT Trends
Suicide Solution
얼음집
Trouble n Travel
모기불통신
Trip
찬별은 초식동물
숲 속 작은 섬
snowcat blog
전도서에 바치는 장미
한글이 꿈틀
이우진의 UCC 제작실 ..
INVENT
위로..위로..위로..
woody's film review
Show me the money
전자음악 알아보기
sunny's store
이규영 연예영화 블로그
◀ M.HOUSE - Masade..
친절한(척) 쿨짹씨
쉽니다.
roadster
무디의 무책임한 세상
이제 다시... 바라보다.
random life
Beyond Web
ricordati di me
Jania's Blog
Gaious 功房 네오베..
애자일 이야기
- Last Paromix -
T9T9 Research Center
양군 블로그
소프트웨어 이야기
chef's garden
Software Engineering..
티오
고재관의 블로그
mocca
yundream의 프로그래..
통TON
lalou
생각이 없는 블로그
이전블로그
rss

skin by 이글루스