이 글은 월간 마이크로소프트웨어(일명 마소) 2007년 4월호 커뮤니티 노트 칼럼에 기고한 글입니다. 물론 구성이나 내용 상의 차이가 있을 수 있습니다.
세상엔 왜 이리 본받고 싶은 사람이 많은지. 회사 업무나 학업에 치이다 보면, 주말에 어떻게 스트레스를 풀 것인지가 최대의 관심사가 되기 마련이다. 하지만 와이어 저편의 누군가가 써놓은 멋진 글을 읽다 보면 더 나은 사람이 되어야겠다고 다짐하게 된다. 여기에 역할 모델이 될만한 사람들을 소개한다. 여성 튜링상 수상자 프랜시스 앨런, 디자인과 사용자 편의성의 전문가 마틴 하디, 창의적인 사고에 대해 항상 고민하는 김창준, 익스트림 프로그래밍의 대가 론 제프리스가 그들이다.
프랜시스 앨런과 등산
알란 J. 퍼리스, … , 존 매카시, 다익스트라, … , 도널드 크누스, … , 켄 톰슨과 데니스 리치, … , 프레데릭 브룩스, … , 앨런 케이, 피터 나우어, 그리고 프랜시스 앨런. 이 기나긴 목록은 전산학 분야의 노벨상이라 일컬어지는 튜링상 수장자 명단이다. 프랜시스 앨런은 40여 년을 이어오는 튜링상 역사에서 최초의 여성 수상자가 되었다. 수학 교사가 되려다 빚을 갚으려고 IBM에 입사했던 사람이 컴퓨팅 분야의 최고 전문가가 되었다니. 매트릭스에서 모피어스가 던진 한마디가 이보다 잘 어울릴 수는 없을 것이다. Fate, it seems, is not without a sense of irony
, 운명이란 모순적일 때가 많아
ZDNET은 프랜시스 앨런과의 인터뷰를 내놓았는데, 필자의 이목을 끄는 대목이 있었다.
초기에 컴퓨팅이나 로켓을 발사하는데 관여한 과학자들의 면모를 살펴보아라. 내가 나랑 비슷한 세대들과 성장 배경에 대한 이야기를 나누면, 대부분의 과학자들은 농장에서 태어나, 자란 경우가 많았다. 물론 모두가 그런 것은 아니지만, 상당수는 중부 지방 농장 촌놈이었다.
프랜시스 앨런의 업적에 대해 설명할 줄 알았던 독자라면 약간 당황했을지 모르겠다. 인터뷰를 계속 읽어나가면 또 흥미로운 대목이 있다. 그녀는 미국 알파일 클럽과 캐나다 알파인 클럽 모두 가입한 열렬한 등산가라고 한다. 상아탑의 학자여야 0과 1의 비트 세계를 이해하고 학문적 업적을 이룰 수 있을 것 같지만, 적어도 앨런의 경우에는 통념이 들어맞지 않는 모양이다. 지난 1월 기사에서 살짝 언급한 바 있는 김창준씨는 이를 여러 차례 설명해왔다.
-
마소 2005년 4월호 및 6월호, 『고수: 무술과 프로그래밍에 대한 소고』
세 글이 말하는 바는 ‘운동’이 두뇌 계발에 도움이 된다는 것이다. 단순히 도움이 되는 수준을 넘어서 지적 활동만으로는 불가능한 방식으로 두뇌를 계발한다고 한다. 운동을 하면 뇌 안에 새로운 세포와 신경이 형성되고, 신경전달물질이 분비된다고 한다. 방안에 틀어박혀 미적 문제를 하나 끄적거리면 당장 시험에서 10점을 더 받을지 모른다. 하지만 우리의 5년 후, 10년 후, 그리고 20년 후를 생각하면 눈 앞의 문제 해결보다는 미래의 어떤 문제를 해결할 능력이 더욱 절실하다. 프로그래밍만 하고 사는 개발자는 없다. 소프트웨어 개발은 문제해결과정이다. 비즈니스 요구, 고객, 상사, 동료, 기술적 난점 등을 종합적으로 해결해야 할 때, 운동으로 다진 쭈글쭈글한 두뇌가 여러분의 든든한 지원자가 되어 줄 것이다.
부끄러운 고백이지만, 필자는 KAIST에 들어와서 몇 년간 적응하지 못하고 방황했었다. 대학생답게(?) 밤새 술 마시고 논다든가 하지도 않으면서도 성적은 기대 이하였다. 그러나 졸업을 앞둔 지금은 달라졌다. 뛰어난 성적을 자랑하는 건 아니지만, 학업이든 대외 활동이든 자신이 원하는 걸 알고 적절히 균형을 잡고 있다고 생각한다. 이제와 생각해보면 운동이 도움이 되었던 게 분명하다. 어깨를 다치고 야구와 멀어진 것과 성적이 떨어지기 시작한 시점이 일치하는데, 이와 반대로 운동을 시작한 시점과 삶의 균형을 되찾은 시점도 일치한다. 함께 운동할 사람이 없어서 그냥 넘어갔다면, 밤 11시쯤 사이클을 타러 나갔다. 40분쯤 충남대 저편까지 돌고 와서 샤워를 하고 나면, 나머지 한 두 시간은 책을 읽었다. 더 이상 밤새서 게임하거나 만화책 보는 일은 없었다. >
운동은 건강을 되찾아주고 두뇌를 좋게 해줄 뿐 아니라, 생활의 균형을 잡아준다. 밖에는 잘 알려지지 않았지만, 최근 KAIST는 운동 시설에 예산을 상당히 투자하고 있고, 예정되어 있는 시설 확장 계획도 많다. 여러분이 학생이 아니라서 이런 사치(?)를 누릴 수 없다고 생각할지 모르지만, 요즘엔 운동 지원비를 마지못해 지원하는 게 아니라 운동을 적극적으로 권장하는 회사도 꽤 늘었다. 선택권은 여러분에게 있다.
튜링과 튜링상 (Turing Awards)
의외로 튜링이 누구인지, 어떤 업적을 남겼는지, 어떤 사람이었는지 잘 모르는 사람이 많다. 며칠 전에 점심 먹으러 나가는 길에
튜링이 왜 자살했는지 알아?라고 물었다. 수업시간에 튜링 이야기가 나왔기에 문득 질문을 던졌는데, 의외로 자살했다는 것도 몰랐다고 했다. 그래서 커뮤니티 노트를 빌려 간단히 튜링에 대해 말해볼까 한다.튜링은 계산 이론을 정립했고, ‘튜링 머신’이란 걸 제안했다. 이론상의 기계이긴 했지만 튜링 머신은 현대 컴퓨터의 시초가 되는 중요한 개념이다. 튜링은 2차 대전시에 독일군의 암호 체계인 에니그마를 해독한 영국 과학자 중 한 명이었다. 이 일을 두고 『누가 소프트웨어의 심장을 만들었는가』의 저자 박지훈씨는 그를 ‘최초의 해커’라고 평한다. 튜링은 컴퓨팅 이론을 넘어서 에니그마를 해독하기 위해 ‘콜로서스’라는 연산 기계를 만들어냈다. 이것은 최초라 알려진 ‘에니악’보다도 2년 앞선 업적이었다. 튜링의 업적은 여기서 그치지 않는다. ‘튜링 테스트’는 기계가 지능을 가졌는지 확인하기 위해 고안됐다. 이것은 인공 지능 연구의 시발점이 되었다. 아직까지도 튜링 테스트를 통과한 역사가 없으니 여러분이 그 기회를 잡을 수도 있다. 성공한다면 다음 튜링상 수상자는 여러분이 될 것이다.
안타깝게도 튜링은 독이 든 사과를 먹고 자살했다. 동성연애자가 터부시되던 시절에 수모를 겪다 삶을 안타깝게 마감했다. 사후에 그를 기리기 위해 컴퓨터 학회 ACM이 튜링상을 제정했다. 엄청난 대가들이 이 상을 수상했다. ACM 홈페이지에서 명단과 업적을 확인할 수 있다.
배척의 원리는 자유롭게 사귀도록 내 버려둔다면 타락할지도 모를 사람들에게만 적용된다.– 알란 튜링참고 문헌. 『누가 소프트웨어의 심장을 만들었는가』 의 저자가 쓴 글을 ZDNET에서 무료로 읽을 수 있다. 『현대 컴퓨팅의 아버지, 앨런 튜링』이다.
여기를 클릭하세요.
Sun.com Design, Usability & Other Stuff
2월, 3월 커뮤니티 노트에서 등장했던 마틴 하디(Martin Hardee)가 다시 돌아왔다. RSS 리더에 등록된 200여 개의 블로그가 쏟아내는 글만 해도 하루에 수십 건이나 되는데도 한 세 번 연속으로 소개를 하게 되다니, 놀라운 일이다. 개발자로써 코드 한 줄에 울고 웃고, 리팩토링과 디자인 패턴 따위에만 신경 쓰다 보니, 사용자 편의성이나 디자인을 다루는 글에 더 이끌리게 된 모양이다. 마틴 하디 덕분에 매달 원고 쓰기가 한결 쉬워졌으니, 혹시나 그가 한국에 방문한다면 불고기라도 한껏 대접해야 해야겠다.
『More on “Click Here” as a Worst Practice』라는 글에서 마틴 하디는 블로거나 웹 개발 종사자(디자이너를 포함하여)가 간과하기 쉬운 사실 하나를 정확히 짚어냈다. 자아반성도 할 겸 필자 자신의 블로그에서 잘못된 사례를 찾아봤다.
[그림 2]와 [그림 3]를 비교해보자. ‘Click Here’, ‘여기를 클릭하세요’ 스타일의 글에선 도대체 무슨 동영상인지 알 수가 없다. 반면 [그림 3]는 ‘C# 리팩토링 스크린캐스트’임을 명확히 보여준다. ‘여기에서 다운로드’ 대신 ‘C# 리팩토링 스크린캐스트’이 사람의 눈길을 더 끌어들인다. 사람에게만 호소력 있는 게 아니다. 검색엔진은 링크와 연결된 텍스트 정보를 중요하게 처리한다. ‘여기를’은 아무런 쓸모가 없다. 꼭 구글과 같은 상용 검색엔진이 아니라도 마찬가지다. 블로그에 어떤 글을 썼던 것 같은데 아무리 검색해도 나오지 않을 수도 있다. ‘C# 리팩토링 스크린캐스트’라고 적었으면 금방 찾았을 것이다.
오늘의 커뮤니티 – XProgramming.com
필자는 커뮤니티 노트를 석 달간 써 왔다. 그런데 매달 소재를 선정할 때마다 고민을 해야 했다. 정말 멋진 블로그나 커뮤니티가 많은데, 커뮤니티 노트의 소재로 삼기에는 주제가 무겁다던가 (마소에는 특정 주제를 심도 있게 다루는 칼럼이 매우 많다), 한정된 독자만 관심이 있을 것 같다던가 하는 이유 때문에 소개하지 못했다. 그래서 앞으로는 ‘오늘의 커뮤니티’에서 가볍게 소개하기 힘든 무게 있는 블로그와 커뮤니티를 소개할 생각이다.
How good do you want to be, and when? Let Ron Jeffries, experienced author, trainer, practitioner, coach, help your Agile team get to the netx Level! Bring your project in on time, on budget, fit for purpose!
(역: 잘 하고 싶습니까? 어떤 때 그런 생각을 하시나요? 경험 많은 저자이자, 트레이너, 전무가, 그리고 코치인 론 제프리스가 여러분의 애자일 팀이 다음 단계로 나아가도록 돕겠습니다. 프로젝트를 기한, 예산 그리고 목적에 맞게 끝내세요.)
론 제프리스의 블로그이다. 론 제프리스가 누구인가 하니, 『Extreme Programming Installed : XP 도입을 위한 실전 입문』의 공저자 중 한 명이며, 익스트림 프로그래밍 분야의 대가이다. 그는 Yahoo! Groups: Extreme Programming 커뮤니티 등에서 익스트림 프로그래밍을 널리 알리는데 앞장서고 있다.
XProgramming.com은 여느 블로그와 약간 다르다. 여기서는 신변잡기나 ‘팁’ 같은 짧고 가벼운 글은 찾아볼 수 없다. 글 하나하나가 마치 책을 쓰듯 잘 다듬어놓은 칼럼들이다. 경량화된 방법론(애자일)에 익숙해지기 전에는 ‘익스트림 프로그래밍’이라고 하면 뭔가 정말 극단적이고 아무나 할 수 있는 게 아니라고 생각할지도 모르지만, 제프리스는 실용적이고 누구나 고민할만한 문제를 다룬다. 위험 관리(『Risk Management』), 사용자 스토리(『Story and Task Cards』), 단위 테스트 (『C++ Unit Testing from the Inside Out』), 깔끔한 코드 작성(『Shooting for Cleaner Code』)와 같이 다양한 주제를 다루기 때문에, 각자 관심 있는 글만 쏙 빼서 읽기도 좋다. 그림과 예제가 빠지지 않고 들어가 있고 어려운 주제도 쉽게 설명해놨기 때문에, 개발자와 관리자 모두에게 추천하고픈 블로그이다.
마지막으로 당부의 말씀을 전해야겠다. 앞서 ‘오늘의 커뮤니티’에서는 진지한 블로그를 소개하겠다고 말해서 “나에겐 어려울 것 같아”라고 생각하는 독자도 있을지 모르겠다. (필자의 노파심에 불과하길 바라지만) 만약 그렇게 생각한다면, 구글에서 “site://xprogramming.com/ Sudoku”를 쳐보자. 론 제프리스가 수도쿠 게임(주: 방안지에 적당한 숫자를 적어 넣는 게임이다.)에 대해 쓴 글이다. 필자도 한때 심심풀이로 수도쿠 게임을 만들어보기도 했다. 그 땐 Brute-force 방식으로 대충 짜는 바람에 게임 판이 커지면 엄청 느렸었다. 제프리스가 이 문제를 얼마나 흥미롭게 접근하는지 볼 수 있을 것이다.
오늘의 팁! 멋진 블로그 찾아내기 1편. – 책을 펼쳐라.
물고기 한 마리를 주지 말고, 물고기 잡는 법을 가르쳐라
는 유태인 격언처럼, 커뮤니티의 소식을 전달하는 것보다도 자신만의 참고 문헌을 갖는 게 중요하다. 필자는 닷넷 기술, 리팩토링, 방법론 등에 관심이 많지만, 누군가는 HCI (Human Computer Interaction)이나 사용자 인터페이스를 흥미롭게 생각할 것이고, 다른 누군가는 필자가 전혀 모르는 어떤 주제를 좀더 공부하고 싶을 것이기 때문이다. 그래서 필자 자신의 경험을 비춰보아 이렇게 하면 된다
싶은 방법을 공개하려 한다.
가장 멋진 리소스는 의외로 여러분 가까이 있다. 필자의 머리 위에는 집에서 기숙사로 가져온 20여권의 컴퓨터 서적이 있다. 그 중에는 당연히 마소도 있는데, 아무거나 하나 집어서 펼쳐본다. 마소 같은 컴퓨터 잡지라면 각 칼럼의 필자 소개란을 보자. 닷넷 기술을 주로 다루는 필자는 유경상님의 블로그를 이런 식으로 찾아냈다.
보통 책 첫 장에는 저자의 이력이 나온다. 이때 저자의 블로그가 명시되어 있다면 하나 건진 셈이다. 요즘 발행되는 책자에는 블로그가 명시된 경우가 많지만, 예전에는 그렇지 않았다. 이번에 소개한 론 제프리스의 『Extreme Programming Installed : XP 도입을 위한 실전 입문』도 마찬가지였다. 이럴 때 쓰라고 구글이 있다. 저자 이름과 책 제목으로 한두 번 검색해보면 관련 사이트를 찾을 수 있다.
책의 앞장만 훌륭한 리소스인 것은 아니다. 참고 문헌을 각주로 달아놓기도 하고, 따로 정리해서 부록으로 제공하기도 한다. 『실용 예제로 배우는 웹 표준』에서 소개한 A List Apart(http://alistapart.com/)는 이제 파이어폭스 북마크 상단에 놓여 있다.
디자인 패턴에 관한 책이든, 웹 디자인에 관한 책이든, 소설이 아닌 이상 참고 문헌이 나와 있기 마련이다. 때로는 웹 사이트 주소가 나와 있지 않을지도 모르지만 약간만 수고하면 자신만의 레퍼런스 목록을 갖게 될 것이다.
자투리 소식
물로 컴퓨터 회로를 만든 괴짜가 있다. (Programmable Water) 필자가 잘 알지 못하는 유체역학을 이용했다는데, XOR/AND 게이트를 만들었다. 하지만 역시 ‘둠’을 플레이하기에는 역부족일 것 같다. 하지만 자연친화적일 것 같다. ^^
끝마치는 말
이만 줄여야 할 때가 왔다. 마소 독자 중에 튜링상 수상자가 나오길 고대하며 글을 마친다.