| 개발자 책꽂이 |
4월에 읽을만한 책 3선 |
 |


흔히 개발자들이 책을 읽지 않는다는 이야기를 많이 하고 많이 듣곤 한다. 여러 가지 이유가 있겠지만 ‘시간’이 가장 큰 누명을 뒤집어쓰고 있다는 생각이다. 누구나 다 알고 있는 사실이지만 시간은 사람을 기다려주지 않으므로 효율적으로 책을 읽어야 하는데, 1년에 컴퓨터 관련 서적만 책장 하나는 족히 채우는 상황에서 길잡이가 절실히 필요하다.
이에 에이콘 출판사, 위키북스, 한빛미디어의 협찬을 받아 4월 한 달 동안 개발자에게 도움이 될 만한 내용이 담긴 책을 세 권 소개하고자 한다. 개발자 여러분의 시야를 넓힐 수 있도록 보안, 프로젝트 관리, 웹 2.0이라는 다양한 주제를 뽑아보았다.
1번 타자>>
웹 애플리케이션 해킹 대작전: 웹 개발자가 꼭 알아야 할 웹 취약점과 방어법
마이크 앤드류스, 제임스 A 휘태커 지음, 윤근용 옮김, 에이콘출판 2007년 출간
예전에 개발자로 일하면서 동시에 시스템 관리자를 맡고 있었을 때였다. 어느 날 출근하니 갑자기 리눅스 시스템 부하가 엄청난 수준으로 올라가면서 웹을 비롯한 모든 서비스가 제대로 동작하지 않았다. 콘솔 로그인을 통해 가까스로 시스템에 접속해보니 시스템에 엄청난 숫자의 sendmail 프로세스가 떠 있었다. 말로만 듣던 악명 높은 서드파티 릴레이 공격이었다. 하지만 sendmail 환경 설정에는 분명히 외부에서 이 서버를 전자편지 발송 서버로 경유하지 못하도록 릴레이가 꺼져 있었고, DRAC을 사용해 POP3 인증을 받았을 경우에만 외부 사용자가 편지를 릴레이 할 수 있는 상황이었다. 이미 수백에서 수천 통에 이르는 스팸 편지가 전송된 직후였기에 갑갑한 마음을 달래면서 로그 파일을 이 잡듯이 뒤져 반나절 만에 문제를 찾아냈다. 어처구니없게도 문제 원인은 sendmail도, DRAC도 아니었고 내부 사용자 권한 획득을 통한 트로이 목마도 아니었다. 바로 외주를 준 홈페이지 제작업체에서 부주의하게 사용했던 게시판 시스템에 있었다. 해커는 바로 이 게시판 시스템의 취약점을 파악해 전자편지 발송 cgi 프로그램이 어떤 사용자 인증도 받지 않는다는 사실을 알고 웹 애플리케이션에 숨겨진 버그를 간접적으로 활용해 시스템 전체를 위험에 빠뜨리도록 만든 셈이다.
2007년 17회 졸트상 기술 서적 부문 파이널리스트에 올라온 ‘웹 애플리케이션 해킹 대작전’은 보안 관련 서적 중에서 인기 높은 ‘How to break’ 시리즈이며, 특히 앞서 소개한 전자편지 발송 cgi 프로그램 개발자가 저지른 실수처럼 간과하기 쉬운 웹 애플리케이션 상의 보안 문제를 테스트하는 과정에 도움을 주는 책이다. 실제 웹 애플리케이션을 해킹하기 위해 사용하는 공격적인 코드를 나열하는 대신 웹 애플리케이션에 가해지는 공격 유형과 이를 감지할 수 있는 테스트 기법에 대해 체계적으로 다루고 있으므로 성질 급한 스크립트 키드라면 실망할 가능성도 있겠다. 하지만 애플리케이션 설계 시점부터 시작해 구현과 테스트 과정을 전반적으로 훑어볼 필요가 있는 웹 애플리케이션 제작에 입문한 초급 개발자가 전공 필수 과목처럼 읽으면 딱 좋을 책이다.
이 책의 가장 큰 미덕은 해커 관점에서 창을 쥐어주는 대신 개발자 관점에서 방패를 쥐어준다는 데 있다. 실제로 책 목차를 보면 알겠지만 일반적인 해킹 서적에서 볼 수 있는 구체적인 해킹 기법에 따른 분류 대신에 좀 더 상위 단계에서 바라본 여유 있는 서술 방식을 따르고 있다. 결국 이 책을 통해 웹 애플리케이션 제작자는 해커가 웹 애플리케이션을 공략하기 위해 사용하는 전략을 큰 그림 형태로 볼 수 있기 때문에 초기에 한번 반짝하고 위력을 발휘하다 곧바로 약효가 떨어지는 테크닉 위주로 유행을 따르는 책보다는 훨씬 더 근본적인 방어 능력을 갖추게 될 것이다.
이 책을 좀 더 즐겁게 읽을 수 있는 한 가지 힌트를 주자면 본문을 읽기 전에 고품질 소프트웨어를 제작하기 위한 투쟁의 역사를 다룬 부록 A ‘소프트웨어 50년: 소프트웨어 품질을 위한 핵심 요소’를 반드시 한번 정독하기 바란다. 소프트웨어 품질을 항상 이류 시민으로 취급해왔던 현실을 비판하며 속이 시원할 정도로 정곡을 찌르는 내용으로 인해 십년 묵은 체증이 내려감을 느낄지도 모르겠다.
2번 타자>>
실천가를 위한 실용주의 프로젝트 관리 7주: 위대한 관리의 비밀
조하나 로스만, 에스더 더비 지음, 신승환, 정태중 옮김, 위키북스 2007년 출간
여러분은 신규 직원이 들어오면 어떻게 대하나? 실제 겪었던 슬픈 일이지만, 새로 들어온 신입 사원이 회사 분위기 파악에 도움이 되는 조언은 고사하고 일주일 동안 같이 식사하러 가자는 말조차 듣지 못해 결국 그만두는 모습을 본 적이 있다. 물론 여기에 대해 여러 가지 다양한 의견이 나올지 모르겠는데 효율성 증대, 비용 절감, 납기일 준수와 같은 정량적인 목표만 내걸고 사람 위주가 아닌 목표 위주로 프로젝트 관리를 진행해온 우리 자화상이 그대로 투영되는 듯이 보여 무척 가슴이 아프다. 이런 냉혹한 현실에 한 가닥이라도 희망이 없을까?
아마 이 책 저자인 조하나 로스만과 에스더 더비가 미국 내에서도 대단히 실력 있는 컨설턴트로 이름을 날리고 있다는 사실을 모르는 사람들이 많을 거다. 한술 더 떠서 이 책을 읽은 독자조차도 저자 소개를 보지 않았다면 이 두 사람이 여자라는 사실을 놓쳤을 가능성이 높다. 이 책의 미덕은 이런 여성 특유의 친화력으로 프로젝트 관리 기법을 전개해 나가는 서술 방식으로 나타난다. 경쟁과 승리를 목표로 저돌적으로 밀고 나가는 하드코어한 프로젝트 관리 서적과는 달리 이 책은 부드럽고 따뜻한 분위기를 풍기며 인간적인 프로젝트 관리 방법이 무엇인지 사례 중심으로 소설식으로 설명을 전개한다. 또한 같은 소설임에도 불구하고 복잡한 전산 이론 때문에 읽다가 기가 죽어버리는 드마르코가 지은 데드라인과는 달리 이 책은 어떻게 보면 평범하면서도 ‘상식적인’ 방법을 동원해 문제를 간결하게 풀어헤치므로 프로젝트 관리자에게 “나도 이 책에 나온 방법 정도는 실천할 수 있다”라는 자신감을 불러일으켜준다.
이 책의 원서 제목은 “Behind Closed Doors”이며 최상위 관리자가 근무하는 사무실 내에서 일어나는 비밀을 파헤친다는 의미다. 이런 비밀을 파헤치기 위해 주인공으로 나오는 가상의 인물인 ‘샘’이 부장으로 승격한 다음 자신을 보좌하는 중간 관리자들과 함께 프로젝트를 7주 동안 진행하면서 겪는 여러 가지 일화를 소설식으로 다루고 있다. 본문에 나오는 핵심 단어를 한번 나열해보자면 일대일 대면 접촉, 팀원 알아가기, 프로젝트 포트폴리오 만들기, 목표와 업무 일치시키기, 팀 만들기, 사람마다 개별 목표 만들기, 성공에 대해 코치하기, 성가신 문제 파악하기, 위임하는 방법 배우기, 팀원 능력 계발하기, 상관을 관리하고 팀을 지지하기, 우선순위에 따른 팀 이끌기가 있는데, 이런 핵심 단어만 보더라도 프로젝트 관리에 도움을 주는 영감이 불현듯 떠오를지도 모르겠다.
마지막으로 이 책 부록에 나오는 ‘실천 기술: 신규 직원 환영하기’를 미리 읽었더라면 앞서 언급한 불행한 사태를 피할 수 있지 않았을까 하는 아쉬움이 남는다. 언제나 그렇듯이 사람이 최우선이다!
3번 타자>>
당신은 웹 2.0 개발자입니까?: 웹 2.0 기술의 창의적 활용
박지강 저, 한빛미디어 2007년 출간
몇 해 전에 오라일리 출판사에서 나온 ‘Google Hacks’를 읽어본 적이 있다. 구글 검색 방법을 다루는 듯이 보이는 이 책 내용은 놀랍게도 절반 정도는 구글이 제공하는 API를 활용하는 방법이었다. 거대 사이트에서 제공하는 다양한 API를 일반 개발자도 사용할 수 있구나 라는 발견에 뿌듯한 나머지 내친 김에 ‘Amazon Hacks’도 구입했는데, 역시 ‘Google Hacks’와 마찬가지로 아마존에서 제공하는 다양한 API를 활용하는 방법이 나와 있었다. 물론 이런 API를 사이트 별로 개별적으로 활용하는 방법도 있겠지만 섞어서 사용하면 더 좋을 듯이 보였다. 일례로 아마존에서 검색한 책에 대한 서평을 담고 있는 블로그 기사를 뽑는다면 특정 책에 대해 실시간 블로그 서평을 볼 수 있지 않을까? 조금 더 발전시켜 ‘eBay Hack’까지 구입해 API 활용법을 익힌 다음에 중고 서적까지 구매하는 방법이 떠올랐다.
나중에 알고 보니 이렇게 개방된 API를 섞어 사용하는 방법을 웹 2.0에서는 매쉬업이라고 부르고 있었다. 여러 서비스의 시너지 효과를 이용해 부가가치를 높이는 작업을 기업끼리 연합해 진행하는 대신 사용자가 창의력을 발휘해 진행한다는 사실 때문에 매쉬업을 웹 2.0의 주요 특징 중 하나로 삼는다는 사실도 알게 되었다. 하지만 대한민국의 현실을 생각해보면 이런 기업용 API는 NHN이나 다음(Daum)과 같은 대형 포털 사이트에서 제공하는 일부 서비스를 제외하고 여전히 활성화와는 거리가 멀며, 응용 분야가 적기 때문에 매쉬업을 본격적으로 다루는 국내서적도 찾아보기 어렵다. 다시 말해, 웹 2.0이라는 용어가 여기저기서 많이 나오고 있지만 막상 이를 체계적으로 정리한 자료는 여전히 부족하다.
다행스럽게도 이런 갈증을 해소하도록 “당신은 웹 2.0 개발자입니까?: 웹 2.0 기술의 창의적 활용”이라는 제목이 붙은 웹 2.0과 매쉬업 맛보기를 소개하는 국내서가 등장했다. 이 책은 웹 2.0을 비즈니스 관점, 개발 관점, 배경 기술 관점에서 개괄하고 컨텐츠 신디케이션, 리치 인터넷 애플리케이션, 태그와 마이크로 포맷, 매쉬업이라는 세부 기술을 소개하며 매쉬업 기술을 사용한 간단한 서비스 구축 방법을 설명하고 있다. 짧은 분량에 많은 내용을 소개하려다 보니 깊은 맛이 떨어지고 웹 2.0이 완전히 하늘에서 뚝 떨어진 신개념이 아니라 기존 웹 세상에 존재하는 개념을 상당 수 차용하고 있기 때문에 신선한 맛을 기대하기는 어렵지만 웹 2.0에 대해 기초 개념을 잡기 원하는 초보 개발자라면 한 번 정도 읽어볼 필요가 있다는 생각이다.
독자 여러분을 위해 힌트를 한 가지 드리면서 마무리하겠다. 이미 웹 2.0에 대한 기초적인 지식을 알고 있기 때문에 전반부가 지루하다고 느껴진다면 ‘3부 웹 2.0 기술의 창의적 활용, 매쉬업’으로 바로 건너뛰기 바란다. 오픈 API를 통해 직접 웹 2.0 응용 서비스를 만들면서 웹 2.0이라는 혼합 칵테일 맛을 볼 수 있으면 좋겠다.
[지난 developerWorks Column 보기]
|