Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

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

Short Coding

Short Coding - 8점
Ozy 지음, 서수환 옮김/한빛미디어



제목과 표지디자인이 인상깊어서 구입을 했다. 그리고 어떤 책을 볼까 하다가 집어 들었다.

내 개발 경험이 아주 얕기는 하지만 그래도 주워들은건 좀 이쓴데  이 책의 저자가 얘기하는 코딩의 세계는 아주특이하고 나로썬느 처음 보는 것이었다. 이 책은 내가 보통의 기대하던 알고리즘을 이용한 코드단축이라던지 리팩토링 기법, 퍼포먼스 향상을 위한 튜닝 같은 부분에 대한 내용이 전혀 아니었다. 솔직히 읽기 전에는 그런 부분을 기대했었다.



여기서 말하는 숏코딩은 말 그대로 숏코딩이었다. 어떤 문제를 해결하기 위해서 소스를 얼마나 짧게 짜는가이다.  어떤 알고리즘적인 문제를 해결하는데 그냥 해결만 하는 것이 아니라 계속 고드단축을 시도해서 단축할 수 있는 데까지 단축하는 것이다. 여기서는 보통 PKU 온라인 심사(POJ)라는 국제 대학 프로그래밍 컨테스트에 도전하는 학생들을 위해서 만들어진 여러문제에 대해 각종 언어로 컴파일하고 실행해 볼 수 있는 사이트를 이용하고 있다.

어쨌든 이럭게 숏코딩을 하다보니 상당히 변태(?)적이 코드가 나온다. 컴파일러의 특징을 이요해서 include문을 아예 없애버린다던지 for문에 조건을 다 안준다던지, 변수선언에서 한바이트를 줄이기 위해 전역으로 선언한다든지 하는..... 완성된 코드를 보면 이게 코드인지 암호인지 모를정도이다... 보통 얘기하는 가독성, 정형화된 문법은 여기서 신경쓰는 바가 아니다.

이런 도전을 한다는 것이 나에게는 꽤나 흥미로왔다. 이런 세계도 있구나 하는..... 이책에서는 대부분의 소스를 C로 작성하고 있다. 대학때 잠시 배운 C실력으로 이해하기는 무리라고 생각했으나 후반부에 자바도 한색션정도 나오는데 역시 이해를 못했다. (ㅡ..ㅡ)


지은이도 얘기하듯이 여기서 배운 테크닉을 써먹을 수 있냐 하면 그렇지는 않다.  하지만 쇼코딩을 하려면 알고리즘과 언어에 대한 충분한 이해가 필요하고 이런 도전을 하면서 지식은 더욱 늘어나고 가독성을 고려하지 않은 복잡한 소스를 보면서 독해력도 늘어갈 수 있다. 어려운 문제에 도전해서 내공을 높인다는 것인데 확실히 이걸하려면 보통 실력으로는 쉽지 않겠다는 생각은 든다.

처음 코딩을 하면 이것저것 해보고 싶은데 뭘 해야할지 막막할 때가 상당히 많은데 이럴 때 POJ의 알고리즘들을 (숏코딩은 아니더라도) 시도해 보면 공부에 큰 도움이 될꺼라고 생각한다. 당연히 쉬운 문제들은 아니다.

원래대로라면 문제하나하나를 다 같이 고민하고 짜보면서 해야 진짜일텐데 일단 C는 내 분야가 아니기도 했고 그렇게 읽으면 책읽는 속도가 너무 느려지기 때문에 속독하듯이 가볍게 본 편이다. 나에게 큰 도움을 준 책은 아니지만 상당히 신선한 충격을 주어서 별 4개
2008/08/07 03:27 2008/08/07 03:27