ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자연계 법칙을 디지털 세계로 프로그래밍 : 책 예고편 : 'NATURE OF CODE'
    수학-과학-IT 2021. 8. 16. 09:00

     

    책 소개합니다.

    'NATURE OF CODE'(다니엘 쉬프만 지음, 윤인성 옮김, 한빛미디어, 2015)

     

    자연계 법칙을 디지털 세계로 프로그래밍

     

     

    얼마 전 이 블로그에서 '손에 잡히는 프로세싱'이란 책 소개를 통해 '프로세싱'이란 컴퓨터 프로그래밍 언어를 소개한 적이 있습니다.

     

    프로그래밍 언어를 공부할 때마다 느끼는 점은, 무언가 개발해야 하는 절박한 상황 때문에 공부하는 경우가 아니라면 책을 읽고 나서는 내용을 금방 잊어버리게 된다는 것이었습니다. 사용하지 않으면 잊어버리는 것이 당연하겠지요.

     

    만들고 싶은 프로그램이 떠오르지 않는다면, 이 책의 내용을 따라 해 보시기 바랍니다. 책 내용은 프로세싱 언어로 작성이 되었지만, 다른 언어로 이 책의 내용을 구현해보는 것도 재미있을 것 같습니다.

     

    저자는 이 책의 목표를 이렇게 얘기합니다.

    "이 책의 목표는 굉장히 단순합니다. 현실 세계에서 일어나는 자연 현상을 관찰하고, 그 현상을 코드로 모방해보는 것입니다. 그럼 이 책은 과학책일까요? 아니요, 전혀 다른 책입니다. 물론 물리학과 생물학에 관련된 이야기도 다루지만 그러한 주제로 학문적인 설명을 하는 책은 아닙니다. 과학적인 개념을 간단하게만 살펴보고 각각의 예제를 만드는 데 조금 사용할 뿐입니다.

    그러면 예술 또는 디자인 책일까요? 그것도 아닙니다. 이 책은 알고리즘과 관련된 프로그래밍 방법을 다루는 책입니다. 물론 결과로는 움직이는 프로세싱 프로그램이 만들어지지만 단순한 기본 도형과 흑백을 그릴 뿐입니다. 물론 필자는 많은 예술가와 디자이너가 이 책을 활용해서 창조적이고 새로운 작품을 만들어내기를 희망합니다."
    (NATURE OF CODE, 다니엘 쉬프만 지음, 윤인성 옮김, 한빛미디어, 2015, 서문-6쪽)

     

     

    중력이나 바람에 영향을 받는 물체의 이동에서부터 시작해서, 생물처럼 먹이를 찾아다니는 자율형 에이전트, 세포 오토마타, 프랙털, 유전자 알고리즘, 간단한 뉴럴 네트워크의 구현까지 설명이 되어 있습니다. 화면에는 조그만 삼각형으로 표시된 로켓들이지만, 이들이 마치 생명처럼 유전자를 가지고 있어서 진화를 거쳐 장애물을 피해서 목표물에 도달하게 되는 과정도 눈으로 직접 보실 수 있습니다.

     

    각 장의 끝에 '생태계 프로젝트'라는 과제가 제시되는데, 빨리 진도를 나가겠다는 욕심에서 건너뛰고 말았습니다. 숙제를 열심히 했더라면, 지금쯤 제 컴퓨터에 살아 움직이는 것 같은 작은 생태계가 구현되었을 텐데 말입니다.

     

    눈에 보이면서 움직이는 뭔가를 구현해보는 것이 프로그래밍의 재미를 훨씬 더 느끼게 해주는 것 같습니다. 재미있게 만들다 보면 실력도 늘지 않을까요? 자연계의 법칙을 시뮬레이션하는 데에 관심 있으신 분들은 이 책 한번 읽어보시기 바랍니다.

    댓글

Designed by Tistory.