·¯½ºÆ® ÇÙ½É ¸â¹ö 2ÀÎÀÌ ÁýÇÊÇÏ°í RUST 2018ÀÌ ¹Ý¿µµÈ ±¹³» ù ·¯½ºÆ® °ø½Ä ¹®¼! »ç¶÷¿¡°Ô ´õ Ä£¼÷ÇÑ °í¼öÁØÀÇ ÇÁ·Î±×·¡¹Ö°ú Àú¼öÁØÀÇ Á¦¾î´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î µðÀÚÀο¡¼ ¼·Î »óÃæÇÏ´Â °æÇâÀÌ ÀÖ´Ù. ·¯½ºÆ®´Â ÀÌ·¯ÇÑ »óÃæ°ü°è¿¡ µµÀüÀåÀ» ³»¹Î ¾ð¾îÀÌ´Ù. ·¯½ºÆ®´Â °·ÂÇÑ ±â¼úÀû ±â´É°ú ÈǸ¢ÇÑ °³¹ßÀÚ °æÇè »çÀÌÀÇ ±ÕÇüÀ» ÀûÀýÈ÷ °®Ãá ¾ð¾îÀÌ´Ù. ·¯½ºÆ®´Â ½ºÅÿÀ¹öÇÃ·Î¿ì ¼³¹® Á¶»ç¿¡¼ 4³â°£ °³¹ßÀÚ ´ë»ó °¡Àå Àαâ ÀÖ´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î 1À§¸¦ Â÷ÁöÇß´Ù. ±¹³»¿¡ óÀ½À¸·Î Ãâ°£µÇ´Â ·¯½ºÆ® µµ¼, ¡º·¯½ºÆ® ÇÁ·Î±×·¡¹Ö °ø½Ä °¡À̵塻¸¦ ÅëÇØ ·¯½ºÆ®¿¡ ´ëÇÑ °¥ÁõÀ» ÇؼÒÇϽñ⠹ٶõ´Ù.
·¯½ºÆ® ¹®¼È ÆÀÀ» À̲ø°í ÀÖÀ¸¸ç, ·¯½ºÆ®ÀÇ ÇÙ½É °³¹ßÀÚ Áß ÇÑ ¸íÀÌ´Ù. ÄÜÆÛ·±½ºÀÇ ¹ßÇ¥ÀÚ·Î ´Ù¾çÇÑ ¿ÀÇ ¼Ò½º¿¡ ±â¿©ÇÏ°í ÀÖÀ¸¸ç, ±×Àü¿¡´Â ¡®·çºñ(Ruby)¡¯¿Í ¡®·çºñ ¿Â ·¹ÀÏÁî(Ruby on Rails)¡¯ °ü·Ã ÇÁ·ÎÁ§Æ®¿¡ Âü¿©Çß´Ù. Áö±ÝÀº ¸ðÁú¶ó(Mozilla)¿¡ ±Ù¹«ÇÏ°í ÀÖ´Ù.
CHAPTER 1 ½ÃÀÛÇϱâ 1 1.1 ¼³Ä¡Çϱâ 1 1.2 ù ¹ø° ·¯½ºÆ® ÇÁ·Î±×·¥ ÀÛ¼ºÇϱâ 4 1.3 Ä«°í ¾Ë¾Æº¸±â 9CHAPTER 2 ¼ýÀÚ ¸ÂÈ÷±â °ÔÀÓÀÇ ±¸Çö 15 2.1 »õ ÇÁ·ÎÁ§Æ® ¼Â¾÷Çϱâ 16 2.2 Ç÷¹À̾ ¿¹ÃøÇÑ °ª ó¸®Çϱâ 17 2.3 ³¼ö »ý¼ºÇϱâ 23 2.4 ³¼ö¿Í »ç¿ëÀÚÀÇ ÀÔ·Â ºñ±³Çϱâ 28 2.5 ¹Ýº¹¹®À» ÀÌ¿ëÇØ ´ÙÁß ÀÔ·Â Áö¿øÇϱâ 32CHAPTER 3 ÀÏ¹Ý ÇÁ·Î±×·¡¹Ö °³³ä 39 3.1 º¯¼ö¿Í °¡º¯¼º 40 3.2 µ¥ÀÌÅÍ Å¸ÀÔ 45 3.3 ÇÔ¼ö 53 3.4 ÁÖ¼® 60 3.5 È帧 Á¦¾î 61CHAPTER 4 ¼ÒÀ¯±Ç 73 4.1 ¼ÒÀ¯±ÇÀ̶õ? 73 4.2 ÂüÁ¶¿Í ´ë¿© 86 4.3 ½½¶óÀ̽º ŸÀÔ 93CHAPTER 5 ±¸Á¶Ã¼¸¦ È°¿ëÇÑ °ü·Ã µ¥ÀÌÅÍÀÇ ±¸Á¶È 101 5.1 ±¸Á¶Ã¼ Á¤ÀÇ¿Í ÀνºÅϽº »ý¼º 102 5.2 ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ´Â ¿¹Á¦ ÇÁ·Î±×·¥ 107 5.3 ¸Þ¼µå ¹®¹ý 112CHAPTER 6 ¿°ÅÀÚ¿Í ÆÐÅÏ ¸ÅĪ 119 6.1 ¿°ÅÀÚ Á¤ÀÇÇϱâ 120 6.2 match È帧 Á¦¾î ¿¬»êÀÚ 127 6.3 if letÀ» ÀÌ¿ëÇÑ °£°áÇÑ È帧 Á¦¾î 133CHAPTER 7 ÆÐÅ°Áö, Å©·¹ÀÌÆ®, ¸ðµâ·Î ÇÁ·ÎÁ§Æ® °ü¸®Çϱâ 137 7.1 ÆÐÅ°Áö¿Í Å©·¹ÀÌÆ® 138 7.2 ¸ðµâÀ» ÀÌ¿ëÇÑ ¹üÀ§¿Í Á¢±Ù¼º Á¦¾î 140 7.3 °æ·Î¸¦ ÀÌ¿ëÇØ ¸ðµâ Æ®¸®ÀÇ ¾ÆÀÌÅÛ ÂüÁ¶Çϱâ 142 7.4 use Å°¿öµå·Î °æ·Î¸¦ ¹üÀ§·Î °¡Á®¿À±â 150 7.5 ¸ðµâÀ» ´Ù¸¥ ÆÄÀÏ·Î ºÐ¸®Çϱâ 157CHAPTER 8 ¹ü¿ë Ä÷º¼Ç 161 8.1 º¤ÅÍ¿¡ ÀÏ·ÃÀÇ °ª ÀúÀåÇϱâ 162 8.2 String ŸÀÔ¿¡ UTF-8 Çü½ÄÀÇ ÅؽºÆ® ÀúÀåÇϱâ 168 8.3 Å°¿Í °ªÀ» ÀúÀåÇÏ´Â Çؽà ¸Ê 178CHAPTER 9 ¿¡·¯ ó¸® 185 9.1 panic! ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÑ È¸º¹ ºÒ°¡´ÉÇÑ ¿¡·¯ ó¸® 186 9.2 Result ŸÀÔÀ¸·Î ¿¡·¯ ó¸®Çϱâ 189 9.3 Æдп¡ ºüÁú °ÍÀΰ¡? ¸» °ÍÀΰ¡? 200CHAPTER 10 Á¦³×¸¯ ŸÀÔ, Æ®·¹ÀÌÆ® ±×¸®°í ¼ö¸í 207 10.1 ÇÔ¼ö·ÎºÎÅÍ Áߺ¹ Á¦°ÅÇϱâ 208 10.2 Á¦³×¸¯ µ¥ÀÌÅÍ Å¸ÀÔ 211 10.3 Æ®·¹ÀÌÆ®: °øÀ¯ °¡´ÉÇÑ ÇàÀ§¸¦ Á¤ÀÇÇÏ´Â ¹æ¹ý 220 10.4 ¼ö¸íÀ» ÀÌ¿ëÇØ ÂüÁ¶ À¯È¿¼º °Ë»çÇϱâ 233 10.5 Á¦³×¸¯ ŸÀÔ ¸Å°³º¯¼ö, Æ®·¹ÀÌÆ® °æ°è, ±×¸®°í ¼ö¸í 248CHAPTER 11 ÀÚµ¿È Å×½ºÆ® ÀÛ¼ºÇϱâ 251 11.1 Å×½ºÆ®ÀÇ ÀÛ¼º 252 11.2 Å×½ºÆ® ½ÇÇà Á¦¾îÇϱâ 268 11.3 Å×½ºÆ®ÀÇ Á¶Á÷È 274CHAPTER 12 I/O ÇÁ·ÎÁ§Æ®: ¸í·ÉÁÙ ÇÁ·Î±×·¥ ÀÛ¼ºÇϱâ 283 12.1 ¸í·ÉÁÙ Àμö ó¸®Çϱâ 284 12.2 ÆÄÀÏ Àбâ 287 12.3 ¸ðµâÈ¿Í ¿¡·¯ ó¸® Çâ»óÀ» À§ÇÑ ¸®ÆÑÅ丵 289 12.4 Å×½ºÆ® ÁÖµµ ¹æ¹ýÀ¸·Î ¶óÀ̺귯¸®ÀÇ ±â´É °³¹ßÇϱâ 303 12.5 ȯ°æ º¯¼ö ´Ù·ç±â 310 12.6 stderrÀ» ÀÌ¿ëÇØ ¿¡·¯ ¸Þ½ÃÁö Ãâ·ÂÇϱâ 316CHAPTER 13 ÇÔ¼öÇü ¾ð¾îÀÇ ±â´É: ¹Ýº¹ÀÚ¿Í Å¬·ÎÀú 321 13.1 Ŭ·ÎÀú: ÁÖº¯ ȯ°æÀ» ĸóÇÏ´Â À͸í ÇÔ¼ö 322 13.2 ¹Ýº¹ÀÚ¸¦ ÀÌ¿ëÇØ ÀÏ·ÃÀÇ ¾ÆÀÌÅÛ Ã³¸®Çϱâ 337 13.3 ÀÔÃâ·Â ÇÁ·ÎÁ§Æ®ÀÇ °³¼± 346CHAPTER 14 Ä«°í¿Í crates.io 353 14.1 ¸±¸®Áî ÇÁ·ÎÇÊÀ» ÀÌ¿ëÇÑ ºôµå Ä¿½ºÅ͸¶ÀÌ¡ 354 14.2 crates.io »çÀÌÆ®¿¡ Å©·¹ÀÌÆ® ¹ßÇàÇϱâ 355 14.3 Ä«°í ÀÛ¾÷°ø°£ 367 14.4 cargo install ¸í·ÉÀ» ÀÌ¿ëÇØ crates.io¿¡¼ ¹ÙÀ̳ʸ® ¼³Ä¡Çϱâ 374 14.5 »ç¿ëÀÚ Á¤ÀÇ ¸í·ÉÀ» ÀÌ¿ëÇØ Ä«°í È®ÀåÇϱâ 375CHAPTER 15 ½º¸¶Æ®ÇÑ Æ÷ÀÎÅÍ 377 15.1 Box¡´T¡µ¸¦ ÀÌ¿ëÇØ Èü ¸Þ¸ð¸®ÀÇ µ¥ÀÌÅÍ ÂüÁ¶Çϱâ 379 15.2 Deref Æ®·¹ÀÌÆ®¸¦ ÀÌ¿ëÇØ ½º¸¶Æ® Æ÷ÀÎÅ͸¦ ÂüÁ¶Ã³·³ Ãë±ÞÇϱâ 384 15.3 Drop Æ®·¹ÀÌÆ®¸¦ ±¸ÇöÇؼ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÒ ¶§ ÄÚµå ½ÇÇàÇϱâ 391 15.4 Rc¡´T¡µ, ÂüÁ¶ Ä«¿îÅÍ ½º¸¶Æ® Æ÷ÀÎÅÍ 395 15.5 RefCell¡´T¡µ ŸÀÔ°ú ³»ºÎ °¡º¯¼º ÆÐÅÏ 400 15.6 ¸Þ¸ð¸® ´©¼öÀÇ ¿øÀÎÀÌ µÇ´Â ¼øȯ ÂüÁ¶ 410CHAPTER 16 ÀڽŠÀÖ´Â µ¿½Ã¼º 421 16.1 Äڵ带 µ¿½Ã¿¡ ½ÇÇàÇϱâ À§ÇÑ ½º·¹µå 422 16.2 °øÀ¯ »óÅ µ¿½Ã¼º 438 16.3 Sync¿Í Send Æ®·¹ÀÌÆ®·Î µ¿½Ã¼º È®ÀåÇϱâ 446CHAPTER 17 ·¯½ºÆ®ÀÇ °´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö ±â´É 449 17.1 °´Ã¼ÁöÇâ ¾ð¾îÀÇ Æ¯Â¡ 450 17.2 ´Ù¸¥ ŸÀÔÀÇ °ªÀ» Çã¿ëÇÏ´Â Æ®·¹ÀÌÆ® °´Ã¼ 454 17.3 °´Ã¼ÁöÇâ µðÀÚÀÎ ÆÐÅÏ ±¸Çö 462CHAPTER 18 ÆÐÅÏ°ú ¸ÅĪ 477 18.1 ÆÐÅÏÀ» È°¿ëÇÒ ¼ö ÀÖ´Â À§Ä¡ 478 18.2 ºÎÀÎ °¡´É¼º: ÆÐÅÏÀÌ ÀÏÄ¡ÇÒ ¼öµµ ÀÖ°í ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖ´Â °æ¿ì 484 18.3 ÆÐÅÏ ¹®¹ý 486CHAPTER 19 ·¯½ºÆ®ÀÇ °í±Þ ±â´É 505 19.1 ¾ÈÀüÇÏÁö ¾ÊÀº ·¯½ºÆ® 506 19.2 °í±Þ Æ®·¹ÀÌÆ® 517 19.3 °í±Þ ŸÀÔ ½Ã½ºÅÛ 529 19.4 °í±Þ ÇÔ¼ö¿Í Ŭ·ÎÀú 537 19.5 ¸ÅÅ©·Î 541CHAPTER 20 ÃÖÁ¾ ÇÁ·ÎÁ§Æ®: ´ÙÁß ½º·¹µå À¥¼¹ö ±¸Ãà 555 20.1 ´ÜÀÏ ½º·¹µå À¥¼¹ö ±¸ÇöÇϱâ 556 20.2 ´ÙÁß ½º·¹µå ¼¹ö·Î ÀüȯÇϱâ 568 20.3 ¿ì¾ÆÇÑ Á¾·á¿Í ÇØÁ¦ 591APPENDIX A Å°¿öµå 601 ÇöÀç »ç¿ë ÁßÀÎ Å°¿öµå 601 ÇâÈÄ¿¡ »ç¿ëÇϱâ À§ÇØ ¿¹¾àÇÑ Å°¿öµå 603 ¿ø½Ã ½Äº°ÀÚ 603APPENDIX B ¿¬»êÀÚ¿Í ½Éº¼ 605 ¿¬»êÀÚ 605 ºñ¿¬»êÀÚ ½Éº¼ 607APPENDIX C »ó¼Ó °¡´ÉÇÑ Æ®·¹ÀÌÆ® 613 ÇÁ·Î±×·¡¸Ó¿ë Ãâ·ÂÀ» À§ÇÑ Debug 614 ÀÏÄ¡ ºñ±³¸¦ À§ÇÑ PartialEq¿Í Eq 614 ¼ø¼¸¦ ºñ±³ÇÏ´Â PartialOrd¿Í Ord 615 °ªÀ» º¹Á¦Çϱâ À§ÇÑ Clone°ú Copy 616 ¾î¶² °ªÀ» °íÁ¤µÈ Å©±âÀÇ °ª¿¡ ¸ÅÇÎÇÏ´Â Hash 617 ±âº»°ªÀ» Á¦°øÇÏ´Â Default 617APPENDIX D À¯¿ëÇÑ °³¹ß µµ±¸ 619 rustfmt¸¦ ÀÌ¿ëÇÑ ÀÚµ¿ Æ÷¸ÅÆà 619 rustfix µµ±¸·Î ÄÚµå ¼öÁ¤Çϱâ 620 Clippy ¸°Æ® 621 ·¯½ºÆ® ¾ð¾î ¼¹ö¸¦ ÀÌ¿ëÇÑ IDE ÅëÇÕ 623APPENDIX E ¿¡µð¼Ç 625ã¾Æº¸±â 627