통섭이라는 책을 빌려보고 있습니다. 각 학문의 연구자들이 발견에 몰두하여 파편적으로 흩어지는 현재의 모습을 진단하고, 공통 언어로 커뮤니케이션 해서 각 지식간의 협력을 통해 문제를 해결하자나는 의도를 담고 있는데요. 글쓴이가 생물학자여서 그런지, 생물학에 관련된 예가 풍부하게 제시되고 있습니다.
인간 문화의 금기는 인간 본성이 반영되어서 나타난 모습인지, 아니면 본성을 억제하기 위한 장치인지 설명하는 부분이 있습니다. 그 부분을 특히 흥미롭게 읽었습니다. 가끔 어색한 번역투의 문장이 거슬리기는 하지만, 학제간 연구, 연계 학문 등이 강조되는 시점에서 읽어 두면 유익할 책입니다.책
- 통섭 - 지식의 대통합 2008.05.31
- 애자일 회고: 최고의 팀을 만드는 애자일 기법 2008.02.25 2
- PHP 보안: 몇 줄의 코드로 안전하게 2008.02.24
- 제프리 젤드만의 웹표준 가이드 2008.02.19 6
- 열씨미와 게을러의 리눅스 개발 노하우 탐험기 2008.02.17
- 뉴욕의 프로그래머 2008.02.13 4
- 패턴 그리고 객체지향적 코딩의 법칙 2008.02.12
- Ubuntu Server in Action 2008.02.12
- 달인 - 천가지 성공에 이르는 단 하나의 길 2008.02.11 2
- 사랑하지 않으면 떠나라! 2008.02.06
통섭 - 지식의 대통합
애자일 회고: 최고의 팀을 만드는 애자일 기법
Agile Retrospectives: Making Good Teams Great의 번역서 애자일 회고: 최고의 팀을 만드는 애자일 기법이 출간되었습니다. 이 책은 애자일 시리즈의 5번째 책인데요. 애자일 방법론에서 말하는 '회고'를 하는 방법과 회고를 통해, 개인과 팀을 개선하는 방향으로 나아가는 길을 제시합니다.
되짚어보니 학교 중에서도 '회고'하는 프로세스가 포함되어 있습니다. 예컨대 도플러 효과에 관한 실험을 수행했는데, 그에 대한 결과보고서를 쓰도록 요구받는데요. 만약 보고서를 쓰지 않았다면, "정말 좋은 실험이었다."로 끝나게 되겠죠. 하지만 보고서를 쓰면서, 실험 과정을 한번 더 떠올려 보고, 어떤 원리 때문에 이런 결과가 나왔는지, 일치하지 않는다면 그 오차의 원인은 무엇인지 고민하게 됩니다. '중간고사'와 '기말고사'도 그냥 수업시간으로 끝날 수 있었던 과목을 스스로 정리하고 생각해 볼 기회를 준다는 점이 긍정적이죠. 나중에 과목 내용이 더 기억에 남고요.
어떤 회의에서 회고를 도입하자고 했을 때, 어려웠던 점이 생각납니다. 회고 중에 물론 잘했던 점에 칭찬도 이루어지지만, 못했던 점을 반성하는 과정이 포함됩니다. 그래서 회고는 남을 '비판'하려는 과정이 아니라 '팀'을 개선하는 길임을 납득시키는 일이 쉽지 않았는데요. 이 책에서 소개된 다양한 활동은, 보드게임처럼 즐겁고 흥미진진하게 회고를 진행하는데 도움이 될 것이라고 보았습니다. 회고를 통해 개인과 팀의 성취가 날마다 더 나아지는 경험을 겪고 싶으시다면 읽어보시길 추천합니다.
PHP 보안: 몇 줄의 코드로 안전하게
놀랐던 것은 HTTP 헤더가 생각외로 쉽게 조작된다는 내용이었습니다. HTTP 요청 스푸핑과 같은 공격을 볼 때, 항상 악의적인 입력에 대비하는 자세가 중요하다는 걸 느꼈습니다. 공격자들이 활보하는 위헙한 웹에서, 민감한 개인정보를 웹에 저장하는 일은 정말 신중하게 고려되어야 한다는 걸 배웠습니다.
평소에 보안에 대한 관심이 부족했는데 이 책으로 말미암아, 보안이 중요하고 많은 공격 유형들은 개발자가 안전한 코딩 프랙티스를 사용함으로써 예방이 가능하다는 걸 알게 되었습니다.
제프리 젤드만의 웹표준 가이드
그래서 이 책은 구형 웹브라우저 사용자가 많은 웹페이지를 위해, CSS 핵도 언급하고 있습니다. Gecko 표준모드에서 인라인 엘리먼트일 때 Baseline 밑에 공백이 생긴다는 이야기는 모르고 있었는데요, 흥미롭게 읽었습니다. 이미지 태그는 보통 인라인 엘리먼트로 취급되기 때문에, CSS를 통해 display 속성을 블록으로 속성을 바꾸어주면 공백이 사라진다는 게 신기했습니다. 1
웹 접근성에 대한 이슈들도 뒷부분에서 꽤 비중있게 다루고 있었는데요. 제프리 젤드만은 디자이너들이 일반적으로 생각하는 접근성에 대한 오해들을 설명하고 있습니다. 현실적으로는 "시각장애 억만장자들"이라는 부분이었는데요. 여기서 말하는 억만장자는 검색엔진이었습니다. 구조와 표현이 분리되지 않은 마크업으로 페이지가 구성되어 있다면, 스크린리더 웹브라우저와 시각장애 억만장자들은 그 페이지에 접근하기 어렵습니다.
아직 웹표준에 대해 고민하고 있다면, 이 책을 통해 웹표준을 자발적으로 선택할 수 있는 계기가 되리라 봅니다.
- 활판 인쇄나 서예에서 대부분의 글자들이 기대고 있는 선. Baseline (typography) [본문으로]
열씨미와 게을러의 리눅스 개발 노하우 탐험기
저자가 서문에서 밝히고 있는 것처럼, 이 책의 대상 독자는 초급에서 중급으로 넘어가는 단계의 리눅스 개발자에게 매우 도움이 될 수 있는 주제로 꾸며져 있다. 각 스토리를 읽으면서 실제 리눅스 개발에서 일어났던 좌충우돌 이야기라는 느낌이 들었다.
예전에 리눅스 데스크탑 환경을 설치해 놓고, 무선랜 드라이버를 설치하려고 노력했던 적이 있었는데 랜카드 회사 측에서는 바이너리 버전을 제공해주지 않았다. 그래서 무슨 뜻인지도 모르고 검색했던 웹 페이지에 쓰인 대로 configure와 make를 사용해서 설치를 하려고 여러 날에 걸쳐 시도했던 적이 있었다. 하지만 이 책을 읽고 configure가 등장하게 된 배경과 어떻게 사용되는 배우게 되었다.
각 스토리 말미에는 '더 읽어 볼 만한 책과 URL'이라는 섹션이 있어서, 이 주제에 더 알고싶은 독자들의 지적 호기심을 충족시켜 주고 있다. 이 책을 통해 현명하게 "게을러"지는 건 어떨까?
cf. 이 글은 제가 컴퓨터와 인터넷 리뷰에서 썼던 내용을 옮긴 것입니다.
뉴욕의 프로그래머
재미있습니다. IT 쪽의 지식이 있는 분은, 소설에 등장하는 인물을 자신의 주변 인물에 대입해서 읽어볼 수도 있겠습니다. 시스템, 방법론 등과 얽힌 전문용어는 주석으로 책의 말미에 설명되어 있는데요. IT에 관계되지 않아 있다 하더라도, 프로그래머들의 대화나 이야기를 통해 그들의 삶을 간접적으로 체험할 수 있다고 봅니다.
현재 소프트웨어를 개발에 종사하시는 분이고, 또 글도 잘 쓰시는 분이라 즐겁게 읽었습니다. 이 책도 패턴 그리고 객체지향적 코딩의 법칙처럼 들고 다니면서 읽기 좋은 책으로 봅니다.
패턴 그리고 객체지향적 코딩의 법칙
객체지향에 대해서 필자는 딱 두 가지를 강조합니다. '공통점 묶기'와 '조금씩 알기'인데요. 패턴에 얽매이면 오히려 패턴을 잘못 사용하게 되는 경우를 경계하고, 앞의 두 원칙을 갖고 코드를 짰을 때 그 코드가 어떤 패턴에 가깝게 표현되는 스토리를 전개합니다.
객체지향이라는 주제가 이미 익숙한 분이라면, 관심있는 부분부터 먼저 찾아가면서 읽는 것도 괜찮아 보입니다. 들고 다니기 편한 크기라 틈틈이 읽기 좋았습니다.
Ubuntu Server in Action
Manning 출판사에서는 MEAP(Manning Early Access Program)이라고 해서, 책이 출간되기 전에 일찍 접해볼 수 있는 기회를 주는데요. 베타리딩처럼 책의 품질도 높이고, 수요자에게 재빠르게 책의 콘텐츠를 공급한다는 점에서 긍정적입니다. 이런 프로그램에 참여하는 것도, 학습에 도움이 되리라 봅니다. 앞에서 언급한 Ubuntu Server in Action은 2007년 4월부터 이러한 프로그램이 진행되고 있었네요.
달인 - 천가지 성공에 이르는 단 하나의 길
이 책은 달인으로 사는 법, 달인이 다는 다섯 가지 열쇠, 예비 달인을 위한 몇가지 팁으로 나뉘어져 있습니다. 책에서는 '정체 상태'를 통해 달인으로 가는 과정에 대해 차분하게 설명하고 있습니다. 들인 노력에 비해 그 성과는 선형적이라고 착각하기 쉬운데, 이 책에서는 노력의 한계가 어떤 역치를 만나면 잠깐 성과가 나타났다가 정체 상태를 겪는다고 합니다. 이런 정체 상태를 맞닥뜨렸을 때 행동하는 사람들의 타입을 호사가, 강박증, 해커(현실안주) 타입으로 조지 레오나르드는 구분했습니다. 설명을 읽다 보니, 저는 해커 타입에 조금 가까운 것 같더군요.
달인으로 가는 길 그 중간 과정을 다루고 있다는 점에서, 흥미롭게 읽었습니다.
사랑하지 않으면 떠나라!
- 08 가장 못하는 사람이 되라
- 내용을 읽기 전까지는 가장 의아했던 실천 가이드였습니다. 하지만 내용을 되새겨보면, 정말 옳은 이야기입니다. 동네 기원에서만 바둑을 두는 것만으로 늘 수 있는 실력에는 한계가 있어 보입니다. 루비세미나에 계속 참가하는 것은 "가장 못하는 사람이 되는 상황"에 스스로를 처하도록 하는 거라서, 가능하다면 꾸준히 갈 생각입니다.
- 12 멘토를 찾으라
- LIFT evening Seoul에서 현재 기업에 근무하시는 분께 비록 긴 시간은 아니었지만, 조언을 들은 적이 있었습니다. 그때 추천받았던 과목들을 지난 학기에 들었는데, 과목을 공부하는 자세가 조금은 더 진지해지고, 더 집중도 잘되었습니다. (결과적으로 예측했던 것보다 더 큰 성과를 거두었다고 봅니다.) 그 때 추천받았던 Professional 소프트웨어 개발과, 소프트웨어 공학의 사실과 오해라는 책을 읽는 계기가 되었습니다. (프로젝트 데드라인이 아직 남아있지만요.)
또 하나는,Winter of Code라는 행사에 대해서 더 폭넓게 이해하게 된 것입니다. 크게 보면, 이는 오픈소스에 대한 인식 확산과 기여에 있지만, 참여하는 멘티로서는 정말 훌륭한 멘토 분들을 만날 기회라고 보게 되었습니다. 이런 기회를 받게 되어 정말 기뻤습니다. - 21 누구를 위해 일하는지 기억하라
- 자신이 하고 있는 일의 목표를 전체 회사의 목표와 맞추라는 조언입니다. 오랜 시간 견디는 튼튼한 성당을 짓는 사람들은, 비록 자신이 벽돌 한 장을 나르고 있더라도 완성된 성당의 이미지를 마음속에 간직했다고 합니다. 관리자와 자신의 성공을 떼어내지 말라는 이야기는 회사가 당신에게 알려주지 않는 50가지 비밀에서도 언급되었던 이야기라 더욱 공감했습니다.
- 35 적절한 표현으로 말하기
- 자신이 흥미를 느끼는 언어와, 고객이 쉽게 이해할 수 있는 언어 사이의 간극을 차드 파울러는 자신과 조카 사이의 대화를 통해 잘 지적하고 있습니다. 어쩌면 평범하게 넘어갈 수 있었던 대화에서 이런 통찰력을 얻을 수 있다는 사실이 의미있게 느껴졌습니다.
- 48 남인도의 원숭이 덫
- 여기서 언급된 원숭이 이야기를 생각해보니, "욕심쟁이 원숭이"라는 동화가 생각났습니다. 그 동화책에서는 항아리에 원숭이가 손을 집어넣고, 바나나를 가득 쥐었다가 손이 빠져나오지 못하는 상황을 겪지요. 그러다가 현명한 부엉이의 도움을 받아 손에 힘을 빼고 원숭이는 자신의 욕심을 뉘우친다는 요지의 이야기인데요. 자신의 주장을 억지로 부정함으로써, 더 다양한 도구를 통해 좋은 코드를 만드는 법을 배우는 것과 연관되어 있었습니다.