한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
개발자를 주인공으로 한 소설은 잘 들어보지 못했던 터라 그냥 끌리는 마음에 선택하게 되었다. 영국에서 일하는 스웨덴 개발자 리오 라르손과 그 주변 인물을 중심으로 펼쳐지는 이야기인데 사는 곳은 달라도 같은 개발자로서 공감할 만한 부분들이 많으리라 생각했다.
프로젝트는 다양한 이유로 엉망진창이 되었지만 현재 이들이 직면한 가장 큰 문제는 처참한 성능이었다. 과거에 외부 컨설턴트들과 함께 프로젝트를 진행할 만큼 팀이 컸을 당시, 누군가가 캐시를 직접 구현하자는 훌륭한 아이디어를 냈다.
그게 어려워 봐야 얼마나 어렵겠는가?
알고 보니 정말 어려웠다.컴퓨터 과학에는 진정으로 어려운 두 가지 문제가 있다. 이름 짓기, 캐시 무효화, 오프 바이 원(off by-one) 오류다.
지난 몇 달간 이들은 느리고 일관성 없는 캐시 문제의 해결책을 찾으려 노력했으나 진전이 거의 없었다. 데이비드는 자신이 프로그래밍하겠다며 온라인에서 찾은 코드를 복사해 붙여 넣었다가 본의 아니게 엄청난 메모리 누수 문제를 일으켰고, 팀에서는 그 원인을 찾는 데 한 달이 걸렸다.— p. 33
주인공인 리오는 10년이 지나도 이삿짐 상자를 다 풀지 않을 만큼 게으르지만 작업 환경만큼은 여느 개발자 못지않다. 커브드 모니터와 타워형 컴퓨터를 갖추고 체리 MX 청축이 들어간 백라이트 WASD 키보드와 게임용 마우스를 사용한다. 마지막으로 인체공학적 의자를 곁들이면 작업 공간이 완성된다.
옥토캣이나 고퍼처럼 개발 관련 스티커가 잔뜩 붙은 노트북을 들고 출근하는 길에는 사람들과의 교류를 피하는 너드같은 모습을 보인다. 출근하자마자 채널에 뜨는 스크럼 미팅 메시지에 부랴부랴 회의실로 달려가 만난 프로젝트 매니저는 리오에게 캐시 작업에 대한 진척 상황을 묻는다.
캐시 문제를 고치기 위해 동료 개발자와 페어 프로그래밍을 하던 중 리오는 대학 시절 구현했던 CacheIsKing 라이브러리를 떠올리게 되는데...
벌써부터 개발 용어가 꽤 등장하는데 다행히 이야기를 시작하기 전 IT 용어에 대해 간단히 설명하는 소개 페이지가 있어 개발 분야에 익숙하지 않은 사람들의 이해를 돕고 있다. 그리고 이어지는 50개의 에피소드는 커밋 메시지처럼 제목이 붙여졌는데 이는 변화하는 타임라인에서 특정 지점을 순간 포착하는 커밋의 특징을 적절히 활용한 것이다.
마치 시트콤을 보는 것처럼 에피소드마다 등장하는 다양한 인물들의 경험 속에서 개발자로서 공감 가는 부분을 흥미롭게 읽었다. 리오 본인이 자초한 사건이지만 익숙한 안전지대를 벗어나면서 실패하고 고군분투하는 모습과 스스로 깨닫지 못했던 잠재력을 발휘하게 되는 여정을 따라가다 보면 어느새 리오를 응원하게 된다.
그리 두껍지 않은 책인데 너무 많은 이야기를 담으려 한다고 느꼈고 결과적으로 무슨 이야기를 하고 싶은 건지 알 수가 없었다. 사실 소설책이야 재미만 있으면 그만인데 저자와 유머 코드가 맞지 않는 탓인지 종종 불편해서 그만 읽고 싶다는 생각이 들기도 했다. 다행히 끝으로 갈수록 차분한 분위기와 현실적인 경험에 공감이 되어 책장을 무사히 덮을 수 있었다.
다시 읽고 싶은 책이 아니라 추천은 하지 않으려 한다. 그래도 다른 사람의 의견을 받아들이는 것보다 직접 읽고 판단하는 것이 좋은 사람들은 한 번 읽어보길 권한다.
모든 사람의 마음에 드는 책이 어디 있겠느냐마는 '나는 리뷰어다'라는 활동을 통해 받은 책이다 보니 안 좋은 평을 써도 되나 싶어 글을 쓰기까지 좀 망설였다. 블로그는 일기장이 아니니까 솔직함이 미덕은 아니지만 이 책을 읽을까 말까 고민하며 이 리뷰에 도달한 독자들에게 예의를 지키는 것이 더 우선이라고 본다.