Àü°ø ºÒ¹® ÄÚµù ÀÔ¹®ÀÚ, S/W ¹× H/W¸¦ ¿¬µ¿ÇÏ°í ½ÍÀº ÀÚ¸¦ À§ÇÑ Ã¥
¹Ì·¡ÀÇ ±³À°¹æ½ÄÀ¸·Î ÈçÈ÷ STEM ±³À°À» ¸»ÇÕ´Ï´Ù. Áï, °úÇÐ(Science), ±â¼ú(Technology), °øÇÐ(Engineering), ¼öÇÐ(Mathematics)À» À¶ÇÕÇÑ ±³À°À» ÀǹÌÇÕ´Ï´Ù. P5.js(¡æÇÁ·Î¼¼½ÌÀÇ À¥ ¹öÀü)¿Í ¾ÆµÎÀ̳ë´Â ¿ø·¡ ÄÚµù¿¡ Àͼ÷ÇÏÁö ¾ÊÀº µðÀÚÀÎÀ̳ª ¿¹¼ú Àü°øÀÇ ÇлýµéÀ» À§ÇÏ¿© °¢°¢ ½Ã°¢Àû, ¹°¸®Àû »óÈ£ ÀÛ¿ë¿¡ ÁßÁ¡À» µÐ S/W ¹× H/W ÄÚµù ¾ð¾î·Î ź»ýÇÏ¿´½À´Ï´Ù. ±×·¯¹Ç·Î P5.js¿Í ¾ÆµÎÀ̳ë´Â STEM¿¡ Àι®Çаú ¿¹¼úÀ» ÀǹÌÇÏ´Â Art¸¦ ´õÇÑ STEAM ±³À°¿¡ ÀûÇÕÇÑ ÄÚµù ¾ð¾îÀÔ´Ï´Ù.
Art Áï, Àι®Çаú ¿¹¼úÀº Àΰ£ÀÇ Ã¢ÀǼºÀ» °³¹ßÇÒ ¼ö ÀÖ´Â ¼ö´ÜÀ¸·Î¼ Àΰ£¸¸ÀÌ °¡´ÉÇÑ ÀÇ¹Ì ÀÖ´Â ¿µ¿ªÀ̶ó°í ¸»ÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó âÀÇÀûÀÎ ±³À°ÀÇ ÇÙ½É ¿ä¼Ò Áß ÇϳªÀÔ´Ï´Ù. ±× ÀÌÀ¯·Î, Àι®Çаú ¿¹¼ú¿¡´Â ÇØ´äÀÌ Çϳª ÀÌ»ó ¶Ç´Â ÇØ´äÀÌ ¾ø´Â ¹®Á¦°¡ ´ëºÎºÐÀ̹ǷΠâÀÇÀûÀÎ »ç°í°¡ ¹«¾ùº¸´Ù ÇÊ¿äÇϱ⠶§¹®ÀÔ´Ï´Ù. âÀÇÀû »ç°í¸¦ ÃËÁøÇÏ´Â ±³À° È¿°ú¸¦ ´©¸®´Â µ¿½Ã¿¡ °úÇÐ, ±â¼ú, °øÇÐ, ¼öÇаú ¿¹¼ú »çÀÌÀÇ Àý¹¦ÇÑ Á¢Á¡À» Á÷Á¢ üÇèÇÏ°í ½Í´Ù¸é P5.js¿Í ¾ÆµÎÀ̳븦 ¿¬µ¿ÇÑ ÇÇÁöÄà ÄÄÇ»ÆÃ(Physical Computing)À¸·Î ½ÃÀÛÇÏ´Â °ÍÀº ÁÁÀº ¼±ÅÃÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. P5.js¿Í ¾ÆµÎÀ̳븦 ¹è¿ì´Â °úÁ¤Àº ÀÌ·¯ÇÑ À¶ÇÕ°ú âÀÇÀÇ ÇÙ½ÉÀ» üµæÇÏ´Â ½Ã°£ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í ¹«¾ùº¸´Ù Àç¹ÌÀÖ½À´Ï´Ù.^^ For Fun!
01 ½ÃÀÛ
1.1 ÄÚµù°ú ÇÇÁöÄà ÄÄÇ»Æà 13
1.2 p5.js¶õ? 16
1.2.1 p5.js °³¿ä 16
1.2.2 À¥ ¿¡µðÅÍ¿¡¼ ÄÚµù 19
1.2.3 ºñÁÖ¾ó ½ºÆ©µð¿À Äڵ忡¼ ÄÚµù 24
1.3 ¾ÆµÎÀ̳ë¶õ? 30
1.3.1 ¾ÆµÎÀÌ³ë °³¿ä 30
1.3.2 ¾ÆµÎÀ̳뿡¼ ÄÚµù 32
02 Ç¥Çö
2.1 p5.js: Ç¥Çö 40
2.1.1 ĵ¹ö½ºÀÇ Å©±â 40
2.1.2 Á¡°ú ¼±ÀÇ Ç¥Çö 43
2.1.3 ¿ø°ú »ç°¢ÇüÀÇ Ç¥Çö 45
2.1.4 ¹®ÀÚÀÇ Ç¥Çö 46
2.1.5 »ö»óÀÇ Ç¥Çö 47
¡¼½ÉÈ¡½ ºñÆ®(Bit) & ¹ÙÀÌÆ®(Byte) 49
2.2 ¾ÆµÎÀ̳ë: Ç¥Çö 53
2.2.1 ÀÔ¡¤Ãâ·Â ºÎÇ° 53
2.2.2 ÀÔ¡¤Ãâ·Â ºÎÇ°ÀÇ ÇɹøÈ£ ¼³Á¤ 54
2.2.3 LED Á¡¸ê 56
03 º¯¼ö
3.1 p5.js: º¯¼ö 61
3.1.1 º¯¼ö ¼±¾ð°ú ÃʱâÈ 61
3.1.2 º¯¼ö¿Í ¿¬»ê 64
¡¼½ÉÈ¡½ À¯´ÏÄÚµå(Unicode) & ¾Æ½ºÅ°ÄÚµå(ASCII Code) 68
¡¼½ÉÈ¡½ console.log() ¶Ç´Â print() »ç¿ë ½Ã À¯ÀÇÁ¡ ¹× »ç¿ë ¿¹ 71
¡¼½ÉÈ¡½ ÄܼÖâ¿¡¼ °á°ú È®ÀÎ 72
3.1.3 º¯¼ö ±â¹Ý ¿òÁ÷ÀÓ Ç¥Çö 73
¡¼½ÉÈ¡½ Àü¿ªº¯¼ö & Áö¿ªº¯¼ö 77
3.1.4 ½Ã½ºÅÛ º¯¼ö¿Í ´Ù¾çÇÑ ¿òÁ÷ÀÓ ±¸Çö 80
3.2 ¾ÆµÎÀ̳ë: º¯¼ö 90
3.2.1 º¯¼ö ±â¹Ý ´Ù¾çÇÑ ºÎÇ°ÀÇ Æ¯¼º È®ÀÎ 90
¡¼½ÉÈ¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ ºñ±³: ±âº» µ¥ÀÌÅÍÇü 90
¡¼½ÉÈ¡½ ÆÃĿijµå(Tinkercad) 94
¡¼½ÉÈ¡½ ½Ã¸®¾ó Åë½Å °ü·Ã ÇÔ¼ö(=¸Þ¼Òµå) ¹× ½Ã¸®¾ó ¸ð´ÏÅÍ 101
3.2.2 Àüü ȸ·Îµµ 117
3.2.3 º¯¼ö ±â¹Ý Á¦¾î 119
¡¼½ÉÈ¡½ p5.js¿Í ¾ÆµÎÀ̳ëÀÇ Â÷ÀÌ: map() 120
¡¼½ÉÈ¡½ ¾ÆµÎÀ̳ëÀÇ ÀÔ¡¤Ãâ·Â ÇÔ¼ö Á¤¸® 123
¡¼½ÉÈ¡½ ºÎÀúÀÇ tone() ÇÔ¼ö¿Í ¼º¸¸ðÅÍ »ç¿ë ½Ã À¯ÀÇ»çÇ× 124
04 Á¶°Ç
4.1 p5.js: Á¶°Ç 127
4.1.1 if¹® 127
4.1.2 if-else¹® 130
4.1.3 ¹® 132
4.1.4 if¹®°ú ½Ã½ºÅÛ º¯¼ö 133
4.2 ¾ÆµÎÀ̳ë: Á¶°Ç 141
4.2.1 if¹®, if-else¹® 141
4.2.2 ¹® 145
05 ¹Ýº¹
5.1 p5.js: ¹Ýº¹ 148
5.1.1 for¹® 148
5.1.2 while¹® 151
5.1.3 for¹®°ú »óÈ£ÀÛ¿ë 153
5.2 ¾ÆµÎÀ̳ë: ¹Ýº¹ 156
5.2.1 for¹® 156
5.2.2 while¹® 158
06 ¹è¿
6.1 p5.js: ¹è¿ 160
6.1.1 ¹è¿ÀÇ ¼±¾ð ¹× ÃʱâÈ 160
6.1.2 ¹è¿°ú ¹Ýº¹¹® 164
6.2 ¾ÆµÎÀ̳ë: ¹è¿ 169
6.2.1 ¹è¿ÀÇ ¼±¾ð ¹× ÃʱâÈ 169
6.2.2 ¹è¿°ú ¹Ýº¹¹® 170
07 ÇÔ¼ö
7.1 p5.js: ÇÔ¼ö 176
7.1.1 ÇÔ¼ö À¯Çü 176
7.1.2 ÇÔ¼ö À¯Çü1,2 177
7.1.3 ÇÔ¼ö À¯Çü3,4 182
7.1.4 À̺¥Æ® ÇÔ¼ö 186
7.2 ¾ÆµÎÀ̳ë: ÇÔ¼ö 191
7.2.1 ÇÔ¼ö À¯Çü1,2 191
7.2.2 ÇÔ¼ö À¯Çü3,4 194
¡¼½ÉÈ¡½ P5.js¿Í ¾ÆµÎÀ̳ëÀÇ ÇÔ¼ö À¯Çü ºñ±³ 197
08 P5.js¡æ¾ÆµÎÀ̳ë
8.1 ½Ã¸®¾ó Åë½Å 202
¡¼½ÉÈ¡½ ½Ã¸®¾ó(Serial) Åë½Å 202
8.2 ¿¬µ¿ ½Ç½ÀÀ» À§ÇÑ Áغñ 207
¡¼Á߿䡽 ¿¬µ¿ ½Ã ÁÖÀÇ»çÇ× ¹× ½ÇÇà ¼ø¼ 209
8.3 Á¤¼ö ¼Û¡¤¼ö½Å1 211
¡¼½ÉÈ¡½ createButton() & p5.Element 217
¡¼½ÉÈ¡½ ¾ÆµÎÀ̳ëÀÇ Æú¸µ(Polling) & ÀÎÅÍ·´Æ®(Interrupt) 218
8.4 Á¤¼ö ¼Û¡¤¼ö½Å2 223
8.5 ¹®ÀÚ¿ ¼Û¡¤¼ö½Å 225
8.6 º¹¼ö µ¥ÀÌÅÍ ¼Û¡¤¼ö½Å 228
09 ¾ÆµÎÀ̳ë¡æP5.js
9.1 Á¤¼ö ¼Û¡¤¼ö½Å1 236
¡¼½ÉÈ¡½ p5.jsÀÇ Æú¸µ(Polling) & ÀÎÅÍ·´Æ®(Interrupt) 239
9.2 Á¤¼ö ¼Û¡¤¼ö½Å2 242
9.3 ¹®ÀÚ¿ ¼Û¡¤¼ö½Å 247
9.4 º¹¼ö µ¥ÀÌÅÍ ¼Û¡¤¼ö½Å 252
10. ¾ÆµÎÀ̳ë¡êP5.js
10.1 P5.js¡æ¾ÆµÎÀ̳ë Çڵ彦ÀÌÅ· 261
¡¼½ÉÈ¡½ Çڵ彦ÀÌÅ· ¹æ½ÄÀÇ Æ¯Â¡ 265
10.2 ¾ÆµÎÀ̳ë¡æP5.js Çڵ彦ÀÌÅ· 271
¡¼½ÉÈ¡½ ½Ã¸®¾ó Åë½Å¿¡¼ ¹®ÀÚ¿ ¼Û¡¤¼ö½ÅÀÇ À塤´ÜÁ¡ 276
10.3 ¾ÆµÎÀ̳ë¡êP5.js Çڵ彦ÀÌÅ· 277
¸¶¹«¸®
¸¶¹«¸® 288