금요일, 5월 12, 2006

서평 - 리눅스 디버깅과 성능 튜닝

오랜만에 다시 공짜 책을 받아서 서평을 한 번 더 써 본다. 사실은 공짜가 아니었다... 놈들이 날 베껴먹으려고 작정했다... 어쨌든 책 값으로 소모된게 아니기 때문에 '책은 공짜'가 엄밀히 틀린말은 아니긴 하다.

책은 리눅스 디버깅과 성능 튜닝이다. 개인적으로 리눅스 보다는 프리비에스디를 선호하면서 은근히 접근기회가 적은 운영체제인 리눅스에 대한 책이라 대충 훑어본 것이긴 하지만(난 모든 책을 대충 훑어본다) 그런대로 느낌을 적는덴 부족함이 없으리라(는 망상을 해 본다).

리눅스는 아니었지만 나의 디버깅 스토리에서 상위를 차지하는 에피소드는 이런게 있다:
때는 90년대 중반 졸업논문을 뽑아내기 위한 나의 프로그램은 막바지에 다다르고 있었다. 사실 막바지라기 보단 졸업때가 다 될때 까지 논문주제가 오락가라해서 시작을 늦게 했던게 치명적이었다. 상황 자체가 이미 갈때까지 갔으므로 프로그램을 완성해야 졸업이 가능하다. 완성이라는게 단순히 코어덤프 없이 프로그램이 도는게 아니라 내 이론이 기존의 방법보다 눈꼽만큼이라도 성능이 향상된다는 것을 증명해야 하므로 디버깅 뿐 아니라 퍼포먼스 튜닝까지 포함어야 할 상황이다.
문제는 이 프로그램이 성능향상을 위해 멀티스레드에다가 분산된 컴퓨팅환경에서 작동한다는 사실이다. 믿었던 GDB는 멀티스레드환경에서는 무용지물이었다. 어딘가 메모리 누수가 있는데 잡질 못한다. 멀티 스레드 환경에서는 브레이크 포인트라는 부르조아틱한 디버깅 기능은 망상에 지나지 않았다.
선택은 최종적으로 상용툴의 한 달간 공짜 체험판... 퓨X파이 라는 상용 툴은 당시메모리 누수에서는 최고였고 점진적링크가 가능해 옆 연구실에서는 30분 걸리던 링크 시간이 단 몇 십초로 줄어드는 효율성 향상을 보여주는 꿈의 개발툴이었다.
나는 그냥 어차피 한달 후면 졸업논문은 통과 아니면 탈락이니까 그놈을 썼다. 결과는 매우 성공적이었다. 그 이후 약 1년간 메일에 제품을 사지 않겠냐는 메일에 시달렸지만 그 정도는 가볍게 무시를 했다. 성공적으로 졸업하고 들어온 회사에서는 어디선가 퓨X파이의 상용라이선스를 사다가 월 캐비넷에 곱게 처박아 두고 있었으니 잘 쓴 댓가로 홍보를 해 줄 필요도 없었던 상황이었다.

...
..
.

서설은 이 정도로 끝내고, 리눅스 디버깅과 성능튜닝은... 한 마디로 주방생활용품전문가게 느낌이 난다. 개발과 디버깅을 주로 하는 사람으로 비유를 하자면 집에서 솥뚜껑 운전하는 가정주부와 비교하면 될 듯 하다. 그저 요리 도구는 냄비, 칼, 그릇, 수저, 가스레인지 정도 알고 있는 주부랄까. 전문 분야가 있어서 찌개는 잘 하는데 튀김은 별로 하지 않는... (혹은 반대도)

이 가게에 들어오니 냄비도 다 같은 냄비가 아니다. 칼은 또 어떠한가? 칼만으로도 주방 한쪽을 다 채울 수 있을 느낌이 온다. 그리고 내가 항상 쓰던 도마... 아무래도 내가 잘 못쓰고 있다는 느낌이 든다. 친절한 설명은 고개가 끄덕여지고 지금까지 이걸 모르고 요리란걸 했던 내가 초라하고 한심할 따름이다. 아울러 그걸 사면 내 요리 실력도 한층 업그레이드 될 것 같은 느낌이 든다.

그런데... 아마도 사고 보면 그걸 샀다고 요리실력이 늘지는 않을 것이다. 칼은 칼일 뿐이다. 아무리 좋은 칼을 들고 있다고 해도 요리사의 실력이 뒷받침이 되지 않으면 돼지목에 진주목걸이일 뿐이다. 골프치는 사람들이 골프채에 돈을 투자하면서도 똑같은 말을 한다. 단, 그 사람들은 변명이 있다. 지더라도 골프채 탓은 하지 않는다고.

...
..
.

당신에게 마음에 드는 요리도구를 마음대로 고르라고 해도 주변 여건이 지원을 하지 못하는 경우가 있을 것이다. 예를들어 "이번에 등산 가는데, 비상식량, 모포, 여분의 옷, 텐트, 랜턴을 배낭에 넣고 남은 자리에 요리도구를 챙겨야 한다" 면 뭘 선택해야 하나? 몽땅 다 선택할 수는 없을 것이다. 자신에게 맞는 도구가 필요할 것이고, 어떻게 사용하겠다는 구체적이고 분명한 목표가 있어야 할 것이다.

늘 그렇듯이 도구는 사용법을 익히는데 걸리는 시간과 노력이 필요하다. 이 책은 디버깅이 힘든 사람들에게는 매우 유용하다는 것에는 별다른 이견은 없다. 하지만 삐딱한 성격상 한 마디 하고싶은 건 참을 수 없다: 디버깅을 잘하기 위한 문턱을 낮춘 책이지 디버깅의 난이도를 낮춘 책은 아니다.

댓글 3개:

익명 :

닭아, '디버깅을 잘하기 위한 문턱을 낮춘 책이지 디버깅의 난이도를 낮춘 책은 아니다.' 너 말이 맞다.

그래서 이번에 고가(쌍둥이 급이 아닌 WM F 급으로) 주방용품점 하나 더 열려구...

- jrogue

익명 :

사실 옆에 딱 붙어 앉아서 도와주지 않는 다음에야 뭔들 그렇지 않은게 있겠는가? 그렇지 않았다면, 지금쯤 달에 가서 사는 것이 뭔 대수겠어? ^^;

파름 :

닭/ 주방용품전문점이라... 뭐, 것두 괜찮겠지.

굉/ 디버깅 도우미 자원봉사라도 뛰어야 하나?