ÄÜÅÙÃ÷ »ó¼¼º¸±â
·¯½ºÆ® ÇÁ·ÎÆä¼Å³Î ÄÚµå


·¯½ºÆ® ÇÁ·ÎÆä¼Å³Î ÄÚµå

<ºê·»µç ¸Å½´½º> Àú/<À忬ȣ> ¿ª | Á¦ÀÌÆà

Ãâ°£ÀÏ
2024-09-11
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
11 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

Àü¹®°¡·Î ¼ºÀåÇϱâ À§ÇÑ ½ÇÀü ·¯½ºÆ® °¡À̵å

¾ÈÁ¤¼º, ¼º´É, º¸¾È¼ºÀ̶ó´Â »ï¹ÚÀÚ¸¦ °®Ãá ·¯½ºÆ®. ÀÌ °­·ÂÇÑ ¾ð¾îÀÇ ÀáÀç·ÂÀ» ²ø¾î³»´Â °ÍÀº ½±Áö ¾ÊÁö¸¸, ÀÌ Ã¥°ú ÇÔ²²¶ó¸é °¡´ÉÇÏ´Ù. dzºÎÇÑ ¿¹Á¦¸¦ ÅëÇØ ½Ã½ºÅÛ ÇÁ·Î±×·¡¹ÖºÎÅÍ À¥ °³¹ß, ºñµ¿±â¿Í µ¿½Ã¼º ÇÁ·Î±×·¡¹Ö, ¼º´É ÃÖÀûÈ­±îÁö ºü¸£°Ô ÇнÀÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ, È¿°úÀûÀÎ µðÀÚÀÎ ÆÐÅÏ°ú ÄÚµù ÆÁ, ´Ù¸¥ ¾ð¾î¿ÍÀÇ ¿øÈ°ÇÑ ÅëÇÕ ¹æ¹ý, Å×½ºÆÃ, ÄÚµå ºÐ¼®, ÇÁ·ÎÁ§Æ® °ü¸®¸¦ À§ÇÑ °­·ÂÇÑ µµ±¸ µî ½ÇÀü¿¡¼­ ¹Ù·Î È°¿ë °¡´ÉÇÑ ÇÁ·ÎÀÇ ³ëÇϿ츦 ¼Ò°³ÇÑ´Ù. ·¯½ºÆ® Àü¹®°¡°¡ µÇ±â À§ÇÑ ¸ðµç °ÍÀ» ÀÌ ÇÑ ±Ç¿¡ ´ã¾ÒÀ¸´Ï, Áö±Ý ¹Ù·Î ÀÌ Ã¥À» ÀÐ°í ·¯½ºÆ® ¸¶½ºÅÍÀÇ ±æ·Î ³ª¾Æ°¡ÀÚ.

ÀúÀÚ¼Ò°³

¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾îÀÌÀÚ ±â¾÷°¡À̸ç, ÃÊâ±âºÎÅÍ ·¯½ºÆ®¸¦ »ç¿ëÇØ¿Â ¿ÀÇ ¼Ò½º Âü¿©ÀÚ´Ù. 13³â ÀÌ»ó ±êÇãºê ±â¿©ÀÚ·Î È°µ¿Çϸç, ¿©·¯ ·¯½ºÆ® Å©·¹ÀÌÆ® ¹× ¿ÀÇ ¼Ò½º ·¯½ºÆ® ÇÁ·ÎÁ§Æ®¿¡ Âü¿©Çß°í, Á¦Ç° ¼öÁØÀÇ ·¯½ºÆ® ¾ÖÇø®ÄÉÀ̼ÇÀ» Àü¹®ÀûÀ¸·Î ±¸ÃàÇß´Ù.

¸ñÂ÷

¿Å±äÀÌ ¸Ó¸®¸» xii
º£Å¸¸®´õ Èıâ xiv
½ÃÀÛÇϸç xvi
ÀÌ Ã¥¿¡ ´ëÇÏ¿© xvii
°¨»çÀÇ ±Û xxi
Ç¥Áö¿¡ ´ëÇÏ¿© xxii

CHAPTER 1 ·¯½ºÆ®½º·¯¿î ´À³¦ 1

1.1 ·¯½ºÆ®´Â ¹«¾ùÀΰ¡? 2
1.2 ·¯½ºÆ®´Â ¹«¾ùÀÌ µ¶Æ¯ÇÑ°¡? 4
__1.2.1 ·¯½ºÆ®´Â ¾ÈÀüÇÏ´Ù 5 / 1.2.2 ·¯½ºÆ®´Â Çö´ëÀûÀÌ´Ù 6 / 1.2.3 ¼ø¼ö ¿ÀÇ ¼Ò½º·Î¼­ÀÇ ·¯½ºÆ® 7 / 1.2.4 ·¯½ºÆ®¿Í ´Ù¸¥ ¾ð¾î ºñ±³ 7
1.3 ¾ðÁ¦ ·¯½ºÆ®¸¦ ½á¾ß Çϴ°¡? 8
__1.3.1 ·¯½ºÆ® »ç¿ë »ç·Ê 9
1.4 ÇÊ¿äÇÑ µµ±¸µé 10
1.5 ¿ä¾à 10

PART I ÇÁ·Î ·¯½ºÆ®

CHAPTER 2 Ä«°í·Î ÇÁ·ÎÁ§Æ® °ü¸®Çϱâ 13

2.1 Ä«°í µÑ·¯º¸±â 14
__2.1.1 ±âº» »ç¿ë¹ý 14 / 2.1.2 »õ ¾ÖÇø®ÄÉÀ̼ÇÀ̳ª ¶óÀ̺귯¸® ¸¸µé±â 15 / 2.1.3 ºôµå, ½ÇÇà, Å×½ºÆ® 17 / 2.1.4 ÅøüÀÎ °£ º¯°æ 18
2.2 ÀÇÁ¸¼º °ü¸® 19
__2.2.1 Cargo.lock ÆÄÀÏ ´Ù·ç±â 22
2.3 ±â´É Ç÷¡±× 22
2.4 Á¾¼Ó¼º ÆÐÄ¡Çϱâ 25
__2.4.1 °£Á¢ Á¾¼Ó¼º 28 / 2.4.2 Á¾¼Ó¼º ÆÐÄ¡ÀÇ ¸ð¹ü »ç·Ê 28
2.5 Å©·¹ÀÌÆ® °Ô½Ã 29
__2.5.1 CI/CD ÅëÇÕ 29
2.6 C ¶óÀ̺귯¸®¿¡ ¿¬°áÇϱâ 32
2.7 ¹ÙÀ̳ʸ® ¹èÆ÷ 35
__2.7.1 ±³Â÷ ÄÄÆÄÀÏ 36 / 2.7.2 Á¤Àû ¿¬°á ¹ÙÀ̳ʸ® ¸¸µé±â 37
2.8 ·¯½ºÆ® ÇÁ·ÎÁ§Æ® ¹®¼­È­Çϱâ 38
__2.8.1 ¹®¼­È­ ¿¹Á¦ 41
2.9 ¸ðµâ 42
2.10 ÀÛ¾÷ °ø°£ 46
2.11 Àü¿ë ºôµå ½ºÅ©¸³Æ® 48
2.12 ÀÓº£µðµå ȯ°æ¿ë ·¯½ºÆ® ÇÁ·ÎÁ§Æ® 51
__2.12.1 ¸Þ¸ð¸® ÇÒ´ç 52
2.13 ¿ä¾à 52

CHAPTER 3 ·¯½ºÆ® µµ±¸ ÀÌ¿ëÇϱâ 53

3.1 ·¯½ºÆ® µµ±¸ °³¿ä 54
3.2 rust-analyzer¸¦ ÀÌ¿ëÇÏ¿© ·¯½ºÆ® ÅëÇÕ °³¹ß ȯ°æ¿¡ ÅëÇÕ 55
__3.2.1 ¸¶¹ý ¿Ï¼º 56
3.3 rustfmt·Î ÄÚµå Á¤¸®Çϱâ 59
__3.3.1 rustfmt ¼³Ä¡Çϱâ 61 / 3.3.2 rustfmt ¼³Á¤Çϱâ 61
3.4 ÄÚµå Ç°ÁúÀ» Çâ»óÇϱâ À§ÇÑ ClippyÀÇ »ç¿ë 62
__3.4.1 Clippy ¼³Ä¡Çϱâ 62 / 3.4.2 ClippyÀÇ ¸°Æ® 63 / 3.4.3 Clippy ¼³Á¤Çϱâ 65 / 3.4.4 Clippy Á¦¾ÈÀ» ÀÚµ¿À¸·Î Àû¿ëÇϱâ 65 / 3.4.5 Clippy¸¦ CI/CD¿¡¼­ »ç¿ëÇϱâ 66
3.5 sccache·Î ÄÄÆÄÀÏ ½Ã°£ ´ÜÃàÇϱâ 67
__3.5.1 sccache ¼³Ä¡Çϱâ 67 / 3.5.2 sccache ¼³Á¤Çϱâ 68
3.6 VS Code µîÀÇ ÅëÇÕ °³¹ß ȯ°æ°ú ÅëÇÕÇϱâ 68
3.7 ÅøüÀÎ »ç¿ëÇϱâ: ¾ÈÁ¤ÀÌ³Ä nightly³Ä 69
__3.7.1 nightly Àü¿ë ±â´É 70 / 3.7.2 °ø°³µÈ Å©·¹ÀÌÆ®¿¡ nightly ä³Î »ç¿ëÇϱâ 70
3.8 Ãß°¡ÀûÀÎ µµ±¸µé: cargo-update, cargo-expand, cargo-fuzz, cargo-watch, cargo-tree 71
__3.8.1 ÆÐÅ°Áö¸¦ ÃÖ½ÅÀ¸·Î ¾÷µ¥ÀÌÆ®Çϱâ: cargo-update 72 / 3.8.2 ¸ÅÅ©·Î µð¹ö±ëÇϱâ: cargo-expand 72 / 3.8.3 cargo-fuzz·Î Å×½ºÆ®Çϱâ 73 / 3.8.4 cargo-watch·Î ¹Ýº¹Àû °³¹ß 74 / 3.8.5 Á¾¼Ó¼º °Ë»ç: cargo-tree 75
3.9 ¿ä¾à 76

PART II ÄÚ¾î µ¥ÀÌÅÍ

CHAPTER 4 µ¥ÀÌÅÍ ±¸Á¶ 79

4.1 String, str, &str, &'static str¿¡ ´ëÇÑ ¼³¸í 80
__4.1.1 String°ú str 80 / 4.1.2 È¿À²ÀûÀ¸·Î ¹®ÀÚ¿­ »ç¿ëÇϱâ 81
4.2 ½½¶óÀ̽º¿Í ¹è¿­ ÀÌÇØÇϱâ 84
4.3 º¤ÅÍ 87
__4.3.1 VecÀ¸·Î ´õ ±íÀÌ ¶Ù¾îµé±â 87 / 4.3.2 º¤ÅÍ ·¡ÇÎÇϱâ 89 / 4.3.3 º¤ÅÍ °ü·Ã ŸÀÔ 89
4.4 ¸Ê 90
__4.4.1 »ç¿ëÀÚ ÁöÁ¤ Çؽà ÇÔ¼ö 91 / 4.4.2 Çؽà °¡´ÉÇÑ Å¸ÀÔ ¸¸µé±â 92
4.5 ·¯½ºÆ® ŸÀÔ: ±âº»Çü, ±¸Á¶Ã¼, ¿­°ÅÇü, º°Äª 93
__4.5.1 ±âº» ŸÀÔ »ç¿ëÇϱâ 93 / 4.5.2 Æ©Çà »ç¿ëÇϱâ 97 / 4.5.3 ±¸Á¶Ã¼ »ç¿ëÇϱâ 98 / 4.5.4 ¿­°ÅÇü »ç¿ëÇϱâ 101 / 4.5.5 º°Äª »ç¿ëÇϱâ 104
4.6 Result·Î ¿À·ù ó¸®Çϱâ 105
4.7 From/Into·Î ŸÀÔ º¯È¯Çϱâ 107
__4.7.1 TryFrom°ú TryInto 109 / 4.7.2 From°ú Into¸¦ »ç¿ëÇϴ ŸÀÔ º¯È¯ÀÇ ¸ð¹ü »ç·Ê 110
4.8 ·¯½ºÆ® ŸÀÔÀ¸·Î FFI ȣȯ¼º ó¸®Çϱâ 110
4.9 ¿ä¾à 112

CHAPTER 5 ¸Þ¸ð¸® ÀÛ¾÷ 113

5.1 ¸Þ¸ð¸® °ü¸®: Èü°ú ½ºÅà 114
5.2 ¼ÒÀ¯±Ç ÀÌÇØÇϱâ: º¹»ç, ´ë¿©, ÂüÁ¶, À̵¿ 116
5.3 ±íÀº º¹»ç 118
5.4 º¹»ç ÇÇÇϱâ 119
5.5 ¹Ú½ºÇÒ °ÍÀΰ¡ ¸» °ÍÀΰ¡: ½º¸¶Æ® Æ÷ÀÎÅÍ 121
5.6 ÂüÁ¶ Ä«¿îÆ® 125
5.7 ¾²±â ½Ã º¹Á¦ 128
5.8 ¸ÂÃã ÇÒ´çÀÚ 132
__5.8.1 ¸ÂÃã ÇÒ´çÀÚ ÀÛ¼ºÇϱâ 133 / 5.8.2 º¸È£ ¸Þ¸ð¸®¸¦ À§ÇÑ ¸ÂÃã ÇÒ´çÀÚ ¸¸µé±â 136
5.9 ½º¸¶Æ® Æ÷ÀÎÅÍ ¿ä¾à 141
5.10 ¿ä¾à 142

PART III Á¤È®¼º

CHAPTER 6 ´ÜÀ§ Å×½ºÆ® 145

6.1 ·¯½ºÆ®¿¡¼­ÀÇ Å×½ºÆ®´Â ¾î¶² Â÷ÀÌ°¡ Àִ°¡? 146
6.2 ³»Àå Å×½ºÆ® ±â´É »ìÆ캸±â 148
6.3 Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ© 149
6.4 Å×½ºÆ®ÇÏÁö ¸»¾Æ¾ß ÇÒ °Í: ÄÄÆÄÀÏ·¯°¡ ´ç½Åº¸´Ù ´õ Àß ¾Æ´Â ÀÌÀ¯ 153
6.5 º´·Ä Å×½ºÆ® Ư¼ö »ç·Ê¿Í Àü¿ª »óÅ ó¸® 154
6.6 ¸®ÆÑÅ͸µ¿¡ ´ëÇÑ °í·Á 160
6.7 ¸®ÆÑÅ͸µ µµ±¸ 161
__6.7.1 ÀçÇü½ÄÈ­ 161 / 6.7.2 À̸§ ¹Ù²Ù±â 161 / 6.7.3 Àç¹èÄ¡ 163 / 6.7.4 ´Ù½Ã ¾²±â 163
6.8 ÄÚµå Ä¿¹ö¸®Áö 165
6.9 º¯È­ÇÏ´Â »ýÅ°迡 ´ëóÇϱâ 167
6.10 ¿ä¾à 168

CHAPTER 7 ÅëÇÕ Å×½ºÆ® 169

7.1 ÅëÇÕ Å×½ºÆ®¿Í ´ÜÀ§ Å×½ºÆ® ºñ±³ 170
7.2 ÅëÇÕ Å×½ºÆ® Àü·« 173
7.3 ³»Àå ÅëÇÕ Å×½ºÆ®¿Í ¿ÜºÎ ÅëÇÕ Å×½ºÆ® ºñ±³ 175
7.4 ÅëÇÕ Å×½ºÆ® ¶óÀ̺귯¸®¿Í µµ±¸ 176
__7.4.1 assert_cmd¸¦ »ç¿ëÇÏ¿© CLI ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®Çϱâ 176 / 7.4.2 ÅëÇÕ Å×½ºÆ®¿¡ proptest »ç¿ëÇϱâ 178 / 7.4.3 ´Ù¸¥ ÅëÇÕ Å×½ºÆ® µµ±¸ 179
7.5 ÆÛÁî Å×½ºÆ® 180
7.6 ¿ä¾à 184

PART IV ºñµ¿±â ·¯½ºÆ®

CHAPTER 8 ºñµ¿±â ·¯½ºÆ® 187

8.1 ·±Å¸ÀÓ 189
8.2 ºñµ¿±â½ÄÀ¸·Î »ç°íÇϱâ 190
8.3 Futures: ºñµ¿±â ÀÛ¾÷ °á°ú ó¸®Çϱâ 192
__8.3.1 #[tokio::main]À¸·Î ·±Å¸ÀÓ Á¤ÀÇÇϱâ 194
8.4 async¿Í .await: ¾ðÁ¦ ±×¸®°í ¾îµð¼­ »ç¿ëÇϴ°¡ 195
8.5 asyncÀ¸·Î ÇÏ´Â µ¿½Ã¼º°ú º´·Ä¼º 197
8.6 async °üÂûÀÚ ±¸ÇöÇϱâ 202
8.7 µ¿±â½Ä°ú ºñµ¿±â½ÄÀ» È¥ÇÕÇϱâ 208
8.8 async¸¦ »ç¿ëÇÏ¸é ¾È µÉ ¶§ 210
8.9 ºñµ¿±â ÄÚµåÀÇ ÃßÀû°ú µð¹ö±ë 211
8.10 Å×½ºÆ® ½Ã ºñµ¿±â ´Ù·ç±â 214
8.11 ¿ä¾à 216

CHAPTER 9 HTTP REST API ¼­ºñ½º ¸¸µé±â 217

9.1 À¥ ÇÁ·¹ÀÓ¿öÅ© °í¸£±â 218
9.2 ¾ÆÅ°ÅØó ¸¸µé±â 219
9.3 API ¼³°è 220
9.4 ¶óÀ̺귯¸®¿Í µµ±¸ 221
9.5 ¾ÖÇø®ÄÉÀÌ¼Ç ±âº» Ʋ ÀÛ¼º 223
__9.5.1 main() 223 / 9.5.2 init_tracing() 224 / 9.5.3 init_dbpool() 225
9.6 µ¥ÀÌÅÍ ¸ðµ¨¸µ 227
__9.6.1 SQL ½ºÅ°¸¶ 227 / 9.6.2 µ¥ÀÌÅÍ¿Í ÀÎÅÍÆäÀ̽ÌÇϱâ 228
9.7 API °æ·Î ¼±¾ðÇϱâ 232
9.8 API °æ·Î ±¸Çö 233
9.9 ¿À·ù ó¸® 235
9.10 ¼­ºñ½º ½ÇÇà 237
9.11 ¿ä¾à 241

CHAPTER 10 HTTP REST API ¸í·ÉÇà µµ±¸ ¸¸µé±â 243

10.1 »ç¿ëÇÒ µµ±¸¿Í ¶óÀ̺귯¸® °áÁ¤ 244
10.2 CLI ¼³°èÇϱâ 245
10.3 ¸í·É ¼±¾ðÇϱâ 246
10.4 ¸í·É ±¸ÇöÇϱâ 248
10.5 ¿äûÀÇ ±¸Çö 250
10.6 ¿À·ù¸¦ ÀûÀýÈ÷ ó¸®Çϱâ 251
10.7 CLI °Ë»çÇϱâ 252
10.8 ¿ä¾à 255

PART V ÃÖÀûÈ­

CHAPTER 11 ÃÖÀûÈ­ 259

11.1 ¹«ºñ¿ë Ãß»óÈ­ 260
11.2 º¤ÅÍ 261
__11.2.1 º¤ÅÍ ¸Þ¸ð¸® ÇÒ´ç 261 / 11.2.2 º¤ÅÍ ¹Ýº¹ÀÚ 264 / 11.2.3 Vec°ú ½½¶óÀ̽º¸¦ ÀÌ¿ëÇÑ ºü¸¥ º¹»ç 266
11.3 SIMD 267
11.4 RayonÀ» ÅëÇÑ º´·ÄÈ­ 269
11.5 ·¯½ºÆ®¸¦ »ç¿ëÇÏ¿© ´Ù¸¥ ¾ð¾î °¡¼ÓÈ­Çϱâ 272
11.6 ÀÌÁ¦ºÎÅÍ ³ª¾Æ°¡¾ß ÇÒ ±æ 273
11.7 ¿ä¾à 274

APPENDIX A ¼³Ä¡ Áöħ 275
ã¾Æº¸±â 279