태그 : 책이야기

Short Coding - 알고리즘 트레이닝으로 배우는 코드 단축기법

Short Coding - 알고리즘 트레이닝으로 배우는 코드 단축기법
Ozy 지음, 서수환 옮김/한빛미디어

전혀 관심 밖에 있었던 책인데, 무심코 감수자로서 고명하신 변태 프로그래머 '야/네/우/라/오' 선생님의 이름이 박혀 있는 것에 급뿜고서 보자마자 집어든 책. (야네우라오 선생님의 변태로서의 고명하심은 Windows プロフェッショナル ゲームプログラミング 책에 대해 이야기할 때 적었으니 패스)

아무튼! 변태 프로그래머 야네우라오 선생님이 감수한 책이라면, 감수했을 이유가 있다!
책의 내용이 분명 충분히 변태적일 것이다!!

그런 쪽의 변태적인 책은 아니었지만, 변태적이리라 기대한 책의 내용은 나름 기대에 부응했는데,
한빛미디어 측에서 설명하듯이, 이 책은 흡사 '코드 골프'로 대변되는, 어떻게 해서든 바이트수를 최대한 줄인 코드를 만드는 것이 목적이었기 때문이죠.

그렇기에 부제와 귀여운 표지에 낚여서, '이 책으로 알고리즘을 잘 익혀서 버벅대던 코드 좀 개선시키고 간결하고 깔끔한 코딩해야지~' 하는 마음으로 책을 산 사람은 좀 당혹해할런지도 모르겠습니다.

그런데 실제로도 책의 제목 때문에 그렇게 오해해서 읽는 사람들이 적지 않을 것 같다는게 좀 걱정인데,
이를테면 한빛미디어 쪽 책을 PR 하기 위한 연재물인 '전문가 Zoom In 2008년 7월자'로 적혀 있는 이 책에 대한 이야기를 봐도 그런 걱정이 기우는 아니...라는 느낌이 듭니다. 인용해볼게요.

커스터마이징을 제공하는 제품을 출시하는 경우 필요 이상의 기능도 고객의 요구에 따라서 추가되는 경우가 발생한다. 그에 따라 증가하는 코드의 양과 프로그램의 무게가 주는 해로움은 기능을 추가한 시점에서는 발견되지 않는 경우가 있다. 마치 몸안에서 자라나는 암세포 만큼 쌓이고쌓여서 결국엔 심각한 장애를 발생시키곤 했다. Short Coding은 건강한 코드를 생산하는 작업이다. 코드량을 줄여 건강하고 날씬한 코드를 만드는 일이다. 생성된 코드를 다듬고 다듬어 효율적이면서 직관적인 알고리즘을 만들어 내는 작업이니 어찌보면 리팩토링의 범주에도 들지 않겠는가? 저자는 실무와 동떨어져 있다고 얘기하지만 가독성을 심하게 해치지 않는 경우에 한해서는 제한적으로 적용함에 있어서 별 문제가 없을 듯 하다. 잊지 말아야 할 것은 코드의 가독성과 효율의 중심을 잘 잡는 것과 사용되는 언어의 특성을 이해해야 한다는 점이다. 세상에서 제일 짧고 멋진 프로그램을 만들어 보고 싶은가? 지금 도전하라. Short Coding과 함께!
하아아?

아니 책은 읽어 보셨는지요?

아저씨는 이 책에 박혀 있는 코드들을 보면서 건강하고 날씬한 코드라고 느끼셨나요?
저 딴 코드야 말로 구석에 박아놓으면 정말 해로움이 눈에 띄지 않는다구!
이게 뭔 코드야 라고 심각하게 고민하던 다른 사람이 코드 고치다가 결국엔 훨씬 더 심각한 장애를 발생시킨다구!

아니면 설마 처음엔 '아니 이런 괴이한 내용의 책을 한국에 수입해 출판하는 목적이 뭔가요 접접, 독도는 우리땅 대한민국만세 ...-_-;;', 하고 적으셨었는데 '그렇게 하면 책이 안팔리자나요 책 좀 팔리는 멘트를 적어주세요'하고 징징거리는 담당자의 성화에 못 이겨 나름 소설을 적으신... 것일지도 모르겠다(-_-);;; 농담입니다, 화내지 마세요. ^ㅅ^;;

그나마 누군가의 표현처럼 파블로프의 개들처럼 프로그래머들은 심플하면서도 효율 좋은 것에 침을 흘리며 달려드는 경향이 있다...는 얘기대로, 가장 끝 문장의 세상에서 제일 짧고 멋진 프로그램을 만들어보고 싶은가?
라는 프로그래머들을 도발하는 끝맺음은 확실히 '어머 이건 꼭 사야 해'하는 느낌을 가져다 주긴 하지만, 이 책을 표현하는데에 있어서는 저런 서평은 맞지 않다고 봐요... ... 아, 아닌가, 하긴 어쩐지 읽기 힘들면서도 짧은 코드 보면 뭔가 괜히 멋져보이고 반할 것 같고... 나도 한번 쯤 저런 코드로 열심히 달려서 나 없으면 프로젝트 디버깅 못하게 만들고 싶기도 하고 할 때가 ...

잘못했습니다.


어쨌든 단도직입적으로 제가 이 책을 평해드리겠습니다.

이 책은

변태책입니다.

소스 코드양을 변태적으로 1바이트라도 더 압축하는데 목숨을 건

변태책입니다.

컴파일러들의 특성들을 교묘히 해킹하는

변태책입니다.

얼마나 변태적이냐면 감수자조차

변태입니다.

감수자랑 친한, 쓴 사람도

변태입니다.


혹시 주변에 이걸로 알고리즘 트레이닝을 해봐야지, 하는 사람이 있다면 뒷통수를 강하게 후려쳐주세요.
혹시 주변에 이걸로 알고리즘 트레이닝에 성공했어, 하는 사람이 있다면 주변에 이력서 돌리세요. 이 사람 뽑지 말라고... -_-;;
혹시 직장에서 이 책을 읽고서, '나 오늘부터 건강하고 날씬한 코드 짜기로 했어 데헷~ ^-^*' 이라고 말하는 직장 동료가 있다면 바로 키보드를 빼앗고 해운대 앞바다로 피서를 보내주세요. -_- (더 심한 표현을 쓰고 싶었지만 참는다)

이렇게나 적었음에도 불구하고 이 책으로 '알고리즘 트레이닝'을 하겠다고 하신다면 당신은 변태변태 변태, 라고 얘기할 수 밖에 없어요 ㅜㅜ

그렇다면! 이 책이 코드 짧게 쓰기 변태가 아니고서야 일독의 가치조차 없는 책이냐!
책을 본 순간 '어휴 변태 냄새 나요 저리 치우세요', 라고 단정적으로 이야기할 수 있는 책이냐!
하면 꼭 그런 것만은 아닙니다.

일단 컴파일러들이나 환경에 따른 편법들 같은 잡스러운 자료들로부터, 평소의 흔히 보던 프로그래밍 스타일과 전혀 다른 느낌의 코드(이것도 변태 코드)들을 책 전반에 걸쳐서 두루 볼 수 있다는 것, 그리고 평범한 코드가 어떻게 그런 변태 코드로 바뀌어나갈 수 있는지 함께 추리할 수 있다는 면이 참신합니다. 설명도 C 계열 언어를 어느 정도 알고 있다면 쉽게 이해할 수 있도록 쓰여져 있구요.
평소에 그렇게나 아름답던 나비가 어떻게 이렇게나 징그러운 애벌레로 변태하는지 궁금해하셨던 적 없으신지요? 이 책을 보세요!

초반에 너무 변태책이라는 것을 강조했지만, 한빛미디어 쪽의 책을 PR하는 수단이 너무 마음에 안들어서(...) 그냥 그랬던 것이고, (아니 코드 변태들을 위한 책이라고 하면 어디가 덧나나요... 덧나긴 하겠다-_-;;;) 그저 프로그래밍의 재미를 만끽하게 해줄 수 있다는 면에서, 프로그래밍에 어느정도 익숙한 사람이라면 지적 유희용, 발상을 전환시키는 비타민 같은 느낌으로 훑어볼 수 있는 책입니다.

처음엔 이게 뭥미 하는 느낌으로 다가오는 코드들을 보고서 '어휴 변태 냄새 ㅉㅉㅉ'하다가도, 개중에 나오는 여러가지 기법들과 해설에 감탄하며 '이런 편법을 쓰다니 역시 변태'라고 하다가, 마침내 '우왕ㅋ 이거 쓴 사람 변태지만 진짜 천잰데?! 이딴 천재 변태를 봤나...!!'
라고 외치게 만드는 멋진 변태 책, Short Coding이었습니다.


어휴 쓰고보니 또 한빛미디어 책이야ㅜㅜ


PS: 내용은 적당히 가려 읽어주세요.

by nvu | 2008/08/05 13:40 | 트랙백 | 덧글(9)

2008년 상반기 Wish List

읽고 싶어 보관함에 담아 뒀으나 끝내 구매하지 못한 책 몇 개를 사용한 생존 신고글.

제 개인적인 프로그래머로서의(?) 위시 리스트이긴 하지만, 저랑 비슷한 취향을 가지신 분들이 있으시리라(-_-) 기대하며.

이상한 나라의 앨리스
루이스 캐롤 지음, 김양미 옮김/인디고
이쪽 계열 사람들 필독서인 이상한 나라의 앨리스를 아직도 '제대로는' 읽은 기억이 전혀 없다는 사실을 문득 깨달았습니다.
그렇다면, 기왕이면 아름다운 삽화가 담긴, 성인 대상 버전으로 보는게 좋지 않겠어요? 라는 의미에서의 픽업.
표지 일러스트를 보는 그 순간부터 곧바로 하악하악 이건 사야 돼!! 하는 느낌이
들었다는건 농담입니다. -_-
하지만 왜 여전히 못 사고 있느냐, 라고 물으신다면 역시... 가난해서 일까나. ^-~)>
은하수를 여행하는 히치하이커를 위한 안내서 - 합본
더글러스 애덤스 지음, 김선형 외 옮김/책세상
이 책 역시 이쪽 계열 사람들(저 위에 언급한 이쪽 계열 사람들을 오덕이라고 생각하고 있던 당신은 반성하세요)이라면 일독해야 할 필독서...인 모양이었습니다.
지나가는 말로 "이 책 재밌나여? 한번 읽어보고 싶네요.", 라고 모 님께 생각 없이 말씀드렸는데 "아니 님아 이걸 아직도 안읽었어여? 님 플머 맞아여?" 식으로 ... 대꾸를 하시길래 홧김(-_-)에 위시 리스트에 추가.
그런데 서점에 가보니, 책 두께와 크기가 ... 차라리 성경책을 완독하지 이거 자칫 질러놓고 다 못 읽고 시간 가겠다 싶은 스케일이었던 것도 있어서 참 갈등되네요.
열린책들 편집 매뉴얼
열린책들 편집부 엮음/열린책들
편집 기술, 이란건 솔직히 책을 만들 때나 가치 있지 하는 생각이 들 수도 있겠지만 어떤 레포트를 작성한다든지 다른 여러 분야에서도 깔끔한 편집/맞춤법 보정 기술은 분명 필요한 것이리라 생각됩니다.
게다가 지금 아니면 이 가격에 살 수 없을듯한, 이 무지 저렴한 가격을 보세요.
윈도우 프로젝트 필수 유틸리티
이재홍 지음/한빛미디어
이제 프로그래밍 계열 책들도 꼽아보겠습니다.
전 이 책이 요즘 가장 읽어보고 싶더군요.
오라일리 책을 그렇게 많이 번역하면서 배운 게 하나도 없는건지 한빛미디어는 센스가 퇴보하는 것 같다 하는 느낌을 받고 있는게;
윈도우 초심자 대상들이나 혹할만한 책 제목(유틸리티, 라는 단어에 비해 프로젝트 라는 단어가 그렇게 눈에 안 띄는 것도 원인 중 하나일 수도 있겠지만)과, 표지도 이건 무슨 초딩 학습서 놀이공원 표지 그림인가여 싶고. 아무튼 여러모로 도대체 이게 뭥미 싶은 감이 없잖아 있어서... 였지요. 그래서인지 교보문고 님은 이 책 카테고리를 프로그래밍 쪽이 아닌, Windows / Windows98/ME에 당당하게 등재해두었습니다. ( 'ㅅ')
살 사람은 살테니까 잘 모르고 사는 나머지 사람을 낚아보자 차원에서 저런 제목과 표지를 택한건가 싶은 생각이 들정도.
사실 제목이나 표지는 저렇지만, 요즘 업계 유행인 버전관리 조합인 서브버전과 Trac을 어떻게 윈도우 환경에서 잘 사용하고 볶아먹을 수 있을 것인가... 하는 종류의 코어한 내용이 중심인 것 같습니다.
게다가 저자분이 제가 매번 Subversion 설치법을 보기 위해 자주 드나들었던/드나들고있는 홈페이지 주인장 되신다는 점(...)에서, 한 권 사 읽고 싶긴 합니다. 하지만 쓸데 없이 들어 있는 부록 시디도 신경 쓰이고. 한빛미디어가 API 정복 개정판을 통해 저에게 제대로 엿을 먹인 충격이 아직 다 가지도 않았다, 는 점이 마음에 걸립니다.
책 자체는 여백도 많고 그림도 많고 정말 시원스럽게 편집되어 있어서 읽기는 좋을 것 같습니다... 편집자가 책 페이지 늘리는데 꽤 고생했겠다 싶을 정도로 말이죠.
Head First Java
케이시 시에라 외 지음, 서환수 옮김/한빛미디어
방금 신나게 한빛미디어를 욕해놓고서는(?), 이 책도 한빛미디어 책이긴 합니다. 어찌된게 제가 쓴 프로그래밍 책 관련 글들을 보면 한빛미디어 책들이 상당수 되는지라, 그것도 신나게 까면서도 그렇게 많은지라 제 자신이 고도의 한빛미디어 알바가 아닌가 싶은 그런 느낌이 들기도 하는데요. -_-
업계 대세를 따르기 위해 자바 문법 정도는 어느 정도 잡아둬야 좋지 않을까 하는 생각이 들었더랬습니다. 그래서 서점에서 이리저리 둘러보던 중 발견한 책이 이 책.
HeadFirst 시리즈는 전반적으로 뭐 for Dummies 수준까지는 아니더라도 쉬운 책으로 유명하니까요.
서점에서 대충 훑어본 느낌으로는 일러스트와 농담이 난잡하게 구성된 계열의 책인데, 이런 식의 서적이 사실 경계심을 풀게 하는데는 꽤 안성맞춤이지요.
머리 식히며 보는데 좋을 것 같아서(도움이 될지는 모르겠지만), 관심 서적에 꽂아놓아 보았습니다.

by nvu | 2008/06/12 14:50 | 트랙백 | 덧글(0)

소프트웨어, 누가 이렇게 개떡같이 만든거야

소프트웨어, 누가 이렇게 개떡같이 만든 거야 6점
데이비드 플랫 지음, 윤성준 옮김 / 인사이트

제목에 낚여서 일독한 소프트웨어에 대한 에세이집(?). 맞아요. 정말 낚여서 읽은거예요ㅠㅠ

sucks를 개떡으로 옮긴 것으로 역자의 개떡에 대한 집착...을 기대했는데 그렇게 기대보다는 개떡이란 표현을 많이 발견할 수는 없었던 것 같다.

(영문판도 뭐 그렇지만) 책의 제목으로 의도적 낚시를 시도한 것이 불만이라는 개인적인 트집거리만 제외하면, 번역은 꽤 자연스럽게 되어 있는 편. 뭐 이 표현은 이렇게 했음 더 자연스럽지 않았을까... 싶은 부분도 몇 부분 있거나 이런 역주는 뭐하러 붙여놓은거야 싶은 부분도 좀 있긴 했는데 원래 번역하는 입장과 읽는 입장이란게 또 다르고 하니까. 이 정도면 훌륭하지 만족.
저 이런걸로 태클거는 찌질이 아닙니다. ( - ㅅ-);

그렇지만 나름 이 얇고 작은 책에 만원 돈의 거금(?!)을 바친 입장에서, 그럼 이 책은 개떡 같지 않다고 자랑스럽게 자찬할 수 있을까?
'이 책은, 누가 이렇게 개떡 같이 쓴거야?'라는 푸념에서 자유로울 수 있을까?

그렇긴 한데 그렇잖아도 내용 산만한 책인데 요점 정리라든가 색인이라든가 같은 부분이 없는 것이 일단 마음에 걸렸었다.
그러니까 이 말은 애시당초 저자는 이 책의 카테고리를 기술서와 같은 종류에 넣을 생각이 없었던 것 같다는 것.
젠장, 색인이랑 개떡체크리스트 같은게 부록으로 안 붙어 있는거 확인했을 때부터 알아봤어야 했는데.
목차만 보면 어디에 무슨 내용인지 쉽게 짐작할 수... 있으면 좋았을텐데ㅠㅠ

어쩐지 블로그 포스팅들을 통해서나 좀 정리가 덜 듯한 내용의 글들을, 책을 통해 접할 수 있는 것은 신선하다고 해야할지.
블로그에 끄적였을 종류의 글이었는데 퀄리티가 예상보다는 더 나오니까 내용 좀 많이 불려서 책으로 내자, 하고 낸 케이스가 아닐까 싶은 느낌이 들 정도.

뭐 어쨌거나 앞부분의 구린 UI에 대한 푸념이나 어째서 이게 아닌가 하는 부분에 대해서는 나름 공감되는 부분도 많고 미처 생각하지 못한 부분들을 신랄하게 지적하는 부분들이 꽤 통쾌하게 읽힌다.
저자가 한국 웹서비스들의 경우도 한국어판 기념으로 좀 낑궈넣어줬더라면 책도 더 두꺼워지고 더 통쾌했을텐데 쫌 아쉽다 - .-

하지만 UI에 대한 부분 위주로 이래서 개떡 같다는걸 신랄하게 까는 내용이 가득 담겨 있는 전반 부분을 다 읽고 나면 이 책에서 중점적으로 다루고자 했던 내용은 거진 다 다룬 것이나 다름 없다고 볼 수 있을 것 같다. 후반부는 굉장히 늘어지는 느낌.

후반부의 내용에서 챕터 끝에서 자신이 하고자 했던 말을 다시금 복습은 하는데 그 내용을 읽으면서, 그래서 날더러 어쩌라고 라는 푸념이 무심코 흘러 나와 버렸다.
저자는 소프트웨어 개발자/공급자를 위해 이 책을 쓴 것인가? 아니면 소프트웨어 이용자/사용자를 위해 이 책을 쓴 것인가?  분명 공급자에게 어떤 소프트웨어가 좋은지, 어떤 소프트웨어가 개떡 같이 않은 것인지, 를 이야기하기 위해 출발했으리라 본다.

그렇지만 후반의 내용은 산으로 산으로 가서 안전한 인터넷을 위해선 랜선에 콘돔을 끼워서 꼽으면 돼여 라는 짤방을 넣어두질 않나(뭐 여기까진 애교로 봐주겠습니다 - _-),
쿠키로 개인 정보 수집하는 내용으로, 전 제3자 쿠키를 허용을 꺼놓고 쓰구여, 전 옆집 할아버지 포인트 카드 바꿔서 쓰기도 해서 혼란도 시키구여, 전화 설문조사도 키킥대면서 구라로 대답해여. 잘했져? 라는 내용이 들어가더니
후반에는 마이크로소프트를 까기도 하고 칭찬하기도 하는 등의 내용까지 가게 되..는데,
네 초반에 언급하신대로 인세 때문에 억지로 페이지 채우러 구겨 넣은 것 같아요.
그런 자랑은 엄마아빠나 친구들한테나 하세여.

물론 개인 정보 유출 사건 같은 최근의 화두에 비추어볼 때 이런 내용이 도움이 되거나 할 부류가 분명 있을거라 믿습니다...만. 이런 종류의 문제는 '개발자'들은 '알면서' 넣는 것이 보통이기 때문에, '사용자'들이 타깃이 아닌 책의 특성상 불필요하게 자세히 언급할 필요가 있었을까 싶은 느낌.

꽤 많이 수록된 추천사들 가운데 하나를 보면(젠장 추천사가 이렇게나 많다는 사실에서부터 좀 의심하고 시작했어야 되는데) 이 추천사는 화장실에서 작성되었다고 당당하게 자랑했는데, 정말 그것도 이해가되는... 그런 책이다. 뭐랄까 책 사이즈도 이쪽 책 치고는 아담하고 커버도 간편하기 보기 좋은 페이퍼 커버인데다, 책 무게도 그렇고 책 내용도 그렇고 덩 릴리즈하면서 보기에 딱 좋네영(-_-)

뭐랄까 다시 생각해보면 이 책의 내용을 통해 개발자의 입장에서 분명 가치 있는, 깜빡하고 넘어갈 수 있는 개떡 같은 부분들이 무엇인지 인지시켜주기는 하지만, 이런 부분들은 개발자의 입장에서는 사실 조금만 더 생각해보고 유저 피드백을 적극적으로 반영하면 해결되는 부분이기도 한지라, 애석하지만 아무래도 좋은 내용이 되어버린다.

그러므로 회삿돈으로 주문해서 화장실에서 한번 읽고 서고에 꽂아둘 것. ㄳ

...아
회삿돈으로 주문하면 이거 읽고 배운 내용 만들고 계신 프로그램에 적용하라고 할겁니다.
읽고 배운거 딱히 기억 안나는데 일거리만 늘어납니다. 앗사 신난다 됩니다 -.-);;;

뭐랄까 끄적이다보니 책에 대해 까는 포스팅으로 발전한 것 같은데,
읽어서 젠장 시간 아깝다 괜히 읽었네 하는 생각이 들거나 하지는 않았으므로 어쨌든 일독한다고 해서 손해볼 것은 없는 책.
단지 틈틈히 읽으면서 내 프로그램이 개떡 같나? 하는 자문을 해보기 위한 레퍼런스로서의 가치 또한 없는 책 인 것 같다는게 주문 넣고 기대했던 사람으로서는 정말 아쉬웠던 부분.

by nvu | 2008/04/17 16:28 | 트랙백(1) | 덧글(10)

◀ 이전 페이지          다음 페이지 ▶