인트로


서평을 170여 개 썼다. 알게 모르게 그동안 읽었던 책은 내 머릿속에 들어왔고, 무의식 속에서 내 목소리에, 내 행동에 녹았다. 어느새 나는 책에서 읽은 대로 생각하고, 행동하는 사람이 됐다. 책은 어느새 내게 무척 가까운 친구가 됐다.

얼마 전 나는 7년여 경험을 가진 소프트웨어 개발 분야에서 왜 이렇게 지식이 부족할까 심각하게 고민했다. 그러다 문득 그동안 쓴 서평을 훑어봤다. 맙소사. 그 많은 책 중 내 전공인 소프트웨어 개발 관련 책이 한 권도 없었다. 무슨 말이 더 필요한가? 공부가 부족하니 모르는 거였다.

이럴 땐 생각을 덜 하는 게 최고다. 서점에 가서 가장 쉬워 보이는 자바스크립트 책을 골랐다. 요즘 내가 가장 고통받는 분야는 자바스크립트였다. 그렇게 고른 <처음 만나는 자바스크립트>를 잡고 읽기 시작했다. 책을 얼마나 안 읽었으면, 내 수준에 맞지 않는 책을 골랐다. 괜찮다. 이것도 다 경험이니까.

그렇게 앉은 자리에서 책을 다 읽었다. 2시간 30분. 그리고 내 역사적인 첫 기술서 서평을 써본다.

서평


일단 이 책은 쉽다. 330페이지에 달하는 책을 2시간 30분 만에 다 읽었다는 것은 그 난이도를 증명한다. 나는 자바스크립트를 잘 모르거든. 그런데 어떻게 그렇게 빨리 다 읽었느냐? 쉽게 말해 개발자를 대상으로 하는 책이 아니다.

서툴긴 하지만, 나는 이미 상용 서비스 중인 웹 서비스에 코드를 넣은 개발자다. 7년여 개발 경험 중 대부분은 안드로이드 개발이지만, 자바스크립트도 타입스크립트로 사용하면 불편함이 꽤 많이 사라진다.

최근에는 Vue 프레임워크로 또 다른 웹 서비스를 만들고 있는데, 무척 고통을 받긴 하지만 어쨌든 실무에서 자바스크립트를 사용하는 개발자다. 그런 내게 if문과 for문, 논리연산자 등의 기초를 읽는 것은 훑어보기 그 이상을 할 수 없었다.

물론 뒷부분 실제 데이터를 다루는 코드는 유심히 읽었지만, 타이핑하며 따라 해볼 정도는 아니었다. 이는 내가 거만해서가 아니라, 그만큼 초심자를 대상으로 하는 책이란 말이다.

이 책을 읽고 기술서 서평을 쓰는 게 더 두려워졌다. 도대체 무슨 얘기를 써야 할지 감이 잡히지 않았다. 몇몇 기술서 서평을 서칭해보고, 책에 관한 5가지 질문지를 만들었다. 이 질문지로 서평을 써보겠다.

1. 이 책을 읽고 뭐가 나아졌나?

기술적으로 나아졌다기보단, 내가 뭘 아는지 알게 됐다. 나는 안드로이드를 자바로 개발했기 때문에 자바스크립트는 어색했다. 특히 ES6 문법 중 화살표 문법, 구조 분해 할당 등 도대체 이게 뭔가 싶은 기술에 큰 고통을 받았다. 모르는 게 투성이다 보니 자신감은 끝을 모르고 떨어졌다.

하지만 이 책을 보고서는 내가 뭘 알고 있었는지, 내가 얼마나 알고 있었는지 파악할 수 있었다. 실무에서 퍼포먼스를 내기엔 무리가 있지만, 그래도 기초적인 문법 등은 사용하고 있었다는 것을 깨닫게 됐다.

뭐가 나아졌냐고? 내 기분이 나아졌다. 편-안.

2. 실무에 당장 적용할 수 있었던 파트는 어디인가?

실행할 함수명에 ()을 붙여서는 안 된다는 문구가 있었다. 이 부분이 내가 이 책에서 유일하게 밑줄을 긋고, 접어둔 파트다.

함수명이나 메서드명 뒤에 붙이는 ()에는 해당 함수나 메서드를 바로 실행한다는 의미가 있다. 이 때문에 함수명 뒤에 ()를 붙이면 setTimeout 처리가 끝나기도 전에 recalc 함수가 실행돼 버린다.

var refresh = function() {
   setTimeout(recalc(), 1000);
}

오호, 그렇구나 하고 넘어갔던 파트인데 어제 코딩 중에 이 특성을 사용하게 됐다. 나는 반대로 함수가 실행됐으면 했는데, 실행되지 않아서 갸우뚱하던 중이었다. 문득 이 문장이 생각나 ()를 사용해 함수를 실행시켰다.

실무에 당장 적용했던 파트다.

3. 놀랍지만, 전혀 안 쓸 것 같은 파트는 어디인가?

이 책에는 HTML과 CSS 설명도 많이 나온다. 퍼블리셔와 함께 일하기 때문에 내가 실무에서 HTML과 CSS를 깊이 다룰 일은 없다. 놀라운 부분도 아니었고, 전혀 안 쓸 것 같은 파트였다.

딱히 놀라운 파트는 없었다.

4. 불편했던 파트는 어디인가? (오탈자 등)

오탈자가 한, 두 개 정도 있었는데 내용에 크게 불편함을 주는 정도는 아니었다. 오탈자도 사소한 거라 딱히 체크하지 않고 넘어갔다.

우리말과 어순이 같은 일본어 번역서이기도 하지만, 번역 품질에 큰 불편함도 없었다.

5. 이 책을 누구에게 추천하고 싶은가?

이 책을 다 읽고 가장 먼저 생각난 것은 우리 팀 기획자다. 개발 팀원들에게 이 책을 추천하는 것은 민망할 정도다. 개발자를 조금이라도 이해할 수 있게끔 기획자에게 선물하면 좋을 것 같다.

개발을 처음 배우는 사람에게 추천한다.

총평


생각보다 득이 큰 독서였다. 일단 기술서 한 권도 완독하지 않았던 개발자에서 기술서 한 권을 완독한 개발자가 됐다. 이 글을 시작으로 기술서 서평을 쓰는 개발자가 되기도 했다.

뭐든 시작이 있는 법이다. 이제 시작했으니, 이 위에 더 많은 경험치를 쌓을 일만 남았다. 그런 의미에서 첫 기술서 서평 책으로 적절했다고 생각한다.