|
|
|
NestJS·Î ¹è¿ì´Â ¹é¿£µå ÇÁ·Î±×·¡¹Ö : ŸÀÔ½ºÅ©¸³Æ® ȯ°æÀÇ Â÷¼¼´ë ¼¹ö ÇÁ·¹ÀÓ¿öÅ©¸¦ ¸¸³ª´Ù
|
|
|
ÇÑ¿ëÀç
¤Ó
Á¦ÀÌÆà
|
|
|
|
- Á¦ÈÞ¸ô ÁÖ¹® ½Ã °í°´º¸»ó, ÀϺΠÀ̺¥Æ® Âü¿© ¹× ÁõÁ¤Ç° ÁõÁ¤, ÇÏ·ç/´çÀÏ ¹è¼Û¿¡¼ Á¦¿ÜµÇ¹Ç·Î Âü°í ¹Ù¶ø´Ï´Ù.
-
-
-
°¡Àå Áøº¸ÇÑ ÇÁ·¹ÀÓ¿öÅ©·Î ¿ì¾ÆÇÏ°Ô ¹é¿£µå ÀÔ¹®Çϱâ
NestJS´Â Express¸¦ ±â¹ÝÀ¸·Î DB, ORM, À¯È¿¼º °Ë»ç µîÀÇ ¶óÀ̺귯¸®¸¦ ³»ÀåÇÑ Â÷¼¼´ë ¹é¿£µå ÇÁ·¹ÀÓ¿öÅ©´Ù. Á¦¾î ¹ÝÀü, ÀÇÁ¸¼º ÁÖÀÔ, AOP µî °´Ã¼ ÁöÇâ °³³äÀ» µµÀÔÇß°í ŸÀÔ½ºÅ©¸³Æ®·Î ¸ðµâ/ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖ´Ù. ÀÌ Ã¥Àº ÀúÀÚ°¡ ¸ðµÎ½ÎÀο¡ ¸ö´ãÀ¸¸ç ÀÍÈù ³ëÇÏ¿ì¿Í ÀλçÀÌÆ®¸¦ ¹ÙÅÁÀ¸·Î NestJS¸¦ È°¿ëÇØ È¸¿ø °¡ÀÔ, À̸ÞÀÏ ÀÎÁõ, ·Î±×ÀÎ, ȸ¿ø Á¤º¸ Á¶È¸ ±â´ÉÀ» °®Ãá REST API À¯Àú ¼ºñ½º¸¦ ¸¸µé¾îº»´Ù. ÇÁ·ÎÁ§Æ®¿¡ Á¡Â÷ »ìÀ» ºÙ¿©³ª°¡¸ç ¹é¿£µå °³¹ß¿¡ ÇÊ¿äÇÑ È¯°æ º¯¼ö ¼³Á¤, ¿äû À¯È¿¼º °Ë»ç, ÀÎÁõ(JWT), ·Î±ë, Çコ üũ, CQRS, Ŭ¸° ¾ÆÅ°ÅØó, ´ÜÀ§ Å×½ºÆ® µî Áö½Ä°ú ±â¼úÀ» Á¦´ë·Î ÀÍÈú ¼ö ÀÖ°Ô ÁýÇÊÇß´Ù.
-
-
Â÷¼¼´ë ÇÁ·¹ÀÓ¿öÅ©¿Í ÇÔ²² ´õ °·ÂÇÑ Node.js ¼¹ö »çÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ±¸ÃàÇϱâ
Express.js°¡ ÀüºÎ´Â ¾Æ´Ï´Ù. ¹é¿£µå ÇÁ·¹ÀÓ¿öÅ©µµ ÁøÈÇÏ°í ÀÖ´Ù. ±¹³»¿¡¼µµ ¸ðµÎ½ÎÀΰú ´ç±Ù¸¶ÄÏ µî¿¡¼ »ç¿ëÇÏ´Â NestJS´Â ¡®È¿À²ÀûÀÌ°í ½Å·ÚÇÒ ¼ö ÀÖÀ¸¸ç È®Àå °¡´ÉÇÑ ¼¹ö »çÀÌµå ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Ã࡯À» ³»¼¼¿î Â÷¼¼´ë ÇÁ·¹ÀÓ¿öÅ©´Ù. Fastify ¶Ç´Â Express À§¿¡ DB, ORM, À¯È¿¼º °Ë»ç µîÀ» ³»ÀåÇß°í, Á¦¾î ¹ÝÀü, ÀÇÁ¸¼º ÁÖÀÔ, AOP °°Àº °´Ã¼ ÁöÇâ °³³äÀ» µµÀÔÇßÀ¸¸ç, ¹«¾ùº¸´Ù ŸÀÔ½ºÅ©¸³Æ®¸¦ »ç¿ëÇØ ¿ì¾ÆÇÏ°Ô ¸ðµâ/ÄÄÆ÷³ÍÆ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖ´Ù.
ÀÌ Ã¥Àº NestJS ¿¹Á¦ ÇÁ·ÎÁ§Æ®·Î ȸ¿ø °¡ÀÔ, À̸ÞÀÏ ÀÎÁõ, ·Î±×ÀÎ, ȸ¿ø Á¤º¸ Á¶È¸ ±â´ÉÀ» °®Ãá REST API À¯Àú ¼ºñ½º¸¦ óÀ½ºÎÅÍ ³¡±îÁö ¸¸µé¾îº»´Ù. ÀÌ·± ´Ü¼øÇÑ ÇÁ·ÎÁ§Æ®¶óµµ Á¦´ë·Î ¸¸µé·Á¸é ȯ°æ º¯¼ö ¼³Á¤, ¿äû À¯È¿¼º °Ë»ç, ÀÎÁõ/Àΰ¡, ·Î±ë, Çコ üũ, CQRS, Ŭ¸° ¾ÆÅ°ÅØó, ´ÜÀ§ Å×½ºÆ® µî ¾Ë¾Æ¾ß ÇÒ Áö½Ä°ú ±â¼úÀÌ ¸¹´Ù. ÀÌ¿¡ ÇÁ·ÎÁ§Æ®¿¡ Â÷±ÙÂ÷±Ù »ìÀ» ºÙ¿©³ª°¡¸ç, ÀÌ·¯ÇÑ ¹é¿£µå °³¹ß¿¡ ÇÊ¿äÇÑ Áö½Ä°ú ±â¼úÀ» ÄÚµå·Î ÀÍÈú ¼ö ÀÖ°Ô ÁýÇÊÇß´Ù.
ÀúÀÚ°¡ ¸ðµÎ½ÎÀο¡ ¸ö´ãÀ¸¸ç ÀÍÈù ³ëÇÏ¿ì¿Í ÀλçÀÌÆ®¸¦ ¹ÙÅÁÀ¸·Î, NestJSÀÇ ÇÙ½É ±â´É°ú ¿ø¸®¸¦ Ãæ½ÇÈ÷ ¼³¸íÇÏ´Â µ¿½Ã¿¡ °¡¿ë¼º, º¹¿ø¼º, È®À强À» °®Ãá ½Ã½ºÅÛÀ» ±¸ÃàÇϱâ À§ÇÑ ´Ü´ÜÇÑ Ãʼ®À» Á¦°øÇÑ´Ù.
ÁÖ¿ä ³»¿ë
¡Ü Node.js, À̺¥Æ® ·çÇÁ, ŸÀÔ½ºÅ©¸³Æ® µ¥Ä¿·¹ÀÌÅÍ µî À¥ °³¹ß ±âÃÊ Áö½Ä
¡Ü ÇÁ·ÎÁ§Æ®¿¡ Àû¿ëÇÏ¸ç ¹è¿ì´Â ÀÎÅÍÆäÀ̽º, ÇÁ·Î¹ÙÀÌ´õ, ÆÄÀÌÇÁ, ¹Ìµé¿þ¾î/ÀÎÅͼÁÅÍ, ¸ðµâ
¡Ü ȯ°æ º¯¼ö ±¸¼º, ÆÄÀÌÇÁ¿Í À¯È¿¼º °Ë»ç, JWT ÀÎÁõ/Àΰ¡, ¿µ¼ÓÈ µî ¹é¿£µå Çʼö ±â¼ú
¡Ü ¾ÈÁ¤ÀûÀÎ ¼ºñ½º Á¦°øÀ» À§ÇÑ ·Î±ë, ¿¹¿Ü ÇÊÅÍ, ŽºÅ© ½ºÄÉÁÙ¸µ, Çコ üũ
¡Ü CQRS, Ŭ¸° ¾ÆÅ°ÅØó, Å×½ºÆ® ÀÚµ¿È·Î È®Àå °¡´ÉÇÑ ¸ðµ¨ ±¸Ãà
-
-
º£Å¸¸®´õ Èıâ x ¸Ó¸®¸» xii ÀÌ Ã¥¿¡ ´ëÇÏ¿© xiii
CHAPTER 1 Hello NestJS 1
1.1 NestJSÀÇ ÀåÁ¡ 1
1.2 Express°¡ ÁÁÀ»±î, NestJS°¡ ÁÁÀ»±î 2
1.3 NestJS ¼³Ä¡ 6
__1.3.1 Node.js ¼³Ä¡ 6 / 1.3.2 NestJS ÇÁ·ÎÁ§Æ® »ý¼º 7
1.4 Ã¥¿¡¼ ¸¸µé ¾ÖÇø®ÄÉÀ̼Ç: À¯Àú ¼ºñ½º 9
CHAPTER 2 À¥ °³¹ß ±âÃÊ Áö½Ä 13
2.1 À¥ ÇÁ·¹ÀÓ¿öÅ© 13
2.2 Node.js 16
2.3 À̺¥Æ® ·çÇÁ 18
2.4 ÆÐÅ°Áö ÀÇÁ¸¼º °ü¸® 21
__2.4.1 package.json 21 / 2.4.2 package-lock.json 23 / 2.4.3 package.json ÆÄÀÏ ºÐ¼® 23
2.5 ŸÀÔ½ºÅ©¸³Æ® 25
__2.5.1 º¯¼ö ¼±¾ð 26 / 2.5.2 ŸÀÔ½ºÅ©¸³Æ®¿¡¼ Áö¿øÇϴ ŸÀÔ 27
__2.5.3 ŸÀÔ Á¤ÀÇÇϱâ 29 / 2.5.4 ŸÀÔ ±¸¼ºÇϱâ 30
2.6 µ¥Ä¿·¹ÀÌÅÍ 32
__2.6.1 µ¥Ä¿·¹ÀÌÅÍ ÇÕ¼º 34 / 2.6.2 Ŭ·¡½º µ¥Ä¿·¹ÀÌÅÍ 35 / 2.6.3 ¸Þ¼µå µ¥Ä¿·¹ÀÌÅÍ 36
__2.6.4 Á¢±ÙÀÚ µ¥Ä¿·¹ÀÌÅÍ 38 / 2.6.5 ¼Ó¼º µ¥Ä¿·¹ÀÌÅÍ 39 / 2.6.6 ¸Å°³º¯¼ö µ¥Ä¿·¹ÀÌÅÍ 40
__2.6.7 µ¥Ä¿·¹ÀÌÅÍ ¿ä¾à 42
½¬¾î °¡´Â ÆäÀÌÁö ¹é¿£µå ·Îµå¸Ê 43
CHAPTER 3 ¾ÖÇø®ÄÉÀ̼ÇÀÇ °ü¹®: ÀÎÅÍÆäÀ̽º 45
3.1 ÄÁÆ®·Ñ·¯ 45
__3.1.1 ¶ó¿ìÆà 47 / 3.1.2 ¿ÍÀϵå Ä«µå »ç¿ë 48 / 3.1.3 ¿äû °´Ã¼ 48 / 3.1.4 ÀÀ´ä 49
__3.1.5 Çì´õ 52 / 3.1....6 ¸®µð·º¼Ç 54 / 3.1.7 ¶ó¿ìÆ® ¸Å°³º¯¼ö 55
__3.1.8 ÇÏÀ§ µµ¸ÞÀÎ ¶ó¿ìÆà 56 / 3.1.9 ÆäÀÌ·Îµå ´Ù·ç±â 58
3.2 À¯Àú ¼ºñ½ºÀÇ ÀÎÅÍÆäÀ̽º 59
½¬¾î °¡´Â ÆäÀÌÁö °üÁ¡ ÁöÇâ ÇÁ·Î±×·¡¹Ö 64
CHAPTER 4 ÇÙ½É µµ¸ÞÀÎ ·ÎÁ÷À» Æ÷ÇÔÇÏ´Â ÇÁ·Î¹ÙÀÌ´õ 65
4.1 ÇÁ·Î¹ÙÀÌ´õ 65
4.2 ÇÁ·Î¹ÙÀÌ´õ µî·Ï°ú »ç¿ë 67
__4.2.1 ÇÁ·Î¹ÙÀÌ´õ µî·Ï 67 / 4.2.2 ¼Ó¼º ±â¹Ý ÁÖÀÔ 67
4.3 À¯Àú ¼ºñ½º¿¡ ȸ¿ø °¡ÀÔ ·ÎÁ÷ ±¸ÇöÇϱâ 70
__4.3.1 UsersService ÇÁ·Î¹ÙÀÌ´õ »ý¼º 70 / 4.3.2 ȸ¿ø °¡ÀÔ 71
__4.3.3 ȸ¿ø °¡ÀÔ À̸ÞÀÏ ¹ß¼Û 73 / 4.3.4 À̸ÞÀÏ ÀÎÁõ 77
__4.3.5 ·Î±×ÀÎ 77 / 4.3.6 À¯Àú Á¤º¸ Á¶È¸ 78
½¬¾î °¡´Â ÆäÀÌÁö ½ºÄÚÇÁ 79
½ÉÈ ÇнÀ 1 Ä¿½ºÅÒ ÇÁ·Î¹ÙÀÌ´õ 82
CHAPTER 5 SW º¹Àâµµ¸¦ ³·Ãß±â À§ÇÑ ¸ðµâ ¼³°è 91
5.1 ¸ðµâ: ÀÀÁý¼º ÀÖ´Â ¼³°è 91
__5.1.1 ¸ðµâ ´Ù½Ã ³»º¸³»±â 92 / 5.1.2 Àü¿ª ¸ðµâ 94
5.2 À¯Àú ¼ºñ½ºÀÇ ¸ðµâ ºÐ¸® 95
__5.2.1 UsersModule ºÐ¸® 95 / 5.2.2 EmailModule ºÐ¸® 96
CHAPTER 6 µ¿Àû ¸ðµâÀ» È°¿ëÇÑ È¯°æ º¯¼ö ±¸¼º 99
6.1 µ¿Àû ¸ðµâ 99
6.2 dotenv¸¦ ÀÌ¿ëÇÑ Config ¼³Á¤ 99
6.3 Nest¿¡¼ Á¦°øÇÏ´Â Config ÆÐÅ°Áö 102
6.4 À¯Àú ¼ºñ½º¿¡ ȯ°æ º¯¼ö ±¸¼ºÇϱâ 105
__6.4.1 Ä¿½ºÅÒ Config ÆÄÀÏ ÀÛ¼º 105 / 6.4.2 µ¿Àû ConfigModule µî·Ï 106
½¬¾î °¡´Â ÆäÀÌÁö ÀÇÁ¸¼º ÁÖÀÔ°ú Á¦¾î ¹ÝÀü 110
CHAPTER 7 ÆÄÀÌÇÁ¿Í À¯È¿¼º °Ë»ç: ¿äûÀÌ Á¦´ë·Î Àü´ÞµÇ¾ú´Â°¡ 113
7.1 ÆÄÀÌÇÁ 113
7.2 ÆÄÀÌÇÁÀÇ ³»ºÎ ±¸Çö ÀÌÇØÇϱâ 116
7.3 À¯È¿¼º °Ë»ç ÆÄÀÌÇÁ ¸¸µé±â 117
7.4 À¯Àú ¼ºñ½º¿¡ À¯È¿¼º °Ë»ç Àû¿ëÇϱâ 120
__7.4.1 À¯Àú »ý¼º º»¹®ÀÇ À¯È¿¼º °Ë»ç 120 / 7.4.2 class-transformer È°¿ë 121
__7.4.3 Ä¿½ºÅÒ À¯È¿¼º °Ë»ç±â ÀÛ¼º 124
½¬¾î °¡´Â ÆäÀÌÁö ÀÎÁõ vs Àΰ¡ 127
CHAPTER 8 ¿µ¼ÓÈ: µ¥ÀÌÅ͸¦ ±â·ÏÇÏ°í ´Ù·ç±â 131
8.1 MySQL µ¥ÀÌÅͺ£À̽º ¼³Á¤ 131
8.2 TypeORMÀ¸·Î µ¥ÀÌÅͺ£À̽º ¿¬°á 134
8.3 ȸ¿ø °¡ÀÔÀ» ¿äûÇÑ À¯ÀúÀÇ Á¤º¸ ÀúÀåÇϱâ 138
8.4 Æ®·£Àè¼Ç Àû¿ë 141
__8.4.1 QueryRunner¸¦ »ç¿ëÇÏ´Â ¹æ¹ý 142
__8.4.2 transaction ÇÔ¼ö¸¦ Á÷Á¢ ÀÌ¿ëÇÏ´Â ¹æ¹ý 143
8.5 ¸¶À̱׷¹ÀÌ¼Ç 144
½¬¾î °¡´Â ÆäÀÌÁö ÀúÀå¼Ò ÆÐÅÏ 151
CHAPTER 9 ¿äû ó¸® Àü¿¡ ºÎ°¡ ±â´ÉÀ» ¼öÇàÇϱâ À§ÇÑ ¹Ìµé¿þ¾î 153
9.1 ¹Ìµé¿þ¾î 153
9.2 Logger ¹Ìµé¿þ¾î 154
9.3 MiddlewareConsumer 155
9.4 Àü¿ªÀ¸·Î Àû¿ëÇϱâ 157
CHAPTER 10 ±ÇÇÑ È®ÀÎÀ» À§ÇÑ °¡µå: JWT ÀÎÁõ/Àΰ¡ 159
10.1 °¡µå 159
10.2 °¡µå¸¦ ÀÌ¿ëÇÑ Àΰ¡ 160
__10.2.1 ½ÇÇà ÄÜÅؽºÆ® 160 / 10.2.2 °¡µå Àû¿ë 161
10.3 ÀÎÁõ 162
__10.3.1 ¼¼¼Ç ±â¹Ý ÀÎÁõ 163 / 10.3.2 ÅäÅ« ±â¹Ý ÀÎÁõ 164
10.4 JWT 165
__10.4.1 Çì´õ 166 / 10.4.2 ÆäÀ̷εå 166 / 10.4.3 ½Ã±×³Êó 167
10.5 À¯Àú ¼ºñ½ºÀÇ À̸ÞÀÏ ÀÎÁõ ó¸®¿Í JWT ¹ß±Þ 169
__10.5.1 ȸ¿ø °¡ÀÔ À̸ÞÀÏ ÀÎÁõ 169 / 10.5.2 ·Î±×ÀÎ 172
__10.5.3 JWT ÀÎÁõ: ȸ¿ø Á¤º¸ Á¶È¸ 173 / 10.5.4 °¡µå¸¦ ÀÌ¿ëÇÑ Àΰ¡ ó¸® 175
½¬¾î °¡´Â ÆäÀÌÁö ½½¶óÀ̵ù ¼¼¼Ç°ú ¸®ÇÁ·¹½Ã ÅäÅ« 178
½ÉÈ ÇнÀ 2 Ä¿½ºÅÒ ¸Å°³º¯¼ö µ¥Ä¿·¹ÀÌÅÍ 181
½ÉÈ ÇнÀ 3 ¸ÞŸµ¥ÀÌÅÍ(Reflection Ŭ·¡½º) 186
CHAPTER 11 ·Î±ë: ¾ÖÇø®ÄÉÀ̼ÇÀÇ µ¿ÀÛ ±â·Ï 193
11.1 ³»Àå ·Î°Å 194
__11.1.1 ·Î±ë ºñÈ°¼ºÈ 195 / 11.1.2 ·Î±× ·¹º§ ÁöÁ¤ 195
11.2 Ä¿½ºÅÒ ·Î°Å 196
__11.2.1 Ä¿½ºÅÒ ·Î°Å ÁÖÀÔÇؼ »ç¿ëÇϱâ 197 / 11.2.2 Ä¿½ºÅÒ ·Î°Å¸¦ Àü¿ªÀ¸·Î »ç¿ëÇϱâ 198
__11.2.3 ¿ÜºÎ ·Î°Å »ç¿ëÇϱâ 198
11.3 À¯Àú ¼ºñ½º¿¡ winston ·Î°Å Àû¿ëÇϱâ 199
__11.3.1 nest-winston Àû¿ë 199 / 11.3.2 ³»Àå ·Î°Å ´ëüÇϱâ 202
__11.3.3 ºÎÆ®½ºÆ®·¡ÇαîÁö Æ÷ÇÔÇÏ¿© ³»Àå ·Î°Å ´ëüÇϱâ 204
__11.3.4 ·Î±× Àü¼ÛÀ» ´Ù¾çÇÏ°Ô 206
CHAPTER 12 ¸ðµç °ÍÀº Ç×»ó ½ÇÆÐÇÑ´Ù: ¿¹¿Ü ÇÊÅÍ 209
12.1 ¿¹¿Ü ó¸® 209
12.2 ¿¹¿Ü ÇÊÅÍ 214
12.3 À¯Àú ¼ºñ½º¿¡ ¿¹¿Ü ÇÊÅÍ Àû¿ëÇϱâ 217
CHAPTER 13 ÀÎÅͼÁÅÍ·Î ¿äû°ú ÀÀ´äÀ» ÀÔ¸À¿¡ ¸Â°Ô ¹Ù²Ù±â 219
13.1 ÀÎÅͼÁÅÍ 219
13.2 ÀÀ´ä°ú ¿¹¿Ü ¸ÅÇÎ 222
13.3 À¯Àú ¼ºñ½º¿¡ ÀÎÅͼÁÅÍ Àû¿ëÇϱâ 224
½¬¾î °¡´Â ÆäÀÌÁö ¿äû »ý¸íÁÖ±â 226
CHAPTER 14 ŽºÅ© ½ºÄÉÁÙ¸µ 229
14.1 @nestjs/schedule ÆÐÅ°Áö 229
14.2 ŽºÅ© ½ºÄÉÁÙ¸µÀ» ¼±¾ðÇÏ´Â 3°¡Áö ¹æ½Ä 230
__14.2.1 Å©·Ð Àâ ¼±¾ð ¹æ½Ä 230 / 14.2.2 ÀÎÅ͹ú ¼±¾ð ¹æ½Ä 232 / 14.2.3 ŸÀӾƿô ¼±¾ð ¹æ½Ä 233
14.3 µ¿Àû ŽºÅ© ½ºÄÉÁÙ¸µ 233
CHAPTER 15 Çコ üũ: ´ìÀÇ ¼¹ö´Â °Ç°ÇϽŰ¡¿ä 237
15.1 Terminus Àû¿ë 238
15.2 Çコ üũ 238
15.3 TypeOrm Çコ üũ 240
15.4 Ä¿½ºÅÒ »óÅ ǥ½Ã±â 241
CHAPTER 16 CQRS¸¦ ÀÌ¿ëÇÑ °ü½É»ç ºÐ¸® 247
16.1 CQRS ÆÐÅÏ 247
16.2 À¯Àú ¼ºñ½º¿¡ CQRS Àû¿ëÇϱâ 249
__16.2.1 Ä¿¸Çµå 249 / 16.2.2 À̺¥Æ® 251 / 16.2.3 Äõ¸® 254
CHAPTER 17 Ŭ¸° ¾ÆÅ°ÅØó 257
17.1 Ŭ¸° ¾ÆÅ°ÅØó 259
17.2 SOLID °´Ã¼ ÁöÇâ ¼³°è ¿øÄ¢ 261
17.3 À¯Àú ¼ºñ½º¿¡ Ŭ¸° ¾ÆÅ°ÅØó Àû¿ëÇϱâ 262
CHAPTER 18 Å×½ºÆ® ÀÚµ¿È 273
18.1 ¼ÒÇÁÆ®¿þ¾î Å×½ºÆ® 273
18.2 NestÀÇ ±âº» Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©: Jest¿Í SuperTest 276
18.3 Jest¸¦ ÀÌ¿ëÇÑ ´ÜÀ§ Å×½ºÆ® ¿¹½Ã 276
18.4 À¯Àú ¼ºñ½º Å×½ºÆ® 279
18.5 Å×½ºÆ® Ä¿¹ö¸®Áö ÃøÁ¤ 287
APPENDIX ormconfig.json µ¿Àû »ý¼º 291
ã¾Æº¸±â 295
-
-
¼¹ö¿¡¼ Á¦°øÇÏ´Â ±â´ÉÀ» API·Î ¿ÜºÎ¿¡ °ø°³Çϱâ·Î Çß´Ù°í °¡Á¤ÇսôÙ. ÇöÀç ȸ»ç°¡ »ç¿ëÇÏ°í ÀÖ´Â µµ¸ÞÀÎÀº example.comÀÌ°í, API ¿äûÀº api.example.comÀ¸·Î ¹Þ±â·Î Çß½À´Ï´Ù. Áï, http://example.com, http://api.example.com·Î µé¾î¿Â ¿äûÀ» ¼·Î ´Ù¸£°Ô ó¸®ÇÏ°í ½Í´Ù°í ÇսôÙ. ¶ÇÇÑ ÇÏÀ§ µµ¸ÞÀο¡¼ ó¸®ÇÏÁö ¸øÇÏ´Â ¿äûÀº ¿ø·¡ÀÇ µµ¸ÞÀο¡¼ 󸮵ǵµ·Ï ÇÏ°í ½Í´Ù°í ÇսôÙ. ÀÌ·± °æ¿ì ÇÏÀ§ µµ¸ÞÀÎ ¶ó¿ìÆà ±â¹ýÀ» ¾µ ¼ö ÀÖ½À´Ï´Ù. (56ÂÊ)
¾Õ¼ ÀÎÁõauthenticationÀ» ¹Ìµé¿þ¾î·Î ±¸ÇöÇÏ´Â °ÍÀÌ ÁÁÀº »ç·Ê¶ó°í Çß½À´Ï´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº »ç¿ëÀÚÀÇ ±ÇÇÑÀ» È®ÀÎÇϱâ À§ÇØ ÀÎÁõ°ú Àΰ¡¸¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù. ÀÎÁõÀº ¿äûÀÚ°¡ ÀÚ½ÅÀÌ ´©±¸ÀÎÁö Áõ¸íÇÏ´Â °úÁ¤ÀÔ´Ï´Ù. ÃÖ±Ù¿¡´Â ¸Å ¿äû¸¶´Ù Çì´õ¿¡ JWT ÅäÅ«À» ½Ç¾î º¸³»°í ÀÌ ÅäÅ«À» ÅëÇØ ¿äûÀÚ°¡ ¶ó¿ìÅÍ¿¡ Á¢±Ù °¡´ÉÇÑÁö È®ÀÎÇÏ´Â ¹æ½ÄÀ» ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. ½±°Ô À̾߱âÇؼ ÇöÀç ¿äûÀÚ°¡ ÇØ´ç ¼ºñ½ºÀÇ ¿Ã¹Ù¸¥ À¯ÀúÀÎÁö °ËÁõÇÕ´Ï´Ù. (159ÂÊ)
¼ºñ½º¿¡ ±â´ÉÀÌ ´Ã¾î³ª°í »çÀÌÁî°¡ Ä¿Áö°Ô µÇ¸é µ¿ÀÛ °úÁ¤À» ³²±â°í ÃßÀûÇÏ´Â ÀÏÀÌ Áß¿äÇÏ°Ô µË´Ï´Ù. À̽´°¡ ¹ß»ýÇßÀ» °æ¿ì À̽´ Áõ»ó¸¸À¸·Î ¿øÀÎÀ» ÆľÇÇÏ´Â µ¥¿¡´Â ½Ã°£°ú ³ë·ÂÀÌ ¸¹ÀÌ µé°í Äڵ带 ´Ù½Ã ¿ªÃßÀûÇÏ¸é¼ ÀÌÇØÇÏ´Â µ¥¿¡ ¾î·Á¿òÀÌ µû¸¨´Ï´Ù. À̽´°¡ ¹ß»ýÇÑ ÁöÁ¡°ú ÄÝ ½ºÅÃÀÌ ÇÔ²² Á¦°øµÈ´Ù¸é »¡¸® ÇØ°áÀÌ °¡´ÉÇÒ °ÍÀÔ´Ï´Ù. ¶Ç ¾î¶² ±â´ÉÀÌ ¸¹ÀÌ »ç¿ëµÇ´ÂÁö¿Í °°ÀÌ À¯ÀúÀÇ »ç¿ëÆÐÅÏÀ» ºÐ¼®ÇÏ´Â µ¥¿¡µµ ·Î±×log¸¦ È°¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. (193ÂÊ)
ÀÌ·¸°Ô ÀÛÀº ¼ºñ½º¿¡´Â ·ÎÁ÷ÀÌ ´Ü¼øÇÏ°í º¯°æÀÌ »ý°Üµµ Å©°Ô ¿µÇâÀ» ³¢Ä¡Áö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸ ¼ºñ½º°¡ Ä¿Áú¼ö·Ï º¯°æ ¿µÇâµµ´Â Á¡Â÷ Ä¿Áö°Ô µÇ°í, ÄÁÆ®·Ñ·¯¿Í ¼ºñ½º, ¿µ¼ÓÈ ¹× µµ¸ÞÀÎ ·¹À̾¼ ÁÖ°í¹Þ´Â µ¥ÀÌÅÍ°¡ º¹ÀâÇØÁú »Ó ¾Æ´Ï¶ó, ÄÜÅؽºÆ®°¡ »óÀÌÇÑ °÷¿¡¼ ¸ðµ¨À» ±×´ë·Î Àü´ÞÇÏ°í »ç¿ëÇÏ´Â °æ¿ì°¡ ¹ß»ýÇÕ´Ï´Ù. ´çÀåÀº CQRS¸¦ Àû¿ëÇÏÁö ¾Ê¾Æµµ ÃæºÐÇÏÁö¸¸ Nest¿¡¼ Á¦°øÇÏ´Â °£´ÜÇÑ CQRS ¸ðµâÀ» Çѹø Àû¿ëÇغ¸°Ú½À´Ï´Ù. @netstjs/cqrs ÆÐÅ°ÁöºÎÅÍ ¼³Ä¡ÇÕ´Ï´Ù. (249ÂÊ)
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡´Â ¸¹Àº Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©°¡ Á¸ÀçÇÕ´Ï´Ù. Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©ÀÇ ±¸¼º ¿ä¼Ò·Î¼ Å×½ºÆ®°¡ ½ÇÇàµÇ´Â ȯ°æÀ» Á¦°øÇÏ´Â Å×½ºÆ® ·¯³Êtest runner, Å×½ºÆ®ÀÇ »óȲÀ» °¡Á¤ÇÏ´Â ¾î¼¼Çassertion, Å×½ºÆ®ÀÇ ±â´ë °á°ú¸¦ ºñ±³ÇÏ´Â ¸Åómatcher, ±×¸®°í Å×½ºÆ® °úÁ¤¿¡¼ ÇöÀç Å×½ºÆ® ´ë»ó ¸ðµâÀÌ ÀÇÁ¸ÇÏ´Â ´Ù¸¥ ¸ðµâÀ» ÀÓÀÇÀÇ °ÍÀ¸·Î ´ëüÇÏ´Â Å×½ºÆ® ´õºí µîÀÌ ÀÖ½À´Ï´Ù. Nest´Â ±âº» Å×½ºÆ® ÇÁ·¹ÀÓ¿öÅ©·Î Jest¿Í SuperTest¸¦ Á¦°øÇÕ´Ï´Ù. (276ÂÊ)
-
-
-
|
ÇÑ¿ëÀç [Àú]
|
|
-
¿À·£ ±â°£ ÈÞ´ëÆù¿¡ žÀçµÇ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ ¸¸µé´Ù ÇöÀç´Â ¸ðµÎ½ÎÀο¡¼ ¹é¿£µå ¿£Áö´Ï¾î·Î È°µ¿ ÁßÀÌ´Ù. ¸ðÅä´Â ÀϽſìÀϽÅ(ìíãæéÑìíãæ)ÀÌ°í ¿µÈ¿Í ±³¾ç °úÇÐ ¼ÀûÀ» ÁÁ¾ÆÇÑ´Ù.
-
-
Àüü 0°³ÀÇ ±¸¸ÅÈıⰡ ÀÖ½À´Ï´Ù.
|
ÀÎÅÍÆÄÅ©µµ¼´Â °í°´´ÔÀÇ ´Ü¼ø º¯½É¿¡ ÀÇÇÑ ±³È¯°ú ¹ÝÇ°¿¡ µå´Â ºñ¿ëÀº °í°´´ÔÀÌ ÁöºÒÄÉ µË´Ï´Ù.
´Ü, »óÇ°À̳ª ¼ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯ ¹× ¹ÝÇ°Àº ¹«·á·Î ¹ÝÇ° µË´Ï´Ù. |
|
±³È¯ ¹× ¹ÝÇ°ÀÌ °¡´ÉÇÑ °æ¿ì |
»óÇ°À» °ø±Þ ¹ÞÀº ³¯·ÎºÎÅÍ 7ÀÏÀ̳» °¡´É
°ø±Þ¹ÞÀ¸½Å »óÇ°ÀÇ ³»¿ëÀÌ Ç¥½Ã, ±¤°í ³»¿ë°ú ´Ù¸£°Å³ª ´Ù¸£°Ô ÀÌÇàµÈ °æ¿ì¿¡´Â °ø±Þ¹ÞÀº ³¯·ÎºÎÅÍ 3°³¿ù À̳», ȤÀº ±×»ç½ÇÀ» ¾Ë°Ô µÈ ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳»
»óÇ°¿¡ ¾Æ¹«·± ÇÏÀÚ°¡ ¾ø´Â °æ¿ì ¼ÒºñÀÚÀÇ °í°´º¯½É¿¡ ÀÇÇÑ ±³È¯Àº »óÇ°ÀÇ Æ÷Àå»óÅ µîÀÌ ÀüÇô ¼Õ»óµÇÁö ¾ÊÀº °æ¿ì¿¡ ÇÑÇÏ¿© °¡´É |
|
±³È¯ ¹× ¹ÝÇ°ÀÌ ºÒ°¡´ÉÇÑ °æ¿ì |
±¸¸ÅÈ®Á¤ ÀÌÈÄ(¿ÀǸ¶ÄÏ»óÇ°¿¡ ÇÑÇÔ)
°í°´´ÔÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¸ê½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
(´Ü, »óÇ°ÀÇ ³»¿ëÀ» È®ÀÎÇϱâ À§ÇÏ¿© Æ÷Àå µîÀ» ÈѼÕÇÑ °æ¿ì´Â Á¦¿Ü)
½Ã°£ÀÌ Áö³²¿¡ µû¶ó ÀçÆǸŰ¡ °ï¶õÇÒ Á¤µµ·Î ¹°Ç°ÀÇ °¡Ä¡°¡ ¶³¾îÁø °æ¿ì
Æ÷Àå °³ºÀµÇ¾î »óÇ° °¡Ä¡°¡ ÈÑ¼ÕµÈ °æ¿ì |
|
´Ù¹è¼ÛÁöÀÇ °æ¿ì ¹ÝÇ° ȯºÒ |
´Ù¹è¼ÛÁöÀÇ °æ¿ì ´Ù¸¥ Áö¿ªÀÇ ¹ÝÇ°À» µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ¾ø½À´Ï´Ù.
1°³ Áö¿ªÀÇ ¹ÝÇ°ÀÌ ¿Ï·áµÈ ÈÄ ´Ù¸¥ Áö¿ª ¹ÝÇ°À» ÁøÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¡ ¾çÇØÇØ Áֽñ⠹ٶø´Ï´Ù. |
|
Áß°í»óÇ°ÀÇ ±³È¯ |
Áß°í»óÇ°Àº Á¦ÇÑµÈ Àç°í ³»¿¡¼ ÆǸŰ¡ ÀÌ·ç¾îÁö¹Ç·Î, ±³È¯Àº ºÒ°¡´ÉÇÕ´Ï´Ù. |
|
¿ÀǸ¶ÄÏ »óÇ°ÀÇ È¯ºÒ |
¿ÀǸ¶ÄÏ»óÇ°¿¡ ´ëÇÑ Ã¥ÀÓÀº ¿øÄ¢ÀûÀ¸·Î ¾÷ü¿¡°Ô ÀÖÀ¸¹Ç·Î, ±³È¯/¹ÝÇ° Á¢¼ö½Ã ¹Ýµå½Ã ÆǸÅÀÚ¿Í ÇùÀÇ ÈÄ ¹ÝÇ° Á¢¼ö¸¦ ÇϼžßÇϸç, ¹ÝÇ°Á¢¼ö ¾øÀÌ ¹Ý¼ÛÇϰųª, ¿ìÆíÀ¸·Î º¸³¾ °æ¿ì »óÇ° È®ÀÎÀÌ ¾î·Á¿ö ȯºÒÀÌ ºÒ°¡´ÉÇÒ ¼ö ÀÖÀ¸´Ï À¯ÀÇÇϽñ⠹ٶø´Ï´Ù. |
|
|
|
¹è¼Û¿¹Á¤ÀÏ ¾È³» |
ÀÎÅÍÆÄÅ© µµ¼´Â ¸ðµç »óÇ°¿¡ ´ëÇØ ¹è¼Û¿Ï·á¿¹Á¤ÀÏÀ» À¥»çÀÌÆ®¿¡ Ç¥½ÃÇÏ°í ÀÖ½À´Ï´Ù.
|
<ÀÎÅÍÆÄÅ© Á÷¹è¼Û »óÇ°> |
»óÇ°Àº ¿ù~Åä¿äÀÏ ¿ÀÀü 10½Ã ÀÌÀü ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ´çÀÏ Ãâ°í/´çÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óÇ°ÀÔ´Ï´Ù. |
»óÇ°Àº ¼¿ïÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀº ´çÀÏ Ãâ°í/ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇϸç,
¼¿ï¿ÜÁö¿ª/ÆòÀÏ ÁÖ¹®ºÐÀÇ °æ¿ì´Â ¿ÀÈÄ 6½Ã±îÁö ÁÖ¹®ºÐ¿¡ ´ëÇÏ¿© ÀÍÀÏ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÏ´Â »óÇ°ÀÔ´Ï´Ù.
(´Ü, ¿ù¿äÀÏÀº 12½Ã±îÁö ÁÖ¹®¿¡ ÇÑÇÔ)
|
»óÇ°Àº, ÀÔ°í¿¹Á¤ÀÏ(Á¦Ç°Ãâ½ÃÀÏ)+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù. |
~
»óÇ°Àº À¯ÅëƯ¼º»ó ÀÎÅÍÆÄÅ©¿¡¼ Àç°í¸¦ º¸À¯ÇÏÁö ¾ÊÀº »óÇ°À¸·Î ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(1ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø±âÁØÃâ°íÀÏ:ÀÎÅÍÆÄÅ©°¡ »óÇ°À» ¼ö±ÞÇÏ¿© ¹°·ùâ°í¿¡¼ Æ÷Àå/Ãâ°íÇϱâ±îÁö ¼Ò¿äµÇ´Â ½Ã°£
|
|
<¾÷ü Á÷Á¢¹è¼Û/¿ÀǸ¶ÄÏ »óÇ°> |
~
»óÇ°Àº ¾÷ü°¡ ÁÖ¹®À» È®ÀÎÇÏ°í, Ãâ°íÇϱâ±îÁö °É¸®´Â ½Ã°£ÀÔ´Ï´Ù. ÁÖ¹®ÀÏ+±âÁØÃâ°íÀÏ+Åùè»ç¹è¼ÛÀÏ(2ÀÏ)¿¡ ¹è¼Û¿Ï·á¸¦ º¸ÀåÇÕ´Ï´Ù.(Åä/°øÈÞÀÏÀº ¹è¼Û±â°£¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.)
¡Ø5ÀÏÀ̳» Ãâ°í°¡ ½ÃÀÛµÇÁö ¾ÊÀ»½Ã, ¿ÀǸ¶ÄÏ »óÇ°Àº ÀÚµ¿À¸·Î ÁÖ¹®ÀÌ Ãë¼ÒµÇ¸ç, °í°´´Ô²² Ç°Àýº¸»ó±ÝÀ» Áö±ÞÇØ µå¸³´Ï´Ù.
|
|
|
¹è¼Ûºñ ¾È³» |
µµ¼(Áß°íµµ¼ Æ÷ÇÔ)¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û) À½¹Ý/DVD¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
ÀâÁö/¸¸È/±âÇÁÆ®¸¸ ±¸¸ÅÇϽøé : ¹è¼Ûºñ 2,000¿ø (2¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í À½¹Ý/DVD¸¦ ÇÔ²² ±¸¸ÅÇϽøé : ¹è¼Ûºñ 1,500¿ø 1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
µµ¼¿Í ÀâÁö/¸¸È/±âÇÁÆ®/Áß°íÁ÷¹è¼Û»óÇ°À» ÇÔ²² ±¸¸ÅÇϽøé : 2,000¿ø (1¸¸¿øÀÌ»ó ±¸¸Å ½Ã ¹«·á¹è¼Û)
¾÷üÁ÷Á¢¹è¼Û»óÇ°À» ±¸¸Å½Ã : ¾÷üº°·Î »óÀÌÇÑ ¹è¼Ûºñ Àû¿ë
* ¼¼Æ®»óÇ°ÀÇ °æ¿ì ºÎºÐÃë¼Ò ½Ã Ãß°¡ ¹è¼Ûºñ°¡ ºÎ°úµÉ ¼ö ÀÖ½À´Ï´Ù.
* ºÏÄ«Æ®¿¡¼ ¹è¼Ûºñ¾ø¾Ö±â ¹öÆ°À» Ŭ¸¯Çϼż, µ¿ÀϾ÷ü»óÇ°À» Á¶±Ý ´õ ±¸¸ÅÇϽøé, ¹è¼Ûºñ¸¦ Àý¾àÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
|
|
Çؿܹè¼Û ¾È³» |
ÀÎÅÍÆÄÅ©µµ¼¿¡¼´Â ±¹³»¿¡¼ ÁÖ¹®ÇϽðųª ÇØ¿Ü¿¡¼ ÁÖ¹®ÇÏ¿© ÇØ¿Ü·Î ¹è¼ÛÀ» ¿øÇÏ½Ç °æ¿ì DHL°ú Ư¾àÀ¸·Î Ã¥Á¤µÈ ¿ä±ÝÇ¥¿¡
ÀÇÇØ °³ÀÎÀÌ ÀÌ¿ëÇÏ´Â °æ¿ìº¸´Ù ¹è¼Û¿ä±ÝÀ» Å©°Ô ³·Ã߸ç DHL(www.dhl.co.kr)·Î Çؿܹè¼Û ¼ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù.
Çؿܹè¼ÛÀº µµ¼/CD/DVD »óÇ°¿¡ ÇÑÇØ ¼ºñ½ºÇÏ°í ÀÖÀ¸¸ç, ´Ù¸¥ »óÇ°À» ºÏÄ«Æ®¿¡ ÇÔ²² ´ãÀ¸½Ç °æ¿ì Çؿܹè¼ÛÀÌ ºÒ°¡ÇÕ´Ï´Ù.
ÇØ¿ÜÁÖ¹®¹è¼Û ¼ºñ½º´Â ÀÎÅÍÆÄÅ© µµ¼ ȸ¿ø °¡ÀÔÀ» Çϼž߸¸ ½Åû °¡´ÉÇÕ´Ï´Ù. |
|
¾Ë¾ÆµÎ¼¼¿ä!!! |
µµ¸Å»ó ¹× Á¦ÀÛ»ç »çÁ¤¿¡ µû¶ó Ç°Àý/ÀýÆÇ µîÀÇ »çÀ¯·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
¿ÀǸ¶ÄϾ÷üÀÇ ¹è¼ÛÁö¿¬½Ã ÁÖ¹®ÀÌ ÀÚµ¿À¸·Î Ãë¼ÒµÉ ¼ö ÀÖ½À´Ï´Ù.
Ãâ°í°¡´É ½Ã°£ÀÌ ¼·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.
À¯ÅëÀÇ Æ¯¼º»ó Ãâ°í±â°£Àº ¿¹Á¤º¸´Ù ¾Õ´ç°ÜÁö°Å³ª ´ÊÃçÁú ¼ö ÀÖ½À´Ï´Ù.
Åùè»ç ¹è¼ÛÀÏÀÎ ¼¿ï ¹× ¼öµµ±ÇÀº 1~2ÀÏ, Áö¹æÀº 2~3ÀÏ, µµ¼, »ê°£, ±ººÎ´ë´Â 3ÀÏ ÀÌ»óÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù. |
|
|
|
|