목요일, 7월 30, 2009

[B급 프로그래머] 맥 오피스 2008 워드 화살표 키 버그 드디어 수정

맥용 오피스 2008 사용자라면 반드시 이번에 새로 나온 업데이트를 설치하기 바란다. 이유는? 공포의 워드 화살표 키 버그가 드디어(!!!!!) 잡혔기 때문이다.



솔직히 맥용 오피스 수준이 너무 떨어져서 비싼 돈 주고 사기가 아까웠지만, 혹시 B급 프로그래머라도 한 카피 정품을 사주면 감격(?)해서 한글화에 좀더 신경쓰지 않을까 싶어서 2004와 2008 두 버전을 모두 제 돈 주고 구매했었다. 하지만, 뭐 맥용 오피스를 사용해보신 분이라면 누구나 수긍하시겠지만... 눈물이 앞을 가리는 심각한 버그가 몇 가지 있다(사소한 불편사항/버그는 열거하기도 귀찮다. 오죽했으면 윈도우랑 윈도우용 오피스를 많이 팔기 위해 일부러 이렇게 만들었을거라는 이야기도 시중에 떠 돈다.).




  • 워드: 워드에서 한글로 작업하다가 한 글자가 완성되지 않은 상태에서 화살표 키를 누르면 화살표 방향으로 그 글자가 딸려가는 심각한 버그가 있다.
  • 파워포인트: 한글 폰트를 사용할 경우 윈도우용 CR/LF 변환 과정에서 나타나는 공포의 음표!
  • 엑셀: 매크로를 조금만 과하게(?) 사용하면 이상한 행동을 보인다. 윈도우 버전에서는 전혀 문제 없다.


한국어 철자 교정기, 메뉴 한글화, 맑은 고딕 폰트까지는 바라지도 않았지만, 당장 사용에 불편한 문제점은 해결해야 할 것 아닌가? 하지만 이번에 업데이트 설명을 읽다보니... 다음과 같은 문구가 아주 크게 눈에 확 들어왔다.



향상된 한국어 문자를 사용할 때 편집입니다.
화살표 키의 누를 때 잘못 표시할 문서를 한국어 문자를 야기하는 문제를 해결합니다.


오오오... 결국 민원을 해결했구나. 업데이트를 설치해서 테스트해보니 워드 화살표 문제가 사라졌다! 괘씸한 지고... 이 버그 하나 수정하기 위해 도대체 몇 년을 야루고 시룬거야? T_T



뱀다리: 워드 버그 수정보다 더 놀랄만한 이야기 하나. 오늘 소개한 마이크로소프트 기술 지원 문서가 사람 개입 없이 기계로 번역된 내용이라는 사실! 처음에는 번역을 급히 하느라 서둘렀구나... 라고 생각했을 정도니, 기계 번역 결과 치고는 상당히 쓸만하다.



EOB

화요일, 7월 28, 2009

[일상다반사] 미국 거주하시는 분을 위한 특별 이벤트

B급 프로그래머와 함께 번역 작업을 동고동락하신 해님이 미국 거주하시는 분을 위한 특별 이벤트를 마련해주셨다. 바로 애독자를 위한 특급 도서 이벤트!




  • Rapid Development: 프로젝트 쾌속 개발
  • The Art of Project Management: 마음을 움직이는 프로젝트 관리
  • Hard Code: 나잘난 박사의 IT 정글 서바이벌 가이드
  • 소프트웨어 컨플릭트 2.0
  • 소프트웨어 크리에이티비티 2.0
  • 초난감 기업의 조건
  • 조엘 온 소프트웨어
  • 조엘이 엄선한 소프트웨어 블로그 29선
  • 이노베이션 게임
  • 열씨미와 게을러의 리눅스 개발 노하우 탐험기
  • 임베디드 하드웨어 이해와 설계
  • 리눅스 디버깅과 성능튜닝
  • 리눅스 문제분석과 해결
  • 리눅스 디바이스 드라이버 개정 3판


위에 열거한 책 중에서 필요한 책을 고른 다음에(복수 개도 가능하다), 이름, 우편물 받을 집주소(거듭 주의: _미국_ 주소 only!)와 함께 B급 프로그래머 전자편지(jrogue 에뜨 쥐메일.컴)로 보내주시면 _선착순_으로 책을 보내드리겠다.



아무쪼록 많은 성원 부탁드린다.



EOB

금요일, 7월 24, 2009

[일상다반사] OK 캐쉬백 점수를 바로 현금화하기

주말마다 SK 주유소에 기름을 넣으러 가는데 어느 순간부터 Happy Auto Member라는 요상한 카드를 자꾸 만들어라고 귀찮게 한다. 연 12회 무료 세차에 엔진오일 1회 교체, 신용카드와 별개로 20원 추가 적립 등 겉으로 보기에 아주 멋진 혜택을 주는 이 카드는 연회비(가장 낮은 등급의 경우 3만원!)를 내도록 만드는 사실상 SK 주유소와 스피드메이트 lock-in용 떡밥 카드다.



이렇게 자꾸 이 카드를 권하는 이유가 있는데, 바로 OK 캐쉬백 점수다. 결제 과정에서 OK 캐쉬백 카드를 제출하므로, OK 캐쉬백 점수를 확인한 주유원이 가입을 적극적으로 유도하는 셈이다. 물론 연회비 이야기는 하지 않다가 결정적인 순간(즉 신청서를 다 꾸미고 나서...)에 차액을 결재하기 위해 신용카드를 달라고 하면서 이야기를 한다. B급 프로그래머야 혜택을 앵무새처럼 읊을 때 바로 물어봤다. 잘 알겠으니 연회비가 얼마냐구... ㅉㅉ



매번 거절하기도 귀찮아서, OK 캐쉬백 점수를 소진해버리기로 했다. 여러 가지 방법이 있는데 필요없는 물건을 구매하거나 다다음달 이동전화 요금 형태로 캐쉬백을 받으면 된다. 하지만 현금화 기간이 너무 오래 걸리거나 사용 금액에 제약이 있는 경우가 많아서 사실상 제대로 쓰기가 무척 난감하다(OK 캐쉬백을 써본 사람은 무슨 말인지 알거다). 예를 들어, 바로 현금으로 OK 캐쉬백을 교환하려면 3만점 이상 되어야 하고 신청 절차도 복잡하고 현금화 기간도 무척 길다. 그 기간 동안 이자 놀이하는 거다. ㅋㅋ



하지만... 손가락 몇 번이면 OK 캐쉬백 점수를 바로 현금화하는 방법이 있다. 물론 준비물이 조금 까다롭긴 하지만 한번만 고생(?)하면 그 다음부터는 쌓이는 족족 현금으로 전환이 가능해진다. 준비물부터 볼까?




  • (필수) _하나은행_에 일반 예금 통장을 만들고 인터넷 뱅킹을 신청한다.
  • (선택) 가능하다면 하나은행 카드도 하나 만든다.
  • (필수) 인터넷으로 MMF를 하나 가입한다. MMF 종류에 따라 다르지만 최소 금액을 납입해야 하는 경우에는 이틀 정도 남은 돈을 투입하면 된다. 어차피 일반 통장에서 노는 돈들이 있을테니 연이율이 일반통장보다 훨씬 높은 MMF를 활용한다고 해서 손해볼 건 없다.
  • (필수) 하나은행 홈페이지에서 마이캐쉬백을 신청한다. 마이캐쉬백은 하나은행 카드와 연계해서 거래 실적에 따라 OK 캐쉬백을 제공하는 프로그램이다. 하나은행 카드를 몰아서 사용하기 시작하면 OK 캐쉬백을 손쉽게 쌓을 수 있다.


자 준비 끝났다. 이제 마이캐쉬백에서 자신의 캐쉬백 점수를 확인한 다음에 OK 캐쉬백 점수를 사용해서 MMF에 추가 불입을 한다. 그러면 MMF 쪽으로 입금 신청이 들어가면서 현금 세탁(?)이 이뤄진다. 별도 수수료도 없고 복잡한 절차나 기간이나 최소 점수 제한도 없다.



여기까지 말하면 MMF 입금과 출금 사이에 벌어지는 '하루'라는 시간 간격에 대해 투덜거리는 분도 계실거다. 여기서 엄청난 꼼수가 존재하는데, 신청하는 OK 캐쉬백 점수보다 MMF에 입금하는 금액을 작게해보자. 낄낄... 남는 돈은 일반통장에 그대로 입금된다. 아마 이 글 때문에(비밀을 폭로해서 미안하다) 이런 방식이 더 이상 먹히지 않을지도 모르겠지만, 그래봐야 실제 현금화하는데 걸리는 시간은 단 하루다.



이렇게 해서 주기적으로 OK 캐쉬백을 0원으로 만든 다음에 주유소에 가면 귀찮은 카드 호객 행위에 걸리지 않는다. 푼돈도 생기고 귀찮은 상황도 피하고, 일석이조다.



사실상 정치, 경제, 사회, 문화, 전방위에 걸쳐 돈이 지배하는 사회에서 필사적으로 살아남자. 자기 주먹이 최고인 세상이니...



EOB

월요일, 7월 13, 2009

[B급 프로그래머] (재난) 마이크로소프트 워드 포 윈도우 프로젝트



약속했듯이 오늘은 재앙에 가까웠던, 아니 재앙 그 자체였던 마이크로소프트 워드 포 윈도우 프로젝트를 살펴봄으로써 과거가 우리에게 주는 몇 가지 교훈을 생각해보자.



빌게이츠 중심의 문화



마이크로소프트 사는 영웅 숭배 시스템을 창조해서 심지어 빌이 만나보지 조차 않은 직원에게까지 빌 게이츠의 의지가 영향을 미치도록 만들었다. 북한의 김일성과 마찬가지로, 시애틀 근교에 있는 회사에도 이런 방식이 통했다.


'김일성'이라는 단어를 보자마자 히스테리를 일으켜서 바로 댓글을 달려는 분들도 있겠지만, 잠깐만 참자. 위 인용구(!)는 Accidental empires를 지은 Robert X Cringely가 한 말이다. 낄낄... 요즘이야 상당히 안정적으로 돌아가는 마이크로소프트 사지만 초기에는 구둣발 문화가 어떠했는지 안봐도 DVD가 아닌가?



이런 시스템의 중심에는 '메타 프로그래밍' 이론을 만들어낸 찰스 시모니가 버티고 있었다. 시모니는 한 명이 대규모 소프트웨어 개발 팀을 제어하도록 만드는 계층적인 구조를 마음 속에 그리고 있었다. 빌은 이런 구조를 "소프트웨어 공장"이라고 마음에 들어했다.


유감스럽게도 이런 방식은 성공하지 못했다. 그래도 '하드 코드'에 나오는 아키텍트와 프로젝트 관리자라는 제도가 자리잡히도록 만들었으니 절반의 성공이긴 하다. 나머지 절반의 실패란? 초기에 이런 절대 군주 구조에 따른 피해는 심각했다. 마이크로소프트 워드 포 윈도우 1.0이 대표적인 예다.



워드 포 윈도우 프로젝트는 원래 리차드 브로디가 이끌었다. 제록스 팔로 알토 연구소의 인턴이었던 브로디는 찰스 시모니의 지도 하(?)에 신형 워드 프로세스 개발에 나섰지만, 엄청난 타격을 입고 작가(마인드 바이러스를 집필했다)이자 프로 포커 선수로 전향한다. 브로디 말을 직접 들어볼까?



1983년 10월에 워드가 출시되었을 때, 지금은 응용 부문이라고 불리는 조직에 프로그래머 30명에 마케팅 1명이었다. 문제는, 멀티플랜(찰스 시모니가 만든 스프레드 시트)이 이미 나와 있었으며, 사용자 인터페이스가 완성되어 있었다. 나는 워드를 멀티플랜과 호환되도록 만들어야만 했다. 내 임무는 다음과 같았다. "스프레드시트 사용자 인터페이스를 탑재한 세상에서 첫번째 워드 프로세스를 만든다."

피해를 복구하기까지 5년이 걸렸다.


이런 생기 발랄한 아이디어를 내고 이를 승인한 사람이 누군지는 독자 여러분들도 알고 계시리라...



잃어버린 5년



스티브 맥코넬이 쓴 Rapid Development 책 9장 '일정'을 보면 지나치게 낙관적인 일정의 대표적인 예로 마이크로소프트 워드 포 윈도우 1.0가 나온다. 잠시 살펴볼까?



윈도우즈용 워드, 줄여서 '윈워드'는 개발 기간 5년과 개발 인력 600월-인원을 들여서 만든 코드 249,000줄짜리 시스템이다. 최종 일정 5년은 원래 계획한 일정보다 대략 5배가 길었다. 1984년 9월에 시작해서 1989년 11월에 끝났다.


앞서 브로디가 말한 잃어버린 5년이 의미하는 바가 슬슬 이해되기 시작할 것이다. 빌게이츠가 비전 문을 어떻게 꾸몄을까?



'역사상 가장 우수한 문서 작성기'를 '가능한 빨리, 가급적이면 12개월 안에' 만들자.


무리한 일정 때문에 계획을 정확하게 세울 수 없었으며, 예측을 10번이나 변경했다. 프로젝트 중도 이직율도 장난이 아니라서, 5년 동안 브로디를 비롯해 개발 수석이 4번이나 바뀌었다. 2명은 일정 압력 때문에, 1명은 건강 문제로 그만두었다고 하니 그 당시 프로젝트 심각성을 미뤄 짐작이 가능하다. 게다가 일정 압력 때문에 개발자들은 기능을 대충 구현했다. 품질이 낮고 미완성이라는 사실을 알면서도 '완료'로 보고했다. 결국 3개월 정도 걸린다고 예상했던 안정화에만 12개월이 걸렸다.



다들 인정하겠지만, 막연한 기대가 주의깊은 계획수립을 대신할 수는 없다. 문제는 요즘도 윈워드 같은 일정 수립이 유행(?)이라는 사실이다.



공포의 버그 양산 프로젝트



워드 포 윈도우즈 프로젝트에서 나온 신조어 중에 "무한 결함"이 있다. 무한 결함? 개발자가 버그를 수정하는 속력보다 테스터가 버그를 찾아내는 속력이 더 빠르며, 버그를 하나 수정할 때마다 다른 버그가 어김없이 튀어나오는 현상이다. 이런 조건 하에서는 일정과 출시 일정 예측이 모두 무의미하다. 셀 수도 없는 버그를 수정하기 위해 코드 상당수를 다시 작성했지만, 복구하는 만큼 오류가 생겼다. 마이크로소프트 사의 테스트 감독인 로저 셔만이 이런 어두운 시기를 어떻게 회상했을까?



사람들은 '망했다'라는 메시지를 받았다... 이는 경주용 자동차 운전과 유사하다. 벽에 충돌하고 나면 벽이 어디에 있는지를 알게 된다.... 사람들은 얼마나 상상력이 풍부한지 얼마나 창의적인지에 무관하게 코드를 통채로 버리지 못하리라는 사실을 알게 되었다. 워드와 쌍 벽을 이루는 엑세스 프로젝트도 교훈이 될만하다. 엑세스 버그 데이터베이스는 덩치가 너무 커서 단일 서버로 처리하지 못했다. 너무나도 많은 활성 버그가 있어서 테스트 팀은 사실상 손을 놓고 있었다. "뭐가 문제야? 개발자들은 이미 우리(테스터)를 따라오려면 2년 어치 백로그부터 처리해야 할테니..." 그래서 테스터들은 모든 시간을 투입해서 자동화와 자동화 도구 개발에 힘썼다.


워드 개발자들이 테스터들을 시험한답시고 폰트 크기를 돌려주는 함수에 항상 12pt 값을 반환하게 만들었다는 이야기가 진실인지 아닌지는 모르겠지만, 위 회고문을 읽어보면 진실일지도 모르겠다는 공포가 엄습한다.



어찌되었거나 마이크로소프트 워드 프로젝트는 행복한 결말로 끝났다. '초난감 기업의 조건'에 아주 잘 나오지만, 경쟁사들이 정신줄을 놓고 있는 사이에 마이크로소프트 사는 완성도가 아주 높은 오피스 슈트를 준비했으며 일단 제국의 역습이 시작된 이래 한 번도 오피스 시장에서 선두를 빼았긴 적은 없다.



EOB

토요일, 7월 11, 2009

[일상다반사] 리눅스 시스템 프로그래밍 이벤트 당첨자 발표

리눅스 시스템 프로그래밍 이벤트 당첨자를 발표하겠다. 응모하신 모든(?) 분들께 책을 보내드릴테니 B급 프로그래머에게 책 받으실 우편 주소를 알려주면 감사하겠다. 당첨자 두 분께서는 아무쪼록 열심히 읽으시고 즐거운 방학 생활 되시기 바란다.





이벤트 참여자가 예상대로 상당히 적은데... 그렇다고 해서 요즘 대학생들은 공부를 안 한다는 둥 책을 안 읽는다는 둥 IT 업계 미래가 어둡다는 둥 .... 이런 상투적인 이야기는 꺼내고 싶지도 않다(B급 프로그래머는 그렇게 밴댕이 소갈머리가 아니다. 낄낄...). 대학생 여러분들은 방학 맞이해서 평소에 하고 싶었던 활동을 하시라. 경험에 따르면 리눅스 시스템 호출을 몰라도 살아가는 데 큰 지장이 없다. (물론 당신이 리눅스 프로그래머를 지향할 경우라면, 시스템 호출에 대한 지식 부족은 재앙이 시작될 징조다.)



또 다른 각도로 바라보니 리눅스도 이제 안정적인 주류 기술로 편입되었다는 생각이다. 마이크로소프트 서적의 가장 큰 적이 codeguru와 MSDN이듯이 리눅스 서적의 가장 큰 적은 source forge와 LDP/man 페이지가 되버린 느낌.



한 숨 돌리셨나? 하지만 요즘 한창 뜨는 쟁점(?)에 맞춰 적시에 등장한 또 다른 블록버스터급 책이 여러분을 주머니를 남김없이 털어 버리려고 접근 중이므로 바짝 긴장하시기 바란다. 원서 '크리' 맞지 않도록 미리 알려드렸으니, 조금만 참으시며 7월 말을 기대하시라!



공지 사항: 소프트웨어 크리에이티비티 세미나에 참석하셨던 heegoo님께서는 저에게 전자편지로 우편물 받으실 주소를 알려주세요. 두 차례 편지를 보내드렸는데, 답장이 없으시네요. T_T



EOB

수요일, 7월 08, 2009

[B급 프로그래머] 티맥스 윈도우 개발 총괄 담당자에게 묻고 싶은 질문 네 가지

어제 거의 희비극에 가까웠던 티맥스 윈도우 발표를 원거리에서나마 모니티링하면서 웃지도 못하고 울지도 못하는 아주 희한한 경험을 했다. 황XX 줄기세포 건이나 심XX D 워 때야 생명공학과 영화를 모르기에 B급 프로그래머는 구석에 찌그러져 얌전히 구경만 했지만, 이번 경우에는 다르다. B급 프로그래머도 나름 '프로그래머'이기 때문에 민감한 부분을 건드리더라도 할 말은 하고 넘어가야겠다.



RTM까지는 바라지 않지만 아직 RC, 아니 베타, 아니 알파 수준도 안 되는 제품을 들고 나와서 태극기 휘날리는 가운데 애국심과 개발자들의 열과 성과 투입한 자금과 놀라운 기술력(!)을 집중 강조해서 혹시나 하고 지켜본 B급 프로그래머를 정신적으로 아주 피곤하게 만든 점 용서해준다. 기존 legacy IE조차도 화면 렌더링에 문제를 노출한 점 용서해준다. 스타크래프트도 힘들게 동작하는 호환성을 보여준 점 용서해준다. 프린터를 연결해서 인쇄 한 장 안 한 점 용서해준다. 자사 운영체제가 아닌 남의 운영체제에서 오피스랑 웹 브라우저 시연한 점 용서해준다. 제품 구경하러 온 고객을 일괄적으로 학생 취급해 지루하고 따분하고 졸리는 강의로 때운 점 용서해준다. 월화수목금금금에 이혼당하고 아파서 쓰러지고 쇠진(burn-out)해버린 기술자들의 영웅(?)담을 들러주는 만행도 용서해준다(도대체 이런 영웅은 누가 만들었는지 짚고 넘어가야 한다). 다 용서해준다. 하지만 반드시 다음 질문에 대한 대답은 듣고 넘어가야겠다.




  1. 지금 티맥스 윈도우 개발자들이 티맥스 윈도우로 티맥스 윈도우와 티맥스 오피스 슈트와 티맥스 웹 브라우저를 빌드한 다음에 테스트하고 있는가? 즉, 티맥스 관계자들이 그렇게 싫어하는 마이크로소프트 사의 전매특허인 개밥 먹기를 하고 있는지 궁금하다. 전매특허라서 피하고 싶을지 모르겠지만, 어제 상황을 보아하니 개밥 먹기 수준에 이르기에는 앞으로 갈 길이 너무나 멀다.


  2. 버그 데이터베이스에 들어있는 자료를 토대로 7월 7일을 기준으로 직전 3개월 동안 버그 추이가 어떤가? 구체적인 숫자는 필요없고 가로 축 시간 세로 축 버그 숫자로 그래프만 그려서 보여주시라.
  3. 사용자로부터 문제점을 수집할 프로세스와 기술은 확보된 상황인가? 왓슨 버킷과 같은 사용자가 겪는 문제점을 담은 대규모 데이터베이스를 운영할 준비가 되어있는가?
  4. 운영체제, 오피스, 웹 브라우저를 통틀어 무엇을 진짜로 티맥스 자체에서 개발했고, 무엇을 외부 컴포넌트로 사용했고, 무엇을 오픈 소스에서 가져왔는지 밝혀달라. 나중에 정직할(?) 생각하지 말고 지금 투명할(!) 생각을 해라.


기업 비밀이라서 상기 네 가지 질문을 답하기 곤란하다고 말한다면 개발 자체가 정말 곤란한 상황임을 입증하는 꼴이다. 이 블로그 독자 중에서 T사 소속이 있다는 사실을 확실하게 알고 있다. 익명으로라도 제보를 해주면 감사하겠다.



박 회장에게 한 가지 부탁이 있다. 마이크로소프트 욕하고 까대기 전에 마이크로소프트 내부 반성문인 하드 코드부터 읽어보시라. 어제 발표회장 분위기를 보아하니 반성은 없고 자랑만 난무하는데, 치열한 자기 성찰과 반성이 없는 조직은 반드시 망한다.



EOB

화요일, 7월 07, 2009

[일상다반사]『HARD CODE』+ 나비맛 CD 증정 이벤트 소개



에이콘 출판사에서 순조로운 Hard Code 하드 코드 판매에 고무되어 트랙백 이벤트를 벌인다고 한다.



상품은 여덟(8) 분께 역자 박재호님이 싸인하신 초난감 기업의 조건 1부, HARD CODE 2부, 이번에 굿 인터내셔널에서 출시한 새 음반 나비맛 싸인 CD 5개를 보내드립니다. 보컬 노은석(일명 노갈)님이 직접 싸인을 해서 보내주셨어요.


이 책을 미리 읽어보신 분이라면 서평만 써도 당첨 확률이 팍팍 올라가리라는 생각이다. 이번주 금요일(7월 10일)까지이므로 서두시기 바란다.



그리고 트랙백 이벤트 페이지에 가면 하드 코드 내에 실린 주옥같은 문장 몇 개를 정리해 놓았으므로, 책을 구입하시기 전에 미리 한번 읽어보시면 도움이 되리라는 생각이다. 한 가지만 뽑아서 보여드리겠다. ;)



이렇듯 성향이 확연히 다른 탓에 인문학도는 한 가지 중요한 차이점을 드러낸다. 바로, 권위자를 감싸고 보호하려는 태도다. 그들은 권한을 존중하고 감정과 체면을 중시하므로 누구든 자신을 거치지 않고 윗사람이나 주요 고객과 접촉하게 허락하지 않는다. 처음에는 문돌이 수문장을 피해가는 모험이 재미나고 효과적일지 모르지만, 일단 꼬리가 밟히면 그들은 이를 언짢게 여기며 두고 두고 가슴에 새긴다.


EOB