
자바스크립트로 코딩을 배우며 풀어보는 자연계의 신비
10년 이상 수많은 독자에게 영감을 준 《Nature of Code》의 자바스크립트 버전 개정판. ‘코딩 트레인’ 채널의 대니얼 시프먼이 쓴 이 혁신적인 안내서는 초보자와 숙련된 프로그래머 모두를 코드와 재미있는 창의성이 만나는 세계로 안내한다. 벡터, 뉴턴의 운동 법칙, 진동 등 자연계의 신비를 부드럽게 풀어내며, 진화와 유전 알고리즘, 신경망, 머신러닝 같은 복잡한 주제까지 친절하게 살펴본다. 직접 물리 엔진을 구현하며 코드를 예술로 바꾸는 놀라운 즐거움을 경험할 수 있다.
도서구매 사이트(가나다순)
| [교보문고] [도서11번가] [알라딘] [예스이십사] [쿠팡] |
전자책 구매 사이트(가나다순)
| [교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] |
출판사 제이펍
저작권사 No Starch Press
원서명 The Nature of Code (978718503700)
도서명 네이처 오브 코드(자바스크립트판)
부제 자바스크립트와 p5.js로 배우는 자연계 시뮬레이션과 창의적 코딩
지은이 대니얼 시프먼
옮긴이 윤인성
감수자 (없음)
시리즈 (없음)
출판일 2025. 07. 22
페이지 640쪽
판 형 46배판변형(188*245*30.3)
제 본 무선(soft cover)
정 가 35,000원
ISBN 979-11-94587-31-6 (93000)
키워드 프로세싱, 미디어아트, 창의코딩, 물리엔진, 자연, 객체지향, 머신러닝, 신경망, 오토마타, 진화
분 야 자바스크립트 / 소프트웨어 공학
관련 사이트
■ 아마존 도서 페이지
■ 저작권사 도서 페이지
관련 시리즈
■ (없음)
관련 포스트
■ 2025.07.07 - [출간 전 책 소식] - 바이브 코딩 말고 창의적 코딩을 하세요
관련 도서
■ (없음)
관련 파일 다운로드
■ (없음)
강의 보조 자료(교재로 채택하신 분들은 https://jpub.tistory.com/notice/1076을 통해 다음 자료를 요청하실 수 있습니다.)
■ 본문의 그림과 표
미리보기(앞부속, 본문 일부)
정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)
도서구매 사이트(가나다순)
| [교보문고] [도서11번가] [알라딘] [예스이십사] [쿠팡] |
전자책 구매 사이트(가나다순)
| [교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] |
도서 소개
세계에서 가장 웃긴 코딩 유튜버 대니얼 시프먼과 함께하는 특별한 모험
경외심을 불러일으키는 새들의 군무 패턴이나 반딧불이의 최면 같은 춤을 코딩으로 재현할 수 있다면 어떨까요? 인기 유튜브 채널 ‘코딩 트레인’의 대니얼 시프먼이 쓴 《The Nature of Code》는 수많은 독자를 크리에이터로 변화시켜 과학, 예술, 기술 간의 장벽을 허물고 코드를 단순한 작업 도구가 아닌 무한한 창의성을 위한 캔버스로 인식하도록 유도했습니다. 이번에 출간된 《네이처 오브 코드(자바스크립트판)》은 예제 코드 언어를 프로세싱에서 자바스크립트(p5.js)로 바꾸고 내용을 추가한 최신 개정판입니다.
벡터의 개념으로 시작해 뉴턴의 운동 법칙, 진동, 삼각법을 통해 자바스크립트로 간단한 물리 엔진을 직접 만들어봅니다. 이를 토대로 복잡계, 조향력, 무리 지어 다니기를 시뮬레이션하고, 나아가 진화와 유전 알고리즘에서 신경망, 머신러닝, 신경진화 시스템 등 복잡한 주제까지 이해하기 쉽게 설명합니다. 주위에서 흔히 볼 수 있는 자연계의 현상을 객체지향 프로그래밍을 활용해 시각적으로 멋진 하나의 작품으로 완성해내는 과정은 정말 짜릿합니다. 책의 예제 코드는 모두 책의 공식 웹사이트에서 바로 돌려볼 수 있습니다.
모두 ‘코딩 트레인’에 탑승해서 창의적 코딩의 특별한 모험을 시작하세요. 코딩의 기본을 익히는 동시에 코드를 예술로 바꾸는 즐거움을 발견할 수 있습니다. 자연을 새로운 방식으로 바라보고 그 경이로움에서 창작물에 영감을 얻게 될 것입니다. 초보자이든 숙련된 프로그래머이든, 이 책이 여러분을 코드와 창의성이 만나는 놀라운 세계로 안내할 것입니다.
주요 내용
- 물리 엔진: 중력의 밀고 당김을 시뮬레이션합니다.
- 무리 지어 다니기: 새 떼의 매혹적인 군무를 연출해보세요.
- 가지를 치는 나무: 생생하고 유기적인 나뭇가지 구조를 만들어봅니다.
- 신경망: 학습하고 적응하는 지능형 시스템을 제작하세요.
- 셀룰러 오토마타: 자기 조직화 패턴의 마법을 발견하세요.
- 진화 알고리즘: 코드에서 자연선택을 직접 체험해보세요.
지은이 소개
대니얼 시프먼(Daniel Shiffman)
창의적 코딩을 재미있고 친근한 방식으로 전 세계와 공유하는 것을 사명으로 삼고 있다. 구독자 174만 명의 유튜브 채널 ‘코딩 트레인’에 자바스크립트(p5.js)와 자바(프로세싱) 같은 프로그래밍 언어의 기초부터 물리 시뮬레이션, 머신러닝, 데이터 시각화를 위한 알고리즘까지 다양한 주제의 동영상 튜토리얼을 게시하고 있다. 뉴욕 대학교 티시 예술대학의 ITP/IMA에서 부교수로 일하며, 여가 시간에는 반려 닭인 판초, 루이스, 빌보를 돌본다. 《러닝 프로세싱(2판)》(비제이퍼블릭, 2016)의 저자이기도 하다.
옮긴이 소개
윤인성
출근하기가 싫어서 책을 집필하기 시작했다. 현재 직업 특성상 집에서 나갈 이유가 별로 없다는 것에 굉장히 만족하고 있다. 홍차와 커피를 좋아하며, 기타와 가야금 연주, 그림 그리기, 스컬핑 등이 취미다. 저서로는 《쉽게 배우는 C# 프로그래밍(3판)》, 《HTML5 웹 프로그래밍 입문(4판)》, 《혼자 공부하는 파이썬(개정판)》, 《자바스크립트 프로그래밍 입문(2판)》, 《C# 프로그래밍(3판)》 등이 있으며, 역서로는 《블렌더 VFX》, 《만들면서 배우는 블렌더 3D 입문》, 《문제 해결을 위한 알고리즘 with 수학 알고리즘》, 《내 코드가 그렇게 이상한가요?》, 《이펙티브 코틀린》 등이 있다. 이번 책은 78번째 책이다.
차례
지은이 · 감수자 · 옮긴이 소개 xii
옮긴이 머리말 xiii
베타리더 후기 xiv
추천사 xvi
감사의 글 xviii
이 책에 대하여 xxiv
CHAPTER 0 무작위성 1
0.1 랜덤 워크 2
0.2 랜덤 워커 클래스 3
0.3 확률과 비균등분포 10
0.4 무작위 숫자의 정규분포 14
0.5 무작위 숫자의 사용자 정의 분포 18
0.6 펄린 노이즈를 사용한 더 부드러운 접근 21
CHAPTER 1 벡터 33
1.1 벡터의 중요성 34
1.2 p5.js에서의 벡터 37
1.3 벡터 덧셈 40
1.4 추가적인 벡터 수학 45
1.5 벡터의 길이 50
1.6 벡터 정규화 52
1.7 벡터를 사용한 움직임 54
1.8 가속도 59
CHAPTER 2 힘 71
2.1 힘과 뉴턴의 운동 법칙 72
2.2 힘의 누적 78
2.3 질량 고려하기 80
2.4 힘 만들기 82
2.5 힘 모델링하기 88
2.6 n체 문제 110
CHAPTER 3 진동 117
3.1 각도 118
3.2 각운동 120
3.3 삼각함수 126
3.4 이동 방향 가리키기 127
3.5 극좌표와 데카르트 좌표 131
3.6 진동의 특성 134
3.7 각속도를 이용한 진동 138
3.8 파동 142
3.9 스프링 힘 147
3.10 진자 154
CHAPTER 4 파티클 시스템 165
4.1 파티클 시스템의 중요성 166
4.2 단일 파티클 168
4.3 파티클 배열 172
4.4 파티클 방출기 178
4.5 방출기의 시스템 181
4.6 상속과 다형성 184
4.7 힘을 사용하는 파티클 시스템 197
4.8 밀어내는 객체의 힘을 적용한 파티클 시스템 200
4.9 이미지 텍스처와 가산 혼합 205
CHAPTER 5 자율 에이전트 213
5.1 스스로의 의지로 선택하는 힘 214
5.2 차량과 조향 215
5.3 흐름장 232
5.4 경로 따라가기 239
5.5 복잡한 시스템 256
5.6 알고리즘 효율성: 내 프로그램은 왜 이렇게 느릴까? 273
CHAPTER 6 물리 라이브러리 285
6.1 왜 물리 라이브러리를 사용하는가? 287
6.2 Matter.js 라이브러리 읽어 들이기 289
6.3 Matter.js 개요 291
6.4 p5.js와 함께 사용하는 Matter.js 301
6.5 정적 Matter.js 바디 306
6.6 다각형과 도형 그룹 307
6.7 Matter.js 제약 315
6.8 여러 가지 힘 적용하기 323
6.9 충돌 이벤트 327
6.10 간단한 소개: 적분 331
6.11 Toxiclibs.js로 구현하는 베를레 물리 333
6.12 연체 시뮬레이션 342
6.13 인력과 척력 355
CHAPTER 7 셀룰러 오토마타 359
7.1 셀룰러 오토마타란 무엇인가? 360
7.2 기초 셀룰러 오토마타 362
7.3 울프럼의 분류 체계 380
7.4 생명 게임 382
7.5 객체지향적인 셀 만들기 391
7.6 전통적인 셀룰러 오토마타의 변형 394
CHAPTER 8 프랙털 399
8.1 프랙털이란? 400
8.2 재귀 403
8.3 코크 곡선 414
8.4 나무 422
8.5 L-시스템 430
CHAPTER 9 진화적 컴퓨팅 439
9.1 유전 알고리즘: 자연의 지혜 440
9.2 왜 유전 알고리즘을 사용할까? 441
9.3 유전 알고리즘의 작동 원리 444
9.4 유전 알고리즘 코딩하기 452
9.5 유전 알고리즘 맞춤 설정하기 464
9.6 진화하는 힘: 스마트 로켓 471
9.7 대화형 선택 484
9.8 생태계 시뮬레이션 489
CHAPTER 10 신경망 499
10.1 인공 신경망 소개 501
10.2 퍼셉트론 505
10.3 신경망에 ‘네트워크’ 추가하기 521
10.4 ml5.js를 사용한 머신러닝 524
10.5 제스처 분류기 만들기 532
CHAPTER 11 신경진화 545
11.1 강화 학습 547
11.2 신경망의 진화: NEAT 알고리즘 552
11.3 플래피 버드 코딩하기 553
11.4 신경진화하는 플래피 버드 557
11.5 신경진화로 조향하기 568
11.6 신경진화하는 생태계 576
맺음말 587
부록: 생명체 디자인 589
도판 출처 593
찾아보기 596
제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)
| 블로그 유튜브 인스타그램 트위터 페이스북 |
'도서 소개' 카테고리의 다른 글
| 디자인 트렌드 아카이브 포토샵 & 일러스트레이터 (0) | 2025.07.24 |
|---|---|
| 쏠쏘라와 함께하는 색연필 드로잉 클래스 (0) | 2025.07.17 |
| 세균무기의 스타트업 바운스백 (0) | 2025.06.30 |
| 심각한 테라폼 중독입니다 (0) | 2025.06.30 |
| 깃허브 액션으로 구현하는 실전 CI/CD 설계와 운영 (0) | 2025.06.30 |