°£Æí°áÁ¦, ½Å¿ëÄ«µå û±¸ÇÒÀÎ
ÀÎÅÍÆÄÅ© ·Ôµ¥Ä«µå 5% (28,220¿ø)
(ÃÖ´ëÇÒÀÎ 10¸¸¿ø / Àü¿ù½ÇÀû 40¸¸¿ø)
ºÏÇǴϾð ·Ôµ¥Ä«µå 30% (20,790¿ø)
(ÃÖ´ëÇÒÀÎ 3¸¸¿ø / 3¸¸¿ø ÀÌ»ó °áÁ¦)
NH¼îÇÎ&ÀÎÅÍÆÄÅ©Ä«µå 20% (23,760¿ø)
(ÃÖ´ëÇÒÀÎ 4¸¸¿ø / 2¸¸¿ø ÀÌ»ó °áÁ¦)
Close

ÄÚƲ¸° ¸¶ÀÌÅ©·Î¼­ºñ½º °³¹ß : ½ºÇÁ¸µ 5¿Í ½ºÇÁ¸µ ºÎÆ® 2.0À» È°¿ëÇØ ÄÚƲ¸°À¸·Î ±¸ÃàÇÏ´Â

¿øÁ¦ : Hands-On Microservices with Kotlin
¼Òµæ°øÁ¦

2013³â 9¿ù 9ÀÏ ÀÌÈÄ ´©Àû¼öÄ¡ÀÔ´Ï´Ù.

ÆǸÅÁö¼ö 26
?
ÆǸÅÁö¼ö¶õ?
»çÀÌÆ®ÀÇ ÆǸŷ®¿¡ ±â¹ÝÇÏ¿© ÆǸŷ® ÃßÀ̸¦ ¹Ý¿µÇÑ ÀÎÅÍÆÄÅ© µµ¼­¿¡¼­ÀÇ µ¶¸³ÀûÀÎ ÆǸŠÁö¼öÀÔ´Ï´Ù. ÇöÀç °¡Àå Àß Æȸ®´Â »óÇ°¿¡ °¡ÁßÄ¡¸¦ µÎ¾ú±â ¶§¹®¿¡ ½ÇÁ¦ ´©Àû ÆǸŷ®°ú´Â ´Ù¼Ò Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ÆǸŷ® ¿Ü¿¡µµ ´Ù¾çÇÑ °¡ÁßÄ¡·Î ±¸¼ºµÇ¾î ÃÖ±ÙÀÇ À̽´µµ¼­ È®Àνà À¯¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇØ´ç Áö¼ö´Â ¸ÅÀÏ °»½ÅµË´Ï´Ù.
Close
°øÀ¯Çϱâ

¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º

Á¤°¡

33,000¿ø

  • 29,700¿ø (10%ÇÒÀÎ)

    1,650P (5%Àû¸³)

ÇÒÀÎÇýÅÃ
Àû¸³ÇýÅÃ
  • S-Point Àû¸³Àº ¸¶ÀÌÆäÀÌÁö¿¡¼­ Á÷Á¢ ±¸¸ÅÈ®Á¤ÇϽŠ°æ¿ì¸¸ Àû¸³ µË´Ï´Ù.
Ãß°¡ÇýÅÃ
¹è¼ÛÁ¤º¸
  • 4/29(¿ù) À̳» ¹ß¼Û ¿¹Á¤  (¼­¿ï½Ã °­³²±¸ »ï¼º·Î 512)
  • ¹«·á¹è¼Û
ÁÖ¹®¼ö·®
°¨¼Ò Áõ°¡
  • À̺¥Æ®/±âȹÀü

  • ¿¬°üµµ¼­

  • »óÇ°±Ç

AD

Ã¥¼Ò°³

¾î´À»õ ÀÚ¹Ù »ýÅ°èÀÇ ÁÖ·ù ¾ð¾î·Î ÀÚ¸®¸Å±èÇÑ ÄÚƲ¸° ¾ð¾î¸¦ ¹ÙÅÁÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ¸®¾×Ƽºê¿¡ ´ëÇØ ¾Ë¾Æº»´Ù. ±âº» °³³ä, ÀÛµ¿ ¿ø¸®¿Í ÀåÁ¡À» »ìÆ캸´Â °ÍÀ» ½ÃÀÛÀ¸·Î ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ½±°Ô ¸¸µé¾îº¸°í, ½ºÇÁ¸µ À¥Ç÷°½º(WebFlux)¸¦ »ç¿ëÇØ ³Íºí·ÎÅ· ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. À̸¦ ÄÁÅ×ÀÌ³Ê ±â¹ÝÀ¸·Î ¿î¿ëÇϱâ À§ÇÑ °³¹ß, Å×½ºÆ® ¸ð´ÏÅ͸µ°ú ¹èÆ÷±îÁö Àü ¿µ¿ªÀ» ´Ù·é´Ù. ±âº» °³³ä ÀÌÇظ¦ ¹ÙÅÁÀ¸·Î Á÷Á¢ ¸¸µé¾î º¸¸é¼­ »õ·Î¿î °³³ä°ú ±â¼úÀ» üÇèÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÅ ÀÖ´Ù.

ÃâÆÇ»ç ¼­Æò

¾î´À»õ ÀÚ¹Ù »ýÅ°èÀÇ ÁÖ·ù ¾ð¾î·Î ÀÚ¸®¸Å±èÇÑ ÄÚƲ¸° ¾ð¾î¸¦ ¹ÙÅÁÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ¸®¾×Ƽºê¿¡ ´ëÇØ ¾Ë¾Æº»´Ù. ±âº» °³³ä, ÀÛµ¿ ¿ø¸®¿Í ÀåÁ¡À» »ìÆ캸´Â °ÍÀ» ½ÃÀÛÀ¸·Î ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ½±°Ô ¸¸µé¾îº¸°í, ½ºÇÁ¸µ À¥Ç÷°½º(WebFlux)¸¦ »ç¿ëÇØ ³Íºí·ÎÅ· ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. À̸¦ ÄÁÅ×ÀÌ³Ê ±â¹ÝÀ¸·Î ¿î¿ëÇϱâ À§ÇÑ °³¹ß, Å×½ºÆ® ¸ð´ÏÅ͸µ°ú ¹èÆ÷±îÁö Àü ¿µ¿ªÀ» ´Ù·é´Ù. ±âº» °³³ä ÀÌÇظ¦ ¹ÙÅÁÀ¸·Î Á÷Á¢ ¸¸µé¾î º¸¸é¼­ »õ·Î¿î °³³ä°ú ±â¼úÀ» üÇèÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÅ ÀÖ´Ù.

ÀÌ Ã¥¿¡¼­ ´Ù·ç´Â ³»¿ë

¡á¸¶ÀÌÅ©·Î¼­ºñ½º ¾ÆÅ°ÅØó ¹× ¿ø¸® ÀÌÇØ
¡á½ºÇÁ¸µ ºÎÆ® 2.0 °ú ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© 5.0À» »ç¿ëÇØ ÄÚƲ¸°À¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º ±¸Ãà
¡á½ºÇÁ¸µ À¥Ç÷°½º·Î ³Íºí·ÎÅ·(non-blocking) ÀÛ¾÷À» ¼öÇàÇÏ´Â ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º »ý¼º
¡á½ºÇÁ¸µ µ¥ÀÌÅ͸¦ »ç¿ëÇØ ¸ù°íDB(MongoDB)¿¡¼­ ¸®¾×ƼºêÇÏ°Ô µ¥ÀÌÅÍ °¡Á®¿À±â
¡áJUnit°ú ÄÚƲ¸°À¸·Î ÇÏ´Â È¿°úÀûÀÎ Å×½ºÆ®
¡á½ºÇÁ¸µ Ŭ¶ó¿ìµå·Î Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º »ý¼º
¡á¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ µµÄ¿ À̹ÌÁö ºôµå ¹× °Ô½Ã
¡áµµÄ¿ ½º¿ú(Docker Swarm)À» È°¿ëÇÑ ¸¶ÀÌÅ©·Î¼­ºñ½º È®Àå
¡áJMX¸¦ È°¿ëÇÑ ¸¶ÀÌÅ©·Î¼­ºñ½º ¸ð´ÏÅ͸µ
¡á¿ÀǽÃÇÁÆ® ¿Â¶óÀÎ(OpenShift Online)¿¡¼­ ¸¶ÀÌÅ©·Î ¼­ºñ½º ¹èÆ÷

ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ

¸¶ÀÌÅ©·Î¼­ºñ½º ¾ÆÅ°ÅØó¿¡ ´ëÇÑ ±âº» Áö½ÄÀÌ ÀÖ°í ÇöÀç ¿£ÅÍÇÁ¶óÀÌÁî±Þ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¼­ºñ½º¸¦ È¿°úÀûÀ¸·Î ±¸ÇöÇÏ°íÀÚ ÇÏ´Â ÄÚƲ¸° °³¹ßÀÚ¶ó¸é, ÀÌ Ã¥Àº ´ç½ÅÀ» À§ÇÑ °ÍÀÌ´Ù.

ÀÌ Ã¥ÀÇ ±¸¼º

1Àå, '¸¶ÀÌÅ©·Î¼­ºñ½º ÀÌÇØ'¿¡¼­´Â ¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ±× ¿ø¸®¸¦ ¼Ò°³ÇÑ´Ù. µµ¸ÞÀÎ ÁÖµµ ¼³°è(Domain-Driven Design), Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ¸®¾×Ƽºê ¾ÆÅ°ÅØó¸¦ ¾Ë¾Æº»´Ù.
2Àå, '½ºÇÁ¸µ ºÎÆ® 2.0 ½ÃÀÛÇϱâ'¿¡¼­´Â ÄÚƲ¸°¿¡¼­ óÀ½ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ °³¹ßÇÏ´Â µ¥ ½ºÇÁ¸µ ºÎÆ® 2.0À» »ç¿ëÇØ µµ¿òÀ» ÁØ´Ù. ½ºÇÁ¸µ ºÎÆ®¸¦ ½Éµµ ±í°Ô ¾Ë¾Æº¼ °ÍÀÌ°í ÀÎÅÚ¸®Á¦ÀÌ(IntelliJ) IDEA¸¦ »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù.
3Àå, 'RESTful ¼­ºñ½º ¸¸µé±â'¿¡¼­´Â Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ RESTful API·Î È®ÀåÇØ ´Ù¾çÇÑ ½ºÇÁ¸µ ±¸¼º ¿ä¼Ò¸¦ ¼Ò°³ÇÑ´Ù.
4Àå, '¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â'¿¡¼­´Â ³Íºí·ÎÅ· ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ »ý¼ºÇÑ´Ù. ½ºÇÁ¸µ À¥Ç÷°½º(WebFlux)¿Í ¸®¾×ÅÍ(Reactor)¸¦ »ç¿ëÇØ ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
5Àå, '¸®¾×Ƽºê ½ºÇÁ¸µ µ¥ÀÌÅÍ'¿¡¼­´Â ¸®¾×Ƽºê ½ºÇÁ¸µ µ¥ÀÌÅ͸¦ »ç¿ëÇØ ¸ù°íDB °°Àº NoSQL µ¥ÀÌÅͺ£À̽º¸¦ ÀÛ¾÷ÇÏ´Â ¹æ¹ý¿¡ ÁßÁ¡À» µÐ´Ù. ±×·± ´ÙÀ½ REST APIÀÇ CRUD ÀÛ¾÷À» ¸®¾×ƼºêÇÏ°Ô »ý¼ºÇÏ´Â ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Çâ»ó½ÃÅ°´Â ¹æ¹ýÀ» »ìÆ캻´Ù.
6Àå, 'Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â'¿¡¼­´Â Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º°¡ ¹«¾ùÀÌ°í, ½ºÇÁ¸µ Ŭ¶ó¿ìµå·Î ½±°Ô ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
7Àå, 'µµÄ¿ ¸¸µé±â'¿¡¼­´Â µµÄ¿¸¦ ¼³Ä¡ ¹× ±¸¼ºÇؼ­ ÄÁÅ×À̳ʸ¦ ÀÛ¼º, °Ô½Ã, ½ÇÇàÇÏ´Â ¹æ¹ý°ú ¸ÞÀ̺ì(Maven)À» »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ºôµåÇÒ ¶§ À̸¦ ÅëÇÕÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
8Àå, '¸¶ÀÌÅ©·Î¼­ºñ½º È®ÀåÇϱâ'¿¡¼­´Â µµÄ¿¿¡¼­ °³Àοë Ŭ¶ó¿ìµå¸¦ ¸¸µå´Â ¹æ¹ý°ú ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ È®ÀåÇÏ°í Á¦¾îÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù.
9Àå, '½ºÇÁ¸µ ¸¶ÀÌÅ©·Î¼­ºñ½º Å×½ºÆ®'¿¡¼­´Â SpringBootTest¿Í JUnitÀ» »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Å×½ºÆ®ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. Kluent¸¦ »ç¿ëÇØ ´õ¿í dzºÎÇÑ Ç¥Çö ¹æ½ÄÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Å×½ºÆ®ÇÏ´Â ¹æ¹ýÀ» ¹è¿î´Ù.
10Àå, '¸¶ÀÌÅ©·Î¼­ºñ½º ¸ð´ÏÅ͸µ'¿¡¼­´Â ½ÇÁ¦ ¿î¿µ ½Ã½ºÅÛ¿¡¼­ ¸ð´ÏÅ͸µÀÌ Áß¿äÇÑ ÀÌÀ¯¿Í ½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ(Actuator)¿Í JMX¸¦ ÀÌ¿ëÇØ ¸ð´ÏÅÍÇÏ°í Á¦¾îÇÏ´Â ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Á¦°øÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.
11Àå, '¸¶ÀÌÅ©·Î¼­ºñ½º ¹èÆ÷'¿¡¼­´Â ¸¶ÀÌÅ©·Î¼­ºñ½º µµÄ¿¸¦ ¿ÀǽÃÇÁÆ® ¿Â¶óÀÎ(OpenShift Online)¿¡ ¹èÆ÷ÇÏ´Â ¹æ¹ý°ú ¸¶ÀÌÅ©·Î¼­ºñ½º Äڵ尡 º¯°æµÉ ¶§ ±êÇãºê¸¦ ÅëÇÕÇØ ÀÚµ¿ ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
12Àå, '¸ð¹ü »ç·Ê'¿¡¼­´Â ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ¸¸µå´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â ¾÷°è ¸ð¹ü »ç·Ê¸¦ ¼³¸íÇÑ´Ù.

ÁöÀºÀÌÀÇ ¸»

±¸±ÛÀÌ ¾Èµå·ÎÀÌµå »ýÅ°迡¼­ ÄÚƲ¸°(Kotlin)ÀÇ Áö¿øÀ» ¹ßÇ¥Çϸ鼭 ÄÚƲ¸°Àº ÁÖ·ù ¾ð¾î·Î ÀνĵDZ⠽ÃÀÛÇß´Ù. ¸¶ÀÌÅ©·Î¼­ºñ½º(Microservices)´Â È®À强 ÀÖ°í °ü¸®Çϱ⠽¬¿î À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¼³°èÇÏ´Â µ¥ µµ¿òÀÌ µÇ¸ç, ÄÚƲ¸°Àº Çö´ëÀû °ü¿ë±¸(Idio)¸¦ È°¿ëÇØ °³¹ßÀ» ´Ü¼øÈ­ÇÏ°í °íÇ°Áú ¼­ºñ½º¸¦ ¸¸µé ¼ö ÀÖ°Ô ÇÑ´Ù. ÄÚƲ¸°Àº JVM°ú 100% »óÈ£ ¿î¿ë¼ºÀÌ ÀÖ¾î ±âÁ¸ ÀÚ¹Ù Äڵ带 °¡Áö°í ÀÛ¾÷Çϱ⠽±´Ù. ½ºÇÁ¸µ(Spring), Àè½¼(Jackson), ¸®¾×ÅÍ(Reactor) °°Àº Àαâ ÀÖ´Â ÀÚ¹Ù ÇÁ·¹ÀÓ¿öÅ©¿¡´Â ³Î ¾ÈÀü¼º(Null-safty)À̳ª ŸÀÔ ¾ÈÀü(type-safe) ¼±¾ð ºô´õ¿Í °°Àº ¾ð¾î ±â´ÉÀ» È°¿ëÇÏ´Â ÄÚƲ¸° ¸ðµâÀÌ µé¾îÀÖ´Ù.
ÀÌ Ã¥Àº ¿î¿µ ȯ°æ¿¡¼­ Å×½ºÆ® °¡´ÉÇÑ ÄÚµå·Î ¼­ºñ½º¸¦ ¼³°è ¹× ±¸ÇöÇØ µ¶ÀÚ°¡ ±âÁ¸ ÀÚ¹Ù ±¸Çöº¸´Ù ´õ ª°í À¯Áöº¸¼ö°¡ ¿ëÀÌÇÏ°í ÆíÇÑ Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.
³Íºí·ÎÅ·(Non-blocking) ±â¼úÀ» È°¿ëÇÏ°í ¼­ºñ½º¸¦ Â÷±â ¼öÁØÀÇ ¾÷°è Ç¥ÁØÀ¸·Î ²ø¾î¿Ã¸®±â À§ÇØ ¸®¾×Ƽºê(Reactive) Æз¯´ÙÀÓÀ» »ç¿ëÇϸé ÁÁÀº Á¡À» ¾Ë°Ô µÉ °ÍÀÌ´Ù.
Ã¥À» Àд µµÁß¿¡ ´ë¿ë·® ó¸® ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ¸¸µé±â À§ÇØ ¸®¾×ƼºêÀûÀ¸·Î NoSQL µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÑ´Ù.
ÀÌ Ã¥¿¡¼­´Â ´Ù¾çÇÑ Å¬¶ó¿ìµå ȯ°æ¿¡¼­ ½ÇÇàÇÒ ¼ö Àִ Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º(Cloud Native Microservice)¸¦ ¸¸µå´Â ¹æ¹ý°ú À̸¦ ¸ð´ÏÅ͸µÇÏ´Â ¹æ¹ýÀ» ¾Ë·ÁÁØ´Ù.
¸¶ÀÌÅ©·Î¼­ºñ½º¿ë µµÄ¿(Docker) ÄÁÅ×À̳Ê(Container)¸¦ ¸¸µé°í À̸¦ È®ÀåÇÏ´Â ¹æ¹ýÀ» ¾Ë ¼ö ÀÖ´Ù. ¸¶Áö¸·À¸·Î, ¿ÀǽÃÇÁÆ® ¿Â¶óÀÎ(Openshift Online)¿¡ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ¹èÆ÷ÇÑ´Ù.

¿Å±äÀÌÀÇ ¸»

¾î´Àµ¡ ¸¶ÀÌÅ©·Î¼­ºñ½º´Â »õ·Î¿î ¼­ºñ½º¸¦ ¸¸µé ¶§ ½ÇÁúÀûÀΠǥÁØ(de facto)ÀÌ µÇ¾î °¡°í ÀÖ´Ù. ÀÌ´Â ºñ´Ü ½ºÅ¸Æ®¾÷À̳ª ¼­ºñ½º ±â¾÷»Ó¸¸ ¾Æ´Ï¶ó ÀüÅëÀûÀÎ ±â¾÷¿¡¼­µµ ±âÁ¸ÀÇ ÀÏüÇü ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¶ÀÌÅ©·Î¼­ºñ½ºÈ­Çϱâ À§ÇØ ½ÃµµÇÏ°í ÀÖ´Ù´Â À̾߱Ⱑ ½É½ÉÄ¡ ¾Ê°Ô µé·Á¿À°í ÀÖ´Ù.
ÄÚƲ¸°ÀÇ µîÀå ÀÌÈÄ ¾Èµå·ÎÀÌµå »ýÅ°èÀÇ ¿µÇâÀ̱â´Â ÇÏÁö¸¸ ¾î´À»õ ÀÚ¹Ù »ýÅ°èÀÇ ÁÖ·ù ¾ð¾î·Î ÀÚ¸®¸Å±èÇÏ°Ô µÇ¾ú°í ¼­¹öÃø °³¹ß ¾ð¾î·Îµµ ¸¹Àº ºÎºÐÀÌ ÄÚƲ¸°À» äÅÃÇÏ°í ÀÖ´Ù.
¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ 1¼¼´ë°¡ VM ±â¹ÝÀÇ Æú¸®±×¶ùÀ¸·Î ´ëº¯µÇ´Â ÀÚÄ¡¼º¿¡ ±â¹ÝÇÑ ¼­ºñ½ºÀÇ ºÐ¸®¿¡ ÀÖ¾ú´Ù¸é, 2¼¼´ë´Â ÄÁÅ×ÀÌ³Ê ±â¹ÝÀÇ ¸®¾×Ƽºê Æз¯´ÙÀÓÀÌ¶ó ¸»ÇÒ ¼ö ÀÖÀ» °Í °°´Ù.
ÀÌ Ã¥Àº ÄÚƲ¸° ¾ð¾î¸¦ ÀÌ¿ëÇØ Â÷¼¼´ë ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇϱâ À§ÇÑ ´Ù¾çÇÑ ³»¿ëÀ» ´ã°í ÀÖ´Ù.
¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ¸®¾×ƼºêÀÇ °³³äÀûÀÎ ¿ø¸®¿Í ÀåÁ¡À¸·Î ½ÃÀÛÇؼ­ ½ºÇÁ¸µ ºÎÆ® ±â¹ÝÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ½±°Ô ¸¸µé¾îº¸°í, ½ºÇÁ¸µ À¥Ç÷°½º(WebFlux)¸¦ »ç¿ëÇØ ³Íºí·ÎÅ· ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ »ìÆ캻´Ù.
±×¸®°í À̸¦ ÄÁÅ×ÀÌ³Ê ±â¹ÝÀ¸·Î ¿î¿ëÇϱâ À§ÇÑ °³¹ß, Å×½ºÆ® ¸ð´ÏÅ͸µ°ú ¹èÆ÷¿¡ À̸£´Â ¿µ¿ªÀ» ´Ù·é´Ù. ¹«¾ùº¸´Ùµµ ÀÌ Ã¥ÀÇ ÀåÁ¡Àº Á¦¸ñ¿¡¼­µµ ¾Ë ¼ö ÀÖµíÀÌ ±âº»ÀûÀÎ °³³ä¿¡ ´ëÇÑ ÀÌÇظ¦ ¹ÙÅÁÀ¸·Î Á÷Á¢ ¸¸µé¾î º¸¸é¼­ »õ·Î¿î °³³ä°ú ±â¼úÀ» üÇèÇÒ ¼ö ÀÖµµ·Ï ±¸¼ºµÅ À־ Â÷¼¼´ë±Þ ¸¶ÀÌÅ©·Î¼­ºñ½º ±¸Ãà¿¡ ¼Ò¿äµÇ´Â ±â¼ú ±â¹ÝÀ» Á¶¸ÁÇغ¸´Â µ¥ ÁÁÀº ¾È³»¼­°¡ µÉ °ÍÀ¸·Î ±â´ëÇÑ´Ù.
¿ø¼­°¡ Ãâ°£µÈ ½ÃÁ¡¿¡ ½ºÇÁ¸µ ºÎÆ® ¹öÀüÀº 2.0.0 M7À̾úÀ¸³ª ¹ø¿ª¼­°¡ Ãâ°£µÇ´Â ½ÃÁ¡¿¡´Â 2.1¹öÀüÀÌ Ãâ½ÃµÆ´Ù. ±×¸®°í ÀÎÅÚ¸®Á¦ÀÌ IDEA CE ¹öÀüµµ 2017.2À̾úÀ¸³ª ¹ø¿ª¼­ Ãâ°£ ½ÃÁ¡¿¡´Â 2018.3À¸·Î ¾÷±×·¹À̵åµÆ´Ù. ¹ø¿ª¼­¿¡´Â ÀÌ·± º¯°æ »çÇ×À» ¹Ý¿µÇØ ¿¹Á¦¿Í Ã¥ ³»¿ëÀ» ¹«¸®¾øÀÌ µû¶ó ÇÒ

¡Ú ÀÌ Ã¥¿¡¼­ ´Ù·ç´Â ³»¿ë ¡Ú ¢Ã ¸¶ÀÌÅ©·Î¼­ºñ½º ¾ÆÅ°ÅØó ¹× ¿ø¸® ÀÌÇØ ¢Ã ½ºÇÁ¸µ ºÎÆ® 2.0 °ú ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿öÅ© 5.0À» »ç¿ëÇØ ÄÚƲ¸°À¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º ±¸Ãà ¢Ã ½ºÇÁ¸µ À¥Ç÷°½º·Î ³Íºí·ÎÅ·(non-blocking) ÀÛ¾÷À» ¼öÇàÇÏ´Â ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º »ý¼º ¢Ã ½ºÇÁ¸µ µ¥ÀÌÅ͸¦ »ç¿ëÇØ ¸ù°íDB(MongoDB)¿¡¼­ ¸®¾×ƼºêÇÏ°Ô µ¥ÀÌÅÍ °¡Á®¿À±â ¢Ã JUnit°ú ÄÚƲ¸°À¸·Î ÇÏ´Â È¿°úÀûÀÎ Å×½ºÆ® ¢Ã ½ºÇÁ¸µ Ŭ¶ó¿ìµå·Î Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º »ý¼º ¢Ã ¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ µµÄ¿ À̹ÌÁö ºôµå ¹× °Ô½Ã ¢Ã µµÄ¿ ½º¿ú(Docker Swarm)À» È°¿ëÇÑ ¸¶ÀÌÅ©·Î¼­ºñ½º È®Àå ¢Ã JMX¸¦ È°¿ëÇÑ ¸¶ÀÌÅ©·Î¼­ºñ½º ¸ð´ÏÅ͸µ ¢Ã ¿ÀǽÃÇÁÆ® ¿Â¶óÀÎ(OpenShift Online)¿¡¼­ ¸¶ÀÌÅ©·Î ¼­ºñ½º ¹èÆ÷ ¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú ¸¶ÀÌÅ©·Î¼­ºñ½º ¾ÆÅ°ÅØó¿¡ ´ëÇÑ ±âº» Áö½ÄÀÌ ÀÖ°í ÇöÀç ¿£ÅÍÇÁ¶óÀÌÁî±Þ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¼­ºñ½º¸¦ È¿°úÀûÀ¸·Î ±¸ÇöÇÏ°íÀÚ ÇÏ´Â ÄÚƲ¸° °³¹ßÀÚ¶ó¸é, ÀÌ Ã¥Àº ´ç½ÅÀ» À§ÇÑ °ÍÀÌ´Ù. ¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú 1Àå, ¡®¸¶ÀÌÅ©·Î¼­ºñ½º ÀÌÇØ¡¯¿¡¼­´Â ¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ±× ¿ø¸®¸¦ ¼Ò°³ÇÑ´Ù. µµ¸ÞÀÎ ÁÖµµ ¼³°è(Domain-Driven Design), Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º¿Í ¸®¾×Ƽºê ¾ÆÅ°ÅØó¸¦ ¾Ë¾Æº»´Ù. 2Àå, ¡®½ºÇÁ¸µ ºÎÆ® 2.0 ½ÃÀÛÇϱ⡯¿¡¼­´Â ÄÚƲ¸°¿¡¼­ óÀ½ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ °³¹ßÇÏ´Â µ¥ ½ºÇÁ¸µ ºÎÆ® 2.0À» »ç¿ëÇØ µµ¿òÀ» ÁØ´Ù. ½ºÇÁ¸µ ºÎÆ®¸¦ ½Éµµ ±í°Ô ¾Ë¾Æº¼ °ÍÀÌ°í ÀÎÅÚ¸®Á¦ÀÌ(IntelliJ) IDEA¸¦ »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù. 3Àå, ¡®RESTful ¼­ºñ½º ¸¸µé±â¡¯¿¡¼­´Â Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ RESTful API·Î È®ÀåÇØ ´Ù¾çÇÑ ½ºÇÁ¸µ ±¸¼º ¿ä¼Ò¸¦ ¼Ò°³ÇÑ´Ù. 4Àå, ¡®¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â¡¯¿¡¼­´Â ³Íºí·ÎÅ· ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ »ý¼ºÇÑ´Ù. ½ºÇÁ¸µ À¥Ç÷°½º(WebFlux)¿Í ¸®¾×ÅÍ(Reactor)¸¦ »ç¿ëÇØ ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù. 5Àå, ¡®¸®¾×Ƽºê ½ºÇÁ¸µ µ¥ÀÌÅÍ¡¯¿¡¼­´Â ¸®¾×Ƽºê ½ºÇÁ¸µ µ¥ÀÌÅ͸¦ »ç¿ëÇØ ¸ù°íDB °°Àº NoSQL µ¥ÀÌÅͺ£À̽º¸¦ ÀÛ¾÷ÇÏ´Â ¹æ¹ý¿¡ ÁßÁ¡À» µÐ´Ù. ±×·± ´ÙÀ½ REST APIÀÇ CRUD ÀÛ¾÷À» ¸®¾×ƼºêÇÏ°Ô »ý¼ºÇÏ´Â ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Çâ»ó½ÃÅ°´Â ¹æ¹ýÀ» »ìÆ캻´Ù. 6Àå, ¡®Å¬¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â¡¯¿¡¼­´Â Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º°¡ ¹«¾ùÀÌ°í, ½ºÇÁ¸µ Ŭ¶ó¿ìµå·Î ½±°Ô ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. 7Àå, ¡®µµÄ¿ ¸¸µé±â¡¯¿¡¼­´Â µµÄ¿¸¦ ¼³Ä¡ ¹× ±¸¼ºÇؼ­ ÄÁÅ×À̳ʸ¦ ÀÛ¼º, °Ô½Ã, ½ÇÇàÇÏ´Â ¹æ¹ý°ú ¸ÞÀ̺ì(Maven)À» »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ºôµåÇÒ ¶§ À̸¦ ÅëÇÕÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. 8Àå, ¡®¸¶ÀÌÅ©·Î¼­ºñ½º È®ÀåÇϱ⡯¿¡¼­´Â µµÄ¿¿¡¼­ °³Àοë Ŭ¶ó¿ìµå¸¦ ¸¸µå´Â ¹æ¹ý°ú ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ È®ÀåÇÏ°í Á¦¾îÇÏ´Â ¹æ¹ýÀ» »ìÆ캻´Ù. 9Àå, ¡®½ºÇÁ¸µ ¸¶ÀÌÅ©·Î¼­ºñ½º Å×½ºÆ®¡¯¿¡¼­´Â SpringBootTest¿Í JUnitÀ» »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Å×½ºÆ®ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. Kluent¸¦ »ç¿ëÇØ ´õ¿í dzºÎÇÑ Ç¥Çö ¹æ½ÄÀ¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Å×½ºÆ®ÇÏ´Â ¹æ¹ýÀ» ¹è¿î´Ù. 10Àå, ¡®¸¶ÀÌÅ©·Î¼­ºñ½º ¸ð´ÏÅ͸µ¡¯¿¡¼­´Â ½ÇÁ¦ ¿î¿µ ½Ã½ºÅÛ¿¡¼­ ¸ð´ÏÅ͸µÀÌ Áß¿äÇÑ ÀÌÀ¯¿Í ½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ(Actuator)¿Í JMX¸¦ ÀÌ¿ëÇØ ¸ð´ÏÅÍÇÏ°í Á¦¾îÇÏ´Â ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ Á¦°øÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÑ´Ù. 11Àå, ¡®¸¶ÀÌÅ©·Î¼­ºñ½º ¹èÆ÷¡¯¿¡¼­´Â ¸¶ÀÌÅ©·Î¼­ºñ½º µµÄ¿¸¦ ¿ÀǽÃÇÁÆ® ¿Â¶óÀÎ(OpenShift Online)¿¡ ¹èÆ÷ÇÏ´Â ¹æ¹ý°ú ¸¶ÀÌÅ©·Î¼­ºñ½º Äڵ尡 º¯°æµÉ ¶§ ±êÇãºê¸¦ ÅëÇÕÇØ ÀÚµ¿ ¹èÆ÷ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. 12Àå, ¡®¸ð¹ü »ç·Ê¡¯¿¡¼­´Â ¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ¸¸µå´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â ¾÷°è ¸ð¹ü »ç·Ê¸¦ ¼³¸íÇÑ´Ù.¼ö ÀÖµµ·Ï ÀϺΠ³»¿ëÀ» ¼öÁ¤ÇßÀ¸´Ï ¾È½ÉÇصµ ÁÁ´Ù.
¸¶Áö¸·À¸·Î ¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ ¹èÆ÷¿Í ¿î¿ëÀ» À§ÇØ ÄÁÅ×À̳ʸ¦ °í·Á ÁßÀ̶ó¸é Äí¹ö³×Ƽ½º(kubernetes)¸¦ ÇÔ²² °ËÅäÇغ¼ °ÍÀ» ±ÇÇÑ´Ù. ¼­ºñ½º ¸Þ½Ã(Service Mesh)¸¦ ±¸¼ºÇϱâ À§ÇÑ Äí¹ö³×Ƽ½º¿Í À̽ºÆ¼¿À(istio)ÀÇ Á¶ÇÕÀº ÄÁÅ×ÀÌ³Ê ±â¹Ý ¸¶ÀÌÅ©·Î¼­ºñ½º ¿î¿ë¿¡ ÃÖ»óÀÇ Á¶ÇÕÀÌ µÉ °ÍÀÌ´Ù.

¸ñÂ÷

1Àå. ¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ ÀÌÇØ
¸¶ÀÌÅ©·Î¼­ºñ½º¶õ ¹«¾ùÀΰ¡
SoA ÀÌÇØ
SoA¿Í ¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ Â÷ÀÌÁ¡
ÀÏüÇü¿¡¼­ ¸¶ÀÌÅ©·Î¼­ºñ½º·Î
¸¶ÀÌÅ©·Î¼­ºñ½º ¿øÄ¢
¼³°è ¿øÄ¢ Á¤ÀÇ
ºñÁî´Ï½º ¿ª·® Á᫐ ¸ðµ¨
´À½¼ÇÑ °áÇÕ
´ÜÀÏ Ã¥ÀÓ
±¸Çö Àº´Ð
°Ý¸®
µ¶¸³ÀûÀÎ ¹èÆ÷ °¡´É
Àå¾Ö¸¦ °í·ÁÇÑ ºôµå
È®À强
ÀÚµ¿È­
µµ¸ÞÀÎ ÁÖµµ ¼³°è
µµ¸ÞÀÎ ÁÖµµ ¼³°è¶õ
¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º
¸®¾×Ƽºê ÇÁ·Î±×·¡¹Ö
¸®¾×Ƽºê ¼±¾ð¹®
¸®¾×Ƽºê ÇÁ·¹ÀÓ¿öÅ©
¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º
Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º
Ŭ¶ó¿ìµå ÄÄÇ»ÆÃ
ÄÁÅ×À̳Ê
¹èÆ÷ ¸ðµ¨
Á¤¸®

2Àå. ½ºÇÁ¸µ ºÎÆ® 2.0 ½ÃÀÛÇϱâ
½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
±¸¼º
½ºÇÁ¸µ À̴ϼȶóÀÌÀú »ç¿ë
ÀÎÅÚ¸®Á¦ÀÌ IDEA »ç¿ë
½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Á¶
¾ÖÇø®ÄÉÀÌ¼Ç ¿ÀºêÁ§Æ® »ý¼º
½ºÇÁ¸µ ¾ÖÇø®ÄÉÀÌ¼Ç ÄÁÅؽºÆ® Á¤ÀÇ
ÄÄÆ÷³ÍÆ® ½ºÄµ ÀÌÇØ
ÄÄÆ÷³ÍÆ® »ç¿ë
ÀÇÁ¸ °ü°è ÀÚµ¿ ¼³Á¤
½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ÆÐŰ¡ ¹× ½ÇÇà
ÆÐŰ¡
WAR°¡ ¾Æ´Ñ JAR·Î ÆÐŰ¡Çϱâ
½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà
½ÇÇà °¡´ÉÇÑ JAR ¸¸µé±â
¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤
¼³Á¤ °ª ¼³Á¤Çϱâ
½ºÇÁ¸µ Ç¥Çö ¾ð¾îÀÇ ÀÌÇØ
ÇÁ·ÎÆÄÀÏ »ç¿ë
Á¶°ÇºÎ ºó ¸¸µé±â
Á¤¸®

3Àå. RESTful ¼­ºñ½º ¸¸µé±â
RestControllerÀÇ ÀÌÇØ
ÄÁÆ®·Ñ·¯¶õ
RestController ¸¸µé±â
ÄÁÆ®·Ñ·¯ ÀÌÇØ
°æ·Î¿Í ¿äû ¸Å°³ º¯¼ö
customers ¸Ê »ý¼º
°æ·Î º¯¼ö ¾ò±â
°æ·Î º¯¼ö ÀÌÇØ
¿äû ¸Å°³ º¯¼ö Á¤ÀÇ
¿äû ¸Å°³ º¯¼ö ÀÌÇØ
HTTP µ¿»ç¿Í »óÅÂ
Ç¥ÁØ HTTP µ¿»ç¿Í »óÅÂ
HTTP µ¿»ç ó¸®
¼­ºñ½º ·¹ÀÌ¾î ±¸Çö
HTTP »óÅ ó¸®Çϱâ
JSONÀ¸·Î ÀÛ¾÷Çϱâ
°í°´ Ŭ·¡½º¿¡ ÀüÈ­¹øÈ£ Ãß°¡
¿ªÁ÷·ÄÈ­ ÀÌÇØ
¿À·ù ó¸®
ÄÁÆ®·Ñ·¯ ¾îµå¹ÙÀ̽º »ç¿ë
ºñÁî´Ï½º ¿¹¿Ü »ý¼º
ÄÁÆ®·Ñ·¯ ¾îµå¹ÙÀ̽º ÇÇÇϱâ
Á¤¸®

4Àå. ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
½ºÇÁ¸µ À¥Ç÷°½ºÀÇ ÀÌÇØ
½ºÇÁ¸µ À¥Ç÷°½º ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
³×Ƽ »ç¿ëÇϱâ
RestController Ãß°¡
Customer ¼­ºñ½º ¸¸µé±â
ºí·ÎÅ·Àº ¸®¾×Ƽºê°¡ ¾Æ´Ï´Ù
¸®¾×Ƽºê ¼­ºñ½º ¸¸µé±â
±¸µ¶ÀÚ¿Í °Ô½ÃÀÚ
´ÜÀÏ °´Ã¼ °Ô½ÃÇϱâ
¼­ºñ½º¿¡¼­ ¸ð³ë »ç¿ëÇϱâ
¿©·¯ °´Ã¼ °Ô½ÃÇϱâ
¼­ºñ½º¿¡¼­ Ç÷°½º »ç¿ëÇϱâ
¸®¾×ƼºêÇÏ°Ô °´Ã¼ ¼ö½Å
ÇÔ¼öÇü À¥ ÇÁ·Î±×·¡¹Ö »ç¿ëÇϱâ
RouterFunction »ç¿ëÇϱâ
Çڵ鷯 ¸¸µé±â
¸®¾×Ƽºê ¼­ºñ½º »ç¿ëÇϱâ
´ÙÁß °æ·Î ó¸®Çϱâ
Äõ¸® ¸Å°³ º¯¼ö »ç¿ëÇϱâ
JSON º»¹® ó¸®Çϱâ
¸®¾×Ƽºê ¿À·ù ó¸®Çϱâ
Çڵ鷯¿¡¼­ ¿À·ù ĸóÇϱâ
¿À·ù °Ô½Ã
Á¤¸®

5Àå. ¸®¾×Ƽºê ½ºÇÁ¸µ µ¥ÀÌÅÍ
NoSQL µ¥ÀÌÅͺ£À̽º
SQL µ¥ÀÌÅͺ£À̽º¶õ
NoSQL µ¥ÀÌÅͺ£À̽º¶õ
¸ù°íDB ¼³Ä¡
Mongo Ŭ¶óÀ̾ðÆ®¿Í ¿¬°á
µ¥ÀÌÅͺ£À̽º »ý¼º
¸í·É »ç¿ë
½ºÇÁ¸µ µ¥ÀÌÅÍ »ç¿ë
ÇÁ·ÎÁ§Æ® ¼³Á¤
¿¬°á ±¸¼º
¸ù°íDB¿¡ ¸í·É¾î º¸³»±â
¸®¾×Ƽºê ¸®Æ÷ÁöÅ丮
¸®Æ÷ÁöÅ丮 »ý¼ºÇϱâ
¸®Æ÷ÁöÅ丮 »ç¿ëÇϱâ
ÃʱâÈ­ ¿Ï·á
ReactiveMongoTemplate »ç¿ë
CRUD ¿¬»êÀ» À§ÇÑ RESTful API
¼­ºñ½º Àç»ç¿ë
GETÀ» READ·Î ¸ÅÇÎ
POST¸¦ CREATE·Î ¸ÅÇÎ
DELETE ¸ÅÇÎ
°í°´ °Ë»ö
Á¤¸®

6Àå. Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
½ºÇÁ¸µ Ŭ¶ó¿ìµåÀÇ ÀÌÇØ
Ŭ¶ó¿ìµå ³×ÀÌƼºê ÇÁ·Î±×·¥À̶õ ¹«¾ùÀΰ¡
½ºÇÁ¸µ Ŭ¶ó¿ìµå ¾ÆÅ°ÅØó
½ºÇÁ¸µ Ŭ¶ó¿ìµå ³ÝÇø¯½º
½ºÇÁ¸µ Ŭ¶ó¿ìµå ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
ÄÁÇÇ±× ¼­¹ö
ÄÁÇÇ

ÁöÀºÀÌ ¼Ò°³ ±â¼ú °¨¼öÀÚ ¼Ò°³ ¿Å±äÀÌ ¼Ò°³ ¿Å±äÀÌÀÇ ¸» µé¾î°¡¸ç 1Àå. ¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ ÀÌÇØ __¸¶ÀÌÅ©·Î¼­ºñ½º¶õ ¹«¾ùÀΰ¡ ____SoA ÀÌÇØ ____SoA¿Í ¸¶ÀÌÅ©·Î¼­ºñ½ºÀÇ Â÷ÀÌÁ¡ ____ÀÏüÇü¿¡¼­ ¸¶ÀÌÅ©·Î¼­ºñ½º·Î __¸¶ÀÌÅ©·Î¼­ºñ½º ¿øÄ¢ ____¼³°è ¿øÄ¢ Á¤ÀÇ ____ºñÁî´Ï½º ¿ª·® Á᫐ ¸ðµ¨ ____´À½¼ÇÑ °áÇÕ ____´ÜÀÏ Ã¥ÀÓ ____±¸Çö Àº´Ð ____°Ý¸® ____µ¶¸³ÀûÀÎ ¹èÆ÷ °¡´É ____Àå¾Ö¸¦ °í·ÁÇÑ ºôµå ____È®À强 ____ÀÚµ¿È­ __µµ¸ÞÀÎ ÁÖµµ ¼³°è ____µµ¸ÞÀÎ ÁÖµµ ¼³°è¶õ __¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º ____¸®¾×Ƽºê ÇÁ·Î±×·¡¹Ö ____¸®¾×Ƽºê ¼±¾ð¹® ____¸®¾×Ƽºê ÇÁ·¹ÀÓ¿öÅ© ____¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º __Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º ____Ŭ¶ó¿ìµå ÄÄÇ»Æà ____ÄÁÅ×ÀÌ³Ê ____¹èÆ÷ ¸ðµ¨ __Á¤¸® 2Àå. ½ºÇÁ¸µ ºÎÆ® 2.0 ½ÃÀÛÇϱâ __½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ____±¸¼º ____½ºÇÁ¸µ À̴ϼȶóÀÌÀú »ç¿ë ____ÀÎÅÚ¸®Á¦ÀÌ IDEA »ç¿ë __½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Á¶ ____¾ÖÇø®ÄÉÀÌ¼Ç ¿ÀºêÁ§Æ® »ý¼º ____½ºÇÁ¸µ ¾ÖÇø®ÄÉÀÌ¼Ç ÄÁÅؽºÆ® Á¤ÀÇ ____ÄÄÆ÷³ÍÆ® ½ºÄµ ÀÌÇØ ____ÄÄÆ÷³ÍÆ® »ç¿ë ____ÀÇÁ¸ °ü°è ÀÚµ¿ ¼³Á¤ __½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ÆÐŰ¡ ¹× ½ÇÇà ____ÆÐŰ¡ ____WAR°¡ ¾Æ´Ñ JAR·Î ÆÐŰ¡Çϱâ ____½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà ____½ÇÇà °¡´ÉÇÑ JAR ¸¸µé±â __¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤ ____¼³Á¤ °ª ¼³Á¤Çϱâ ____½ºÇÁ¸µ Ç¥Çö ¾ð¾îÀÇ ÀÌÇØ ____ÇÁ·ÎÆÄÀÏ »ç¿ë ____Á¶°ÇºÎ ºó ¸¸µé±â ____Á¤¸® 3Àå. RESTful ¼­ºñ½º ¸¸µé±â __RestControllerÀÇ ÀÌÇØ ____ÄÁÆ®·Ñ·¯¶õ ____RestController ¸¸µé±â ____ÄÁÆ®·Ñ·¯ ÀÌÇØ ____°æ·Î¿Í ¿äû ¸Å°³ º¯¼ö ____customers ¸Ê »ý¼º ____°æ·Î º¯¼ö ¾ò±â ____°æ·Î º¯¼ö ÀÌÇØ ____¿äû ¸Å°³ º¯¼ö Á¤ÀÇ ____¿äû ¸Å°³ º¯¼ö ÀÌÇØ __HTTP µ¿»ç¿Í »óÅ ____Ç¥ÁØ HTTP µ¿»ç¿Í »óÅ ____HTTP µ¿»ç ó¸® ____¼­ºñ½º ·¹ÀÌ¾î ±¸Çö ____HTTP »óÅ ó¸®Çϱâ ____JSONÀ¸·Î ÀÛ¾÷Çϱâ ____°í°´ Ŭ·¡½º¿¡ ÀüÈ­¹øÈ£ Ãß°¡ ____¿ªÁ÷·ÄÈ­ ÀÌÇØ __¿À·ù ó¸® ____ÄÁÆ®·Ñ·¯ ¾îµå¹ÙÀ̽º »ç¿ë ____ºñÁî´Ï½º ¿¹¿Ü »ý¼º ____ÄÁÆ®·Ñ·¯ ¾îµå¹ÙÀ̽º ÇÇÇϱâ __Á¤¸® 4Àå. ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â __½ºÇÁ¸µ À¥Ç÷°½ºÀÇ ÀÌÇØ ____½ºÇÁ¸µ À¥Ç÷°½º ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ____³×Ƽ »ç¿ëÇϱâ ____RestController Ãß°¡ ____Customer ¼­ºñ½º ¸¸µé±â ____ºí·ÎÅ·Àº ¸®¾×Ƽºê°¡ ¾Æ´Ï´Ù __¸®¾×Ƽºê ¼­ºñ½º ¸¸µé±â ____±¸µ¶ÀÚ¿Í °Ô½ÃÀÚ ____´ÜÀÏ °´Ã¼ °Ô½ÃÇϱâ ____¼­ºñ½º¿¡¼­ ¸ð³ë »ç¿ëÇϱâ ____¿©·¯ °´Ã¼ °Ô½ÃÇϱâ ____¼­ºñ½º¿¡¼­ Ç÷°½º »ç¿ëÇϱâ ____¸®¾×ƼºêÇÏ°Ô °´Ã¼ ¼ö½Å __ÇÔ¼öÇü À¥ ÇÁ·Î±×·¡¹Ö »ç¿ëÇϱâ ____RouterFunction »ç¿ëÇϱâ ____Çڵ鷯 ¸¸µé±â ____¸®¾×Ƽºê ¼­ºñ½º »ç¿ëÇϱâ ____´ÙÁß °æ·Î ó¸®Çϱâ ____Äõ¸® ¸Å°³ º¯¼ö »ç¿ëÇϱâ ____JSON º»¹® ó¸®Çϱâ __¸®¾×Ƽºê ¿À·ù ó¸®Çϱâ ____Çڵ鷯¿¡¼­ ¿À·ù ĸóÇϱâ ____¿À·ù °Ô½Ã __Á¤¸® 5Àå. ¸®¾×Ƽºê ½ºÇÁ¸µ µ¥ÀÌÅÍ __NoSQL µ¥ÀÌÅͺ£À̽º ____SQL µ¥ÀÌÅͺ£À̽º¶õ ____NoSQL µ¥ÀÌÅͺ£À̽º¶õ ____¸ù°íDB ¼³Ä¡ ____Mongo Ŭ¶óÀ̾ðÆ®¿Í ¿¬°á ____µ¥ÀÌÅͺ£À̽º »ý¼º ____¸í·É »ç¿ë __½ºÇÁ¸µ µ¥ÀÌÅÍ »ç¿ë ____ÇÁ·ÎÁ§Æ® ¼³Á¤ ____¿¬°á ±¸¼º ____¸ù°íDB¿¡ ¸í·É¾î º¸³»±â __¸®¾×Ƽºê ¸®Æ÷ÁöÅ丮 ____¸®Æ÷ÁöÅ丮 »ý¼ºÇϱâ ____¸®Æ÷ÁöÅ丮 »ç¿ëÇϱâ ____ÃʱâÈ­ ¿Ï·á ____ReactiveMongoTemplat±× ¼­¹ö ¸¸µé±â
¼³Á¤ ¾ò±â
µ¥ÀÌÅÍ ¾Ïȣȭ
¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·ÎÆÄÀÏ »ç¿ëÇϱâ
¼­ºñ½º Ž»ö
¼­ºñ½º Ž»ö ¼­¹ö ¸¸µé±â
Ž»ö ¼­¹ö¿¡ ¿¬°áÇϱâ
½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ »ç¿ëÇϱâ
°ÔÀÌÆ®¿þÀÌ
°ÔÀÌÆ®¿þÀÌ ¸¸µé±â
¶ó¿ìÅÍ Á¤ÀÇ
Á¤¸®

7Àå. µµÄ¿ »ý¼º
µµÄ¿·Î ½ÃÀÛÇϱâ
ÄÁÅ×ÀÌ³Ê ÀÌÇØ
µµÄ¿ ¼³Ä¡
µµÄ¿ ½ÃÀÛÇϱâ
À̹ÌÁö °¡Á®¿À±â
À̹ÌÁö °ü¸®
¸¶ÀÌÅ©·Î¼­ºñ½º µµÄ¿ »ý¼ºÇϱâ
¿¹Á¦ ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
Dockerfile ¸¸µé±â
¸¶ÀÌÅ©·Î¼­ºñ½º µµÄ¿ ¸¸µé±â
¸¶ÀÌÅ©·Î¼­ºñ½º ½ÇÇàÇϱâ
µµÄ¿ °Ô½Ã
µµÄ¿ Çãºê °èÁ¤ ¸¸µé±â
µµÄ¿ °Ô½Ã
µµÄ¿¿Í ¸ÞÀ̺ì ÅëÇÕÇϱâ
Á¤¸®

8Àå. ¸¶ÀÌÅ©·Î¼­ºñ½º È®Àå
È®Àå °¡´ÉÇÑ ¾ÆÅ°ÅØó
È®ÀåÀÇ ¹æÇ⼺
È®Àå ¼³°è
µ¶¸³Àû È®Àå
Ãà¼Ò
Ŭ¶ó¿ìµå ¸¸µé±â
½º¿ú ¸¸µé±â
¼­ºñ½º Ãß°¡
¼­ºñ½ºÀÇ ·Î±× È®ÀÎÇϱâ
¼­ºñ½º »èÁ¦
¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ¼­ºñ½º·Î ÆÛºí¸®½Ã
·¹Áö½ºÆ®¸® ¸¸µé±â
¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
µµÄ¿ ¸¸µé±â
¼­ºñ½º ¸¸µé±â
¼­ºñ½º Á¦¾îÇϱâ
ÀνºÅϽº È®Àå
¼­¹ö½º ·Î±× °¡Á®¿À±â
¼­ºñ½º Á¦¾îÇϱâ
Á¤¸®

9Àå. ½ºÇÁ¸µ ¸¶ÀÌÅ©·Î¼­ºñ½º Å×½ºÆ®
SpringBootTest ÀÌÇØ
°£´ÜÇÑ ¸¶ÀÌÅ©·Î ¼­ºñ½º ¸¸µé±â
SpringBootTest ÀÌÇØ
ºó Å×½ºÆ®
MockMvc »ç¿ëÇϱâ
¸ðÀÇ ºó »ç¿ëÇϱâ
¿Ö mockÀ» »ç¿ëÇϴ°¡
¸ñ(mock) ¼³Ä¡
¸ðÀÇ(mocked) °ª ¹ÝȯÇϱâ
¸ñ(mock) È£Ãâ °ËÁõÇϱâ
À¯Ã¢ÇÑ Å×½ºÆ®
Kluent Ãß°¡Çϱâ
¼­¼úÀûÀ¸·Î ¼­ºñ½º Å×½ºÆ®Çϱâ
¼­¼úÀûÀ¸·Î ÄÁÆ®·Ñ·¯ Å×½ºÆ®Çϱâ
Á¤¸®

10Àå. ¸¶ÀÌÅ©·Î¼­ºñ½º ¸ð´ÏÅ͸µ
¸ð´ÏÅ͸µÀÇ ÀÌÇØ
¸ð´ÏÅ͸µÀº ¹«¾ùÀΰ¡
°æ°í
º¹±¸
Àå¾Ö ¹ß»ý ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ
½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ È°¼ºÈ­
¾×Ãò¿¡ÀÌÅÍÀÇ Á¾´ÜÁ¡ ÀÌÇØ
JMX
JMX ÀÌÇØ
JMX »ç¿ëÇϱâ
Á¤¸®

11Àå. ¸¶ÀÌÅ©·Î¼­ºñ½º ¹èÆ÷
¼³Á¤
±êÇãºê °èÁ¤ »ý¼º
±ê ¼³Ä¡
¿ÀǽÃÇÁÆ® °èÁ¤ ¸¸µé±â
¿ÀǽÃÇÁÆ® Ŭ¶óÀ̾ðÆ® ´Ù¿î·Îµå
¾ÖÇø®ÄÉÀÌ¼Ç ºôµå
¿¹Á¦ ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â
Å×½ºÆ® Ãß°¡
±êÇãºê¿¡ ¾÷·ÎµåÇϱâ
¿ÀǽÃÇÁÆ®¿¡ °Ô½Ã
¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â
¾ÖÇø®ÄÉÀÌ¼Ç °ü¸®
¾ÖÇø®ÄÉÀÌ¼Ç ¾÷µ¥ÀÌÆ®
Á¤¸®

12Àå. ¸ð¹ü »ç·Ê
ÄÚƲ¸° °ü¿ë±¸ »ç¿ë
ŸÀÔ Ãß·Ð
Ç¥Çö½Ä
±âº» ¸Å°³ º¯¼ö
¶÷´Ù
½ºÇÁ¸µ ÄÁÅؽºÆ® °ü¸®
»ý¼ºÀÚ ÁÖÀÔ
¸í½ÃÀû ÄÁÅؽºÆ® ¼³Á¤
¾ÖÇø®ÄÉÀ̼ÇÀÇ °èÃþÈ­
Ŭ·¡½º ÀÌÇØ
ºÐÇÒ
È¿°úÀûÀÎ Å×½ºÆ®
Å×½ºÆ® À¯Çü ÀÌÇØ
´ÜÀ§ Å×½ºÆ®
ÅëÇÕ Å×½ºÆ®
E2E Å×½ºÆ®
±× ¿Ü Å×½ºÆ®
Å×½ºÆà ÇǶó¹Ìµå
Å×½ºÆ® ÁÖµµ °³¹ß
ÇàÀ§/Çൿ ÁÖµµ °³¹ß
CI/CD ó¸®
Áö¼ÓÀûÀÎ ÅëÇÕ
Áö¼ÓÀû ¹èÆ÷
ÆÄÀÌÇÁ¶óÀÎ
´ë½Ãº¸µå
Á¤¸®
e »ç¿ë __CRUD ¿¬»êÀ» À§ÇÑ RESTful API ____¼­ºñ½º Àç»ç¿ë ____GETÀ» READ·Î ¸ÅÇÎ ____POST¸¦ CREATE·Î ¸ÅÇÎ ____DELETE ¸ÅÇÎ __°í°´ °Ë»ö __Á¤¸® 6Àå. Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â __½ºÇÁ¸µ Ŭ¶ó¿ìµåÀÇ ÀÌÇØ ____Ŭ¶ó¿ìµå ³×ÀÌƼºê ÇÁ·Î±×·¥À̶õ ¹«¾ùÀΰ¡ ____½ºÇÁ¸µ Ŭ¶ó¿ìµå ¾ÆÅ°ÅØó ____½ºÇÁ¸µ Ŭ¶ó¿ìµå ³ÝÇø¯½º ____½ºÇÁ¸µ Ŭ¶ó¿ìµå ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â __ÄÁÇÇ±× ¼­¹ö ____ÄÁÇÇ±× ¼­¹ö ¸¸µé±â ____¼³Á¤ ¾ò±â ____µ¥ÀÌÅÍ ¾Ïȣȭ ____¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·ÎÆÄÀÏ »ç¿ëÇϱâ __¼­ºñ½º Ž»ö ____¼­ºñ½º Ž»ö ¼­¹ö ¸¸µé±â ____Ž»ö ¼­¹ö¿¡ ¿¬°áÇϱâ ____½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ »ç¿ëÇϱâ __°ÔÀÌÆ®¿þÀÌ ____°ÔÀÌÆ®¿þÀÌ ¸¸µé±â ____¶ó¿ìÅÍ Á¤ÀÇ __Á¤¸® 7Àå. µµÄ¿ »ý¼º __µµÄ¿·Î ½ÃÀÛÇϱâ ____ÄÁÅ×ÀÌ³Ê ÀÌÇØ ____µµÄ¿ ¼³Ä¡ ____µµÄ¿ ½ÃÀÛÇϱâ ____À̹ÌÁö °¡Á®¿À±â ____À̹ÌÁö °ü¸® __¸¶ÀÌÅ©·Î¼­ºñ½º µµÄ¿ »ý¼ºÇϱâ ____¿¹Á¦ ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â ____Dockerfile ¸¸µé±â ____¸¶ÀÌÅ©·Î¼­ºñ½º µµÄ¿ ¸¸µé±â ____¸¶ÀÌÅ©·Î¼­ºñ½º ½ÇÇàÇϱâ ____µµÄ¿ °Ô½Ã ____µµÄ¿ Çãºê °èÁ¤ ¸¸µé±â ____µµÄ¿ °Ô½Ã ____µµÄ¿¿Í ¸ÞÀ̺ì ÅëÇÕÇϱâ __Á¤¸® 8Àå. ¸¶ÀÌÅ©·Î¼­ºñ½º È®Àå __È®Àå °¡´ÉÇÑ ¾ÆÅ°ÅØó ____È®ÀåÀÇ ¹æÇ⼺ ____È®Àå ¼³°è ____µ¶¸³Àû È®Àå ____Ãà¼Ò __Ŭ¶ó¿ìµå ¸¸µé±â ____½º¿ú ¸¸µé±â ____¼­ºñ½º Ãß°¡ ____¼­ºñ½ºÀÇ ·Î±× È®ÀÎÇϱâ ____¼­ºñ½º »èÁ¦ __¸¶ÀÌÅ©·Î¼­ºñ½º¸¦ ¼­ºñ½º·Î ÆÛºí¸®½Ã ____·¹Áö½ºÆ®¸® ¸¸µé±â ____¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â ____µµÄ¿ ¸¸µé±â ____¼­ºñ½º ¸¸µé±â __¼­ºñ½º Á¦¾îÇϱâ ____ÀνºÅϽº È®Àå ____¼­¹ö½º ·Î±× °¡Á®¿À±â ____¼­ºñ½º Á¦¾îÇϱâ __Á¤¸® 9Àå. ½ºÇÁ¸µ ¸¶ÀÌÅ©·Î¼­ºñ½º Å×½ºÆ® __SpringBootTest ÀÌÇØ ____°£´ÜÇÑ ¸¶ÀÌÅ©·Î ¼­ºñ½º ¸¸µé±â ____SpringBootTest ÀÌÇØ ____ºó Å×½ºÆ® ____MockMvc »ç¿ëÇϱâ __¸ðÀÇ ºó »ç¿ëÇϱâ ____¿Ö mockÀ» »ç¿ëÇϴ°¡ ____¸ñ(mock) ¼³Ä¡ ____¸ðÀÇ(mocked) °ª ¹ÝȯÇϱâ ____¸ñ(mock) È£Ãâ °ËÁõÇϱâ __À¯Ã¢ÇÑ Å×½ºÆ® ____Kluent Ãß°¡Çϱâ ____¼­¼úÀûÀ¸·Î ¼­ºñ½º Å×½ºÆ®Çϱâ ____¼­¼úÀûÀ¸·Î ÄÁÆ®·Ñ·¯ Å×½ºÆ®Çϱâ __Á¤¸® 10Àå. ¸¶ÀÌÅ©·Î¼­ºñ½º ¸ð´ÏÅ͸µ __¸ð´ÏÅ͸µÀÇ ÀÌÇØ ____¸ð´ÏÅ͸µÀº ¹«¾ùÀΰ¡ ____°æ°í ____º¹±¸ ____Àå¾Ö ¹ß»ý ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â __½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ ____½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ È°¼ºÈ­ ____¾×Ãò¿¡ÀÌÅÍÀÇ Á¾´ÜÁ¡ ÀÌÇØ __JMX ____JMX ÀÌÇØ ____JMX »ç¿ëÇϱâ __Á¤¸® 11Àå. ¸¶ÀÌÅ©·Î¼­ºñ½º ¹èÆ÷ __¼³Á¤ ____±êÇãºê °èÁ¤ »ý¼º ____±ê ¼³Ä¡ ____¿ÀǽÃÇÁÆ® °èÁ¤ ¸¸µé±â ____¿ÀǽÃÇÁÆ® Ŭ¶óÀ̾ðÆ® ´Ù¿î·Îµå __¾ÖÇø®ÄÉÀÌ¼Ç ºôµå ____¿¹Á¦ ¸¶ÀÌÅ©·Î¼­ºñ½º ¸¸µé±â ____Å×½ºÆ® Ãß°¡ ____±êÇãºê¿¡ ¾÷·ÎµåÇϱâ __¿ÀǽÃÇÁÆ®¿¡ °Ô½Ã ____¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ____¾ÖÇø®ÄÉÀÌ¼Ç °ü¸® ____¾ÖÇø®ÄÉÀÌ¼Ç ¾÷µ¥ÀÌÆ® __Á¤¸® 12Àå. ¸ð¹ü »ç·Ê __ÄÚƲ¸° °ü¿ë±¸ »ç¿ë ____ŸÀÔ Ãß·Ð ____Ç¥Çö½Ä ____±âº» ¸Å°³ º¯¼ö ____¶÷´Ù __½ºÇÁ¸µ ÄÁÅؽºÆ® °ü¸® ____»ý¼ºÀÚ ÁÖÀÔ ____¸í½ÃÀû ÄÁÅؽºÆ® ¼³Á¤ __¾ÖÇø®ÄÉÀ̼ÇÀÇ °èÃþÈ­ ____Ŭ·¡½º ÀÌÇØ ____ºÐÇÒ __È¿°úÀûÀÎ Å×½ºÆ® ____Å×½ºÆ® À¯Çü ÀÌÇØ ____´ÜÀ§ Å×½ºÆ® ____ÅëÇÕ Å×½ºÆ® ____E2E Å×½ºÆ® ____±× ¿Ü Å×½ºÆ® ____Å×½ºÆà ÇǶó¹Ìµå ____Å×½ºÆ® ÁÖµµ °³¹ß ____ÇàÀ§/Çൿ ÁÖµµ °³¹ß __CI/CD ó¸® ____
Áö¼ÓÀûÀÎ ÅëÇÕ ____Áö¼ÓÀû ¹èÆ÷ ____ÆÄÀÌÇÁ¶óÀÎ ____´ë½Ãº¸µå __Á¤¸® ã¾Æº¸±â

ÀúÀÚ¼Ò°³

ÈÄ¾È ¾ÈÅä´Ï¿À ¸Þµð³ª À̱۷¹½Ã¾Æ½º [Àú] ½ÅÀ۾˸² SMS½Åû
»ý³â¿ùÀÏ -

ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.

°­ÀÎÈ£, ȲÁÖÇÊ [¿ª] ½ÅÀ۾˸² SMS½Åû
»ý³â¿ùÀÏ -

ÇØ´çÀÛ°¡¿¡ ´ëÇÑ ¼Ò°³°¡ ¾ø½À´Ï´Ù.

Àü°øµµ¼­/´ëÇб³Àç ºÐ¾ß¿¡¼­ ¸¹Àº ȸ¿øÀÌ ±¸¸ÅÇÑ Ã¥

    ¸®ºä

    0.0 (ÃÑ 0°Ç)

    100ÀÚÆò

    ÀÛ¼º½Ã À¯ÀÇ»çÇ×

    ÆòÁ¡
    0/100ÀÚ
    µî·ÏÇϱâ

    100ÀÚÆò

    0.0
    (ÃÑ 0°Ç)

    ÆǸÅÀÚÁ¤º¸

    • ÀÎÅÍÆÄÅ©µµ¼­¿¡ µî·ÏµÈ ¿ÀǸ¶ÄÏ »óÇ°Àº ±× ³»¿ë°ú Ã¥ÀÓÀÌ ¸ðµÎ ÆǸÅÀÚ¿¡°Ô ÀÖÀ¸¸ç, ÀÎÅÍÆÄÅ©µµ¼­´Â ÇØ´ç »óÇ°°ú ³»¿ë¿¡ ´ëÇØ Ã¥ÀÓÁöÁö ¾Ê½À´Ï´Ù.

    »óÈ£

    (ÁÖ)±³º¸¹®°í

    ´ëÇ¥ÀÚ¸í

    ¾Èº´Çö

    »ç¾÷ÀÚµî·Ï¹øÈ£

    102-81-11670

    ¿¬¶ôó

    1544-1900

    ÀüÀÚ¿ìÆíÁÖ¼Ò

    callcenter@kyobobook.co.kr

    Åë½ÅÆǸž÷½Å°í¹øÈ£

    01-0653

    ¿µ¾÷¼ÒÀçÁö

    ¼­¿ïƯº°½Ã Á¾·Î±¸ Á¾·Î 1(Á¾·Î1°¡,±³º¸ºôµù)

    ±³È¯/ȯºÒ

    ¹ÝÇ°/±³È¯ ¹æ¹ý

    ¡®¸¶ÀÌÆäÀÌÁö > Ãë¼Ò/¹ÝÇ°/±³È¯/ȯºÒ¡¯ ¿¡¼­ ½Åû ¶Ç´Â 1:1 ¹®ÀÇ °Ô½ÃÆÇ ¹× °í°´¼¾ÅÍ(1577-2555)¿¡¼­ ½Åû °¡´É

    ¹ÝÇ°/±³È¯°¡´É ±â°£

    º¯½É ¹ÝÇ°ÀÇ °æ¿ì Ãâ°í¿Ï·á ÈÄ 6ÀÏ(¿µ¾÷ÀÏ ±âÁØ) À̳»±îÁö¸¸ °¡´É
    ´Ü, »óÇ°ÀÇ °áÇÔ ¹× °è¾à³»¿ë°ú ´Ù¸¦ °æ¿ì ¹®Á¦Á¡ ¹ß°ß ÈÄ 30ÀÏ À̳»

    ¹ÝÇ°/±³È¯ ºñ¿ë

    º¯½É ȤÀº ±¸¸ÅÂø¿À·Î ÀÎÇÑ ¹ÝÇ°/±³È¯Àº ¹Ý¼Û·á °í°´ ºÎ´ã
    »óÇ°À̳ª ¼­ºñ½º ÀÚüÀÇ ÇÏÀÚ·Î ÀÎÇÑ ±³È¯/¹ÝÇ°Àº ¹Ý¼Û·á ÆǸÅÀÚ ºÎ´ã

    ¹ÝÇ°/±³È¯ ºÒ°¡ »çÀ¯

    ·¼ÒºñÀÚÀÇ Ã¥ÀÓ ÀÖ´Â »çÀ¯·Î »óÇ° µîÀÌ ¼Õ½Ç ¶Ç´Â ÈÑ¼ÕµÈ °æ¿ì
    (´ÜÁö È®ÀÎÀ» À§ÇÑ Æ÷Àå ÈѼÕÀº Á¦¿Ü)

    ·¼ÒºñÀÚÀÇ »ç¿ë, Æ÷Àå °³ºÀ¿¡ ÀÇÇØ »óÇ° µîÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì
    ¿¹) È­ÀåÇ°, ½ÄÇ°, °¡ÀüÁ¦Ç°(¾Ç¼¼¼­¸® Æ÷ÇÔ) µî

    ·º¹Á¦°¡ °¡´ÉÇÑ »óÇ° µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì
    ¿¹) À½¹Ý/DVD/ºñµð¿À, ¼ÒÇÁÆ®¿þ¾î, ¸¸È­Ã¥, ÀâÁö, ¿µ»ó È­º¸Áý

    ·½Ã°£ÀÇ °æ°ú¿¡ ÀÇÇØ ÀçÆǸŰ¡ °ï¶õÇÑ Á¤µµ·Î °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì

    ·ÀüÀÚ»ó°Å·¡ µî¿¡¼­ÀÇ ¼ÒºñÀÚº¸È£¿¡ °üÇÑ ¹ý·üÀÌ Á¤ÇÏ´Â ¼ÒºñÀÚ Ã»¾àöȸ Á¦ÇÑ ³»¿ë¿¡ ÇØ´çµÇ´Â °æ¿ì

    »óÇ° Ç°Àý

    °ø±Þ»ç(ÃâÆÇ»ç) Àç°í »çÁ¤¿¡ ÀÇÇØ Ç°Àý/Áö¿¬µÉ ¼ö ÀÖÀ½

    ¼ÒºñÀÚ ÇÇÇغ¸»ó
    ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó

    ·»óÇ°ÀÇ ºÒ·®¿¡ ÀÇÇÑ ±³È¯, A/S, ȯºÒ, Ç°Áúº¸Áõ ¹× ÇÇÇغ¸»ó µî¿¡ °üÇÑ »çÇ×Àº ¼ÒºñÀÚºÐÀïÇØ°á ±âÁØ (°øÁ¤°Å·¡À§¿øȸ °í½Ã)¿¡ ÁØÇÏ¿© 󸮵Ê

    ·´ë±Ý ȯºÒ ¹× ȯºÒÁö¿¬¿¡ µû¸¥ ¹è»ó±Ý Áö±Þ Á¶°Ç, ÀýÂ÷ µîÀº ÀüÀÚ»ó°Å·¡ µî¿¡¼­ÀÇ ¼ÒºñÀÚ º¸È£¿¡ °üÇÑ ¹ý·ü¿¡ µû¶ó ó¸®ÇÔ

    (ÁÖ)KGÀ̴Ͻýº ±¸¸Å¾ÈÀü¼­ºñ½º¼­ºñ½º °¡ÀÔ»ç½Ç È®ÀÎ

    (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º´Â ȸ¿ø´ÔµéÀÇ ¾ÈÀü°Å·¡¸¦ À§ÇØ ±¸¸Å±Ý¾×, °áÁ¦¼ö´Ü¿¡ »ó°ü¾øÀÌ (ÁÖ)ÀÎÅÍÆÄÅ©Ä¿¸Ó½º¸¦ ÅëÇÑ ¸ðµç °Å·¡¿¡ ´ëÇÏ¿©
    (ÁÖ)KGÀ̴Ͻýº°¡ Á¦°øÇÏ´Â ±¸¸Å¾ÈÀü¼­ºñ½º¸¦ Àû¿ëÇÏ°í ÀÖ½À´Ï´Ù.

    ¹è¼Û¾È³»

    • ±³º¸¹®°í »óÇ°Àº Åùè·Î ¹è¼ÛµÇ¸ç, Ãâ°í¿Ï·á 1~2Àϳ» »óÇ°À» ¹Þ¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

    • Ãâ°í°¡´É ½Ã°£ÀÌ ¼­·Î ´Ù¸¥ »óÇ°À» ÇÔ²² ÁÖ¹®ÇÒ °æ¿ì Ãâ°í°¡´É ½Ã°£ÀÌ °¡Àå ±ä »óÇ°À» ±âÁØÀ¸·Î ¹è¼ÛµË´Ï´Ù.

    • ±ººÎ´ë, ±³µµ¼Ò µî ƯÁ¤±â°üÀº ¿ìü±¹ Åù踸 ¹è¼Û°¡´ÉÇÕ´Ï´Ù.

    • ¹è¼Ûºñ´Â ¾÷ü ¹è¼Ûºñ Á¤Ã¥¿¡ µû¸¨´Ï´Ù.

    • - µµ¼­ ±¸¸Å ½Ã 15,000¿ø ÀÌ»ó ¹«·á¹è¼Û, 15,000¿ø ¹Ì¸¸ 2,500¿ø - »óÇ°º° ¹è¼Ûºñ°¡ ÀÖ´Â °æ¿ì, »óÇ°º° ¹è¼Ûºñ Á¤Ã¥ Àû¿ë