|
|
|
|
|
|
|
Ã¥³»¿ë |
|
¹é¿£µåºÎÅÍ ÇÁ·±Æ®¿£µå±îÁö Á÷Á¢ ±¸ÃàÇÏ¸ç ·¯½ºÆ® ½ºÅ³¾÷
·¯½ºÆ®´Â °íµµÀÇ µ¿½Ã¼ºÀ» ¾ÈÀüÇÏ°Ô Á¦°øÇÏ´Â ¾ð¾î·Î ¼³°èµÇ¾ú°í, À̸¦ È°¿ëÇÏ¸é ¡®¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ µµÀü¡¯ÀÎ °í¼º´É ³×Æ®¿öÅ© ¼ºñ½º¸¦ ¸¸µå´Â °Íµµ °¡´ÉÇÏ´Ù. ÀÌ Ã¥Àº ´Ù¾çÇÑ µµ±¸, ±â¹ý, ±â¼úÀ» ½ÊºÐ È°¿ëÇØ ¿ÀÁ÷ ·¯½ºÆ®¸¸À¸·Î ¹é¿£µåºÎÅÍ ÇÁ·±Æ®¿£µå±îÁö Çö´ëÀûÀÎ À¥ ¼ºñ½º ¹× ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¡ÁøÀûÀ¸·Î ±¸ÃàÇسª°£´Ù.
1ºÎ¿¡¼´Â À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±âÃʸ¦ ´ÙÁö°í ¹é¿£µå¸¦ ±¸ÃàÇÑ´Ù. ¸ÕÀú 1ÀåÀº ºÐ»ê ¾ÆÅ°ÅØó µî ÇÙ½É °³³ä ¹× Ã¥¿¡¼ ±¸ÃàÇسª°¥ ¿Â¶óÀÎ ±³À° Ç÷§Æû ¾ÖÇø®ÄÉÀ̼ǿ¡ ´ëÇØ ¼Ò°³ÇÑ´Ù. 2Àå¿¡¼´Â TCP ±â¹Ý ÄÄÆ÷³ÍÆ®¸¦ °³¹ßÇÏ°í, 3ÀåÀº ¼µåÆÄƼ Å©·¹ÀÌÆ®¸¦ È°¿ëÇØ RESTful À¥ ¼ºñ½º¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù. 4ÀåÀº SQL µ¥ÀÌÅͺ£À̽º(PostgreSQL), 5ÀåÀº ¿¹¿Ü ó¸®, 6ÀåÀº ¸®ÆÑÅ͸µÀ» ´Ù·é´Ù.
2ºÎ¿¡¼´Â Actix ÇÁ·¹ÀÓ¿öÅ©¸¦ ÀÌ¿ëÇÑ ¼¹ö »çÀÌµå ·»´õ¸µ ÇÁ·±Æ®¿£µå ¹× GUI¸¦ °³¹ßÇÑ´Ù. 7ÀåÀº ÇÁ·¹ÀÓ¿öÅ© ¹× Æû¿¡ ´ëÇØ ¼³¸íÇÏ°í, 1ºÎ¿¡¼ °³¹ßÇÑ ¹é¿£µå À¥ ¼ºñ½º¿Í »óÈ£ÀÛ¿ëÇÏ´Â ¹æ¹ýµµ »ìÆ캻´Ù. 8ÀåÀº ¼¹ö »çÀ̵å Tera ÅÛÇø´ ¿£ÁøÀ» »ìÆ캸°í ÆûÀ» ÀÌ¿ëÇÑ »ç¿ëÀÚ µî·Ï ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. 9ÀåÀº »ç¿ëÀÚ ÀÎÁõ, ¶ó¿ìÆÃ, HTTP ¸Þ¼µå¸¦ »ç¿ëÇÑ CRUD ¹æ½ÄÀÇ À¯Áöº¸¼ö¸¦ ´Ù·é´Ù.
³¡À¸·Î 3ºÎ´Â ÇÁ·Î´ö¼Ç ¹èÆ÷¸¦ À§ÇÑ °í±Þ ÁÖÁ¦¸¦ ´Ù·é´Ù. 10ÀåÀº Tokio¿Í ǻó¸¦ È°¿ëÇÑ ºñµ¿±â ÇÁ·Î±×·¡¹Ö, 11ÀåÀº libp2p¸¦ »ç¿ëÇÑ P2P ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß, 12ÀåÀº À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» µµÄ¿ À̹ÌÁö·Î ÁغñÇÏ°í ÆÐŰ¡ÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù.
éÅͺ°·Î ½ÇÁ¦ ÀÛµ¿ÇÏ´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ ÀÌÅÍ·¹À̼ÇÀ» °ÉÃÄ Á¡ÁøÀûÀ¸·Î ±â´ÉÀ» Ãß°¡Çسª°¡¸ç, °ü·Ã ÀÌ·ÐÀº ÇÁ·ÎÁ§Æ®ÀÇ ¹®¸Æ ¾È¿¡¼ ¼³¸íÇÏ´Â ½Ç¹« Ä£ÈÀûÀÎ ¹æ½ÄÀ¸·Î ¾²ÀΠåÀÌ´Ù. À¥¿¡¼ µ¹¾Æ°¡´Â ¼¹ö/¼ºñ½º/¾ÛÀ» Á÷Á¢ ¸¸µå´Â °úÁ¤À» ÅëÇØ, °³¹ßÀÚµéÀÇ »ç¶ûÀ» ¹ÞÀ¸¸ç ¼ºÀå ÁßÀÎ ·¯½ºÆ® »ýÅ°èÀÇ Áø°¡¸¦ ¸Àº¸°í °³¹ß ½ºÅ³µµ Å©°Ô Çâ»óÇÒ ¼ö ÀÖ´Ù.
ÁÖ¿ä ³»¿ë
¡Ü ·¯½ºÆ®·Î µ¥ÀÌÅͺ£À̽º ±â¹Ý À¥ ¼ºñ½º °³¹ß
¡Ü RESTful API ºôµå ¹× º¸¾È È®º¸
¡Ü ·¯½ºÆ®·Î ¼¹ö Ãø À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÀÛ¼º
¡Ü À¥ ¼ºñ½º ¼º´É ÃøÁ¤ ¹× º¥Ä¡¸¶Å·
¡Ü À¥ ¼ºñ½º ÆÐŰ¡ ¹× ¹èÆ÷
¡Ü Ç®½ºÅà ·¯½ºÆ® ¾ÖÇø®ÄÉÀÌ¼Ç |
|
¸ñÂ÷ |
|
¿Å±äÀÌ ¸Ó¸®¸» ix
º£Å¸¸®´õ Èıâ x
½ÃÀÛÇϸç xii
°¨»çÀÇ ±Û xiv
ÀÌ Ã¥¿¡ ´ëÇÏ¿© xv
Ç¥Áö¿¡ ´ëÇÏ¿© xix
PART I À¥¼¹ö¿Í À¥ ¼ºñ½º
CHAPTER 1 ¿Ö ·¯½ºÆ®°¡ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀûÇÕÇÑ°¡? 3
1.1 ¸ð´ø À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¿ä 4
1.2 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇØ ·¯½ºÆ®¸¦ ¼±ÅÃÇϱâ 7
__1.2.1 À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Æ¯¼º 8
__1.2.2 ·¯½ºÆ®¸¦ »ç¿ëÇÑ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ±¸ÇöÀÇ ÀÌÁ¡ 9
__1.2.3 ·¯½ºÆ®¿¡ ¾ø´Â °ÍÀº? 15
1.3 ¿¹Á¦ ¾ÖÇø®ÄÉÀÌ¼Ç ¼Ò°³ 15
__1.3.1 ¹«¾ùÀ» ¸¸µé °ÍÀΰ¡? 16 / 1.3.2 ¿¹Á¦ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±â¼úÀû °¡À̵å¶óÀÎ 19
¿ä¾à 20
CHAPTER 2 ±âº» À¥¼¹ö ÀÛ¼ºÇϱâ 21
2.1 ³×Æ®¿öÅ· ¸ðµ¨ 22
2.2 ·¯½ºÆ®¸¦ »ç¿ëÇØ TCP ¼¹ö ÀÛ¼ºÇϱâ 24
__2.2.1 TCP/IP Åë½Å È帧 ¼³°èÇϱâ 24 / 2.2.2 TCP ¼¹ö¿Í Ŭ¶óÀ̾ðÆ® ÀÛ¼ºÇϱâ 26
2.3 ·¯½ºÆ®¸¦ »ç¿ëÇØ HTTP ¼¹ö ÀÛ¼ºÇϱâ 31
__2.3.1 HTTP ¿äû ¸Þ½ÃÁö ÆĽÌÇϱâ 33 / 2.3.2 HTTP ÀÀ´ä ¸Þ½ÃÁö ±¸¼ºÇϱâ 42
__2.3.3 main() ÇÔ¼ö¿Í server ¸ðµâ ÀÛ¼ºÇϱâ 51
__2.3.4 router ¹× handler ¸ðµâ ÀÛ¼ºÇϱâ 52 / 2.3.5 À¥¼¹ö Å×½ºÆÃÇϱâ 57
¿ä¾à 60
CHAPTER 3 RESTful À¥ ¼ºñ½º ±¸ÃàÇϱâ 62
3.1 Actix ½ÃÀÛÇϱâ 62
__3.1.1 ù ¹ø° REST API ÀÛ¼ºÇϱâ 63 / 3.1.2 Actix °³³ä ÀÌÇØÇϱâ 66
3.2 REST¸¦ »ç¿ëÇØ À¥ API ¸¸µé±â 70
__3.2.1 ÇÁ·ÎÁ§Æ® ¹üÀ§¿Í ±¸Á¶ Á¤ÀÇÇϱâ 71 / 3.2.2 ¾ÖÇø®ÄÉÀÌ¼Ç »óÅ Á¤ÀÇ ¹× °ü¸®Çϱâ 74
__3.2.3 µ¥ÀÌÅÍ ¸ðµ¨ Á¤ÀÇÇϱâ 78 / 3.2.4 °ÀÇ °Ô½ÃÇϱâ 83
__3.2.5 ÇÑ °»çÀÇ ¸ðµç °ÀÇ Á¤º¸ ¾ò±â 87 / 3.2.6 ÇÑ °ÀÇ¿¡ °üÇÑ ¼¼ºÎ Á¤º¸ ¾ò±â 90
¿ä¾à 93
CHAPTER 4 µ¥ÀÌÅͺ£À̽º Á¶ÀÛÇϱâ 95
4.1 ÇÁ·ÎÁ§Æ® ±¸Á¶ ¼³Á¤Çϱâ 96
4.2 ù ¹ø° µ¥ÀÌÅͺ£À̽º¿ÍÀÇ ºñµ¿±â Ä¿³Ø¼Ç ÀÛ¼ºÇϱâ(ÀÌÅÍ·¹ÀÌ¼Ç 1) 98
__4.2.1 µ¥ÀÌÅͺ£À̽º ¹× Ä¿³Ø¼Ç ¶óÀ̺귯¸® ¼±ÅÃÇϱâ 98
__4.2.2 µ¥ÀÌÅͺ£À̽º¸¦ ¼³Á¤ÇÏ°í ºñµ¿±â Ç®°ú ¿¬°áÇϱâ 99
4.3 À¥ ¼ºñ½º ¼³Á¤Çϱâ¿Í ´ÜÀ§ Å×½ºÆ® ÀÛ¼ºÇϱâ(ÀÌÅÍ·¹ÀÌ¼Ç 2) 105
__4.3.1 µðÆæ´ø½Ã¿Í ¶ó¿ìÆ® ¼³Á¤Çϱâ 106
__4.3.2 ¾ÖÇø®ÄÉÀÌ¼Ç »óÅÂ¿Í µ¥ÀÌÅÍ ¸ðµ¨ ¼³Á¤Çϱâ 107
__4.3.3 µðÆæ´ø½Ã ÁÖÀÔÀ» »ç¿ëÇØ Ä¿³Ø¼Ç Ç® ¼³Á¤Çϱâ 108
__4.3.4 ´ÜÀ§ Å×½ºÆ® ÀÛ¼ºÇϱâ 111
4.4 µ¥ÀÌÅͺ£À̽º¿¡¼ ·¹Äڵ带 »ý¼ºÇÏ°í ÁúÀÇÇϱâ(ÀÌÅÍ·¹ÀÌ¼Ç 3) 113
__4.4.1 µ¥ÀÌÅͺ£À̽º Á¢±Ù ÇÔ¼ö ÀÛ¼ºÇϱâ 114 / 4.4.2 Çڵ鷯 ÇÔ¼ö ÀÛ¼ºÇϱâ 117
__4.4.3 µ¥ÀÌÅͺ£À̽º ±â¹Ý À¥ ¼ºñ½º¸¦ À§ÇÑ main() ÇÔ¼ö ÀÛ¼ºÇϱâ 120
¿ä¾à 124
CHAPTER 5 ¿¡·¯ Çڵ鸵Çϱâ 125
5.1 ÇÁ·ÎÁ§Æ® ±¸Á¶ ¼³Á¤Çϱâ 126
5.2 ·¯½ºÆ®¿Í Actix Web¿¡¼ÀÇ ¿¡·¯ Çڵ鸵 ±âº» 130
5.3 Ä¿½ºÅÒ ¿¡·¯ Çڵ鷯 Á¤ÀÇÇϱâ 137
5.4 ¸ðµç °ÀÇ Á¤º¸ ¾ò±â¿¡ ´ëÇÑ ¿¡·¯ Çڵ鸵Çϱâ 141
5.5 °ÀÇ »ó¼¼ Á¤º¸ ¾ò±â¿¡ ´ëÇÑ ¿¡·¯ Çڵ鸵Çϱâ 148
5.6 »õ·Î¿î °ÀÇ °Ô½Ã¿¡ ´ëÇÑ ¿¡·¯ Çڵ鸵Çϱâ 150
¿ä¾à 153
CHAPTER 6 APIÀÇ ÁøÈ¿Í µÎ·Á¿ò ¾ø´Â ¸®ÆÑÅ͸µ 154
6.1 ÇÁ·ÎÁ§Æ® ±¸Á¶ °³ÆíÇϱâ 155
6.2 °ÀÇ »ý¼º ¹× °ü¸®¿Í °ü·ÃµÈ µ¥ÀÌÅÍ ¸ðµ¨ °³¼±Çϱâ 160
__6.2.1 µ¥ÀÌÅÍ ¸ðµ¨ º¯°æÇϱâ 162 / 6.2.2 °ÀÇ API º¯°æÇϱâ 168
6.3 °»ç µî·Ï ¹× À¯Áö °ü¸®¸¦ °¡´ÉÇÏ°Ô Çϱâ 183
__6.3.1 °»ç¸¦ À§ÇÑ µ¥ÀÌÅÍ ¸ðµ¨°ú ¶ó¿ìÆ® 184
__6.3.2 °»ç °ü·Ã ¶ó¿ìÆ®¿¡ ´ëÇÑ Çڵ鷯 ÇÔ¼ö 187
__6.3.3 °»ç °ü·Ã ¶ó¿ìÆ®¿¡ ´ëÇÑ µ¥ÀÌÅͺ£À̽º Á¢±Ù ÇÔ¼ö 189
__6.3.4 °»ç¿¡ ´ëÇÑ µ¥ÀÌÅͺ£À̽º ½ºÅ©¸³Æ® 191
__6.3.5 °»ç °ü·Ã API ½ÇÇà ¹× Å×½ºÆ®Çϱâ 193
¿ä¾à 197
PART II ¼¹ö »çÀ̵å À¥ ¾ÖÇø®ÄÉÀ̼Ç
CHAPTER 7 ·¯½ºÆ®¸¦ »ç¿ëÇÑ
¼¹ö »çÀ̵å À¥ ¾ÖÇø®ÄÉÀÌ¼Ç °³¿ä 201
7.1 ¼¹ö »çÀÌµå ·»´õ¸µ °³¿ä 202
7.2 Actix¸¦ »ç¿ëÇØ Á¤Àû À¥ÆäÀÌÁö Á¦°øÇϱâ 204
7.3 Actix¿Í Tera¸¦ »ç¿ëÇØ µ¿Àû À¥ÆäÀÌÁö ·»´õ¸µÇϱâ 207
7.4 ÆûÀ» »ç¿ëÇØ »ç¿ëÀÚ ÀÔ·Â Ãß°¡Çϱâ 210
7.5 ÅÛÇø´À» »ç¿ëÇØ ¸®½ºÆ® Ç¥½ÃÇϱâ 213
7.6 Ŭ¶óÀ̾ðÆ® »çÀ̵å Å×½ºÆ® ÀÛ¼º ¹× ½ÇÇàÇϱâ 217
7.7 ¹é¿£µå À¥ ¼ºñ½º¿¡ ¿¬°áÇϱâ 220
¿ä¾à 224
CHAPTER 8 ÅÛÇø´À» »ç¿ëÇØ °»ç µî·ÏÇϱâ 226
8.1 Ãʱâ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÀÛ¼ºÇϱâ 227
8.2 µî·Ï Æû Ç¥½ÃÇϱâ 234
8.3 µî·Ï Á¦Ãâ ó¸®Çϱâ 240
¿ä¾à 247
CHAPTER 9 °ÀÇ À¯Áöº¸¼ö¸¦ À§ÇÑ Æû ´Ù·ç±â 249
9.1 »ç¿ëÀÚ ÀÎÁõ ¼³°èÇϱâ 250
9.2 ÇÁ·ÎÁ§Æ® ±¸Á¶ ¼³Á¤Çϱâ 251
9.3 »ç¿ëÀÚ ÀÎÁõ ±¸ÇöÇϱâ 252
9.4 HTTP ¿äû ¶ó¿ìÆÃÇϱâ 258
9.5 HTTP POST ¸Þ¼µå¸¦ »ç¿ëÇØ ¸®¼Ò½º »ý¼ºÇϱâ 262
9.6 HTTP PUT ¸Þ¼µå¸¦ »ç¿ëÇØ ¸®¼Ò½º ¾÷µ¥ÀÌÆ®Çϱâ 265
9.7 HTTP DELETE ¸Þ¼µå¸¦ »ç¿ëÇØ ¸®¼Ò½º »èÁ¦Çϱâ 268
¿ä¾à 269
PART III °í±Þ ÁÖÁ¦: ºñµ¿±â ·¯½ºÆ®
CHAPTER 10 ºñµ¿±â ·¯½ºÆ® ÀÌÇØÇϱâ 273
10.1 ºñµ¿±â ÇÁ·Î±×·¡¹Ö °³³ä ¼Ò°³ 274
10.2 µ¿½Ã ÇÁ·Î±×·¥ ÀÛ¼ºÇϱâ 281
10.3 ºñµ¿±â ·¯½ºÆ® ÀÚ¼¼È÷ »ìÆ캸±â 287
10.4 ǻó ÀÌÇØÇϱâ 292
10.5 Ä¿½ºÅÒ Ç»Ã³ ±¸ÇöÇϱâ 300
¿ä¾à 304
CHAPTER 11 ºñµ¿±â ·¯½ºÆ®¸¦ »ç¿ëÇØ P2P ³ëµå ±¸ÇöÇϱâ 305
11.1 P2P ³×Æ®¿öÅ© ¼Ò°³ 306
__11.1.1 Àü¼Û 308 / 11.1.2 ÇÇ¾î ½Å¿ø 308 / 11.1.3 º¸¾È 308
__11.1.4 ÇÇ¾î ¶ó¿ìÆà 308 / 11.1.5 ¸Þ½Ã¡ 309 / 11.1.6 ½ºÆ®¸² ¸ÖƼÇ÷º½Ì 309
11.2 libp2p ³×Æ®¿öÅ·ÀÇ ÇÙ½É ¾ÆÅ°ÅØó ÀÌÇØÇϱâ 310
__11.2.1 ÇǾî ID ¹× Å° Æä¾î 311 / 11.2.2 ¸ÖƼ¾îµå·¹½º 312
__11.2.3 ½º¿ú°ú ³×Æ®¿öÅ© µ¿ÀÛ 314
11.3 ÇÇ¾î ³ëµå »çÀÌ¿¡¼ ping ¸í·É ±³È¯Çϱâ 316
11.4 ÇÇ¾î ¹ß°ßÇϱâ 318
¿ä¾à 321
CHAPTER 12 µµÄ¿¸¦ »ç¿ëÇØ À¥ ¼ºñ½º ¹èÆ÷Çϱâ 323
12.1 ¼¹ö¿Í ¾ÛÀÇ ÇÁ·Î´ö¼Ç ¹èÆ÷ °³¿ä 324
__12.1.1 ¼ÒÇÁÆ®¿þ¾î ¹èÆ÷ ¼ö¸í ÁÖ±â 325 / 12.1.2 µµÄ¿ ÄÁÅ×ÀÌ³Ê ±âº» 327
12.2 ù ¹ø° µµÄ¿ ÄÁÅ×ÀÌ³Ê ÀÛ¼ºÇϱâ 329
__12.2.1 µµÄ¿ ¼³Ä¡ È®ÀÎÇϱâ 329 / 12.2.2 °£´ÜÇÑ µµÄ¿ ÄÁÅ×ÀÌ³Ê ÀÛ¼ºÇϱâ 331
__12.2.3 ´Ù´Ü°è µµÄ¿ ºôµå 334
12.3 µ¥ÀÌÅͺ£À̽º ÄÁÅ×ÀÌ³Ê ºôµåÇϱâ 337
__12.3.1 Postgres µ¥ÀÌÅͺ£À̽º ÆÐŰ¡Çϱâ 338
__12.3.2 µ¥ÀÌÅͺ£À̽º Å×ÀÌºí »ý¼ºÇϱâ 344
12.4 µµÄ¿¸¦ »ç¿ëÇؼ À¥ ¼ºñ½º ÆÐŰ¡Çϱâ 347
12.5 µµÄ¿ ÄÄÆ÷Á »ç¿ëÇؼ µµÄ¿ ÄÁÅ×ÀÌ³Ê Á¶Á¤Çϱâ 348
¿ä¾à 355
APPENDIX A ºÎ·Ï 357
Postgres ¼³Ä¡ 357
ã¾Æº¸±â 360 |
|
º»¹®Áß¿¡¼ |
|
À¥ ¾ÖÇø®ÄÉÀ̼ÇÀº ¾ÖÇø®ÄÉÀÌ¼Ç °èÃþ ÇÁ·ÎÅäÄÝ·Î HTTP¸¦ »ç¿ëÇϸç, Ç¥ÁØ ÀÎÅÍ³Ý ºê¶ó¿ìÀú¸¦ ÅëÇØ Àΰ£ »ç¿ëÀÚ°¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ±â´ÉµéÀ» Á¦°øÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ÀÌ·¯ÇÑ À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Çϳª°¡ ¾Æ´Ï¶ó ¼ö½Ê ¶Ç´Â ¼ö¹é °³ÀÇ ºÐ»ê ¾ÖÇø®ÄÉÀÌ¼Ç ¿ä¼Ò·Î ±¸¼ºµÇ¾î ³×Æ®¿öÅ©»ó¿¡¼ Çù·ÂÇÏ°í Åë½ÅÇÒ ¶§, À̸¦ ºÐ»ê À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ̶ó ºÎ¸¥´Ù. (¡¦) ±×¸² 1.1Àº ¸ð´ø À¥ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ºÐ»ê ½Ã½ºÅÛ ½ºÅÃÀÇ ÀüÇüÀûÀÎ ³í¸®Àû ÇüŸ¦ ³ªÅ¸³½´Ù. ½ÇÁ¦ ¼¼°è¿¡¼¶ó¸é ÀÌ·¯ÇÑ ½Ã½ºÅÛÀº ¼öõ ´ëÀÇ ¼¹ö¿¡ ºÐ»êµÇ¾î ÀÖ°ÚÁö¸¸, ±×¸²¿¡¼´Â 3°³ÀÇ ¼¹ö¸¸ ³×Æ®¿öÅ· ½ºÅÃÀ» ÅëÇØ ¿¬°áµÈ °ÍÀ¸·Î ³ªÅ¸³Â´Ù. (5ÂÊ)
REST ¾ÆÅ°ÅØó ½ºÅ¸ÀÏÀ» »ç¿ëÇØ API¸¦ ³ëÃâÇÏ´Â À¥ ¼ºñ½º¸¦ RESTful À¥ ¼ºñ½º(RESTful web service)¶ó ºÎ¸¥´Ù. À̹ø Àý¿¡¼´Â EzyTutors µðÁöÅÐ ½ºÅä¾îÇÁ·±Æ®¸¦ À§ÇÑ RESTful À¥ ¼ºñ½º¸¦ ¸¸µç´Ù. (¡¦) À̹ø Àå¿¡¼ ±¸ÇöÇÒ À¥ ¼ºñ½ºÀÇ ÇÙ½É ±â´ÉÀº ½Å±Ô °ÀÇ µî·ÏÇϱâ, ƯÁ¤ °»çÀÇ °ÀÇ ¸ñ·Ï ¾ò±â, °³º° °ÀÇ¿¡ ´ëÇÑ ¼¼ºÎ Á¤º¸ ¾ò±â´Ù. Ãʱ⠵¥ÀÌÅÍ ¸ðµ¨Àº course¶ó´Â ÇϳªÀÇ ¸®¼Ò½º¸¸ °®´Â´Ù. / µ¥ÀÌÅÍ ¸ðµ¨À» ´Ù·ç±â Àü¿¡, ¸ÕÀú ÇÁ·ÎÁ§Æ® ±¸Á¶¿Í ÄÚµå ÇüŸ¦ ¸¶¹«¸®ÇÏÀÚ. ¶ÇÇÑ ¿©·¯ Actix ¿öÄ¿ ½º·¹µåµéÀÌ ¾ÈÀüÇÏ°Ô ¸Þ¸ð¸®ÀÇ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÀúÀåÇÏ´Â ¹æ¹ýµµ °áÁ¤ÇÑ´Ù. (70~71ÂÊ)
À̹ø Àå¿¡¼´Â °ü°èÇü µ¥ÀÌÅͺ£À̽º·Î PostgreSQLÀ» »ç¿ëÇÑ´Ù. Postgres´Â Àß ¾Ë·ÁÁø ¿ÀÇ ¼Ò½º °ü°èÇü µ¥ÀÌÅͺ£À̽º·Î È®À强, ¾ÈÀü¼º, ±â´É ¹× ´ë±Ô¸ðÀÇ º¹ÀâÇÑ µ¥ÀÌÅÍ ÀÛ¾÷À» ó¸®ÇÏ´Â µ¥ ¶Ù¾î³ª´Ù. / sqlx Å©·¹ÀÌÆ®¸¦ »ç¿ëÇØ Postgres¿¡ ¿¬°áÇÑ´Ù. ÀÌ Å©·¹ÀÌÆ®´Â °¡°øµÇÁö ¾Ê´Â SQL ±¸¹®À¸·Î Äõ¸®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. sqlx´Â ÄÄÆÄÀÏ ½Ã°£¿¡ Äõ¸®¸¦ È®ÀÎÇϸç, ³»Àå Ä¿³Ø¼Ç Ç®À» Á¦°øÇÏ°í, Postgres¿¡ ´ëÇÑ ºñµ¿±â Ä¿³Ø¼ÇÀ» ¹ÝȯÇÑ´Ù. ÄÄÆÄÀÏ ½Ã°£ È®ÀÎÀº ·±Å¸ÀÓ ¿¡·¯¸¦ ¹ß°ßÇÏ°í ¿¹¹æÇÏ´Â µ¥ ¸Å¿ì À¯¿ëÇÏ´Ù. / µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇØ ºñµ¿±â Ä¿³Ø¼ÇÀ» °®´Â´Ù´Â °ÍÀº Æ©ÅÍ À¥ ¼ºñ½º°¡ µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍÀÇ ÀÀ´äÀ» ±â´Ù¸®´Â µ¿¾È ´Ù¸¥ ŽºÅ©¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù´Â ÀǹÌÀÌ´Ù. (98ÂÊ)
UpdateCourse ±¸Á¶Ã¼´Â ¿É¼Å³Î ÇʵåµéÀ» Æ÷ÇÔÇÏ°í Àֱ⠶§¹®¿¡, ¸ÕÀú API Ŭ¶óÀ̾ðÆ®°¡ ¾î¶² ÇʵåµéÀ» º¸³Â´ÂÁö °ËÁõÇØ¾ß ÇÑ´Ù. Çʵ忡 ´ëÇÑ »õ·Î¿î °ªÀ» º¸³Â´Ù¸é, ÇØ´ç Çʵ带 ¾÷µ¥ÀÌÆ®ÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê´Ù¸é µ¥ÀÌÅͺ£À̽ºÀÇ ±âÁ¸°ªÀ» À¯ÁöÇØ¾ß ÇÑ´Ù. À̸¦ À§ÇØ ¸ÕÀú ¸ðµç Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ´Â ÇöÀç °ÀÇ ·¹Äڵ带 ÃßÃâÇÑ´Ù. ´ÙÀ½À¸·Î API°¡ ƯÁ¤ÇÑ Çʵ忡 ´ëÇÑ °ªÀ» º¸³Â´Ù¸é, ÇØ´ç °ªÀ» »ç¿ëÇØ µ¥ÀÌÅͺ£À̽º¸¦ ¾÷µ¥ÀÌÆ®ÇÏ°í, ±×·¸Áö ¾ÊÀ¸¸é ±âÁ¸ÀÇ °ªÀ» »ç¿ëÇØ ¾÷µ¥ÀÌÆ®ÇÑ´Ù. / ÀÌ°ÍÀ¸·Î °ÀÇ¿Í °ü·ÃµÈ µ¥ÀÌÅÍ ¸ðµ¨, ¶ó¿ìÆ®, Çڵ鷯, Å×½ºÆ® ÄÉÀ̽º, µ¥ÀÌÅͺ£À̽º Á¢±Ù ÇÔ¼ö¿¡ ´ëÇÑ ÄÚµå º¯°æÀ» ¿Ï·áÇß´Ù. $PROJECT_ROOT¿¡¼ ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇؼ ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÏ´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Ù. (181ÂÊ)
ÀÌÀü Àå¿¡¼ °»ç µî·ÏÇϱ⿡ °üÇØ »ìÆìºÃ´Ù. »ç¿ëÀÚ°¡ °»ç·Î¼ µî·ÏÇÒ ¶§, °»ç °ü·Ã Á¤º¸´Â 2°³ÀÇ µ¥ÀÌÅͺ£À̽º¿¡ °ÉÃļ ÀúÀåµÇ¾ú´Ù. °»çÀÇ À̸§, À̹ÌÁö, Àü¹® ¿µ¿ª°ú °°Àº ÇÁ·ÎÆÄÀÏ »ó¼¼ Á¤º¸´Â ¹é¿£µå Æ©ÅÍ À¥ ¼ºñ½º ¾ÈÀÇ µ¥ÀÌÅͺ£À̽º¿¡¼ À¯Áöº¸¼öµÈ´Ù. »ç¿ëÀÚ ID, ºñ¹Ð¹øÈ£ °°Àº µî·Ï »ó¼¼ Á¤º¸µéÀº À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¾ÈÀÇ ·ÎÄà µ¥ÀÌÅͺ£À̽º¿¡ ÀúÀåµÈ´Ù. / À̹ø Àå¿¡¼´Â ÀÌÀü Àå¿¡¼ ¸¸µç ÄÚµå À§¿¡¼ ±¸ÇöÇÑ´Ù. ·¯½ºÆ® ÇÁ·±Æ®¿£µå À¥ ¾ÛÀ» ÀÛ¼ºÇÒ °ÍÀÌ´Ù. ÀÌ À¥ ¾ÛÀ» ÅëÇØ »ç¿ëÀÚµéÀº ¾ÖÇø®ÄÉÀ̼ǿ¡ ·Î±×ÀÎÇÒ ¼ö ÀÖ°í, ·ÎÄà µ¥ÀÌÅͺ£À̽º¿Í »óÈ£ÀÛ¿ëÇÒ ¼ö ÀÖ°í, ¹é¿£µå À¥ ¼ºñ½º¿Í Åë½ÅÇÒ ¼ö ÀÖ´Ù. (249ÂÊ)
tutors ¸®½ºÆ®¿¡ ¿©·¯ºÐÀÌ Ãß°¡ÇÑ ¿£Æ®¸®°¡ Ç¥½ÃµÈ´Ù. À̸¦ ÅëÇØ ÄÁÅ×À̳ʰ¡ Àç½ÃÀ۵Ǿ µ¥ÀÌÅͺ£À̽º º¯°æÀº ·ÎÄà º¼·ý¿¡ Áö¼ÓµÈ´Ù´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¿¬½À »ï¾Æ ´Ù¸¥ ¿£µåÆ÷ÀÎÆ®¿¡ ´ëÇؼµµ Å×½ºÆ®¸¦ Çغ¸ÀÚ. / ¿©±â±îÁö ¿Â °ÍÀ» ÃàÇÏÇÑ´Ù. ¿©·¯ºÐÀº Æ©ÅÍ À¥ ¼ºñ½º¿Í Postgres µ¥ÀÌÅͺ£À̽º¸¦ ¼º°øÀûÀ¸·Î µµÄ¿ÈÇß´Ù. ¶ÇÇÑ µµÄ¿ ÄÄÆ÷Á »ç¿ëÇØ ¸ðµç ÄÁÅ×À̳ʵéÀ» ¸Å¿ì °£´ÜÇÑ ¸í·É¾î·Î ºôµå, ½ÃÀÛ, ÁßÁö½Ãų ¼ö ÀÖ°Ô µÇ¾ú´Ù. (355ÂÊ) |
|
|
|
|
|
|
|
Ãâ°í¾È³» |
|
|
Ãâ°í¶õ ÀÎÅÍÆÄÅ© ¹°·ùâ°í¿¡¼ µµ¼°¡ Æ÷ÀåµÇ¾î ³ª°¡´Â ½ÃÁ¡À» ¸»Çϸç, ½ÇÁ¦ °í°´´Ô²²¼ ¼ö·ÉÇϽô ½Ã°£Àº »óÇ°Áغñ¿Ï·áÇØ Ãâ°íÇÑ ³¯Â¥ + Åùè»ç ¹è¼ÛÀÏÀÔ´Ï´Ù. |
|
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°ÀÇ Àç°í°¡ ÃæÁ·ÇÒ ½Ã¿¡ ÀÏ°ý Ãâ°í¸¦ ÇÕ´Ï´Ù. |
|
ÀϺΠÀç°í¿¡ ´ëÇÑ Ãâ°í°¡ ÇÊ¿äÇÒ ½Ã¿¡´Â ´ã´çÀÚ¿¡°Ô Á÷Á¢ ¿¬¶ôÇϽðųª, °í°´¼¾ÅÍ(°í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ôÁֽñ⠹ٶø´Ï´Ù. |
|
¹è¼Ûºñ ¾È³» |
|
|
ÀÎÅÍÆÄÅ© µµ¼ ´ë·®±¸¸Å´Â ¹è¼Û·á°¡ ¹«·áÀÔ´Ï´Ù. |
|
´Ü, 1°³ÀÇ »óÇ°À» ´Ù¼öÀÇ ¹è¼ÛÁö·Î ÀÏ°ý ¹ß¼Û½Ã¿¡´Â 1°³ÀÇ ¹è¼ÛÁö´ç 2,000¿øÀÇ ¹è¼Ûºñ°¡ ºÎ°úµË´Ï´Ù. |
¾Ë¾ÆµÎ¼¼¿ä! |
|
|
°í°´´Ô²²¼ ÁÖ¹®ÇϽŠµµ¼¶óµµ µµ¸Å»ó ¹× ÃâÆÇ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù. |
|
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
(´Ü, Åä/ÀÏ¿äÀÏ Á¦¿Ü) |
|
|
|
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù.
±³È¯/¹ÝÇ°/º¸ÁõÁ¶°Ç ¹× Ç°Áúº¸Áõ ±âÁØÀº ¼ÒºñÀڱ⺻¹ý¿¡ µû¸¥ ¼ÒºñÀÚ ºÐÀï ÇØ°á ±âÁØ¿¡ µû¶ó ÇÇÇظ¦ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
Á¤È®ÇÑ È¯ºÒ ¹æ¹ý ¹× ȯºÒÀÌ Áö¿¬µÉ °æ¿ì 1:1¹®ÀÇ °Ô½ÃÆÇ ¶Ç´Â °í°´¼¾ÅÍ(1577-2555)·Î ¿¬¶ô Áֽñ⠹ٶø´Ï´Ù.
¼ÒºñÀÚ ÇÇÇغ¸»óÀÇ ºÐÀïó¸® µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á±âÁØ(°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ µû¶ó ºñÇØ º¸»ó ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
|
|
»óÇ°À» °ø±Þ ¹ÞÀ¸½Å ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
|
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ùÀ̳», ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏÀ̳» °¡´ÉÇÕ´Ï´Ù. |
|
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´ÉÇÕ´Ï´Ù.
|
|
|
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
|
|
|
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. (´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü) |
|
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì´Â ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
|
|
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù. |
|
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
|
|
|
|
|