이전

리뷰 (7)

한줄평
평점 분포
  • 리뷰 총점10 71%
  • 리뷰 총점8 29%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 10.0
  • 40대 10.0
  • 50대 8.0

포토/동영상 (1)

리뷰 총점 종이책
[NATURE OF CODE] 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략
"[NATURE OF CODE] 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략" 내용보기
서평을 시작하기 전 잡담 -  당신이 프로그래머라면 누구나 한번쯤 생각해보았을 것이다.이 세계 자체를 프로그래밍 한다는 것.세계의 법칙을 이해하고 그것을 프로그래밍하여 코드화 시키는 것.프로그래머로써 한번쯤은 꿈꿔왔을 법하다.물론 여기 훌륭한 지침서가 이미 나와있다.일단 사라.책 설명 -  책은 상당히 무겁다.아니... 좀 더럽게 무겁다.책 재질이 좋아서인지 들고 다니면서
"[NATURE OF CODE] 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략" 내용보기

서평을 시작하기 전 잡담 - 

 당신이 프로그래머라면 누구나 한번쯤 생각해보았을 것이다.

이 세계 자체를 프로그래밍 한다는 것.

세계의 법칙을 이해하고 그것을 프로그래밍하여 코드화 시키는 것.

프로그래머로써 한번쯤은 꿈꿔왔을 법하다.

물론 여기 훌륭한 지침서가 이미 나와있다.

일단 사라.


책 설명 - 

 책은 상당히 무겁다.

아니... 좀 더럽게 무겁다.

책 재질이 좋아서인지 들고 다니면서 보기에.. 무겁다.

페이지수는 600페이지를 좀 넘어가는데 표지까지 분홍색이라

들고다니면서 보고 싶지는 않다. +_+;;;

(....이거 혹시 번역자의 의도인가? 외국에서 분홍이었으면 한국에서는 다른 색으로 해도 좋았...ㅡㅡ;;;)


책의 아름다운 모습 - 

분홍색은 싫어 +_+;;;;


여기까지는 그래도 쉽게 읽을만 했다.


이 세상에서 중복되는 행위를 줄이는 것이 프로그래밍의 기본이 아닐까?


여기서부터는 뭔 소리인지도 모르겠더라. +_+;;;;


영어가 잔뜩 나오지만 당황하지 말라는 친절한 역자님 +_+;;


서평 - 

 책을 읽는내내 대학에서 수학과와 전산과를 나왔지만 수학을 제대로 공부하지 않았던 것이

후회가 되고 나름 반성하게 되었다.

수학을 좀 더 공부했었더라면 이해하기가 쉽지 않았을까.

 기본적으로 벡터, 힘, 진동, 파티클 시스템까지는 그럭저럭 이해가 갔고

물리엔진, 자율에이전트, 세포 오토마타까지는 그래도 게임에 관련하여 공부한 적이 있던지라

슬그머니 넘어가는 정도로 책을 읽을 수 있었지만 그 뒤로 프랙털을 읽기 시작하면서

엄청난 멘붕이 일어났다.

(...기하학은 수학과 졸업시험때 네번 낙제한 과목인데 프랙털의 첫번째 페이지에 떡하니 기하학이라고 나와있다.)

아마 다른 프로그래머들도 나와 비슷하지 않을까 싶다.

스스로 뛰어난 프로그래머라고 생각한 적도 있었고

실제로 내 나이에서 나보다 경력이 오래된 사람은 보지도 못했다.

그런데 이 책이 이리도 어려울 줄이야 꿈에도 생각못했고 좀 더 일찍 보았더라면

내가 더 좋을 실력을 갖출 수 있지 않았을까라는 생각도 해본다.

 지금이야 그럭저럭 프로그래머로 연명하고 있고 뭔가 미래에 대한 한계점까지

스스로 정해버린터라 더 이상 프로그래밍에 대해 손을 놔버린 것이 아닐까하는 회의감도 든다.

참.. 이래저래 많은 것을 느끼게 해주는 책이 아닐까 싶다.

 흔하디 흔한 프로그래밍 언어책들에 둘러쌓여 실제로 만들어내고 파악해야 할

자연법칙에 대해 무지한 프로그래머들은 나말고도 수두룩하지 않을까하는 생각이 든다.

현 지구상에서 실제로 세포분열에 대해 프로그래밍을 해보라고 하면 할 수 있는 프로그래머가 몇이나 될까?

그냥.. 프로그래머라면 일단 이 책사서 보길 바란다.

그냥.... 사서 봐라.

대신! 최소 경력 5년 이상 프로그래머에게만 추천한다.

그 이하는 사절! (...당신의 정신건강을 해칩니다...)


서평을 마치며 - 

 프로그래밍을 한지 꽤 되었지만 프로그래밍을 공부하고 3년정도 되지 않아

머릿속에 불현듯 떠올랐던 생각이 있었는데 공각기동대라던지 매트릭스에서나

상상할 수 있는 개념인 세계를 프로그래밍하고 싶다라는 생각이었다.

지금 생각해보면 오만에 사로잡혀서 한 망상인지도 모르겠지만

프로그래밍을 공부하다가 갑자기 파앗하고 머릿속을 스쳐갔던 기억이 있다.

그때 게시판 페이징처리쪽에 대해 공부하고 있었을때인데 말이다.

이제 와서 생각해보면 웃기기도 하고 어이없기도 하지만 책 한권을 보면서

이런 느낌을 받을 수 있는 것도 흔치 않은 경험이기도 하다.

프로그래밍을 하는 사람이라면 언어에만 몰두하지 말고 이런 책을 보면서

실제 세계에 대한 눈을 뜨기를 바란다.



p*****d 2015.06.10. 신고 공감 1 댓글 0
리뷰 총점 종이책
Nature of Code
"Nature of Code" 내용보기
Nature of Code - 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략제목만 보고는 예전에 봤던 다른 책을 생각하고 선택했던 책이었습니다. 펫졸드의 <Code>나 <Great Code> 같은 책을 생각하고 책을 집어들었는데요실제로는 그런 책과 거리가 있는 내용이었습니다. 제가 생각했던 것은 코드를 읽는데 혹은 구현하는데 필요한 기본적인 지식들을 알려주거나 아니면 좀 더
"Nature of Code" 내용보기


Nature of Code


 - 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략



제목만 보고는 예전에 봤던 다른 책을 생각하고 선택했던 책이었습니다. 


펫졸드의 <Code>나 <Great Code> 같은 책을 생각하고 책을 집어들었는데요


실제로는 그런 책과 거리가 있는 내용이었습니다. 


제가 생각했던 것은 코드를 읽는데 혹은 구현하는데 필요한 기본적인 


지식들을 알려주거나 아니면 좀 더 근본적인 원리를 설명해 주는 것이 


아닐까라는 생각이었는데요. 기대와는 다르게 '실습'용 책이라서 


잠깐동안 어떻게 할지 고민했었습니다. 


이 책은 


프로세싱이라는 언어를 통해서 이른바 '현실' 세계의 것들을 어떻게 


구현할 수 있는지를 알려주고 있는 내용입니다. 따라서 책을 보기 위해서는


프로세싱을 먼저 공부하고, 그것을 통해서 책에서 제시하는 내용들을 


읽어보고 컴퓨터에서 실습해보는 것이 전형적인 방법이랄 수 있는데요. 


이런 책의 특징으로 인해서 책을 어떻게 읽어야 할지 고민할 수 밖에 없었습니다.



우선 이 책은 제목만 보고 짚어 들었다가 목차를 보고 살며시 내려놓고 싶어지는


책이 아닌가 싶습니다. 


벡터,힘, 진동, 같이 그 자체만으로도 머리 아픈 것들을 프로그래밍으로 


실습한다고 하는데 그다지 땡기지 않는 사람도 많지 않을까 싶습니다. 



포기하고 싶은 이런 저런 유혹을 벗어나서 일단 정주행을 시작했습니다. 


책은 의외로 아주(?) 어렵지는 않습니다. 


프로세싱이라는 언어를 새로 공부해야 한다는 점이나 


(물리, 진화, 인공지능과 같이) 그 자체만으로도 머리 아픈 주제들을 


다루고 있다는 핸디캡에도 불구하고, 그럭저럭 읽어나갈만하다는 


생각이 들었습니다. 저처럼 큰 기대없이 읽어나가는 사람에게도 


일말의 희망같은 것을 주고 있다는 생각이 들었는데요. 


책의 대상 독자가 아주 전문적인 개발자들이 아니라는 점에서 


책의 설명이 꽤나 자세하고, 읽기 좋게 되어 있었습니다. 


본래 다루는 내용자체가 쉽지 않는 것이라는 점을 생각하고 본다면


이런 주제에 관심이 있거나 다뤄야 하는 사람들에게는 꽤나 도움이 


될거 같다는 생각이 들었습니다. 



새로운 언어를 배워야 한다는 어려움은 일단 부록으로 대신했고, 


코드도 아주 어렵지 않았습니다. 


내용의 특성상 고등학생 정도라면 프로그래밍에 대한 사전 지식 없이도 


책을 읽는데 별 무리 없을 것 같습니다. 


프로그래밍이 무엇을 하는 것인지 혹은 무엇을 할 수 있는지 


궁금한 사람들이나, 프로그래밍에 대한 초보자들에게 


프로그래밍 언어가 어떤 식으로 사용되는지 체험해 볼 수 있는 좋은 사례가 


될 수 있을 것 같습니다. 


그리고 물리와 관련된 내용을 필요로 하는 초보 개발자들에게도 


개념이해나 구현에 대한 힌트를 얻는데 도움을 줄 수 있으리라 기대됩니다. 


개인적으로는 제가 이 책을 통해 얻은 가장 큰 이점이기도 합니다. 


무엇인가를 알고 있지만, 프로그래밍 언어를 통해 그 지식을 어떻게 


구현 혹은 이용할 수 있는지 궁금한 사람들에게 좋은 참고서가 


되리라 생각합니다. 





YES마니아 : 로얄 m*********u 2015.06.08. 신고 공감 1 댓글 0
리뷰 총점 종이책
Nature of Code: 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략 - 한빛미디어
"Nature of Code: 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략 - 한빛미디어" 내용보기
이 책을 읽어보고 싶은 생각이 들게 한 사람이 이 책의 역자 윤인성님이다. 저자보다 역자를 보고 읽었다고 하니 조금은 당황스러울 수도 있겠으나, 평소 역자의 글쓰기 스타일상 간결하고 깔끔한 내용으로 구성되어 있을 것이란 생각이 들었기 때문이다. 역자는 옮긴이의 말을 통해서 이 책을 어떻게 바라보고 있는지 명확하게 알 수 있다. 그 내용을 정리하면 아래와 같다. 최근에 읽
"Nature of Code: 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략 - 한빛미디어" 내용보기

 


이 책을 읽어보고 싶은 생각이 들게 한 사람이 이 책의 역자 윤인성님이다. 저자보다 역자를 보고 읽었다고 하니 조금은 당황스러울 수도 있겠으나, 평소 역자의 글쓰기 스타일상 간결하고 깔끔한 내용으로 구성되어 있을 것이란 생각이 들었기 때문이다. 역자는 옮긴이의 말을 통해서 이 책을 어떻게 바라보고 있는지 명확하게 알 수 있다. 그 내용을 정리하면 아래와 같다.

 


최근에 읽어본 프로그래밍 서적 중에 읽어본 후 감동을 느꼈으며, 사람들에게 방향성을 제공해준다고 말해준다. 이유인즉슨 학교에서 배우는 교육 이외에 어떤 프로그래밍 세계가 있는지, 컴퓨터 과학에서는 어떤 것들이 연구되고 있는지 알기 어렵기 때문에 이 책을 통해서 그런 부분들을 깊게는 아니지만 포괄적으로 다루고 있기 때문에 프로그래밍에 관심 있는 학생들에게 방향성을 제시해줄 수 있을 것으로 생각한다. 그렇기에 이 책을 중고등학생들이 읽기 바라며, 그들이 배고 있는 지식을 어디에 적용할 수 있는지 설명해주고 공식을 통해 연산하여 물체를 움직여보는(눈으로 보는) 것으로 확실한 교육이 되지 않을까하는 생각에서 이 책을 번역했다고 한다.

 


이 책은 조금 특이하게 프로세싱을 통해 코드로 구현하였기 때문에 해당 지식을 습득할 필요가 있다. 하지만 그리 어려운 것은 아니기 때문에 겁먹을 필요는 없다고 생각한다. 그리고 무료 오픈 소스 프로그래밍 언어라는 점이 프로세싱의 매력이 아닐까 한다. 이 책을 통해서 알고리즘과 객체지향 지식의 습득은 덤이지 않을까한다. %ED%98%B8%ED%83%95%20%EC%9C%A0%EB%A0%B9

 




 


이 책은 3파트로 구성되어 있으며 세부적으로 10개의 장으로 나눠져 있다. 하지만 내용을 따라가다 보면 순서대로 이야기가 진행되고 있음을 알게 된다.


Part 1. 물체

 1장. 운동의 기본 요소 '벡터'

 2장. 힘 곧 벡터

 3장. 각도와 삼각법, 그리고 진동 운동

 4장. 수천개의 물체. 파티클 시스템(입자계)

 5장. 물리 라이브러리, Box2D, toxiclibs

Part 2. 생물

 6장. 자율 에이전트, 물체에 숨결을 불어넣어 주변을 인식하고 반응하게 하자

 7장. 세포들의 시스템인 세포 오토마타

 8장. 자연의 기하학. 프랙털

Part 3. 지능

 9장. 진화 과정의 모방을 통해 객체를 진화

 10장. 차이를 기반으로 학습하는 기능을 가진 인공 뉴럴 네트워크 프로그래밍


끝으로 부록에는 프로세싱을 잘 모르는 분들을 위해 역자가 직접 필요한 프로세싱의 기초를 설명하는 부분이 있으니, 부록 A를 읽어본 후 책의 내용을 실습하면 더욱 빠른 이해가 되지 않을까 한다.

그리고 프로세싱으로 구현된 부분을 자신이 잘알고 있는 다른 언어로 구현해 본다면 더욱 많은 이해가 되지 않을까 한다. 저는 자바스크립트로 구현해보고 싶은 생각이 드네요.

이 책을 몇번 더 본 후 조금 있으면 여름방학을 맞이하는 조카에게 선물해 보고, 같이 프로그래밍 해보고 싶은 생각이 듭니다. 강추 %EA%B5%BF



h****m 2015.06.07. 신고 공감 0 댓글 0
리뷰 총점 종이책
최고
"최고" 내용보기
이 책을 한마디로 표현하자면,프로그래밍을 시작할 때 가장 먼저 하면 좋은 책이면, 번역자의 특유의 재밌는 말투가 담겨있는 쉽고 재밌는 책이다. 이 책은 processing이라는 객체지향형 언어로 자연의 법칙, 중력장, 파티클 시스템, 프렉털등을 구현하는데 클래스를 사용하는 것과 initial value값을 지정하는 등 정말 프로그래밍을 배우는 데 있어서 좋은 책이다.  *객체지향형 언어객
"최고" 내용보기

이 책을 한마디로 표현하자면,

프로그래밍을 시작할 때 가장 먼저 하면 좋은 책이면, 번역자의 특유의 재밌는 말투가 담겨있는 쉽고 재밌는 책이다. 이 책은 processing이라는 객체지향형 언어로 자연의 법칙, 중력장, 파티클 시스템, 프렉털등을 구현하는데 클래스를 사용하는 것과 initial value값을 지정하는 등 정말 프로그래밍을 배우는 데 있어서 좋은 책이다.  


*객체지향형 언어

객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임의 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.


 

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 한다.


*절차지향형 언어

절차지향 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다. 대표적인 절차지향 언어에는 C언어가 있습니다. 이는 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리합니다. 그러나 기술이 발전하고 소프트웨어와 하드웨어가 발전함에 따라 상황은 달라졌는데요. 옛날에는 하드웨어와 소프트웨어의 개발 속도차이가 크지 않았습니다. 하지만 소프트웨어 언어의 발달과 컴파일러의 발달로 하드웨어가 소프트웨어의 발달을 따라오지 못하는 상황이 발생했습니다. 이는 객체지향 언어가 등장하게 되는 계기로 작용했습니다. 객체지향 프로그래밍은 개발하려는 것을 기능별로 묶어 모듈화를 함으로써 하드웨어가 같은 기능을 중복으로 연산하지 않도록 하고, 모듈을 재활용하기 때문에 하드웨어의 처리량을 획기적으로 줄여주었습니다.



책을 읽다가 역자의 삶의 철학을 느낄 수 있는 대목이다.

우리 삶은 그렇게 길지 않습니다. 

우리 삶은 그렇게 길지 않습니다. 

우리 삶은 그렇게 길지 않습니다. 

우리 삶은 그렇게 길지 않습니다. 

우리 삶은 그렇게 길지 않습니다. 

ㅋㅋㅋㅋ 그렇다. 우리의 삶은 길지가 않아요. 후딱 프로그래밍 합시다.


이 책의 좋은 점은 이렇게 역자가 이런 것까지!! 해준다는 것이다. 이해를 돕기위해서 무너가를 한다는것... 캬.. 인성쌤의.. 배려가 느껴지는 대목이다.


흠..뭘 만드는지 보여주자면.. 이런걸 만든다. 이게 바로 파티클 시스템이다.

이것말고도 자연적인 무언가를 만드는 것이다. 나는 뭐랄까 자연적인 걸 좋아한다. 나무든.. 풀이든.. 강이든 바다든.. 근데 이 책을 통해서 그러한 자연적인 것들을 만들 수 있으니 정말 좋았다. 



역자가 번역도 잘해서 재밌기도 하고 말이다. 

근데..
한가지 이 책 읽고 프로그래밍하다보면 화났던게..


 


응답없음이였다.

좀 길게 코딩함녀 저렇게 응답없음이 자주 뜬다.. 하.. 내 컴퓨터...정말 안좋다... 32bit짜리 컴퓨터가 그렇지 뭐..


아아 여러분의 시간은 짧으므로, 다른 책을 읽을 시간이 없다.

프로그래밍을 한다면 읽자. 이건 그 누구보다도 윤인성쌤이 추천한 책이니까.


w*******e 2015.06.06. 신고 공감 0 댓글 0
리뷰 총점 종이책
Nature of Code
"Nature of Code" 내용보기
이 책을 선택하기 전 기초적인 프로그래밍 지식만 보유한 내가 이책의 난이도를 충분히 소화해 낼 수 있을까하는 걱정을 하지 않았다면 거짓말일 것이다. 하지만 현재에도 그렇고 앞으로도 프로그래밍 관련하여 지속적으로 공부하고 나아갈 생각이기에 이해가 안되더라도 한번 보기라도해보자라는 심보로 이책을 선택하게 되었는데 이 책의 서두에서 이책은 프로그래밍에 관련된 전반적인
"Nature of Code" 내용보기

이 책을 선택하기 전 기초적인 프로그래밍 지식만 보유한 내가

이책의 난이도를 충분히 소화해 낼 수 있을까하는 걱정을 하지 않았다면 거짓말일 것이다.


하지만 현재에도 그렇고 앞으로도 프로그래밍 관련하여 지속적으로 공부하고

나아갈 생각이기에 이해가 안되더라도 한번 보기라도해보자라는

심보로 이책을 선택하게 되었는데 이 책의 서두에서 이책은

프로그래밍에 관련된 전반적인 기본 지식을 전제로 하기에

지금까지 한 번도 코드를 작성해본 적이 없다면 조금 더 노력해서 프로세싱을

공부한 후에 읽기를 바란다는 저자의 친절한 답변(?)을 듣고 순간 땀을 삐질 흘리고 말았다. ^^;;


그래도 처음부터 끝까지 완주는 못하더라도 전반적인 흐름과

이책의 구성이라도 익혀두자라는 심보로 무작정 덤벼들었다. ^^;;


이 책은 총 10개의 장으로 구성되어 있으며, 각각의 장에서는 서로 다른 개념을 다루고 있다.


벡터, 진동, 물리 라이브러리, 프랙털, 신경망 등 듣기만해도

어려울 것만 같은 자연계 법칙에 대해 각 챕터마다 개념소개를 통해 자연 현상을 소개하고

 이를 어떻게 코드로 구현하는지 실제 코드로 구현해봄으로써 그 현상과 원리에 대한 이해를 이끌어나간다.


그리고 코드 사이사이에서 주는 효과나, 해당 부분을 변경했을 때

어떤 응용 효과가 나오는지를 주석형태로 설명해준다.

 

또한 마지막에는 구현된 코드의 결과를 보여줌으로써

실제 실행결과를 눈으로 확인할 수 있으며 이렇게 배운 개념을

응용 성격의 연습문제를 통해 완벽한 이해를 돕기에 프로그래밍의

원리와 현상을 이해하는데 있어 이 책만큼 안성맞춤의 책도 없는거 같다.


다만, 이 책은 기본적으로 프로세싱이라는 프로그래밍 언어를 사용할 줄 아는

사람을 대상으로 집필되었기에 기본적으로

프로세싱 프로그래밍 언어에 대한 학습이 필요하다.

그렇기에 프로세싱이 처음이라면 이책 뒤쪽에서 별도로 제시하고 있는

[부록A]를 통해 프로세싱의 기초와 관련된 내용을 먼저 숙지하고나서

 이책을 학습하는것이 효과적일 것이라 판단된다. 


이책은 나에게 있어 그 동안 딱딱하게만 배워왔던 프로그래밍에 대해 어렵다는 선입견을 확실히 깨주었다.


컴퓨터라는 것이 실제 인간생활을 프로그래밍 요소로 만들어놓은 것인데

지금까지는 실생활과 컴퓨터를 각기 별개로 구분하여 왔었다.


그런데 이책에서는 실제 우리가 접하는 자연현상의 개념을 통해

이것이 어떻게 컴퓨터 프로그래밍으로 구현되는지를 설명해주기에

단순히 외우고 무조건 짜보는 식의 막무가내식 지루한 프로그래밍에서 벗어날 수 있게해주었다.


전반적으로 이책은 프로그래밍을 시작하기에 앞서 자연현상을

그림을 통해 기초개념을 쉽게 잡아주려는 부분과

그러한 개념을 직접 코드로 구현하고 결과도 직접 눈으로 살펴볼 수 있었다는 점이

신선했고 프로그래밍에 대한 나의 이해도를 한층 성숙하게 끌어올려주었다.


비록 프로그래밍을 처음 시작하는 사람들에게는 이책이 읽기 힘들수도 있겠지만

그것이 생소함에서 오는 차이이지 결코 이책이 어려운 내용을 다루고있는 것은 아니라고 생각한다.


그렇기에 요즘과 같이 3D프린팅, 아두이노, 빅데이터, 사물인터넷 등을 통해

범국가적으로 프로그래밍 관련 교육이 활성화되어가고 있는 추세속에서

이 책이 프로그래밍을 하는 사람들에게 방향성을 제시해주는 좋은 나침반이 되었으면 하는 바램이다.
 

l********n 2015.06.02. 신고 공감 0 댓글 0
리뷰 총점 종이책
NATURE OF CODE
"NATURE OF CODE" 내용보기
06월 01일 리뷰 - 리뷰자 김종욱  NATURE OF CODE  다니엘 쉬프만 지음 윤인성 옮김   책의 이름에서부터 자연의 냄새가 물씬 풍겨나오는 아름다운 책입니다. 책을 한번 쭉 훑어 보았는데 실습위주의 교재여서 정말로 실용적인 책이리라 예상되었습니다. 왼쪽에 있는 저의 맥북 키보드가 나름 책과 어울려 보이네요 !    NATURE OF CODE책은 자연계의 현상을 JAVA 기반으로 OP
"NATURE OF CODE" 내용보기

06월 01일 리뷰 - 리뷰자 김종욱



 클로버NATURE OF CODE

 다니엘 쉬프만 지음

윤인성 옮김

 

책의 이름에서부터 자연의 냄새가 물씬 풍겨나오는 아름다운 책입니다. 책을 한번 쭉 훑어 보았는데 실습위주의 교재여서 정말로 실용적인 책이리라 예상되었습니다. 왼쪽에 있는 저의 맥북 키보드가 나름 책과 어울려 보이네요 !

 

 NATURE OF CODE책은 자연계의 현상을 JAVA 기반으로 OPENSOURCE화 되어 개발된 Processing이라는 언어를 통해 묘사하는 방법 , 구현하는 방법, 그리고 응용하는 방법에 대해서 논해져 있는 책입니다.

 저처럼 자연현상을 코드화 하여 구현하고자 하는 사람에게는 정말 꿈의 도서라 할 수 있죠. 책의 내용은 크게 벡터, 힘, 진동, 파티클 시스템, 물리 엔진 라이브러리(BOX 2D), 자율 에이전트, 세포 오토마타, 프랙털, 진화, 뉴럴 네트워크 순으로 되어있습니다.

 그중에서 제가 가장 포인트 있게 읽었던 부분은 자율 에이전트, 세포 오토마타, 프랙털, 진화, 튜럴 네트워크 였구요. 왜냐하면 대부분의 AI서적들은 실습보다는 이론 위주의 수업이었는데 'NATURE OF CODE' 의 경우에는 실습 위주이다보니 그동안 쌓아왔던 이론적 지식이 머리속에서 한층더 강화되며 소스화 되는 것을 느낄 수 있었기에 정말 신나게 읽을 수 있었던 파트였기 때문입니다.

 

 >  > Nature of Code: 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략 - 

 > 프로그래밍 > Nature of Code: 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략 - 


 아래에 나와있는 경로를 통해 한빛미디어 홈에서 본 서적의 URL을 확인하실 수 있습니다.

http://www.hanbit.co.kr/book/look.html?isbn=978-89-6848-190-1 

 

 자 그러면 자연으로 한번 여행을 떠나 볼까요?


책의 논평을 하기 전에 그렇다면 이 책의 대상 독자는 누구일까요?

 


어떤 독자를 위한 책인가

 웃음 노란동글이 프로그래밍을 조금 할 줄 알면서 자연계의 법칙을 코드화 하는 것에 흥미가 많으신분에게 적극 권해 드리고 싶은 책입니다. 정말로 꼭 한번 읽어보시고 써있는 그대로 실습하신다면 한층 더 추상화 되어있는 자신의 두뇌와 대면할 수 있을 것이라 생각됩니다.

 따라서 '현실 세계의 문제를 프로그래밍의 세계에서 해결하고자' 하시는 분이라면 꼭 'NATURE OF CODE'를 읽어보시길 권해드립니다.

    


책의 구성】 그렇다면 우리가 살고 있는 현실의 세계속에서 어떠한 것들을 코드로 옮길 수 있을까요?

 

 망치 1장에서는 모든 실 세계에서 가장 기초가 되는 벡터에 대해서 학습을 할 것입니다. 벡터란 무엇인지 그리고 벡터 기하학을 어떻게 이해해야하며 어떻게 Processing이라는 언어로 구현하고 응용할것인지 'NATURE OF CODE'에 전부 쓰여있습니다.

  무엇보다 1장에서 나오는 용어 하나하나를 친절히 이해하기 쉬운 언어를 사용하여 설명하기 때문에 역학에 대해 조금이라도 지식을 가지신 분이라면 손쉽게 공부할 수 있을 것이라 생각됩니다.

 

 망치 2장에서는 모든 현실 세계에서 기초라 할 수 있는 힘의 원리에 대해서 공부할 것입니다. 힘을 강채에 어떻게 적용할 것인지 그리고 어떻게 이를 코드화 할것인지. 나아가 뉴턴의 1법칙 2법칙 3법칙을 어떤식으로 Processing으로 응용할 것인지에 대해 논하고 학습합니다.

 이 단락의 내용을 전에 제가 구현하였던 엔진과 비교해 보았는데 정말 흠잡을 데 없이 훌륭한 내용의 글이었습니다. 질량 부터 힘의 생성 전달 그리고 마찰력과 각각의 만류인력 상수의 코드 방법에 대해 모두 논해져 있기때문에 2장만을 잘 섭렵하신다면 가벼운 '물리 엔진'을 만들 수 있을 것이라 장담합니다.

 또한 코드 역시 가독성 높게 저자분께서 작성해주신 것이 있어 누구라도 자바 코드를 조금이라도 건드리신 분이라면 손쉽게 이해하실 수 있을 것이라 생각되었습니다.


 망치 3장에서는 진동과 굴절 그리고 삼각법과 함수에 대해서 학습을 합니다. 이부분이 거의 역학의 포인트라 할 수 있는 부분인데요, 물리 엔진이나 혹은 물리기반의 시뮬레이터를 제작하시려는 분이라면 반드시 숙지하고 가셔야할 부분일 것입니다. 문맥이 매끄럽고 번역이 괜찮게 되어 읽는데 불편함이 없을 것이라 생각됩니다.


 망치 4장은 디자인을 하시는 분들이 주의깊게 보면 크게 도움이 될 부분이라 생각되는 영역입니다. 파티클의 개념이 무엇인지, 이를 통해 어떠한 효과를 입채적으로 줄수 있는지에 대해서 연구하고 구현할 수 있습니다.

 저의 경우 4장에서 학습한 내용으로 Blood Effect를 시뮬레이터화하여 게임에 적용하였는데 기존의 것보다 훨씬 생동감 있고 재미있었습니다. 꼭 학습하시고 응용해보시길 권합니다.


 망치 5장은 제가 12년도에 열심히 연구했던 BOX2d에 관해서 설명하는 내용으로 채워져있는데, 이 내용은 정말 물리엔진이나 컴퓨터 사이언스 물리를 공부하시는 분이라면 반드시 독파하고 가셔야하는 부분이라 생각되는 파트입니다.

 물리 엔진을 이용할 때에 어떠한 것들이 있는지 이부분에 가장 잘 나타나 있습니다. 따라서 이 부분을 통해 수많은 물리 테스트를 할 수 있을 것이라 생각되는 만큼 꼭 숙지하고 가시길 바랍니다.!

 

 망치 6장에서는 본격 AI관련 학문으로 내용이 전개되게 됩니다. 첫번째로 자율 에이전트에 관해서 학습하면서 군집활동이 무엇인지 그리고 이러한 것들을 최적화 하는 방법을 비롯한 군집도 흐름장등을 구현하면서 보다 AI적 요소에 접근할 수 있게 됩니다.

 이 장은 거의 컴퓨터소프트웨어 학과 4학년 과정에서 배우는 내욤이지만 저자의 판단하에 독자가 학습하기에 적당한 수준의 내용들로 잘 꾸며저 있습니다.


 망치 7장에서는 세포 오토마타가 무엇인지에 대해 학습하며 세포와 관련된 내용을 학습하게 될 것입니다. 이 분야 역시 AI파트에서 상당히 중요시 여기는 파트로 컴퓨터학에 흥미를 가지시는 분이라면 눈여겨 볼 파트입니다.( 리뷰어의 경우 6장 부터 10장의 내용을 포커스하여 5번정도 반복해서 읽었습니다.)


 망치 8장에서는 나뭇가지를 그리는 알고리즘을 비롯한 다양한 알고리즘을 학습하게 될 것이며 이를 통해 크랙털이 무엇인지 확실히 이해하게 될 것입니다.


 망치 9장에서는 우리가 잘 알고 있는 '심즈'게임과 같이 유전 알고리즘이 무엇인지 그리고 유전알고리즘을 어떻게 구현할 수 있는지에 관해서 학습하게 될 것이고 이를 통해 진화의 컨셉과 유전의 컨셉에 대해서 학습하게 될 것입니다.

 

 망치 10장에서는 AI학의 꽃이라 할 수 있는 퍼셉트론의 개념과 구현 방법에 대해서 학습할 것입니다. 정말 이 파트를 읽고 실습하면서 감동의 눈물이 흐를뻔 했습니다. 책에서만 읽던 것을 직접 구현하고 실습할 수 있다는 영광을 누릴 수 있다는 것만으로 저는 'NATURE OF CODE'의 진가를 모두 받았다고 해도 과언이 아니라고 생각했습니다.

 이 파트를 제대로 이해할 수 있다면 향후 모든 AI 학을 공부함에 있어서 크게 어려움이 없을 것이라 생각되어 지네요.


 



 망치 NATURE OF CODE를 마치며


 - 'NATURE OF CODE'를 읽으면서 가장 크게 느꼈던 점은 전공서임에 불구하고 상당히 부드럽고 친절한 책이라는 것이었습니다. 또한 나름 번역도 부드럽게 되어 읽는데 전혀 어려움이 없고 쉬운 언어를 사용하여 실습을 하기 때문에 독자분들께서 본 책에 접근함에 있어서 크게 어려움이 없을 것이라 생각되었습니다. 따라서 프로그래밍을 전문으로 학습하실 분이라면 꼭 'NATURE OF CODE'를 읽고 그 미학을 느껴보시길 권해드립니다.



망치 추가로....

http://natureofcode.com 

에 가면 저자가 코드를 제공하는 사이트의 서비스를 받을 수 있으며 다양한 의견을 주고 받을 수 있습니다.

【NATURE OF CODE를 읽으며…….

 'NATURE OF CODE'는 기존의 생활에서 쓰이는 물리 법칙이나 여러 진리 공식들을 컴퓨터에 적용하여 가상으로 시뮬레이션 할 수 있게 해주는 책입니다. 이 책을 읽으면서 컴퓨터라는 실용 학문을 통해 인간 본질의 진리를 위해 보다 심층적이며 체계적으로 연구할 수 있다는 확신을 가질 수 있었습니다. 따라서 컴퓨터에 현실 세계의 법칙을 어떻게 적용할지 근심이시거나 해결점을 찾지 못하신 분이라면 꼭 'NATURE OF CODE'를 읽어보시길 권합니다.

점수…….

구성 : ★★★★★ 내용:★★★★★  디자인: ★★★ 전문성 : ★★★★☆

 

 코딩이 대중화되는 요즘 그와 대조적으로 정말로 프로그래밍을 철학과 같이 생각하는 사람의 수는 주는 것 같습니다. 프로그래밍을 단순 상업적인 목적에서 접근하는 것이 아닌 철학과 근본에서 접근하기 위해 연구하고 개발하는 철학자이자 사상가인 진정한 프로그래머가 여러분이길 꿈꿉니다.

 

#본 리뷰는 리뷰자 김종욱의 저작권에 귀속되므로 참고시 참고 URL과 명시를 저작자에게 알려주시길 바랍니다.

#본 리뷰의 점수 및 평가 내용은 김종욱 리뷰자의 한정된 것이므로 확정된 답이 안임을 명시합니다.

#학습과 관련된 질문과 문제에 대한 질문은 일체 받지 않습니다. 스스로 찾아서 학습하는 것 그것이야 말로 진정한 학습자입니다. 


######  감사합니다  ###### 

0***m 2015.06.01. 신고 공감 0 댓글 0
리뷰 총점 종이책
Nature of Code. 자연을 프로그래밍하다.
"Nature of Code. 자연을 프로그래밍하다." 내용보기
원래 리뷰를 잘 안쓰는 편인데:) 숙제 받은 기억이 나서 추석 전에 급하게 올려봅니다. 얼마 전, 책 한 권을 선택하여 증정받을 기회를 얻는 바람에 - 사실 책 선택에 고민을 좀 했었는데, 아마 내가 "Seven Languages in Seven Weeks" 원서를 가지고 있지 않았다면 큰 고민 없이 "브루스 테이트의 세븐 랭귀지"라는 책을 선택했을 것 같다.  - 내가 열심히 인터넷을 뒤지는 과
"Nature of Code. 자연을 프로그래밍하다." 내용보기

원래 리뷰를 잘 안쓰는 편인데:) 숙제 받은 기억이 나서 추석 전에 급하게 올려봅니다.

얼마 전, 책 한 권을 선택하여 증정받을 기회를 얻는 바람에 - 사실 책 선택에 고민을 좀 했었는데, 아마 내가 "Seven Languages in Seven Weeks" 원서를 가지고 있지 않았다면 큰 고민 없이 "브루스 테이트의 세븐 랭귀지"라는 책을 선택했을 것 같다.  - 내가 열심히 인터넷을 뒤지는 과정에서 발견하게 된 책, Nature of Code. 자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략이라는 수식어가 붙은 책이었다. 개인적으로 과학을 좋아하는 편이고, 특히 물리학에 관심이 많아서 그런지 이 책을 처음 접했을 때 읽기도 전부터 뭔가 보물을 찾은 듯 소년 마냥 두근거렸던 것 같다. 첫 인상은 그랬다. 이 책은 물체나 생물, 지능, 생태계 등의 지식들을 객체지향 언어로 구현한 코드를 포함하고 있는데 C++ 이나 Java, C# 같은 대중적인 언어가 아니라 Processing 이라는 언어를 사용하고 있다. 하지만 문법이 C++과 매우 유사하기 때문에 코드를 이해하는데 아무런 어려움이 없다. 기본적인 벡터부터 시작해서 힘, 진동, 파티클 시스템, 물리 엔진 라이브러리로 사용하고, 자율 에이전트, 세포 오토마타, 프랙털이나 진화, 뉴럴 네트워크 등 게임이나 최적화 또는 머신러닝에서 충분히 활용할 수 있을 정도의 내용을 폭 넓게 다루고 있다. 코드를 이해하는데 어려움은 없었지만, 라이브러리를 활용해 실제 실습을 해보는 시점에서는 대중적인 언어로 되어 있지 않은 점이 조금 아쉬웠다. 물론 Processing 언어가 어렵지 않아 그대로 쓰면 되지만 이 책을 선택하게 된 여러 이유 중 하나가 C/C++ 프로그래밍 수업 등에서 학생들에게 재미있는 예제 코드를 보여주고 싶었기 때문이다. 시간이 허락한다면 동일한 내용으로 C++이나 Java, C#을 이용하여 학습할 수 있도록 수정하고 싶은 생각도 들었다. 책은 읽기 자연스럽고 편하게 잘 번역된 편이다. 페이지 분량(620페이지)에 비해 종이가 얇은 편이라서 책 두께도 적당하고 좋다. 내용도 그래픽으로 출력이 이루어지는 코드들이 많아서 재미도 있다. 나도 초등학교 3학년 때 처음 컴퓨터 프로그래밍을 접했을 때는 원이나 직선 등을 좌표와 여러 파라미터 값을 이용해 원하는 그림을 그린 후 종이 프린터(당시는 도트프린터로 띠리리릭 소리가 나서 뚜껑을 덮어놓기도 했던 시절)로 출력하곤 했었는데, 그게 너무 재미있었다. 반복문을 이용해서 도형을 회전시키면서 이동시키거나 벽에서 반사되도록 해서 짧은 코드로도 화려한 효과를 내기도 했었다. beep음 기반의 음악을 가미하거나, 키보드로 도형을 조작해서 장난을 치기도 했었다. 그런 방법을 잘 모르는 친구들 앞에서 자랑하는 것도 괜찮았던 것 같다. 어쨌거나, 대부분의 프로그래밍 언어 서적들이 문법을 다루거나, 텍스트 기반의 알고리즘 문제를 다루는 것에 비해(물론, 어려운 알고리즘 문제를 해결했을 때의 쾌감은 말로 표현하기 어려울 때가 많다) 이 책의 코드는 결과물을 재미있게 볼 수 있도록 해주기 때문에 눈이 즐겁다. 사실 레퍼런스 용으로 사려고 했었기 때문에 책을 끝까지 꼼꼼히 다 읽어보진 못했지만, 내가 처음 프로그래밍을 시작했을 때의 즐거운 추억을 떠올려 주었던 것은 확실하다. 컴퓨터공학에서 전통적으로 다루는 주제에서 조금 벗어나서 게임을 하는 듯 색다른 느낌의 코딩을 해보고 싶거나 물리학이나 예술과 같은 타 학문에서 프로그래밍을 활용해 뭔가 재미있는 것을 시도하려는 사람에게 적당한 책인 것 같다. 과학공부도 하고 프로그래밍 공부도 하고, 꿩먹고 알먹고.
YES마니아 : 플래티넘 w******6 2015.09.25. 신고 공감 0 댓글 0