|
제목만 본다면 이 책을 잘 읽고 잘 이해하고 잘 따라한다면 왠지 코딩의 기술이 늘 것 만 같은 책이다. 늘 그렇듯 제목은 현실과 살짝 다르기도 하다. 아무튼 이책의 원서의 제목은 "게임 프로그래머를 위한 코딩 기술"이다. 비교적 얇은 두께에 그동안 읽었던 리뷰 책들에 비하면 비교적 짧은 시간에 읽은 축에 속한다. 내용도 그렇고 어렵지는 않아서 조금은 더 쉽게 읽힐 수 있었던 책이라고 생각을 한다. 책의 구성 및 특징확실히 저자는 다양한 실전 경험과 또한 강의 경험을 가지고 있다는 것을 느낄 수 있었단. 주제를 풀어내는 방식 자체가 일단 마음에 든다. 책의 전체적인 구성은 읽기 좋은 코드를 작성하는 간단한 기술 부터 시작한다. 당연히 복잡한 논리의 중첩을 피해야 한다는 간단한 것에서 부터 시작하여 함수 및 클래스의 활용까지 두르 두르 살펴주고 있단. C++로 만들어진 게임 프로그래밍의 요소들을 주제로 설명하고 있기에 특히나 STL이 많이 언급되고 있다는 것도 주목할 부분이라고 생각이 든다.
게임 코드로 알아보고 있다고 해서 게임 전체를 기대해서는 안된다. 게임의 일부분을 이루는 코드를 저자가 말하는 효과적인 작성 방법으로 대체하는 기법들을 다루고 있는 것이기 때문이다. 이렇게 앞쪽에서는 읽기 좋은 코드 즉 논리의 중첩등을 피하는 등의 방법을 써서 효과적인 코드를 만드는 방법을 설명하고 있고(그것이 물론 시간 복잡도 측면에서의 절대적인 개선 이것은 아니다.) 뒷쪽으로 갈 수 록 객체 지향적인 것에 대한 언급을 더 많이 해주고 있다. 또한 마지막으로 갈 수 록 이 책이 객체지향 설계를 언급하고 있는 책인지라는 생각이 들 정도로 객체지향 클래스 설계 및 패턴에 관한 이야기 들이 너무 많이 언급이 되고 있다. 물론 이것도 코딩의 기술이라면 할 말 없다. 책의 마지막 챕터는 소스 코드 품질 측정을 위한 기본적인 수치들과 프로그램을 이용한 방법들을 소개해주고 있다. 이 부분은 처음 접해본 것이라서 기존의 빅오 표기법을 통한 분석에만 익숙했었는데 매트릭스를 측정한 코드의 분석 은또 다른 느낌으로 다가왔다. 다음 그림은 책에서 언급한 sourcemonitor 을 이용해 분석해본 짧은 코드이다. 나름 멋있는 분석을 내놓았지만… 결론코드의 간결화 혹은 읽기 쉬운 코드의 중요성은 말할 필요가 없다. 이 것은 수업 시간에도 학생들에게 제발 나를 배려한 코드를 작성하고 제출해달라고 언급 하기도 하니까 말이야. 물론 숏 코딩을 즐기는 사람들도 많다. 언제나 그렇듯 중요한 것은 문제 해결을 위한 알고리즘 자체의 개선에 있는 것이다. 결국 그 과정에서 이러한 간결화나 읽기 쉬운 코드 그리고 클래스의 설계 및 패턴의 인식 등을 통한 것들이 병행이 된다면 훨씬 좋은 결과물들이 나올 것이라고 생각한다. 다시 한번 말하지만 알고리즘의 개선을 통한 시간 복잡도의 개선이 더 중요하다고 생각한다. 이 책에서 언급하고 있는 나머지 코딩의 기술들은 그것을 이루는 과정에서 나오는 과정에 지나지 않는다. 중요한 것은 역시나 알고리즘이다. 그러나 이 책은 알고리즘에 관한 책이 아니다. 책을 읽는 내내 (물론 C++ 이 기반이여서 그렇지만) STL에 대한 공부를 더 해야 겠다는 생각과 람다에 대한 공부를 해야 겠다는 생각을 할 수 밖에 없었다. 책에서 언급되는 것들이 그 이유기도 하지만 요즘은 저지 사이트의 다양한 문제들도 STL을 많이 사용하고 있기에 자 진짜로 결론을 내어보면 이 책은 논리의 간소화 혹은 나머지 다양한 기법 혹은 기술들을 통해 읽기 쉬우면서도 명확하고 복잡하지 않은 형태로 코드를 변경하는 기법을 통해 코딩의 효율성을 안내하고 있다. 또한 그 과정에서 클래스를 사용하면서 프로그래머가 가져야 하는 설계 기법에 대한 이야기들 그리고 자신이 작성한 프로그램의 분석(시간 복잡도 까지는 아님)을 통해 조금은 수치화된 형태로 자신의 프로그램을 다시 한번 바라볼 수 있도록 해주고 있다. 이것도 중요하지만 알고리즘 공부를 찬찬히 그리고 보다 중요한 문제를 해결할 수 있는 논리를 키우는 것이 더 중요하다고 생각을 하며 마쳐본다. P. S 이 책에서 말하고 있는 다양한 노하우들을 책을 읽으면서 정리해본 것을 다시 적어보며 진짜 마친다..
|
|
https://brunch.co.kr/@daejin/15 1장을 읽었을 때 느낌은 정말 훌룡했습니다. 특히 아래의 두 단원은 언어를 불문하고 모든 개발자들이 숙지하고, 이대로 작성했는지 자아비판 후 코드리뷰 요청을 해야되지 않을까 생각합니다. 1.3 조건식과 계산식 1.5 제어문 다른 사람의 코드리뷰를 하다보면 작성된 if문 순서, 조건만봐도 얼마나 생각했는지, 노력했는지, 공부했는지, 경험했는지, 그리고 개발에 관심이 있는지가 나타날 때가 있습니다. 위 두 단원은 좋은 코드를 작성하는데 반드시 도움이 되리라 생각합니다. 많은 개발서에 '코드를 잘 작성해야 된다'는 글은 무수히 봤지만, 정작 어떻게 작성해야 된다는 내용은「Code Complete」이후 처음으로 본 거 같습니다. 최근 거의 모든 언어들이 람다식을 비록한 함수형 언어의 장점을 수용하는 경우가 많은데, 오래된 Code Complete에서 다루지 못한 부분을 다루고 있어 더욱 유용합니다. '1.6 함수'부터 앞 내용이 반복되어 아쉽지만, 그래도 반복하고 숙지해야 될 만큼 좋은 내용들입니다. 이 책은 총 3장으로 구성되어 있습니다. 1장 읽기 좋은 코드를 작성하는 기술 2장 간단한 설계를 위한 원칙과 패턴 3장 소스 코드 품질 측정 1장은 초급개발자를 포함하여 개발자들에게 유용한 내용인 반면, 2장은 솔직히 누구를 대상으로 작성된 것인지 모르겠습니다. 약 50페이지 안에 객체지향 설계와 디자인 패턴을 소개하고 있으며, 다시 40페이지 정도 클래스 설계 요령이 작성되어 있습니다. 거대한 내용을 너무 작은 그릇에 담은 것 같습니다. 3장은 품질에 이런 것들이 있다는 소개정도 입니다. 지은이의 말 끝부분에서 기술 서적의 대부분은 500페이지를 훌쩍 넘는 부담되는 양입니다. 이 책은 그러한 내용을 압축해서 단기간에 읽고, 곧바로 사용할 수 있게 하는 것을 목표로 썼습니다. 1장은 훌룡했지만 2,3장은 너무 크게 손실압축을 한 것 같습니다. 그리고 2장의 내용은 결코 단기간에 습득할 수 없음을 많은 분들이 알고 있고, 저자도 알고있습니다. 저자의 목표대로 되었으면 했는데 조금 아쉬운 책입니다. 하지만 번역은 깔끔하게 되어있어 편하게 읽을 수 있습니다. ------------------------------------- 본 리뷰는 한빛미디어에서 제공된 책으로 작성되었습니다. |
|
책도 두껍지 않고 딱딱하지 않고 읽기 편하다. 역시 일본책을 번역해서 그런지 읽는 동안 편하고 정리도 잘 되어 있는 느낌이다. 하지만 읽고 나서 기억나는게 별로 없다.T.T 필요할 때 읽는 그런 책이 아니라 코딩을 좀 잘하기 위한 책이라서 그런건지는 모르지만... 사실 엄청난걸 기대한건 아니지만... "이 책은 게임 프로그래밍에 자주 활용하는 코드를 예로 들면서 개발자가 한 단계 성장하는 데 필요한 코딩 기술 전반을 다룬다." 사실 이부분을 좀 더 확실히 봤어야 하는건데.... 그래도 일반적인 프로그램에도 적용할 만한 내용도 있다. |