이전

리뷰 (9)

한줄평
평점 분포
  • 리뷰 총점10 56%
  • 리뷰 총점8 44%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 9.0
  • 40대 8.0
  • 50대 8.0
리뷰 총점 종이책
잘 감추어진 코드 만들기
" 잘 감추어진 코드 만들기" 내용보기
자칫 오해하기 쉬운 제목입니다.코드를 간결하고 알아보기 쉽게 작성하는 방법에 대한 이야기라면이미 시중에 많은 가이드성 교재들이 많이 나와있지요.이 책은 그런 책들과 비교하기보다는예술분야의 서적들과 비교해야 할겁니다.주제인 '알고리즘 트레이닝으로 배우는 코드 단축기법' 이라는 지식을얻어갈 수도 있겠지만내가 살아가고 있는 공간과 별개의 공간처럼 느껴지는 세상의 사
" 잘 감추어진 코드 만들기" 내용보기
자칫 오해하기 쉬운 제목입니다.
코드를 간결하고 알아보기 쉽게 작성하는 방법에 대한 이야기라면
이미 시중에 많은 가이드성 교재들이 많이 나와있지요.
이 책은 그런 책들과 비교하기보다는
예술분야의 서적들과 비교해야 할겁니다.

주제인 '알고리즘 트레이닝으로 배우는 코드 단축기법' 이라는 지식을
얻어갈 수도 있겠지만
내가 살아가고 있는 공간과 별개의 공간처럼 느껴지는 세상의 사람들에
대한 이야기를 들어볼 수도 있습니다.
처음 코딩부터 나오는 이야기가 조금 부담스럽다면
5장부터 읽어보는 것도 나쁘지 않습니다.

'지독한 환경에서 살아 나가려면 자신을 강하게 단련하는 수밖에 없습니다.
숏코딩을 반복하고 다른 숏코더가 만든 코드를 읽다보면
그 짧은 코드 속에 담긴 미묘한 의식 변화나
고뇌를 느낄 수 있게 됩니다.'

개발자들이 설계, 디자이너들에게 흔히 하는 말들중에 하나가
개념도 없고 고민도 하지 않고 그려댄다 라는 이야기를 합니다.
하지만 주변의 다른 개발자의 코드속에서 그들의 고뇌를 느껴본 적이 있나요.
어느 순간 그냥 키보드 자판의 'C' 자판이 지워질 정도로
자신의 의식은 전혀 없는 작업에 매달리고 있지는 않은가요.
 
위에서 언급한것처럼 교과서에 나오는 최적화를 이야기하고 있는 책은 아닙니다.
처음 1장이 끝나자 마자 저자는 다음과 같이 2장을 소개하고 있습니다.

'읽다가 잘 모르는 테크닉이 나오더라도 반드시 앞 항목에 설명이 있습니다.
읽으면서 이해하고 코드를 직접 작성해서 몸으로 익혀주세요.
그럼 상식을 깨부수는 이런저런 아이디어를 가지고 초인적인 최단 코드에 도전합시다.'

그렇습니다. 이건 단순한 개발자의 영역이 아니라
초인의 세계입니다.~~

예제로 제시된 44가지 문제외에도 수많은 문제들을
온라인에서 접할 수 있고 스스로 도전할 수 있습니다.
무한도전이라는 말이 실감나는 이야기입니다.

혹 그렇게 코끼리를 숨기기는 너무 어렵다고 생각하신다면
다음과 같이 해보는 것은 어떨까요.
이것 또한 쉬운 일은 아니군요..ㅎㅎ
코끼리를 숨기는 방법
http://www.choboweb.com/304
k******9 2008.07.15. 신고 공감 2 댓글 0
리뷰 총점 종이책
지적 유희가 가져오는 강력한 프로그래밍 능력
"지적 유희가 가져오는 강력한 프로그래밍 능력" 내용보기
고등학교 또는 대학교 때 수학 공부를 깊이 해보신 분들은 공감하실 수 있을 거라고 믿습니다만, 수학을 이해하는 데 있어서 단순히 교과서에 나와있는 것을 따라해보는 것 만으로는 실력이 늘지 않는 경우가 많습니다. 이럴 때에는 자신이 직접 생각해보고, 문제나 공식 등을 이리저리 변형해보다보면, 그 때 생각했던 것들이 실제 문제를 풀 때 사고 흐름의 방아쇠(trigger)로서 작동하
"지적 유희가 가져오는 강력한 프로그래밍 능력" 내용보기
고등학교 또는 대학교 때 수학 공부를 깊이 해보신 분들은 공감하실 수 있을 거라고 믿습니다만, 수학을 이해하는 데 있어서 단순히 교과서에 나와있는 것을 따라해보는 것 만으로는 실력이 늘지 않는 경우가 많습니다. 이럴 때에는 자신이 직접 생각해보고, 문제나 공식 등을 이리저리 변형해보다보면, 그 때 생각했던 것들이 실제 문제를 풀 때 사고 흐름의 방아쇠(trigger)로서 작동하는 경험을 할 수 있습니다.
 
이 책은 그러한 경험이 컴퓨터 프로그래밍에도 도움이 된다고 믿는 사람에게 매우 훌륭한 참고서가 될 수 있을 것으로 보입니다. 이 책에서는 '최대한 코드를 단축시키는 (경쟁을 하는) 지적 유희'라고 할 수 있는 숏 코딩(short coding)을 하는 데 도움이 될 수 있는 여러 가지 기법들을 보여주고 있습니다. 사실, 여기서 나오는 여러 기법들은 대학생으로서 프로젝트나 숙제를 할 때 필수적이지도 않고, 일반적으로 사회에서 프로그래밍 업무를 맡게 되더라도 중요하게 여겨지지는 않습니다. (아, 임베디드 시스템 프로그래밍 같은 경우에선 가끔 숏 코딩과 관련한 내용을 '최적화'라는 이름으로 배우긴 하지만, 사실 이 책에서 말하는 것과는 상당히 다른 부분도 존재합니다.)
 
그러한 면에서 이 책에 나오는 내용은 programming geeks들에게 통근 길에 퍼즐을 푸는 정도의 즐거움만을 제공하는 것 처럼 보이기도 합니다. 하지만 이 책을 읽어보면서 실제로 따라해본다면, 그러한 '지적 유희'를 경험한 것이 실제 프로그래밍에서 유용하게 쓰일 수 있습니다. 이를테면 디버깅 능력 같은 경우, 깔끔한 코드를 작성하는 법만 학교에서 배운 사람보다는, 처음엔 지저분한 코드를 쓰면서 각종 버그로 고생해보고 이리저리 뜯어본 사람들이 좀 더 잘한다고 적어도 저는 생각합니다. 이와 마찬가지로 숏 코딩을 즐기면서 알고리즘에 대한 이해도를 높일 수 있고, 또한 프로그래밍을 어떻게 하는 것이 각 상황에서 좋을지에 대해 고민해볼 수 있는 기회도 줄 수 있을 것이라고 봅니다. 소프트웨어 공학적으로 프로그래밍을 논하는 것도 좋지만, 이 책을 통해서 다른 세계도 있을 수 있다는 것을 한 번 느껴보시는 건 어떨지요?
r*****2 2008.07.08. 신고 공감 1 댓글 0
리뷰 총점 종이책
알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding
"알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding" 내용보기
일전의 코딩 최적화와 해커 문화라는 포스트에서 알게된 책이다. 이런 종류의 지적인 유희도 있을 줄이야. ㅎㅎ 러닝 타임이나 시스템 리소스, 혹은 바이너리의 최소화에 도전하는 프로그래밍은 많이 들어봤어도 코드 자체의 바이트 수를 줄이는 데만 주목하는 이런 프로그래밍은 이 책에서 처음 보았다.이 책에서 소개하는 프로그래밍은 결코 정상적인 프로그래밍은 아니다. 가독성이나
"알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding" 내용보기
일전의 코딩 최적화와 해커 문화라는 포스트에서 알게된 책이다. 이런 종류의 지적인 유희도 있을 줄이야. ㅎㅎ 러닝 타임이나 시스템 리소스, 혹은 바이너리의 최소화에 도전하는 프로그래밍은 많이 들어봤어도 코드 자체의 바이트 수를 줄이는 데만 주목하는 이런 프로그래밍은 이 책에서 처음 보았다.

이 책에서 소개하는 프로그래밍은 결코 정상적인 프로그래밍은 아니다. 가독성이나 효율성을 따지지 않고 오직 주어진 조건하에 검사를 패스하는 것에만 주목하는 프로그래밍 대회와 알고리즘 전략기법에 대해 집중적으로 소개하고 있다. 예를 들어 정렬 프로그램으로서 다음과 같은 코드를 예시하고 있다(p95)
s[99];
f(int*a){a=*1[&a]-*a;}
main(n)
{
    for(;~scanf("%d",s- --n););
    qsort(s,-n,4,f);
    for(;n++;printf("%d\n",s[-n]));
}
이것은 입력을 받을 때, 정렬해야 하는 데이터가 메모리상에 연속된 위치에 있을 가능성이 높다는 것을 이용하여 만든 제대로 작동될 가능성이 높은 코드이다. 다시 말해서 항상 제대로 작동하지는 않는다는 것이다. 이런 식으로 주어진 알고리즘 문제를 최소 바이트를 차지하는 소스코드를 이용하여 통과하는 것이다. 처음 봤을 때, 너무나 괴악한 소스코드가 난무해서 경악을 금치 못했다. ㅎㅎㅎ

직접 문제를 하나하나 모두 풀어보고, 제시된 소스코드들을 직접 컴파일도 해보면 좋겠지만, 번거롭기도 하고 시간도 부족하고 하니 별로 컴파일은 못해봤다. 문제 중에 Project Euler에서 본 문제도 있었다. 악! 이런 곳에 정답이! ㅎㅎㅎ

프로그래밍을 배울 때 코딩에서 재미를 느꼈던 사람들은 상당히 재미있게 읽을만하다. 배경 지식은 C 이상을 요구하는 것은 거의 나오지 않는다. 제시되는 문제들이 초급 프로그래밍 훈련을 받을 때 봄직한 문제들이 대부분이지만, 극도로 소스코드를 짧게 처리해야 하는 것이다. 예를 들어 이러한 문제들이 있다.

p181
::입력과 출력

입력 첫 행에 문자열의 변환 규칙을 적습니다. 알파벳 소문자 26자가 나열되어 있어 순서대로 a, b, c ... 에 대응합니다. 대문자 변환 규칙은 소문자 규칙을 따릅니다. 두 번째 행은 첫행에 나온 규칙으로 암호화된 문장으로 최대 80글자까지입니다. 변환규칙을 써서 원래 문장을 복원, 출력하세요.

[입력 예]
eydbkmiqugjxlvtzpnwohracsf
Kifq oua zarxa suar bti yaagrj fa xtfgrj
[출력 예]
Jump the fence when you seeing me coming

이 책에서는 위 문제를 C 언어로 71 바이트 소스코드로 해결한다.

책 내용에 오타가 좀 있던데, 본인이 발견한 오타는 다음과 같다.
p123
제목의 strol ⇒ strtol

p130
.... 알파벳을 전부 문자열로 변환하는 .... ⇒ .... 알파벳을 전부 대문자열로 변환하는 ....

p141 두 번째 표
10진법의 1에 해당하는 이진법수의 0 마지막에 1이 들어가야 한다.
아래칸도 마찬가지

p249
O(nk) < O(nk) < O(n!) ⇒ O(nk) < O(kn) < O(n!)

물론 프로그래밍을 처음 배우는 사람이 보기에는 부적절하고, 프로그래밍에 취미가 있다면 재미로 읽어봄직하다. 배경지식이 많이 필요하지는 않지만 대부분의 설명이 C로 되어 있으므로 C는 알아야 한다. 재미있으니 읽어보시길 바란다.
z*****i 2010.03.03. 신고 공감 0 댓글 2
리뷰 총점 종이책
쇼트 코딩... 생각해 보지
"쇼트 코딩... 생각해 보지" 내용보기
이 책은 출판 전부터 관심이 갔던 책이다. 이 책을 읽으면 코드를 짧게 짤수 있다는 생각에 이벤트에도 열심히 참가해서 떨어졌지만, 선풍기 때문에 읽게 되었다.   일단 첫 챕터를 읽게 되면서 이 책이 단순히 쇼트 코딩 대회에 참가하는 기법만 알려주는 책으로 생각하여 많이 실망했었다. 읽기 전에는 코드를 짧게 짜는 비법이나 팁, 그냥 쓸수 있게 되는 코드 몇줄 정도를 생각했었
"쇼트 코딩... 생각해 보지" 내용보기

이 책은 출판 전부터 관심이 갔던 책이다. 이 책을 읽으면 코드를 짧게 짤수 있다는 생각에 이벤트에도 열심히 참가해서 떨어졌지만, 선풍기 때문에 읽게 되었다.

 

일단 첫 챕터를 읽게 되면서 이 책이 단순히 쇼트 코딩 대회에 참가하는 기법만 알려주는 책으로 생각하여 많이 실망했었다. 읽기 전에는 코드를 짧게 짜는 비법이나 팁, 그냥 쓸수 있게 되는 코드 몇줄 정도를 생각했었지만, 이 책은 짧은 코드라는 물고기보다 코드를 짧게 짜는데 필요한 낙시 방법을 알려주는 책이다. 이 책의 주제는 제목과 동일하다. 정확하게 "알고리즘 트레이닝으로 배우는 코드 단축 기법"이다.

 

이 책에서 이야기 하는 코딩 방식은

1. 암묵적으로 제공하는 프로그래밍 언어의 사소한 것이라도 이용하여 짧게 짠다.

2. 문제 해결을 위해 먼저 알고리즘을 잘 짜고, 차근 차근 소스 코드의 바이트를 줄여 나간다

이다. 코끼리를 조그만 상자에 넣는 작업으로 비유될만한 쇼트 코딩은 쉬운 일이 아니며, 많은 경험적 지식과 컴파일러의 이해를 요구하는 어려운 작업이다. 표준 라이브러리 함수를 설명하는 부분에서 가장 감동을 받았다. 아무 생각없이 버리는 리턴값이나, 주 사용 함수의 대체 함수를 생각해보도록 하는게 가장 기억에 남는다.

 

하지만 쇼트 코딩에 희생되는 것은 코드의 "안정성", "범용성", "가독성" 정도가 된다. 현대 소프트 엔지니어링 관점에서 프로그래밍 언어는 위의 것들을 더 중시하는 경향으로 나아가기 때문에 이 책은 시대를 역행한다고 볼 수 있다. 하지만 실제적인 부분에서 프로그래밍 언어와 컴파일러의 사소한 동작을 갖고 소스 코드의 길이을 줄일 수 있다는 것을 너무나 잘 알려준다. 이는 절대 쉬운 일은 아니다.

 

파일 입출력 이외에 모두 알고리즘적인 측면이 강하기 때문에 C 언어를 막 배우고 난뒤 이런식으로도 언어를 작성할 수 있구나, 하는 예를 줄 수 있으며, 실제 프로그래머에게 코딩할때 한번 더 생각할 거리를 일게워준다.

c****d 2008.08.21. 신고 공감 0 댓글 0
리뷰 총점 종이책
생각하는 즐거움
"생각하는 즐거움" 내용보기
알고리즘 트레이닝으로 배우는 코드 단축기법 ACM/ICPC류의 문제 풀기에 관심 있는 분들이라면 "알고리즘 트레이닝" 이라는 제목이 붙어 있는 책을 알고 있을거다. 이 책과 같은 출판사에서 번역본을 낸 Programming-Challenges가 그것일텐데, Short Coding은 Programmig Challenges와는 조금 다른 성격을 가지고 있는 책이다.   처음엔 ACM/ICPC대회를 준비하는데 도움이 되지 않을
"생각하는 즐거움" 내용보기

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

ACM/ICPC류의 문제 풀기에 관심 있는 분들이라면 "알고리즘 트레이닝" 이라는 제목이 붙어 있는 책을 알고 있을거다. 이 책과 같은 출판사에서 번역본을 낸 Programming-Challenges가 그것일텐데, Short Coding은 Programmig Challenges와는 조금 다른 성격을 가지고 있는 책이다.

 

처음엔 ACM/ICPC대회를 준비하는데 도움이 되지 않을까 하는 생각에서 이 책을 읽기 시작했다. 대회에서 가장 중요한것은 코드를 남들보다 빠른 시간내에 정확히 작성하는 것 이며 Short Conding이라 하면 그만큼 코드의 길이가 적으니 타이핑 수가 적어지고 코드 작성이 빨라서 유리한 위치에 있을 수 있다는 말이기 때문인데, 책을 받아 보고 첫장을 읽는 순간 피싯 웃음이 나올 수 밖에 없었다. 이 책에 담겨져 있는 내용은 코딩을 빨리 하기 위한 짧은 코드 작성방법이 아니기 때문이라는걸 알았기 때문.

 

처음에 책에 실린 소스코드를 보고 "뭐 이런 변태적인 소스가 다 있어" 라는 생각을 했다. 가장 처음 나온 코드인 34bytes짜리 소스코드를 보고 말이다. 그리고 메신져에 접속해 있는 프로그래머 지인들에게 그 코드를 보여주며 내가 느낌 감정을 공유해 보았다. 그 코드는 내가 알고 있는 C언어 지식으로는 컴파일조차 되지 않았다!

 

이렇게 처음엔 두뇌 컴파일러 에서 에러를 토해내던 소스코드를 책을 읽으면서 점점 컴파일이 가능해 지기 시작햇으며 점점 이 책에 빠져들게 되었다.

책에는 PKU에 있는 문제와 그에 대한 간단한 풀이, 그리고 저자가 Short Code를 위해 생각한 사고를 그대로 적어 두었으며 마침내 가장 짧은 코드에 도달할 수 있도록 독자들을 잘 인도해 준다. 극한의 Short Code까지 도달하는 동안의 저자의 생각을 기술한 책이기 때문에 책의 두께는 두꺼운 편이지만 44문제 밖에 다루지 못했다는것은 아쉬움이 남을 수 밖에 없는데, 일본어를 잘 할 줄 안다면 저자의 홈페이지( http://www.4dm.org )에서 더 많은 내용을 볼 수 있다.

 

책을 읽던 최초의 목적인 '빠른 코딩으로 ACM/ICPC에서 유리한 위치에 가 있기' 에서는 멀어지긴 했지만 이책, 생각하는 즐거움을 알려줬다. Short Coding은 한번에 되는게 아니다. 문제를 읽고 분석을 하며 그 안에서 규칙성을 찾고 언어의 특성을 이용하며 필요 없는 개행까지 줄여가며 코드를 극한으로 압축시키는 기술이다. 책을 읽으면 C언어의 유연성과 저자의 생각에 감탄을 하게 될 수 밖에 없다. 어느정도 책을 읽은 후 부터는 내가 생각할 수 있는 최대한의 방법으로 Short Code를 작성해 보았지만 저자는 어김없이 더 작은 코드를 마지막에 내 놓는다.

 

비록 여기에서 알려준 Short Coding기술은 현업에서 사용할수는 없다. 다른 사람과 협업을 하기 때문에 타 프로그래머가 읽기 힘든 프로그램을 작성하는 프로그래머는 환영받기 힘들다. 그렇다고 해서 이 책에 있는 변태적인 코드 압축 기법을 쓸모 없는 짓 이라고 폄하 하는건 옳지 못한 생각이다. 깊은 사고력과 문제를 해결하는 끈기를 알려줄 수 있는 책이기 때문인데, 특히 학생이라면 이 책의 452페이지에 나와 있는 글귀를 소개해 주고 싶다.

 

『"장래 도움이 되니까, 안되니까."라는 합리성을 추구하는 공부는 실제로 그렇게 중요하지 않습니다. 일생에서 아이 시절, 학생시절만큼 멋지도록 쓸모없는 일을 할 수 있는 시간은 없습니다. 도움이 되는 일밖에 시키지 않는 사회인의 슬픔을 알게 될 때는 이미 늦었습니다.』

m******n 2008.07.15. 신고 공감 0 댓글 0
리뷰 총점 종이책
C 언어 프로그래머를 위한 만화책
"C 언어 프로그래머를 위한 만화책" 내용보기
이 책은 C언어를 마스터한 사람이라면 누구나 쉽게 “만화책”처럼 볼 수 있는 책이다. 물론 황당하기까지 한 “변태적인” 소스 단축 기법도 있지만 알고리즘을 찾아, 보다 간결한 코드를 작성하는 것 또한 이 책의 목표이다. 그렇기 때문에 숏코딩은 소스의 가독성을 떨어뜨리는 코딩방식이 아니다.    이 책의 일부에는 JAVA나 RUBY Pascal 등등으로 작성된 부분이 아주 약간 있
"C 언어 프로그래머를 위한 만화책" 내용보기

 이 책은 C언어를 마스터한 사람이라면 누구나 쉽게 “만화책”처럼 볼 수 있는 책이다. 물론 황당하기까지 한 “변태적인” 소스 단축 기법도 있지만 알고리즘을 찾아, 보다 간결한 코드를 작성하는 것 또한 이 책의 목표이다. 그렇기 때문에 숏코딩은 소스의 가독성을 떨어뜨리는 코딩방식이 아니다.

 

 이 책의 일부에는 JAVA나 RUBY Pascal 등등으로 작성된 부분이 아주 약간 있지만 이들 언어에 관한 지식은 전혀 필요 없다.(물론 알아서 나쁠 건 없지만...)

저자는 숏코딩의 요소를 알고리즘&자료구조, 개발환경, 그리고 숏코딩 정신이라고 분석했다. 즉 “변태적인” 코드 줄이기는 숏코딩 정신의 일부분을 차지하고 있다.

 

 이 책에서는 채점시스템을 PKU Online Judge를 쓰고 있으며 문제는 그 중에서 상당히 쉬운 것을 사용했다. 그렇기 때문에 대부분의 알고리즘은 수학적인 알고리즘이다. 따라서 다이나믹 프로그램이나, 재귀 프로그램 같은 알고리즘 학습에 적합한 책은 아니다.

 

 개발환경에 대해서는 상당한 분석이 되어있다. 주로 GCC와 Visual C++의 비교이다. PKU사이트에서 둘 다 채점이 가능하다.

숏코딩 정신은 인내심을 가장 중요시한다. 그 외에도 숏코딩 테크닉으로 비트연산, 라이브러리 함수 사용하기, STL 사용하기, 포인터 사용 잘 하기, 삼항연산자 이용하기, 연산자우선순위알기, 메인제귀 등등 여러 가지 작지만 강력한 기술들이 소개되어있다. 물론 실제 개발을 하는데 모든 기술을 써도 되는 것은 아니지만 프로그래머에게 꼭 필요한 기술들이다.

 

CF) 저자가 일본사람이라서 “변태적인”이라는 말을 좋아한다. 변태적인 코드란 도저히 읽을 수 없을 정도로 숏코딩을 의미한다.

h******i 2008.06.19. 신고 공감 0 댓글 0
리뷰 총점 종이책
Short Coding: 알고리즘 트레이닝으로 배우는 코드 단축 기법
"Short Coding: 알고리즘 트레이닝으로 배우는 코드 단축 기법" 내용보기
어떻게 보면 조금은 신선한 책이다.좀더 코드를 어떻게 하면 더 단축하는지 보여주는 방법을 보면..새삼 많은 느낌을 가지기도 한다.  그렇게 코드를 단축시키려면 그만큼 자기가 사용하는 프로그램 언어의 특성을 더욱 알아야 하기에그러한 내부적인 구조까지 파악하고 코드를 짜는 내용에선좀더 노력해야 겠구나 하는 생각도 들었다.  내용의 전개는하나의 문제를 놓고그 문제를 일반적
"Short Coding: 알고리즘 트레이닝으로 배우는 코드 단축 기법" 내용보기
어떻게 보면 조금은 신선한 책이다.
좀더 코드를 어떻게 하면 더 단축하는지 보여주는 방법을 보면..
새삼 많은 느낌을 가지기도 한다.
 
그렇게 코드를 단축시키려면
그만큼 자기가 사용하는 프로그램 언어의 특성을 더욱 알아야 하기에
그러한 내부적인 구조까지 파악하고 코드를 짜는 내용에선
좀더 노력해야 겠구나 하는 생각도 들었다.
 
내용의 전개는
하나의 문제를 놓고
그 문제를 일반적인 방법으로..풀어놓은다음
그걸 그 해답의 규칙성을 찾아서 좀더 짧은 코드로 만들어가는 방식이다.
 
따라가며 읽어나가기 때문에
그냥 이렇게도 되는구나 하고
읽어내려갈수도 있다.
 
다만 좀 아쉬운점은
왜 그렇게 되는지에 대한
이유에 대해서는 좀더 자세하게 다루었다면
하는 아쉬움도 있다.
j***o 2010.05.06. 신고 공감 0 댓글 0
리뷰 총점 종이책
알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding
"알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding" 내용보기
전혀 관심 밖에 있었던 책인데, 무심코 감수자로서 고명하신 변태 프로그래머 '야/네/우/라/오' 선생님의 이름이 박혀 있는 것에 급뿜고서 보자마자 집어든 책.아무튼! 변태 프로그래머 야네우라오 선생님이 감수한 책이라면, 감수했을 이유가 있다! 책의 내용이 분명 충분히 변태적일 것이다!!그런 쪽의 변태적인 책은 아니었지만, 변태적이리라 기대한 책의 내용은 나름 기대에 부응
"알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding" 내용보기

전혀 관심 밖에 있었던 책인데, 무심코 감수자로서 고명하신 변태 프로그래머 '야/네/우/라/오' 선생님의 이름이 박혀 있는 것에 급뿜고서 보자마자 집어든 책.

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

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

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

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

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

하아아? 

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

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

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

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

잘못했습니다.


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

이 책은

변태책입니다.

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

변태책입니다.

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

변태책입니다.

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

변태입니다.

감수자랑 친한, 쓴 사람도

변태입니다.


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

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

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

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

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

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

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

PS: 내용은 적당히 가려 읽어주세요.
PS 2: 이 글은 제 개인 블로그에 적었던 내용을 옮겨 등록한 것입니다.

리뷰 총점 종이책
코리끼도 부족하다 다른 동물도 단축해보자.
"코리끼도 부족하다 다른 동물도 단축해보자." 내용보기
알고리즘 트레이닝으로 배우는 코드 단축기법이라고 책에 적혀져 있다. 이 책은 일반적인 알고리즘에서 소스코드를 1byte라도 줄이려는 숏코드 기술을 보여주는 책이다.  프로그램을 만드는 사람은 아주 깐깐해야 된다고 생각을 한다. 1줄의 소스코드라도 불필요한 것이 들어가 있는가? 반복구문 혹은 분기문이 불필요하게 들어가 있나?이런 생각을 해야된다고 생각을 한다. 이 책에서는
"코리끼도 부족하다 다른 동물도 단축해보자." 내용보기
알고리즘 트레이닝으로 배우는 코드 단축기법이라고 책에 적혀져 있다.
이 책은 일반적인 알고리즘에서 소스코드를 1byte라도 줄이려는 숏코드 기술을 보여
주는 책이다.

 프로그램을 만드는 사람은 아주 깐깐해야 된다고 생각을 한다. 1줄의 소스코드라도 불필요한 것이 들어가 있는가? 반복구문 혹은 분기문이 불필요하게 들어가 있나?
이런 생각을 해야된다고 생각을 한다.
 이 책에서는 이런 점에 대해서 역설적으로 이 책에서 배울 수 있다고 생각을 한다. 우선 이 책에서는 ACM문제에 대해서 일반적인 해법을 보여 준다. 그리고 나서 C언어의 여러가지 기술, 혹은 치트를 이용해서 코드를 줄이는 모습을 보여 준다. 혹은 알고리즘을 찬찬히 보면서 그 문제에 최적화된 결과값을 보여 줄 수 있도록 알고리즘 최적화를 만드는 과정도 있다.
알고리즘에 대해서 다각적으로 생각 할 수 있는 것이 이 책의 장점이라고 말하고 싶다.

하지만 장점만 있고, 단점은 없는 책은 없다.

이 책에서 나오는 예제들 수준을 같은 프로젝트를 하는 동료나 친구들에게 소스코드를 보면은 욕을 할 것 같다. -_-;;
이기주의로 뭉쳐진 코드라고 말이다...;

책의 거의 마지막 페이지 부분 (p. 456)에는 프로그래밍 수련법에 나오는 강조사항이랑 숏코딩 방법이랑 비교를 했는데.. 정반대 항목이 많다.
 

끝으로 이 책을 읽으면서 알고리즘은 보통 생각하는 동적할당법, 분할정복법 등... 정석적인 방법도 있지만은 이런 변칙적인 방법도 공부를 해서 알고리즘에 대한 흥미도를 많이 높을 수 있을 것 같다.

필독서 정도는 아니지만은 정석적인 알고리즘 공부에 지친 사람에게는 이 책을 통해서 변칙적인 알고리즘을 보고 싶은 사람에게 읽을 만한 책인 것 같다..
YES마니아 : 로얄 k*****r 2008.07.11. 신고 공감 0 댓글 0