티스토리 뷰
낙성대입구역 근처에는 헌책방집이 있다. 매번 학교갈 일이 생길 때마다 그 책방에 가서 뭐 살게 없나 보곤 하는데, 간혹 보석같은 책들도 찾는 느낌으로 가서 갈때마다 설레는 느낌이 든다. 어쩌면 이번 포스트에서 소개할 책도 역시 그런 보석 중 하나가 아니었을까 싶다.
사실 이 책에 대해선 사전 지식이 전무했다. 그냥 컴퓨터 관련 게시판을 가면, 소프트웨어와 관련된 직종을 가진 사람이라면 누구나 한번쯤은 읽어봐야 한다는 책 중에 이 책이 소개되어 있길래 그 헌책방에서 집어왔었고, 그게 벌써 1년 반전의 일이다. 그 시간동안 뭘 할지 갈팡질팡하다가 어느덧 소프트웨어를 다루는 직종을 선택하게 되었고, 마침 기초 소프트웨어 교육을 받던 중에 틈틈히 읽게 되었는데, 뭐랄까... 앞으로 뭔가 구조를 설계하거나 코딩을 하고자 할 때의 방향성같은 건 어림짐작으로 정할 수 있었던 것 같다.
이 책은 제목 그대로 joel spolsky라는 사람이 소프트웨어에 관해서 다양한 토픽으로 다룬 글들을 묶어놓은 책이다. 원래는 JoelOnSoftware(http://www.joelonsoftware.com/) 에서 다뤄진 글 중에 사람들의 주목을 많이 받거나 저자가 유용하다고 생각하는 포스트를 뽑아서 나오게 된 책이고, 아무래도 저자 자신이 경험을 바탕으로 풀어쓴 이야기라서 그런지 많은 소프트웨어 엔지니어나 관리자의 공감을 많이 얻었던 것 같다.
내용 중간 중간에 보면 코딩을 하면서도 일반 개발자가 저지를 수 있는 실수라던가, 과거의 실패 사례를 통한 프로젝트 매니지먼트의 방향을 제시하고 있다. 몇몇 개의 어휘도 나온게 있는데, 그 중 유명한게 Joel Test라는 것이다. 간단히 언급하자면 질좋은 코드를 생산하기 위한 12가지 수칙을 점수화 시켜서 소프트웨어 역량을 평가하는 지표로 삼는 것이다. 저자 본인이 직접 만들었다고는 하는데, 사실 읽다보면 당연히 큰 프로젝트를 유지하는데 있어서 필수적으로 고려해야될 원칙들을 나열하고 있었다. (형상관리나, 일일 빌드 등등...) 한번 관심있는 사람은 직접 찾아봐서 어떤 내용이 나오는지를 보는게 좋을 거 같고, 크게 맥락만 언급하면 다음과 같다.
1. 소스 코드 관리 시스템을 사용하는지의 여부
2. 한방에 빌드를 만들어낼 수 있는지 여부
3. 일일 빌드 여부
4. 버그 추적 시스템 여부
5. 코드 작성전 버그 수정여부
6. 일정 업데이트 여부
7. 명세서(description) 작성 여부
8. 조용한 환경
9.효율적인 도구의 범위내 사용 여부
10. 테스터 유무
11. 인재 채용시 코딩 테스트 여부
12. 무작위 사용자 테스트 진행 여부
무엇보다 이 책의 강점인 것은 책 자체가 재미있다는 것이다. 흔히 컴퓨터와 관련된 책은 전공 지식이 빼곡빼고 들어가 있고, 재미가 전혀 없는 게 대부분이겠지만, 이책은 간간히 농담도 하면서 계속 읽는 재미를 유지시켜준다. 읽으면서도 전공서적을 읽는 느낌보다는 가쉽 잡지를 읽는거 같았다. 그만큼 저자의 어투가 장난스럽고 재미있었다. 물론 이렇게 읽히기 까지는 역자분들이 그만큼 번역을 잘했기 때문에 원서의 느낌 그대로 읽고 즐길 수 있는게 아닌가 싶다. (내가 속해있는 부서도 이 기준에 맞춰보면 얼추 맞는거 같다.. 뭐 좋다는 의미겠지 ㅋㅋㅋ)
다만 이 책에서 코딩의 비기같은 것을 기대한 사람에게는 조금 실망스러울 책이 될거라고 본다. 아마 책을 끝까지 읽어본 사람이라면 알 겠지만, 이책의 내용중에서 코딩이 나와있는 부분은 처음 비트연산시 어떤 부분에서 버그가 날 수 있는지를 설명하는 부분과 중간 중간에 내용 이해를 돕기 위해서 추가된 VB 관련 코드를 제외하고는 코드와 관련된 내용이 거의 전무하다. 그것보다도 개발시 어떤 점을 미리 고려해야 나중에 다가올 참사를 막을 수 있는지를 재미있게 풀어써놨기 때문에 이 부분에서 뭔가 배워나갈게 많을거라고 생각한다. 그런 측면에서 PM을 하는 사람에게는 크게 도움이 될 내용들이 많이 담겨져 있다.
단순히 개인의 필요성에 의해서 프로그래밍을 하던 내 입장에서는 회사를 입사하면서 왜 이런식으로 코드를 관리하는게 중요한지를 알려준 책이었던 것같다. 물론 여유시간에 짬짬히 읽어서 이 책이 주는 큰 맥락을 놓치고 있는 것일 수도 있겠지만, 아무래도 책 자체가 포스트 단위로 끊어져서 각각의 주제로 설명해줬기 때문에 부담없이 읽을 수 있었던게 아닐까 싶다. 아마 코딩하다가 뭔가 머리 좀 식힐 무렵에 이 책을 열고 한 챕터만 딱 읽어보면 웃으면서 유쾌하게 시간을 보낼 수 있을 거 같단 생각이 든다.
이 책이 처음 나온건 내가 알기론 2005년인가 그렇고 위의 이미지는 어제 사이트 들어가서 직접 찍은 이미지인데, 아직까지 운영되고 있다. 물론 1월에 끝나있는거 보니까 뭔가 하고 있는 일이 있고, 바쁜가 보다. 그래도 책이 나오기전까지 자그마치 10년이라니... 정말 오래된 소프트웨어 관련 블로그이다. 무엇보다도 자기의 생각을 온라인 상에 자유롭게 공유하고, 이에 공감하는 사람들이 많다는게 정말 부럽다. 어쩌면 지금 이 블로그가 앞으로 나아갈 방향도 이렇게 장수하면서 즐길 수 있는 부분이 되었으면 하는 바램도 살짝 있다.
* 참고로 한국어로 번역된 조엘 온 소프트웨어 사이트(http://korean.joelonsoftware.com)도 있다. 물론 다 번역되어 있는건 아니지만 그래도 블로그에 어떤 글이 담겨져있었는지 입맛이라도 볼 수 있는 사이트일 듯하다. 궁금한 사람은 한번 들어가 보시길 :)
'Hobby > Book' 카테고리의 다른 글
[Book] 딥러닝 첫걸음 (0) | 2017.02.06 |
---|---|
[Book] 유니티로 배우는 게임 수학 (0) | 2016.08.02 |
[Book] 임베디드 프로그래밍 C코드 최적화 (0) | 2015.06.06 |
[Book] Embedded Android (2) | 2015.05.02 |
[Book] learning from data (0) | 2015.04.06 |
[Book] 처음 시작하는 센서 (0) | 2015.04.05 |
[Book] 리눅스 시스템 프로그래밍 (개정 2판) (0) | 2015.03.07 |
- Total
- Today
- Yesterday
- ColorStream
- reward
- ai
- Windows Phone 7
- dynamic programming
- TensorFlow Lite
- Off-policy
- Distribution
- RL
- 강화학습
- processing
- SketchFlow
- 한빛미디어
- End-To-End
- bias
- Offline RL
- DepthStream
- PowerPoint
- windows 8
- 파이썬
- 딥러닝
- Expression Blend 4
- Kinect
- arduino
- Gan
- Policy Gradient
- Kinect SDK
- Kinect for windows
- Variance
- Pipeline
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |