티스토리 뷰
가독성은 물론이며, 속도나 메모리상의 이점을 가진 코드도 많은 경험에서 얻어질 가능성이 높은 것이지 자연스레 얻어지는 것은 아니라고 확신합니다.
이 책은 저자가 경험했거나, 적절하다 생각하는 예제를 놓고 다양한 방법으로 해결을 논합니다. 물론 저자가 거론한 방법이 최선은 아닙니다. 저자도 그렇게 얘기하진 않구요.
효율이란 어느 한 가지 관점에서 이루어져야 하는 것이 아닙니다. 주변 상황에 따라 중요시 여겨야 하는 가치가 달라지므로 그에 맞는 적절한 합의점을 찾아야 한다는 류의 이야기는 이런 류의 책에서 자주 보지만, 진부하다 싶은 감은 있어도 너무 당연한 이야기라 이견의 여지가 없더군요.
알고리즘의 선택에서의 팁이 특히 흥미로웠습니다. 일반적인 퀵정렬이 삽입 정렬이나 선택 정렬보다 느릴 수 있는 상황에 대한 이야기가 아주 적절한 예입니다.
저자는 그런 얘기들을 하면서, 알려진 라이브러리, 자신이 작상했던 함수 등에 대한 맹목적인 믿음을 갖고 코딩을 하지 않았으면 한다는 느낌을 받았습니다. 퀵정렬이 당연히 빠를 것이다라는 믿음에서 올 수 있는 효율성 저하는 단순히 기본 퀵정렬함수보다, 개선한 퀵정렬 함수를 써라가 아니라, 왜 기본 퀵정렬함수가 느릴 수 있는지 이해하고, 개선된 퀵정렬 함수가 왜 효율에 문제가 없는지 이해할 만큼 고민하고 검증하는 과정을 거치라는 이야기가 아니었을까요?
저는 원제인 Programming Pearls보다, 생각하는 프로그래밍이라는 제목이 더 맘에 듭니다. 프로그래밍은 반복되는 작업만하는 단순 노동이 아닙니다. 만약 그랬다면 매크로로 대체될 수 있었겠죠.
그렇기 때문에 어떠한 주제에 대해 한번 더 고민해보는 시도를 할 수 있게 도와준것만으로도 이 책은 가치가 있는 책이었습니다.
'Book review' 카테고리의 다른 글
뉴욕의 프로그래머 - 실수를 두려워하지 말지어다 (0) | 2008.01.14 |
---|---|
실용주의 프로그래머 - 실용주의 마인드 (0) | 2008.01.14 |
리팩토링 - 실용적이고, 현실적이며 실천적이었다. (0) | 2008.01.14 |
프로그램은 왜 실패하는가? - 체계적인 디버깅 지침서 (0) | 2008.01.14 |
네트워크를 훔쳐라 - 그들의 심리를 파악하자 (0) | 2008.01.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- perfmon
- c언어
- NDC2013
- 바로가기 프로그램
- 게임데브포에버
- 멀티스레드
- 조엘 온 소프트웨어
- TDD
- CppSQLite
- 디자인 패턴
- SDL
- 좋은 프로그래머
- svn
- Rails
- TraceRoute
- 엘키
- 루비
- 디버깅
- 루비 온 레일즈
- EzShortcut
- RoR
- 임백준
- SQLite Spy
- 리버스 엔지니어링
- EasyExec
- ftp
- 게임개발포에버
- ruby
- Ruby on Rails
- MS-SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함