공지사항

이곳으로 이전했습니다. 또는 구글 앱스토어에서 'likewind' 를 검색해서 설치해주세요. 설치링크

2017년 1월 11일 수요일

어셈블리언어


"어셈블리어를 다루는 몇 안되는 책이다. 예제를 돌려보지 못한 점이 아쉽다"

초심프로젝트의 일환으로 읽은 세 번째 책이다. 어셈블리어라... 나름대로 기대를 많이 가지고 읽었던 책이다. 흔히 알고있는 어셈블리어는 기계어라는 고정관념(?) 에서 약간 탈피하게 만들어 준 책이다. 어셈블리어의 레퍼런스 냄새가 나는 책인 만큼 어셈블리어로 할 수 있는 모든 것을 알려준다.
심지어, 어셈블리어 구조체를 만들어 함수를 만드는 것까지 보여준다. 더 이상 C 같은 고급 언어는 필요하지 않을 것 같다는 느낌까지 들 정도이다. 하지만, 예전에 비해 컴파일러의 성능이 눈에 띄게 좋아졌고 실제로 현장(field)에서 어셈블리어가 필요할 만큼 최적화에 민감한 경우가 점점 줄어들고 있기 때문에, 언젠가는 어셈블리어의 위치가 점점 약해질 것이라는 생각이 들었다.
책에서도 컴파일 시에 최적화 옵션을 사용했을 때와 사람이 직접 최적화시켜서 어셈블리어로 만들었을 때와 큰 차이를 보이지 않는다고 말하고 있다. 뒤에서는 MS-DOS 프로그래밍의 예를 들어 설명하고 있다. 한가지 아쉬운 점은 대부분의 예제 프로그램들이 제대로 실행되지 않는 점이었다. real mode 에서 동작하는 프로그램의 경우, 운영체제에서 실행하지 못하도록 막고 있기 때문이다.
중간 중간에 나오는 컴퓨터 구조에 대한 설명과 간단한 운영체제(MS-DOS)에서의 디바이스 제어 방법에 대해서 알 수 있었던 점은 이 책의 장점이라고 하겠다.

Micro C/OS-II 실시간 커널


"지금의 Micro C/OS 를 만들어준 책이다. Micro C/OS 를 사용해야 한다면 반드시 옆에 두고 봐야할 책이다"

초심프로젝트의 일환으로 읽은 네 번째 책이다. 예전부터 읽어야 겠다고 도서관에서 줄기차게 빌려다놨지만, 끝내 읽지못하고 반납해야 했던 책들 중 하나이다.
현재 RTOS 중에서 소스코드가 공개된 것들이 몇가지 있다. 하지만 그 중에서도 관련 서적이 한글로 번역이 된 RTOS 는 Micro C/OS 가 유일하다고 본다.
Micro C/OS 의 레퍼런스 메뉴얼이지만, 핵심 알고리즘과 어떤 식으로 RTOS 가 구성되어 있구나 하는 감을 잡기에는 충분한 책이다. 한 가지 아쉬운 점이라고 한다면, 여기서는 Borland C 컴파일러를 가지고 설명을 하고 있다. 요즘 한창 뜨고 있는 gcc 를 사용했으면 더욱 좋았으리라는 바람을 가져본다. 책을 읽으면서 RTOS 를 만든다는 것이 절대 간단한 일이 아니라는 것을 알게 되었다.

Linkers and Loaders


"링커와 로더에 관한 유일한 책이다. 나중에 꼭 한번 다시 읽어봐야 할 책이다"

초심프로젝트의 일환으로 읽은 다섯 번째 책이다.
아마도 내가 독파한 첫번째 원서가 될 듯 싶다. 비록 200 페이지가 조금 넘는 분량이었지만, 읽는 내내 1000 페이지가 넘는 분량 처럼 느껴졌다.

다 읽고 나서 머릿속에 남는게 하나도 없었다는 걸 알았을 때 책과 씨름했던 지난 시간들이 허무하게 느껴졌다. 그래도 다행인 것은 전에 컴파일러에 대한 강의를 들었을 때 배웠던 내용들을 다루고 있어서 한결 이해하기가 편했다. 책 내용을 얘기하자면, 제목대로 Linker 와 Loader 에 관한 모든 것을 담고 있다.

국내서적은 물론이고 외국 서적에서도 유일한 책이었기 때문에 그랬을 수도 있겠지만, 여기서는 다양한 아키텍처의 다양한 Language 의 Linker 와 Loader 의 특징들을 비교 설명하고 있다.
한가지 아쉬운 부분은 내가 필요로 했던 Debugging 정보에 대한 내용은 겨우 2 페이지 정도의 소개에 그치고 있었다는 점이다.
이번을 계기로 느낀 것은 원서를 보기전에는 반드시 원서에서 다루는 내용의 50% 이상은 미리 알고 있어야 한다는 점이다. 그래야 해석이나 잘 모르더라도, '이러겠구나' 하는 예측이라도 할 수가 있다. 부디 이번을 시작으로 좀 더 많은 원서를 읽을 수 있었으면 좋겠다.

프로그램은 왜 실패하는가


"최초로 디버깅을 주제로한 번역서이다. 거의 대부분 논문을 백그라운드로 하고 있어서 내용은 제목만큼 쉽지않다"

단순해 보이는 제목과는 달리 어렵고 복잡한 내용을 다룬 책이다.
아마 디버깅이라는 주제에 대해서만 설명한 유일한 국내서적일 것이다. 번역서임에도 불구하고, 최근 기술 트랜드를 담고 있다. 또한 각 단원마다, 디버깅 에피 소드를 다룬 이야기와 읽을 거리에서 관련 논문을 언급한 점은 마음에 들었다. 아무래도 논문을 백그라운드로 하고 있어서 그런지 이론적인 개념 설명이 많았다.
디버깅에 지식이 없었던 나는 이 책을 읽으면서 디버깅이 정말 심오하다는 것을 알게 되었다. 우리가 흔히 알고 있는 디버깅을 여러 관점에서 너무 자세하다 싶을 정도로 체계적으로 설명하고 있다.
책 후반부에 여러가지 디버깅 기법들을 소개한다. 앞으로 디버깅(검증) 분야가 많이 중요해지겠구나 하는 생각이 들었다. 여러가지 용어들이 등장해서 이해하는 데, 혼동이 있었다는 점만 빼만 두고두고 볼 만한 책인 것 같다.

소심하고 겁 많고 까탈스러운 여자 혼자 떠나는 걷기여행 #3


"저자가 여행한 동남아시아 여러나라들을 통해 마치 우리나라의 예전모습을 보는 것 같아 향수를 느끼게 한다"

3 편에서는 앞서 2 편에서의 스페인 산티아고 보다 먼저 다녀왔던 중국, 라오스, 미얀마를 여행한 내용을 담고 있다. 같은 아시아에 속해 있으면서 생김새도 비슷하고 의식주도 비슷하지만 각각의 나라마다 그들만의 사는 방식이 있다. 책을 읽으면서, 문득 5 년전 인도에 처음 갔었던 때가 문득 생각이 났다. 내가 이해하지 못했던 그들만의 행동과 사고방식들(특히 저자도 언급한 여행시에 흔히 겪는 바가지 요금) 때문에 적응하기가 힘들었다.
하지만, 그들의 시각에서 바라보면 '아~ 그럴수도 있겠구나' 라는 생각이 든다.

전 세계의 나라들을 상대로 행복지수를 측정하면, 1 위는 경제적으로 부유한 선진국이 되어야 하겠지만, 절대 그렇지 않다. 오히려 인도네시아나 아프리카의 조그만 나라가 가장 높은 행복지수를 나타낸다. 경제적으로 부유해졌다고 해서 행복한 것인가?
저자가 여행한 세 나라를 읽으면서 오히려 부유하지는 못하지만 행복한 그때로 돌아가고 싶다는 생각이 문득 들었다.

POSIX 쓰레드를 이용한 프로그래밍


"POSIX 를 다루는 몇 안되는 국내서적이다. 쓰레드 프로그래밍을 한다면 반드시 읽어야 할 책이다"

POSIX 만을 다룬 유일무이한 국내서적이다. 구입하려고 했을 때는 아쉽게도 절판이 되어버린 후 였지만, 도서관에서 빌린 책으로 제본을 만들어 읽을 수 있었다.
나에게 POSIX 는 참 생소했었다. 국내서적에서도 POSIX 에 대한 내용은 잘 다루지 않았을 뿐더러 일반적인 ANSI C 라이브러리에 있는 API 로도 충분한 프로그램을 만들 수 있다는 생각에서 였다. 하지만, 쓰레드 프로그램을 만들기 위해서는 반드시(?) POSIX 라이브러리의 API 를 사용해야 한다.
VPOS 역시 POSIX API 를 표방했다. POSIX 가 쓰레드 프로그래밍을 하기위한 라이브러리인 만큼, 우리가 쓰레드 프로그래밍을 할 때 고려해야할 것들(뮤텍스, 세마포어, 시그널, 우선순위 역전현상 등)에 대해서 언급하고 있다. 또한 스케줄링 방식(FIFO, 라운드로빈)을 지정할 수 있다.
기존의 API 들을 쓰레드 프로그래밍에 적합하도록 _r API 를 지원한다. 책을 읽으면서 POSIX 가 유저레벨에서 수행된다는 것이 다를뿐 기존의 내가 알고있던 RTOS 의 API 와 크게 다르지 않다는 것을 알 수 있었다. 차후에 멀티 프로세서 기반의 프로그램을 만들기 위해서는 POSIX 는 필수적으로 알아야 할 것 중에 하나다. 책의 내용은 조금은 장황한 설명이 있었지만, 적절한 예제가 있어 나름대로는 괜찮았다고 생각한다.

GCC 완전 정복


"GCC 컴파일러를 다룬 유일무이한 책, 프로그래밍 한번이라도 해본 사람이라면 일독을 권한다"

GCC 컴파일러 자체에 대한 내부적인 동작설명 보다는 외부적인 기능 설명(설치,옵션등)을 주로 하고 있다.
한글로 된 몇 안되는 컴파일러 책이라 나름대로는 기대를 많이 했었다.그래도 나름대로 괜찮다고 느낀 점은, GCC 컴파일러 자체에서 제공하는 내장 함수에 대한 소개나 컴파일 시에 옵션들에 대한 설명을 바로 찾아볼 수 있다는 것이다. 차후에 레퍼런스 용도를 제격이라는 느낌이 들었다.

Linux for Embedded and Real-Time Applications


"당연할 지도 모르지만 국내서적과 내용이 많이 흡사하여 단시간에 다 읽을 수 있다. 원서 치고는 얻은 게 별로 없다"

책을 보는 내내, 얼마전 읽었던 임베디드 관련한 국내서를 보는 듯한 느낌이 들었다. 특별히 자세하거나 다른 점은 없었다. 굳이 장점을 찾아보자만, bluecat linux 라고하는 임베디드 개발 환경을 간접적으로 나마 체험할 수 있다는 것, 또한 기존의 linux 에 실시간 개념을 추가한 rtlinux, RTAI 를 새롭게 알게 되었다는 것 정도다.

대한민국 개발자 희망보고서


"막막하기만한 우리나라 개발자들에게 미래에 대한 방향을 제시한 책이다"

오랜만에 한번쯤 나 자신에 대해서 생각하게끔 동기를 부여한 책이다.
내용만 보자면, '코드 한 줄 없는 IT 이야기' 와 비슷하다. 보기드물게 국내 저자가 우리나라의 실정(?)에 맞게 쓴 소프트웨어 공학 서적이다.

제목이 너무 거창한게 아닌가 하는 생각이 들기는 하지만, 책을 읽고 가장 마음에 들었던 부분은 요즘 IT 분야에서 키워드라고 할 수 있는 실용주의, XP, 테스트 주도개발 등과 같은 이론들을 우리나라 실정에 맞게 재구성했다는 것이다.
책에서도 언급하고 있지만, 이런 방법들이 거의 대부분 외국에서 만들어진 것들이라 우리나라 개발여건에서 바로 도입하기에는 어느정도 진입장벽이 있다. 저자가 직접 필드에서 느꼈던 점들을 사례를 들어 설명한 점과 이와 함께 등장하는 만화풍의 그림은 내용을 더욱 이해하기 쉽게 만들었다.
이런 류의 책들이 출간되어 나오는 것을 보면, 앞으로 이 분야가 중요해지긴 하는가보다. 책의 후반부에서는 현재 우리나라에서 개발자로서 어떻게 살아남을 것인가에 대한 모범답안(?)을 제시한다. 업무전문가, 프로젝트 관리자, 아키텍트, CIO 가 그것이다. 항상 끊임없이 자기 자신을 개발해야 하고, 공부해야 한다.
저자의 경험담을 쓰자면, 지방을 전전하면서 일을 하는 똑같은 일상 속에서 자신을 변화시킬 시발점이 필요했는데, 기술사 자격증 취득이라는 것으로 선택했다. 평일에는 일을 하고 남은 시간과 주말 시간을 할애한 결과, 1년이 안되서 합격할 수 있었다. 여기서 저자는 자격증을 취득한 것보다도 이를 계기로 어떤 일도 할 수 있다는 자신감을 얻었다고 얘기한다. 이태백, 사오정 메스컴에서 하루가 멀다하고 떠들어대고 있지만, 나는 믿지 않는다.
항상 내일을 준비하는 사람에게는 먼 나라의 얘기일 뿐이니까.

소프트웨어 테스팅법칙 293가지


"293 가지라는 숫자만큼이나 테스팅에 대한 많은 내용을 담고 있다. 특히 경력관리 부분이 인상 깊었다"

개인적으로 제목에 숫자가 들어간 책을 별로 좋아하지 않는다.

'C 언어 30 일 완성, 20 대에 해야할 일 50 가지'

이런 책들은 내용보다는 양이나 가지 수로 승부를 하겠다는 느낌이 짙어서이기 때문이다.
이 책도 무려 293 가지라는 타이틀을 가지고 있다.

프로젝트에서 개발보다는 유지보수의 중요성이 점점 대두되는 현재 단계에서 새로운 직종들이 각광을 받고 있다. 몇년 전부터, 프로젝트 매니저(PM)가 핵심 키워드로 자리 잡았고 요즘 들어서는 아키텍트 라는 직업이 핵심 키워드가 되었다. 책에서는 테스터에 대한 모든 것을 다루고 있다. 흔히 테스터라 함은 프로그램의 버그를 리포트하는 사람을 말한다. 과거에 비해 테스터가 가지는 중요성은 커졌다고 볼 수 있겠다. 만일 테스터를 목표로 공부하는 사람이 있다면, 반드시 읽어봐야 할 책이다.

만일 시간이 없는 사람이라면, 큰 주제만 읽어보는 것도 하나의 방법이겠다. 개인적으로 가장 마음에 들었던 부분은 10 장 소프트웨어 테스트 분야에서의 경력 관리이다. 제목은 테스트 분야로 한정지었지만, IT 분야 뿐만아니라 모든 분야에서 적용되는 이야기라고 생각한다. 어떤 직업을 선택할 때, 반드시 다시 한번 곱씹어 봐야할 내용이다.

소프트웨어 컨플릭트 2.0


"아무리 시간이 지나도 기술의 근본 핵심은 변하지 않는다. 그것을 이야기하는 이 책이 바로 그 증거이다"

이 책은 원래 1990 년에 출판 되었다가 2006 년에 재출간 된 책이다.
저자가 서문에서도 밝혔듯이, 90년대와 지금의 21 세기는 겉으로는 무척이나 많은 변화가 일어났다고 생각하지만 실상 1990 년과 달라진 것이 별로 없다. 그때에 해결되지 못한 문제들이 현재에 와서도 뚜렷한 해결책이 없는 그대로의 상태이다.
몇 해전에 복고 열풍이라는 말이 사람들 사이에서 회자된 적이 있다. 예전의 패션이 돌고 돌아서 요즘에 다시 유행을 하는 현상을 일컫는 용어였다.
시간의 첨단을 걷는다고 하는 IT 역시 마찬가지라고 생각한다. 옛날 것이라고 무조건 안좋고 잘못된 것이 아니다. 그것 중에서 좋은 것을 선별하여 받아들일 필요성이 있다. 이 책의 초판을 읽어보지는 않았지만, 저자는 첫 판에서의 내용을 거의 수정하지 않고 재출간을 했다. 참 아이러니하다.
저자는 자신의 생각을 글을 통해 표현하지만, 독자에게 강요하지는 않는다. 그리고 독자에게 의견을 묻는다.

아마 20년 후에도 지금과 크게 달라지지는 않을 것 같다. 매년 수많은 신기술이 나오고 있지만, 그것이 모든 것을 해결해 줄 '은총알' 일까?
지금 사용하는 컴퓨터가 어느날 하늘에서 떨어진 것이 아니고, 전구가 그냥 만들어진 것이 아니다. 부담없이 재밌게 읽을 수 있었던 책이었다.

소프트웨어 테스팅


"자칫 지루할 수 있는 소프트웨어 테스팅에 대한 내용을 위트로 재미있게 표현했다"

요즘 들어 테스팅에 관한 책들을 많이 보고 있다. '소프트웨어 테스팅 법칙 293 가지' 책의 내용보다 조금더 자세하게 설명해 놓은 것 같은 느낌을 받았다. 저자의 의도인지 아니면 역자의 의도 인지는 알 수 없으나 부분 부분 읽는 사람으로 하여금 웃음을 자아내게 하는 위트 덕분에 지루하게 않게 읽었던 것 같다. 테스터(여기서는 회사마다 다른 이름의 직책이 될 수도 있다고 가정하고 있다)가 되려고하는 독자라면, 반드시 필독해야할 책임에는 분명하다.
다른 것은 몰라도 예전에 비해 프로젝트의 과정에서 테스팅 & 검증이 더욱더 중요해진 것만은 부정할 수 없는 사실이다.

임베디드 메모리 최적화 기법


"책 제목과는 달리 x86 아키텍처를 대상으로 설명하는 바람에 아쉬움이 컸다"

책의 제목은 임베디드 메모리 최적화 기법이지만, 실상 책에서 다루는 내용은 일반 x86 아키텍처만을 대상으로 한다.

초반에는 각각의 메모리의 구조와 동작 방식 그리고 캐쉬메모리의 구조에 대해서 자세히 설명하고 있다. 그리고 최적화하기 위한 여러가지 실험과 그 결과를 각종 도표로 나타내고 있다. 크게는 몇 십배 적게는 몇 배 정도 차이가 났다.

글쎄, 메모리의 최적화에 대해서 모두들 공감은 하고 있지만, 실제로 이를 위해서 시간과 비용을 투자하는 사람은 몇이나 될까? 고성능의 하드웨어가 출시되고, 가격은 저렴해지면서, 최적화에 대한 필요성은 점차 줄어들고 있는 게 현실이다. 개인적으로 임베디드와 관련한 내용이었다면, 정말 좋았을 뻔한 아쉬움이 든다.

난장이가 쏘아올린 작은 공


"100 쇄라는 기념비적인 작품으로서 출판 당시의 사회상을 여과없이 표현해냈다. 지금 읽어봐도 전혀 촌스럽지 않다"

기억하기에 어렸을 때부터 들어봤던 제목이라 익숙하다. 하지만, 최근까지도 읽어보지 못했었다.
우연히 인터넷을 돌아다니다가 이 책이 100 쇄 까지 출판이 되었다는 뉴스를 보게 되었다. 그만큼 스테디 셀러임을 증명시켜주는 것이었다. 처음에는 이 소설이 한권의 책으로  된 장편소설인 줄 알았다. 하지만 이 제목의 소설은 100 페이지가 안되는 분량이다.

처음 쓰여진 1978 년에 나온 소설임을 생각한다면 그 때 당시로서는 무척이나 세련된 소설이었을 것 같다는 생각이 든다. 총 세 부분으로 나뉘어져 있다. 각각 다른 인물의 시점에서 이야기를 전개해 나간다. 큰형, 영호, 영희.
한창 개발 붐이 일어날 당시의 70 년대를 그대로 반영하고 있다. 당시 사회 화두였던 노동문제와 부동산 문제가 소설의 배경에 깔려있다. 예나 지금이나 숫자만 바뀌었을 뿐 별반 다르지 않은 것 같다.

사막을 건너는 여섯가지 방법


"내가 예상했던 내용과는 달리 기행문과 자기개발서라는 독특한 형식을 가지고 있다"

이 책을 한마디로 정의하자면, '기행문 + 자기개발서' 라는 것이다.
주인공은 2월의 프랑스의 추운 날씨를 혐오한 나머지, 아프리카로 떠난다.
남쪽으로 가면, 따뜻할 것이라는 너무도 단순한 발상으로 3 명의 동행자들과 함께 자동차를 타고 사하라 사막을 여행한다.
여행도중에 겪은 몇몇 에피소드를 소개하면서, 사람이 가져야 할 마음가짐에 대해서 설명하고 있다. 책에서는 산과 사막을 비교하고 있다. 우리의 인생을 흔히 산을 오르는 것과 비교한다. 산을 오르기 위해 항상 위만 보고 달려간다. 산은 정상이 있고, 끝이 확실하다. 하지만, 사막은 정상이 없고 끝이 없다. 또한 사막은 항상 끝없이 모습이 바뀐다. 우리의 인생을 사막을 건너는 것으로 비유하자면, 항상 새로운 변화를 두려워 하지 말고, 자신의 나침반이 가리키는 곳을 따라 행동해야 한다. 여기서 나침반은 '자아' 다.

아키텍트 이야기


"개발자의 최종은 어떤 모습일까? 이 책에서 아키텍트라는 새로운 직업군을 소개하면서 이들이 하는 일과 필요한 기술에 대해 설명한다"

앞으로 10 년이나 15 년 후에 과연 나는 어떤 일을 하고 있을까? 특히 하루가 다르게 새로운 기술들이 나오는 IT 분야에서 따라가지 못하면 도퇴 되기 마련이다.
개발자로 남을 것인지, 영업으로 갈 것인지, 아니면 전혀 다른 분야(대부분 자영업)로 갈 것인지 선택을 해야 한다. 개인적으로 30 대 후반에서 40 대 초반이 바로 그 때라고 생각한다.

이 책에서는 이 시기를 위해서 차근히 준비한 사람은 자주적으로 선택할 수 있다고 얘기하고 있다. 내가 이 책을 읽기 전에는 나이가 들어서 개발쪽의 일을 할 수 있다면 그것은 프로젝트 매니저(PM) 이 되는 방법 밖에는 없다고 생각했다. 하지만, 이 책에서는 기존의 PM 보다도 개발 지향적인 아키텍트라는 새로운 직업군에 대해서 설명하고 있다. 책은 아키텍트가 해야할 일에 대해 프로젝트 예시를 들어 이해를 쉽게하고 있다.

아키텍트는 프로젝트에 대해서 전체적인 큰 그림을 그릴 줄 알아야 하고, 프로젝트의 처음에 어떤 큰 틀(뼈대)을 만들어야 한다. 이 것은 많은 경험과 노하우를 필요로 하기 때문에 배테랑 개발자들이 유리하다고 생각한다. 프로젝트의 중간중간에도 올바른 방향으로 나아가고 있는지를 확인하고, 잘못된 것이 있으면 바로 잡아야 한다. 또한 개발자들과 영업관련한 사람, 상위 관리자 들과 원만한 의사소통의 가교 역할을 해야 한다.
이 부분은 쉽지 않다. 후반부에서 XP 와 애자일 방식을 소개하면서 아키텍트의 역할에 대해서 설명한다. 이 책이 나에게 당장에 써먹을 수 있는 뭔가를 제시하고 있지는 않지만, 미래에 원하는 일(위치)을 하기 위해서 어떤 기술(?)이 필요하고 어떤 안목이 필요한지를 알게 되었다.

익스트림 프로그래밍


"XP 를 사용하고 싶은 사람이나, XP 를 이미 사용하는 사람이라도 반드시 읽어봐야 할 필독서다"

XP 라는 말을 들어본 것은 수 개월 전이지만, 직접 XP 관련 책을 읽어본 것은 이번이 처음이다. 그 동안 다른 책들을 통해 XP 에 대한 개념은 어렴풋이 알고 있었다. XP 를 직역하자면, 흥분하는 프로그래밍 이다.

책은 XP 의 입문서 답게, XP 의 개념과, 행동 방법, 응용 방법 및 사례를 설명한다. XP 하면 떠오르는 것이, TDD(테스트 주도 개발), 짝 프로그래밍, 스토리, 빌드 자동화이다. 이런 개념들은 기존의 소프트 웨어 공학 분야에서는 언급하지 않았던 전혀 새로운 방법들이다.

나 역시 실제로 프로젝트에 참여하면서, 기존의 폭포수 모델 방식에 따라서 개발했었다. 읽으면서, XP 같은 방법을 사용하면 '괜찮겠구나' 라는 생각이 들면서도 한편으로는 당장 실무에 적용해보기는 어렵겠다라는 생각이 들었다. XP 의 철학이라고 한다면 그것은 사람지향적 개발이다. 팀 구성원 간의 의사소통이나, 팀웍을 중시한다. 대표적으로 짝 프로그래밍이 그렇다.

내가 최근에 읽었던 책들 중에서 공교롭게도 거의 모두 XP 를 언급했다. 또한 최근의 본 잡지에서도 XP 에 대한 기사를 볼 수 있었다. 그만큼 중요해지고 있다는 뜻이 아닐까 한다. http://xper.org 에가면 현재 XP 를 사용하고 있는 회사의 목록을 볼 수 있다.

대체 뭐가 문제야


"문제해결에 집착하기 보다는 문제의 원인을 찾는 것에 대한 중요성을 언급하고 있다. 이는 기존의 관점과는 다르다"

이 책은 문제 해결을 위한 단계를 6 가지로 나누어 각각의 사례를 들어 설명하고 있다. 이 책에 점수를 주고 싶은 부분은 이해하기 쉬운 적절한 예제를 들어 설명한다는 점이다. 또한 예제마다 등장하는 그림 또한 그러하다. 문제 해결이라는 어찌보면 무거운 주제의 책을 부담없이 읽을 수 있었다.

책에 나온 문구 중에서 모든 문제의 57 % 가 자기자신에서 비롯된다는 연구 결과를 언급하고 있는데, 틀리지 않은 말이다. 그리고 세상에는 두 가지 종류의 사람이 있는데, 일을 하는 사람과 다른 사람이 할 일을 만드는 사람이다.
결론적으로 대부분의 사람들이 문제를 가지고 있으며, 문제를 어떻게 해결할 것인가만 몰두한다. 하지만, 정말로 중요한 것은 문제를 해결하는 것보다 발견하는 것이 더 중요하다는 것이다.

지금 당장 해결하고자 하는 문제가 있다면, 나는 무엇을 해결하고 있는가?, 지금 이건 누구의 문제인가?, 이게 진짜 해결하고 싶은 문제인가? 를 생각해보자!

피플 웨어


"공학 분야에서 종사하는 사람이라면 반드시 한번쯤 읽어봐야 할 책이다. 구구절절 맞아! 를 연발하게 될 것이다"

소프트웨어 공학을 공부한 사람이라면 누구나 이책에 대한 명성을 알고 있을 것이다.

어려서부터 들어왔던 얘기 중 하나가 우리나라는 지하자원이 많은 것도 아니고, 땅덩이가 넓은 것도 아니기 때문에 다른 나라들과 경쟁할 수 있는 것은 바로 사람 자원이라는 것이었다.
어찌보면 세상 만물 중에서 가장 강력한 존재이면서도, 가장 약한 존재가 바로 사람인 것 같다.
세상의 모든 일들이 사람과 사람 사이에서 일어나기 때문에, 어떻게 사람을 관리하느냐에 따라 프로젝트의 성패도 좌우된다.

책을 읽으면서 많은 부분 공감을 할 수 있었다. 특히 중간중간에 저자들의 경험담을 에피소드 형식으로 예를 들어 설명한 것이 좋았다. 말단 직원에서 부터 상위 관리자들 까지 모두 읽어야할 책이라고 생각한다.

인사이드 머신


"학부 때 배웠던 교재보다는 덜 딱딱하고 비교적 최신 정보를 다루고 있는 컴구조 책이라고 보면 될 것 같다"

이 책의 추천글을 보면, 하드웨어 개발자는 물론 임베디드 소프트웨어 개발자 역시 읽으면 좋다고 나와 있지만, 난 굳이 소프트웨어 개발자는 알면 좋겠지만, 몰라도 큰 상관이 없다고 생각한다.
읽고난 소감은 최신버전의 컴퓨터 구조 책을 봤다는 느낌이었다. 또한 보기 드물게 표지가 컬러로 되어 있어서 좋았다. 일반 학부생 수준에서 마이크로프로세서에 초점을 맞춰 설명하고 있다. 딱딱한 기존의 컴퓨터 구조 책보다는 훨씬 보기가 편했다. 초반에는 CPU 의 구조에 대해서 설명하고, 중반에는 인텔과 파워PC 를 서로 비교하고, X64 와 G5 에 관해서 기술하고 있다.
후반부에서는 캐쉬와 최신 CPU 들의 소개와 특징들에 대해서 언급하고 있다. 한가지 아쉬운 점은 마이크로프로세서에 대해 깊이있는 내용보다는 여타 컴퓨터 구조 책들과 마찬가지로 간단한 소개 및 언급하는 것에 그치고 있다는 점이다. 어쨌든 부담없이 읽을 수 있는 책이었다.




C와 어셈블리로 확실히 배우는 임베디드 프로그래밍 입문


"임베디드의 입문하는 사람들에게 반드시 추천할만 한 책이다. 기본에 충실하다"

이 책은 기존의 프로그래밍과 임베디드 프로그래밍에서의 차이점들에 대해서 중점적으로 언급하고 있다. 또 임베디드 프로그래밍에서 중요시 되는 것들(포인터, 메모리 관리 기법, 스케줄링 기법등)을 알기 쉽게 설명하고 있다. 기본에 충실하고 싶다면 한번 쯤 꼭 읽어봐야 할 책이다. 그동안 대충 알아왔던 것들을 이 책을 보면서 다시금 정리하는 계기가 되었다.

실천가를 위한 실용주의 프로젝트 관리 7WEEKS


"프로젝트 관리자가 명심해야할 것들을 소설 형식을 빌어 알기쉽게 설명한다"

이 책은 지금껏 본 프로젝트 관리 서적 중에서 가장 실무적인 내용을 다루고 있다. 읽기 수월한 소설의 형식을 빌어 설명한다.
주인공인 샘이 새로운 프로젝트 관리자로 부임하면서, 겪게 되는 과정을 총 7 주 동안 다루고 있다. 중간 중간에 짤막한 관리 팁이나, 저자의 에피소드는 책의 재미를 더한다.

만일 관리자라면 이 책에서 언급하는 내용들을 바로 실무에 적용해 볼 수 있을 것이다. 관리자의 역할은 아랫사람보다 기술적인 면에서 뛰어나야 한다기보다 아랫 사람들이 최대한의 능력을 발휘할 수 있는 분위기(?)를 만들어주는 사람이어야 한다고 얘기한다.
실제로, 책 곳곳에서 언급하고 있는 것을 보면 언행이라든가 행동을 얼마나 조심해야(?) 하는지 알 수 있다.

배려


"저자의 생각을 동화의 형식을 빌어 얘기하고 있다"

예전부터 읽어야 겠다고 마음을 먹고 있었지만, 워낙 인기가 있던 책이라 대출하기가 어려웠다. 결국, 동네 도서관에서 빌려볼 수 있었다.
제목에서도 알 수 있듯이, 전형적인 자기개발서다. 이분야의 베스트셀러의 경우 번역서가 많은데, 이 책은 국내저자가 썼다. 이런 점에서 저자의 생각을 좀더 잘 이해할 수 있겠구나 라는 기대감을 갖게 했다.

주인공인 '위'는 직장과 가정에서 모두 위기를 맞는 것으로 부터 시작한다. 회사에서는 일을 잘하기로 소문이 자자했지만, 가정에는 소홀했다. 우리 주변에서 쉽게 찾아볼 수 있는 인물이다. 

위가 새로운 팀으로 오게 되면서, 공자왈(?) 이라는 부장 밑에서 일하게 된다. 이 공자왈이라는 사람은 공자의 말을 행동으로 실천하는 사람이다. 위가 점점 부장으로 인해 생각과 행동이 변화되면서 일도 성공하고 가정도 다시 되찾게 된다는 내용이다.

책을 읽으면서, 문득 나는 어느쪽에 더 가까운 인간인지를 생각해봤다. 나는 위에 가까운 사람이다. 책에 보면 다음의 구절이 나온다. 남에게는 엄격하지만, 자기자신에게는 끝없이 너그러운 사람. 이런사람이 아니라고 부인하기는 어렵다. 글쎄, 남에게 배려는 못하더라도 피해는 주지 않으려고 애쓰고 있다. 언제나 항상 속으로 생각하는 것이지만, 세상을 떠날 때 다른사람들에게 '저 사람은 참 좋은 사람이었어' 라는 말은 못들어도, '저 사람은 참 못된 사람이었어' 라는 말은 안들었으면 하는게 나의 바람이다.

디지로그


"우리 일상을 잘 관찰해보면, 디지로그 처럼 서로 다른 것이 만나서 조화를 이루는 것을 많이 볼 수 있다. 이 책 또한 그러하다"

예전부터 읽어봐야 겠다고 생각만 하고 있다가, 우연한 기회에 빌려 보게 되었다.
디지로그? 디지털과 아날로그의 합성어다. 생각해보면, 이런 비슷한 용어나 내용이 처음 들어보는 것은 아니다. 어둠과 밝음, 음 과 양, 남자와 여자 등. 우리는 이것들이 서로 조화를 이뤄야 한다고 배웠다. 그런 의미에서 디지로그라는 것 역시 같은 맥락이다.
읽으면서 저자는 우리나라 예찬론자라고 느꼈다. 글쎄, 내가 좀 삐딱한 시각을 가져서 그런지는 모르겠다. 우리가 무심코 생각하고 지나가는 것들을 자기 나름대로 조목조목 해석해서 설명하고 있다.
예를 들면, 젓가락과 수저, 비빔밥이 그렇다. 세계에서 젓가락을 사용하는 나라는 우리나라를 제외한 중국, 일본, 동남아시아 국가들이다.
우리나라를 다른 나라들과 비교하면서, 젓가락의 길이와 또한 수저를 사용한다는 점을 특이한 점으로 뽑았다. 그리고 우리나라의 독특한 식문화(홍동백서, 어두육미)가 디지로그처럼 조화를 이루고 있다고 얘기하고 있다. 우리나라에만 있는 쌈을 먹는 문화, 비빔밥 처럼 여러가지 재료들을 합쳐서 먹는 것은 세계에서 유일하다고 얘기하고 있다.
다른나라의 경우, 각각의 독특한 맛과 향을 즐기기위해 따로따로 먹는다. 내가 한국에 사는 한국사람이지만, 우리 생활속의 평범한 것들이 이렇게 대단한 것인지 다시금 생각해보게 되었다.

인생 수업


"모두 알고 있지만, 세상에 치어 까마득히 잊고 있었던 인생의 중요성에 대해 다시금 일깨워 준다"

죽음이 머지않았다는 것을 알게 되었을 때, 어떤 생각을 할까?
드라마나 영화를 보면, 살아생전에 못된 짓만 골라하던 사람이 죽기직전에 후회를 하고 뉘우치는 장면을 자주 본다. 그렇게 갑자기 사람이 변하는 것을 보면, 죽음이라는 것이 삶에 있어 무척 중요한 것임에 틀림없다.

이 책은 저자들이 죽음을 앞두고 있는 사람들을 만나 인터뷰한 내용을 토대로 하고 있다. 과연 그들이 하고 싶었던 말들은 무엇일까?

가장 큰 것은 다른 시각으로 삶을 바라보게 되었다는 것이다.
현대인들은 항상 생산의 압박에 시달려 왔다. 만일 7 일 후에 죽는다고 한다면, 지금까지의 삶에서 보이지 않았던 것들이 보이기 시작할 것이다. 모두가 알지만, 실제 생활에서 간과하고 있는 것들, 아마도 저자들은 사람들에게 이것을 상기시켜주기 위해서 이 책을 썼을 것이다.
할일 없이 보낸 오늘 하루는 어제 죽은 이가 그렇게 살고 싶어했던 오늘이었다




소심하고 겁많고 까탈스러운 여자 혼자 떠나는 걷기여행 #4


"마치 저자를 따라 네팔 트레킹을 다녀온 듯 한 착각을 느끼게할 정도로 읽는 내내 행복했다"

출간 되면 즉시 구입해서 읽는 김남희작가의 4번째 책이다. 이번에는 네팔을 트레킹한 여행기를 적었다.
산에 많이 올라가 본 적이 없는 나로서는 등산의 심오한(?) 뜻을 잘 알진 못한다. 하지만, 길을 걷는 도보여행과 등산의 공통점이 있다면, 혼자 생각할 수 있는 시간을 가질 수 있는 것이라 하겠다. 결국 정상등정에 의미를 부여하기 보다는 과정이 더 중요하다. 책 중간 중간에 나온 에베레스트 산의 삽화는 너무나 아름다웠다. 아직 자연 그대로의 모습을 간직하고 있어서 그런지 '가보고 싶다' 라는 생각이 절로 들었다. 또한 세상과는 단절된 체, 조용한 산중에서 낮에는 책을 읽고, 밤에는 하늘의 별을 바라다보는 장면은 누구나 한번쯤 생각해봤을 것이다.
에베레스트에는 4 계절이 모두 있다. 고도가 높아질수록 기온이 내려가고 정상에는 만년설이 있다. 에베레스트에는 안나푸르나를 비롯한 겹겹이 이어지는 봉우리들이 있다. 책에서는 총 3 구간으로 나눠서 설명하고 있다.

안나푸르나의 경우, 고도가 높지 않고 중간에 쉴곳이 많이 있기 때문에 초보자들도 무리없이 트레킹을 할 수 있다. 트레킹은 보통, 짐을 들어주는 포터, 길을 안내하는 가이드가 따라 붙는다. 하지만 대개의 경우, 포터가 가이드 역할도 하기 때문에 저자의 경우처럼 포터만 고용을 한다.
트래킹의 여러가지 에피소드을 재밌게 읽다보니, 하루만에 완독하고 말았다. 어서 5 편이 나왔음 한다.

네트워크를 훔쳐라


"마치 소설을 읽듯이 보안에 관련한 여러가지 이슈들을 쉽게 이해할 수 있었다"

IT 분야 책인지 의심이 들 정도로 마치 소설책을 보는 듯 했다. 여러가지 보안을 주제로한 이야기들을 다뤘다.
해커들과 그들을 막으려는 사람들의 두뇌싸움이 흥미로웠다.
메일서버, DNS, 프록시서버, DB, 웹서버등 다양한 환경에서의 해킹을 설명했다. 이론 중심의 기존 딱딱한 보안서적보다는 읽기에 부담없는 이런 형태의 책이 좀더 이해하는 데 용이했다.
부록에서는 이 책에서 전체적으로 언급하는 보안의 법칙에 대해서 정리해놓았다.

두 바퀴로 유럽지도를 그리다


"유럽의 자전거 문화에 대해 어렴풋이 나마 알 수 있었다"

도서관에서 자전거 여행에 관한 책을 찾던 중에 보게 책이다.

요즘 들어 생긴 습관이 저자는 과연 무슨일을 하는 사람일까 하는 것이다. 일반인이 장기여행을 한다는 것은 거의 불가능하기 때문이다. 아쉽게도 저자는 여행 관련 일을 하는 사람이었다.

유럽은 대체적으로 우리나라 보다 자전거를 위한 기반시설들이 잘 되어 있는 것 같다. 우리나라와 비교해볼때 너무 부러웠다. 저자가 여행 중 겪은 여러가지 에피소드들은 간접적으로나마 유럽을 이해하는 데 도움이 되었다. 내용은 대체적으로 무난했다.

가보기 전엔 죽지마라


"7 년 반 동안의 내용을 얇은 한권의 책에 엮으려다보니 중간중간 내용이 끊어지는 경우가 있었다"

아마 기억에 이책을 예전에 읽다가 끝까지 못 읽고서 도서관에 반납했던 기억이 있다.
이번에는 독파하겠다는 생각으로 보게 되었다. 저자가 7 년 반 동안 세계일주를 하고나서 이것을 책으로 엮은 것이다.
한가지 아쉬운 점은 7 년 반 동안의 내용을 한권에 압축하다보니, 중간중간 내용이 끊어지는 경우가 많았다. 누구나 세계여행을 꿈꾸지만, 실제로 행동으로 옮기는 사람은 많지 않다.
죽을 때까지 남에게 의지하지 않고 최소한의 의식주만 해결할 수 있다면, 난 기꺼이 떠나고 싶다. 세상은 생각만큼 만만하지 않다.

에릭 싱크의 소프트웨어 비즈니스


"자칫 지루할 수도 있다고 생각되는 마케팅과 세일즈에 대해서 알기쉽게 설명하고 있다"

오랜만에 아주 재밌게 읽은 책이다. 책에서도 언급하고 있지만, 조엘과 그레이엄 폴의 책을 읽는 듯한 기분이 들었다.
저자의 블로그에 있던 글을 책으로 엮은 것이라 그런지 이해하기 쉬웠다. 특히 중년의 개발자로서 창업을 생각하는 독자라면, 바로 이책을 추천해주고 싶다.

저자가 이 책에서 입이 닳도록 언급하는 것은 ISV(Independent Software Vendor) 이다. 저자는 자신의 직업을 가지면서, 부업(?)으로 ISV 를 할 수 있다고 제안하고 있다. ISV 는 개인이 혼자 할 수도 있고, 소규모 인원으로 할 수도 있다. 또는 큰 기업들이 선점하고 있는 시장에 틈새를 노려, 진입할 수 있다. 책은 ISV 운영시에 유의할 점들에 대해 실제로 자신이 운영하는 소스기어라는 회사에서의 경험을 예로 설명하고 있다. 나같은 공돌이(책에서는 쟁이 라고 칭함)에게는 익숙하지 않은 마케팅과 세일즈에 대해서 알기쉽게 설명했다. 진로에 대해 선택할 기로에 섰을 때, 다시금 읽어봐야 겠다는 생각이 든다.

세계에서 가장 위험한 화장실과 가장 멋진 별밤


"전편에 비해 많은 감흥을 주지는 못했다"

이 책은 '가보기 전엔 죽지마라' 의 후속작에 해당되는 책이다. 전 편이 그랬듯이, 저자가 자전거 세계여행을 하면서 기억에 남았던 것들을 자세하게 적은 것이다. 읽으면서, 전편에서 중복되는 부분이 있었기 때문에 불과 반나절만에 독파할 수 있었다. 전편과 비교한다면 솔직히 감흥은 덜 했다.
마지막 부분에서 저자가 언급하지만, 우리가 사는 현세계에 최고 또는 최악은 없다. 그것은 언제 까지나 주관적인 판단일 뿐이다. 남이 최고라고 생각했던 것이 내가 느끼기에 최악일 수도 있는 것이다. 굳이 최고에 매달리는 것은 어리석은 일이다.

엔지니어, 세상의 중심에 서라


"제목에 낚였던 대표적인 책. 우리나라의 현실과는 동떨어져 있다는 느낌을 받았다"

책을 읽는 동안, 느꼈던 두 가지는 책 제목에 낚였다는 것과 저자의 약력에 대해 궁금하다는 것이었다. 책 내용은 전형적인 자기 계발서다. 

저자는 삼성에 입사해서 20 여년 동안 일해서, 현재는 높은 직위까지 올라가 있는 것으로 생각된다. 이상한 점은 아무리 찾아봐도 저자의 약력을 볼 수 없었다는 점이다. 자신이 일했던 경험들을 예로 들어가며, 자신의 생각을 썼다.

내용 중 가장 동의할 수 없었던 것은 미국의 상위 10 대 직업 이라는 표를 예시로 들며 엔지니어라는 직업이 사회적으로 꽤 좋은 것으로 포장하고 있다는 점이다. 이것은 어디까지 미국의 이야기다.
우리나라의 상위 10 대 직업을 예로 들어야 하지 않았을까. 그랬다면 공감할 수 있었을 것이다. 아마도, 저자가 원하는 결과는 얻기 힘들지 않았을까 하는 생각을 해본다. 또한 저자가 삼성같은 대기업이 아닌 일반 중소기업에서 오랫동안 일해온 엔지니어라면 어땠을까 하는 생각도 해본다.
마지막으로 이 책이 낚였다는 기분이 들지 않도록 했으려면, 제목을 '공대생, 회사가 원하는 인재는 이렇다' 로 바꿔야 하지 않을까?

등대여행


"등대를 새로운 시각으로 바라볼 수 있게 하는 책이다"

아무런 목적없이 도서관에 가서 책을 빌려보는 경우가 잦은데, 이 책이 그랬다. 서가에서 책 제목과 겉표지만 보고, 덥썩 고른 것이다.

이책은 건축학도가 읽으면 좋겠다는 생각을 했다. 저자는 우리나라의 등대들을 직접 방문하고 각 부분을 자세하게 사진으로 담았다. 글씨보다는 사진이 더 많은 책이다.
등대라고 하면, 누구나 가지고 있는 생각이 있다. 뭔가 모를 특별한 장소라고 하는. 이 책은 등대의 모든 것을 담고 있다고 해도 과언이 아니다.
나 같은 일반인이 '그냥 등대구나!' 라고 지나칠 수 있는 부분을 하나하나 그에 담긴 역사와 역할에 대해서 자세히 설명했다. 책을 읽으면서, 단순히 등대가 불 빛만 비춰주는 길다란 건물이 아니라는 걸 알았다.
빛 뿐만아니라, 소리, 전파로도 위치를 알려준다. 또한 등대의 모양에서도 그 멋과 기능성을 엿볼 수 있다.

베르나르 올리비에 여행


"나는 걷는다의 궁금증을 어느정도 해소시켜주는 책이다. 더불어 원작에서 싣지 못했던 뒷얘기도 흥미롭다"

도서관에 갔다가 우연히 발견한 책이다. 요즘 들어 부쩍 여행과 관련한 책을 뒤져보고 있는 데, 어디서 많이 낮익은 이름이 있었다. 바로 '나는 걷는다' 를 썼던 바로 베르나르 올리비에 였다. 망설임 없이 바로 집어들었다. 이 책은 나는 걷는다 의 보너스 판 이라고 할만한 책이다.

책의 머리에 썼지만, 일반적으로 사진이 없는 기행문은 생각할 수 없다. 백문이 불여일견이라는 속담도 있듯이. 하지만, 나는 걷는다를 읽으면서 이런 생각이 틀렸다는 것을 알게되었다. 바로 사진이 단 한장도 없다는 것이다.

처음에 총 3 권으로 된 사진 한장 없는 두툼한 두께의 책을 어떻게 읽을까 하고 고민하기도 했지만, 사진이 없는 나름대로 상상의 나래를 펼칠 수 있었던 장점도 있음을 알게 되었다. 이 책이 출판된 동기도 이와 비슷하다. 독자들의 요구에 부응(?)하고자, 베르나르 올리비에는 삽화가를 대동하고서 자신이 걸었던 실크로드를 자동차를 타고 다시금 여행한다. 자신이 걸었던 길과 만났던 사람들을 다시 만나면서 5 년전 기억을 반추한다. 이번 책 역시, 사진이 아닌 삽화를 넣음으로서 사진이 줄 수 없는 무언가를 독자에게 보이려했음을 읽을 수 있었다.

내 생각에도 사진대신 삽화를 넣은 것은 잘한 선택이라고 생각한다.

저자는 여행내내, 차로 이동하는 것이 걸음으로서 얻을 수 있는 것들에 대한 아쉬움을 토로했다. 자신을 못말리는 고집불통 도보여행자라고 하면서.

XP로 접근하는 IT 프로젝트 관리와 구현


"얇은 책 두께 만큼이나 XP 의 모든 것을 다루기에는 부족한 감이 없지 않다"

 국내 저자가 쓴 최초의 XP 책이 아닐까 싶다. XP 하면, 가장 떠오르는 책들은 거의 대부분 번역서가 주류를 이룬다.
요즘은 책 내용보다도 저자의 약력에 대해서 많은 관심이 간다. 과연 어떤 사람이 이 책을 썼을까 하는.

저자는 실제로 프로그래머로 일하다가 현재는 프로젝트 컨설턴트로 일하고 있다. 책의 전반적인 내용은 XP 와 같다. 다른 점이 있다면, XP 를 우리나라의 실정에 맞게 수정했다는 것이다. 저자는 실제로 XP 만으로 적용이 안되는 프로젝트에서는 굳이 XP 를 고집하지 말고, 약간의(?) 융통성을 발휘해서 수정해야할 필요가 있다고 얘기한다.

또한 XP 에서 언급하지 않고 있는 내용들(리스크 관리 등)에 대해서 자신의 의견을 경험에 비춰 피력하고 있다. 한국인 저자가 쓴 최초의 XP 책이라는 타이틀을 제외한다면, 약간 부족한 점이 없지 않다.

XP 를 그냥 맛만 본 정도. 더 깊이있는 설명이 필요하다면, XP 의 대가들이 쓴 번역서를 추천하고 싶다.

뉴욕의 프로그래머


"소설의 형식을 빌어 소프트웨어 공학 전반의 이슈들을 흥미롭게 썼다"

지금까지 저자가 쓴 책을 모두 읽었었다. 그의 책이 출간되었다는 소식을 듣고 망설임없이 주문했다. 매번 그의 책을 읽을 때마다 프로그래머면서도 글을 참 잘쓴다는 생각을 한다.
이전까지는 알고리즘, 소프트웨어 공학 이론들을 지루하지 않게 풀어서 쓴 책들이 대부분이었다.
이번에는 특이하게도 소설의 형식을 빌어 XP, 팀워크, 프로젝트에 대한 개념을 재미있게 설명했다. 책을 읽으면서, 마치 소설의 주인공인 영우가 된 듯 기분이 들었다.
책 제목처럼 뉴욕에서 일하는 그의 경험담을 소설로 썼다. 책을 다 읽을 때쯤에 이런 생각이 문득 들었다. 서울의 프로그래머 라는 제목으로 같은 일을 하는 프로그래머의 일상을 소설로 쓰면 어떨까 하는.
종종 언급되지만, 미국과 우리나라는 어렸을 때 받는 교육의 방식도 다르고, 회사 내에 일하는 분위기도 다르다. 2년이 넘는 회사 생활을 경험해봤기에 어떤식으로 돌아간다는 것은 알지만, 미국의 일하는 스타일이 마냥 부러울 따름이다.

2017년 1월 10일 화요일

맨먼스 미신


"20년 전에 출간된 책이라고는 믿어지지 않을 정도로 세련된(?) 책이다. IT 종사자라면 반드시 읽어봐야 할 책이다"

이 책은 새롭게 출간된 것이 아니다. 출간 된지 20 년이나 되어, 기념판으로 재출간된 책이다.
이런 점에서 '소프트웨어 컨플릭트 2.0' 과 똑같다. 흔히 변화의 속도가 가장 빠른 분야를 꼽으라면, 아마 대부분 IT(H/W, S/W) 업계를 말할 것이다. 고전소설도 아니고, IT 분야의 책이 무려 20 년만에 재출간되었다면, 대부분 의아해할 것이다.

책의 저자도 얘기하지만, H/W 의 경우 엄청난 발전을 이룩했다. 그에 비해 소프트웨어 공학은 책이 처음 출간 되었을 20년 전과 별반 다르지 않다.

책을 읽으면서 깜짝 놀랄 때가 많았다. 저자는 20 년 전에도 XP 의 TDD 와 문서화, 버전관리 시스템, 피플웨어에 대한 중요성을 여러번 강조하고 있기 때문이다.

현재의 소프트웨어 개발 이론들은 어느날 갑자기 나타난게 아니다. 책의 뒷부분에 실은 '은총알은 없다' 의 초판과 20 년이 지난 후, 여러 사람과의 논쟁에 대한 저자의 생각은 흥미로웠다. 과연 저자의 말처럼 모든 것을 해결해주는 은총알이 존재할지는 더 지켜봐야 할 것이다.

책 제목처럼 맨(사람)과 먼스(시간)에 대한 관계는 말 그대로 미신이다. 수학적으로 단순히 숫자와 양으로 생각한다면, 오산이다. 1+1=2 일지 몰라도 사람+사람=두 사람이 아니기 때문이다. 

Ship It! 성공적인 소프트웨어 개발 프로젝트를 위한 실용가이드


"XP 와 실용주의 프로그래머에서 설명했던 것들을 실제 프로젝트에서 활용할 수 있는 방법에 대해 설명하고 있다"

나름대로 소프트웨어 공학 방법론의 이론 보다는 실무 환경에 좀 더 다가가려는 흔적이 보이는 책이다.
프로젝트 수행 도중에 생길 수 있는 여러가지 경우에 대해서 이러한 방법을 사용하라는 'FAQ' 식으로 설명하고 있다. 실무자 입장에서는 다른 책들 보다 현실적으로 내용을 받아들일 수 있지 않을까 싶다. 특히 실용주의 프로그래머 또는 익스트리밍 프로그래밍(XP) 에 대한 개념이 있는 독자가 읽으면 좋을 것 같다. 기존의 실용주의나 XP 에서 강조하고 있는 방법들을 위주로 설명하고 있다. 

똑똑하고 100배 일 잘하는 개발자 모시기


"제목과 반대로 인재를 알아보는 똑똑한 회사를 찾기위해서라도 한번쯤 읽어볼 만 하다"

'조엘 온 소프트웨어' 의 저자인 조엘의 또 다른 책이다.
제목 처럼 회사에서 좀 더 유능한 인재를 뽑기위해서 필요한 것들을 위주로 이해하기 쉽게 기술했다. 또한 똑똑하고 남보다 100 배 일을 잘하는 개발자가 되기 위한 요건도 같이 설명하고 있다.
읽는 동안 저자가 말하는 해커를 모시기(?) 위해 회사들이 갖추어야할 환경과 현재 우리나라 IT 회사들의 환경을 떠올려 봤다.
나 또한 수차례 면접을 봤었고, 면접을 통해 그 회사에 대한 분위기를 엿볼 수 있었다.
부록에 실린 조엘 테스트는 나의 현재 위치를 알 수 있는 좋은 이정표가 되었다. 언젠가 저자가 얘기하는 꿈의 회사에서 일하고 싶다.

C 와 GNU 개발툴로 배우는 임베디드 시스템 프로그래밍


"저자의 내공을 짐작케 하는 경험담들이 매우 유익하다"

약 1 년 전 쯤, 이 책의 원서를 읽어보려고 노력했음에도 불구하고, 진도가 거의 나가지 못하다가 번역서를 구입한 뒤, 단 3 일만에 독파할 수 있었다.
아마존에서 임베디드 관련 책 중에 가장 높은 평점이 증명해주듯, 나의 기대를 100% 만족시켜 주었다. 국내에 이미 많은 임베디드 관련 서적이 있음에도, 임베디드 시스템 개발을 시작하려는 사람이라면 반드시 이책을 추천해주고 싶다.

특히 기존의 책들이 채택해오던, 문법이나 코드만을 이용한 주입식 설명체계가 아닌 저자의 경험에서 묻어나오는 듯한 곳곳에 숨어있는 조언들이 많은 도움이 되었다.
예를 들면 보드 초기화 할때 가장 먼저 어떤 것을 확인해야 하는지, 또 각 디바이스를 테스트하기 위한 테스트 루틴을 어떻게 만들어야 하는지 등등 아주 유익했다.

작은 유산


"분량이 적어 앉은 자리에 읽을 수 있었다. 자기개발서라는 점에서 더욱 그러했다"

수업 시간 도중에 읽었던 몇 안되는 책. 순전히 분량 때문에 가능했다.
저자는 사람이 태어나서 죽음에 이르는 과정을 총 16 단계로 나눠서 얘기하고 있다. 내가 언제까지 살 수 있을 지는 모르지만, 최소한 나의 후대에 부끄럽지 않은 어른이 되고 싶다. 

일하면서 떠나는 짬짬이 세계여행


"책 제목에 비해 내용은 많은 사람들의 공감을 사기에는 힘들 것 같다"

인터넷서점에서 우연히 알게되어 보게된 책이다. 제목부터 뭔가 확 와닿지않는가? 모든 직장인들의 로망이 아닐까. 일하면서 세계여행을 할 수 있다면. 하지만, 일반적인 직업을 가진 사람들로서는 그저 바램일 뿐이다.
나름대로 어떤 방법일까하고 기대를 많이하고 봤다. 먼저 저자의 이력이 궁금했다. IT 계열의 회사에 다니다가, 여행에 관심을 가지게 되어 지금은 여행사에서 근무하고 있다고.
책에서 말하고 있는 것은 휴가시즌에 갈 수 있는 일주일 정도의 코스이다. 그리고 여기저기 여행수기 공모전이나 이벤트에 응모해서 여행권을 얻는 방법들을 소개하고 있다.
읽으면서, '아 그럴수도 있겠구나' 하면서도 일반사람들이 하기는 힘들겠다는 생각을 했다. 물론 운좋게 여행업 회사의 업무이니 일이 여행일수도 있겠지만, 내가 다니는 IT 회사에서는 꿈도 못 꿀 얘기다. 그외에 저자가 추천하는 여행지와 간단한 스케줄을 소개하는 내용을 다뤘다.
읽고나서 약간 속은 기분이 들긴 했지만, 이렇게 사는 사람도 있구나 하고 생각했다.

2017년 1월 9일 월요일

당신은 웹 2.0 개발자입니까?


"웹 2.0 을 소개한 최초의 국내서적으로, 알기쉽게 설명하고 있다"

웹 2.0 을 다룬 최초의 국내서적으로 알고 있다. 이전까지 매쉬업, 오픈 API, UCC 등 웹 2.0 에 대한 얘기는 소문으로만 대충 알고 있었는데, 이 책을 통해 이런 생소한 용어들에 대한 개념을 정립할 수 있었다.

기존의 웹 1.0 은 정보를 제공하는 쪽과 받는 쪽이 뚜렷하게 나뉘어 있었다. 예를 들면 신문을 만드는 쪽과 보는 쪽 처럼 말이다. 하지만, 웹 2.0 에서는 이러한 구분이 사라졌다.
개인 SNS 와 블로그등을 통해서 개인도 새로운 정보를 제공할 수 있다.
웹 2.0 은 참여를 전제로 한다. 서비스를 제공하는 쪽이나, 받는 어느 한 쪽만 있다면 웹 2.0 은 활성화될 수 없다.
책에 언급된 것 중 가장 괜찮다고 생각한 것은 오픈 API 이다. 각각의 서비스를 조합해서 새로운 컨텐츠를 만들 수 있는 방법이다. 예를 들면, 구글어스의 맵 정보를 제공하는 오픈 API 와 아마존의 상품 정보를 제공하는 오픈 API 를 결합하면 지도 상의 어떤 지역에 어떤 상품이 있는지 알 수 있다. 각각의 개별적인 정보를 합쳐서 의미있고 유용한 컨텐츠를 만들 수 있는 것이다. 이름에서도 알 수 있지만, 'OPEN', 즉 회사들이 자신들의 정보를 차단시키기 보다는 협약을 통해 공개함으로서 새로운 서비스 컨텐츠 시장을 만드는데 앞장서야 할 것이다.

애자일 프랙티스


"애자일 개발환경을 만들기 위한 방법을 무려 45 가지 씩이나 소개한다"

애자일한 개발 환경을 위해서 필요한 행동 수칙 45 가지를 일목요연하게 정리했다.
기존의 애자일 관련한 책들과 내용은 크게 다르지 않지만, 내가 이책을 읽으면서 애자일 프로그래밍에 대해서 정리가 된 듯한 느낌이 든다.
아마 앞으로 프로젝트를 수행해 나감에 있어서, 이 책을 곁에 둔다면 언제나 애자일한 프로그래밍을 할 수 있을 것 같다.
애자일 프로그래밍을 위한 개발자 실천 가이드에서 자세한 내용을 볼 수 있다.

린 소프트웨어 개발


"애자일 방식 중 하나인 린(lean)을 22 가지로 실천하는 방법을 설명한다"

린(lean) 은 두려우리만치 파르스름하게 넘실거리는 불꽃의 혼란을 넘어서, 아름다운 은비늘과 같은 겉치레의 함정을 넘어서, 어여쁜 아가씨의 미소와 같은 안주에의 유혹을 뿌리치고, 극한까지 불필요한 기름을 짜낸 완벽하고 날씬한 것을 의미한다(몇 번을 읽어봐도 무슨 말인지 감이 안 잡힌다).

이러한 린의 개념을 애자일적인 실천 방법(도구) 22 가지로서 언급하고 있다. 저자들의 오랜 실무경험을 읽으면서 느낄 수 있었다.
결국 애자일 방식의 하나로써 얘기하고 있는 린 소프트웨어 개발은 기존의 개발 방식이 가지고 있던 고정관념들을 과감히 탈피하고 있다.
프로젝트의 근시안적인 시간과 비용을 중요시하기보다, 협력과 테스트를 중요시한다. 좀 더 인간적인 개발을 추구해야 한다고 생각한다. 또한 개발 장인에 대한 중요성을 강조하고 있다.

하버드 스타일


"하버드라는 이름에 선뜻 집어든 책. 하지만 결과는 낚였다"

한마디로 낚였다고 밖에 할 수 없다. 어떻게 보면, 하버드 라는 이름에 혹해서 선뜻 집어 들었을지 모르겠다. 그만큼 학벌의 네임벨류는 암암리에 펴져 있다. 지금까지의 책들과는 뭔가 다른 내용이 있지 않을까하고 내심 기대했지만, 내용은 역시나 였다.
저자는 10 년 동안 기자생활을 하다, 회사의 지원으로 하버드 1년 과정인 케네디 스쿨에 입학했고, 그곳에서 만난 하버드생들의 이야기를 책으로 엮었다.
어떻게 보면, 저자의 하버드 기행문일 수도 있겠다. 학교 또는 학생 어느 한쪽만 잘한다고 해서 유명한 학교가 되는 것은 아니다. 그만큼의 학생들에 대한 지원, 학생들의 학교에 대한 자긍심이 뒷받침되어야 한다. 읽는 동안 잠시나마, 나의 학창시절을 돌이켜 볼 수 있었다.

비폭력 대화


"책에서 언급하는 수칙만 잘 지킨다면, 정말 환상적인 인간관계를 유지할 수 있을 것 같다. 하지만 실상은 그리 호락호락하지 않다"

NVC(비폭력대화) 라고 하는 방법론과 저자가 실제 생활에서 NVC 를 사용했던 경험을 중심으로 서술하고 있다.
NVC 란, 말을 할 때, 관찰, 느낌, 욕구, 부탁을 사용하여 말하는 것을 뜻한다. 책을 읽는 동안, 내가 성격이 안좋은 건지는 몰라도, 상대방이 NVC 로 대화를 한다면 무척이나 화를 냈을 것 같다.
비폭력대화를 위한 방법은 다음과 같다.

1. 상대방의 말에 대해서, 자신의 의견을 말하지 말고, 단순하게 Yes or No 를 말하지 말 것
2. 상대방의 말에 대해서 수긍하고, 물음을 통해 얘기하려고 하는 요점을 파악할 것
3. 자신이 한 말에 대해서 상대방이 제대로 이해했는지 확인할 것
4. 상대방이 나를 공격하거나, 화나게 할 때는 마음속으로 저런 행동을 하는 이유가 무엇일까 생각할 것

말의 중요성은 누구나 다 공감한다. 하지만, 나를 비롯해서 실제로 생각하지 않고 말을 하는 경우가 많다. 나중에 후회를 하지만, 주워담을 수는 없다. 이 책에서 언급하는 NVC 까지는 아니더라도, 일상에서 남에게 얘기를 할 때, 3 번 까지는 아니더라도 최소한 1 번만 생각해봐야 겠다.

이것은 자전거 이야기가 아닙니다


"암을 극복하고 사이클 대회에서 7년 연속 우승을 차지한 주인공을 통해 뭐든 할 수 있다는 자신감을 찾을 수 있게 하는 책이다"

일단 제목만 본다면, 이 책의 내용이 절반 정도가 자전거에 관한 이야기라서 100 % 맞다고는 말 못하겠다. 자전거를 타게 되면서, 부쩍 자전거에 대한 뉴스나 정보를 많이 접하게 된다.
자전거 분야에서 랜스 암스트롱을 모르면 이상할 정도로 전세계적으로 유명한 사람이다. 세계 3 대 자전거 경주대회의 하나인 투르 드 프랑스에서 7 번이나 연속으로 우승하는 기적을 일궈냈다.
이 사실만으로도 랜스 암스트롱은 대단한 사람이라고 하겠다. 하지만, 그가 고환암 말기라는 진단을 받고, 암과 싸워 이겨낸 후의 결과이기에 더더욱 값지다. 이 책은 그의 자서전이다.
그의 어린시절, 처음으로 사이클 선수가 되었을 때, 전성기 때 암 말기 판정을 받았을 때, 항암치료를 받으면서 암과의 사투를 벌였을 때, 지금의 아내를 만나고 결혼하기 까지의 모든 과정을 적었다.
과연, 내가 암 또는 그 것와 맞먹을 만큼의 어려움에 봉착했을 때, 어떻게 할까? 선뜻 자신할 수 없었다. 내가 생각할 때, 그가 암을 이겨낼 수 있었던 것, 그리고 7 연패를 할 수 있었던 것은 모두 그를 사랑했던 주변 사람들의 관심 때문이라고 본다.

PS. 이 책이 나오고나서 몇년 후, 저자가 도핑혐의로 그동안의 모든 기록이 삭제되고 사이클 계에서 영구제명이 되었다는 뉴스를 접했다. 여러모로 착잡한 마음이다.

신기술 성공의 법칙


"신기술이라고 해서 무조건적인 성공이 보장되는 것은 아니다. 바로 사용자를 고려한 기술이어야 한다는 것이다"

소히 뜨는 기술이란 무엇일까? 뭐든 최신 기술이라고 무조건 성공할까? 아마도 그것은 아닐 것이다.
이 책은 저자가 기업 컨설턴트로 일하면서, 알게된 성공하는 기술의 요건을 정리한 것이다. 초반에는 현재 업계의 문제점을 지적하고, 저자가 생각하는 실패한 기술에 대해 예를 들어 설명하고 있다.
또한 성공이 기대되는 기술과 성공하는 기술이 갖춰야할 요건에 대해서도 얘기하고 있다. 마지막으로 신기술과 기업의 성공여부를 판단할 수 있는 잣대로서 체크리스트 10 가지를 언급한다.
결론적으로 아무리 뛰어난 기술이라도, 사용자가 배제된 기술은 시장에서 외면 받을 수 밖에 없다. 이건 기술을 사용하는 기업 또한 마찬가지다.
신제품을 만들건, 회사를 설립하건, 혹은 세상을 바꾸던 간에, 다른 사람들의 눈을 통해 세상을 보는 사람들, 다른 이들에게 닥친 위기를 이해하고 고통을 경감시켜 주고 그들의 세상을 더 낫게 변화시키는 방법을 찾기 위해 도와주는 사람들에게는 성공이 필연적으로 다가오게 되어있다. 

2017년 1월 8일 일요일

죽음의 행진


"제목만으로도 포스가 느껴지는 책, 현재 프로젝트가 심상치 않다면 반드시 읽어야 할 책이다"

소프트웨어 공학 관련 서적의 참고문헌에 거의 빠짐없이 등장하는 책 가운데 하나가 바로 이책이다.
책 제목부터 예사롭지 않은데, 내용을 읽어보면 나도 모르게 '아~ 맞아! 바로 내 얘기야!!' 라고 탄성이 나올지도 모르겠다(나는 그랬다).
이 책은 내가 문제있는 프로젝트에 참여하게 되었을 때의 행동지침을 알려주는 선배 사원과 같은 고마운 책이다. 곳곳에 쓰여진 거침없는 표현은 독자의 마음을 후련하게 한다.
애초에 문제 프로젝트에 참여하지 않는다면, 가장 좋겠지만 실상 자신의 의지와 상관없이 배정되는 경우가 많으니 말이다.

프로젝트를 진행함에 있어 걸림돌로서 기술적인 문제 뿐만 아니라, 프로젝트 외의 정치적인 문제또한 간과할 수 없다. 바로 이런 상황에서 중요한 역할을 가진 프로젝트 매니저가 어떻게 해야 하는지에 대한 방법을 제시한다.
엔지니어 뿐 아니라 프로젝트 매니저, 고위 간부에 이르기까지 곁에 두고두고 읽어봐야할 명서라고 생각한다.