±âÁ¸ ÀÏüÇü ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¶ÀÌÅ©·Î¼ºñ½º·Î ³ª´©°í ¿ÂÇÁ·¹¹Ì½º³ª Ŭ¶ó¿ìµå·Î ¹èÆ÷ÇÏ·Á´Â ÀÚ¹Ù, ½ºÇÁ¸µ °³¹ßÀÚ¿Í ¾ÆÅ°ÅØÆ®¸¦ À§ÇÑ Ã¥ÀÌ´Ù.
½ºÇÁ¸µ ºÎÆ®, ½ºÇÁ¸µ Ŭ¶ó¿ìµå¿Í µµÄ¿, Äí¹ö³×Ƽ½º, À̽ºÆ¼¿À, EFK ½ºÅÃ, ÇÁ·Î¸ÞÅ׿콺, ±×¶óÆijª µîÀÇ ¿ÀǼҽº µµ±¸¸¦ Á¶ÇÕÇØ ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ ±¸ÃàÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¿ÀǼҽº µµ±¸¿Í ½ºÇÁ¸µ ±â¹Ý ÀÚ¹Ù Äڵ带 ½Ç½À À§ÁÖ·Î ¼³¸íÇϸç, ÃÖ¼ÒÇÑÀÇ ½Ã°£ ÅõÀÚ¸¸À¸·Îµµ ´Ù¾çÇÏ°í ³ÐÀº ¹üÀ§ÀÇ Áö½ÄÀ» ÇнÀÇÒ ¼ö ÀÖ°Ô²û È¿À²ÀûÀ¸·Î ±¸¼ºµÅ ÀÖ´Ù.
°³Á¤ÆÇÀº ½ºÇÁ¸µ ºÎÆ®¿Í ´Ù¾çÇÑ ¿ÀǼҽº µµ±¸ÀÇ ÃֽŠ¹öÀüÀ» »ç¿ëÇØ º¸´Ù ½±°í ºü¸£°Ô ÇнÀÇÒ ¼ö ÀÖµµ·Ï ³»¿ëÀ» ¾÷µ¥ÀÌÆ®ÇßÀ¸¸ç, ½ºÇÁ¸µ ±â¹Ý ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ ³×ÀÌƼºê ÄÄÆÄÀÏÇÏ´Â ¹æ¹ý, À©µµ¿ì WSL 2 ȯ°æ ¼³Á¤ ¹æ¹ý, Ç︧ 3 »ç¿ë ¹æ¹ý µîÀÇ ³»¿ëÀ» Ãß°¡Çß´Ù.
1ºÎ. ½ºÇÁ¸µ ºÎÆ®¸¦ »ç¿ëÇÑ ¸¶ÀÌÅ©·Î¼ºñ½º °³¹ß
1Àå. ¸¶ÀÌÅ©·Î¼ºñ½º ¼Ò°³
±â¼ú ¿ä±¸ »çÇ×
³» ¸¶ÀÌÅ©·Î¼ºñ½º °æÇè
µ¶¸³ ¼ÒÇÁÆ®¿þ¾î ÄÄÆ÷³ÍÆ®ÀÇ ÀåÁ¡
µ¶¸³ ¼ÒÇÁÆ®¿þ¾î ÄÄÆ÷³ÍÆ®ÀÇ ¹®Á¦
¸¶ÀÌÅ©·Î¼ºñ½º ÀÔ¹®
»ùÇà ¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ
¸¶ÀÌÅ©·Î¼ºñ½º Á¤ÀÇ
¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ¹®Á¦
¸¶ÀÌÅ©·Î¼ºñ½º µðÀÚÀÎ ÆÐÅÏ
¼ºñ½º °Ë»ö
¿¡Áö ¼¹ö
¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼ºñ½º
±¸¼º Áß¾ÓÈ
·Î±× ºÐ¼® Áß¾ÓÈ
ºÐ»ê ÃßÀû
¼Å¶ ºê·¹ÀÌÄ¿
Á¦¾î ·çÇÁ
¸ð´ÏÅ͸µ ¹× °æ°í Áß¾ÓÈ
Çʼö ¼ÒÇÁÆ®¿þ¾î
´Ù¸¥ ÁÖ¿ä °í·Á »çÇ×
¿ä¾à
2Àå. ½ºÇÁ¸µ ºÎÆ® ¼Ò°³
±â¼ú ¿ä±¸ »çÇ×
½ºÇÁ¸µ ºÎÆ®
¼³Á¤º¸´Ù °ü·Ê¿Í ÆÖ JAR ÆÄÀÏ
½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ¼³Á¤¿¡ ´ëÇÑ ÄÚµå ¿¹Á¦
½ºÇÁ¸µ À¥Ç÷°½º
REST ¼ºñ½º ¼³Á¤¿¡ ´ëÇÑ ÄÚµå ¿¹Á¦
springdoc-openapi
½ºÇÁ¸µ µ¥ÀÌÅÍ
¿£Æ¼Æ¼
¸®Æ÷ÁöÅ͸®
½ºÇÁ¸µ Ŭ¶ó¿ìµå ½ºÆ®¸²
¸Þ½ÃÁö ¼Û¼ö½Å¿¡ ´ëÇÑ ÄÚµå ¿¹Á¦
µµÄ¿
¿ä¾à
Áú¹®
3Àå. °øÁ¶ ¸¶ÀÌÅ©·Î¼ºñ½º ÁýÇÕ »ý¼º
±â¼ú ¿ä±¸ »çÇ×
¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ ¼Ò°³
¸¶ÀÌÅ©·Î¼ºñ½º°¡ ó¸®ÇÏ´Â Á¤º¸
Àӽ÷Π°Ë»ö ¼ºñ½º ´ëü
°ñ°Ý ¸¶ÀÌÅ©·Î¼ºñ½º »ý¼º
½ºÇÁ¸µ À̴ϼȶóÀÌÀú·Î °ñ°Ý ÄÚµå »ý¼º
±×·¡µé¿¡ ¸ÖƼ ÇÁ·ÎÁ§Æ® ºôµå ¼³Á¤
RESTful API Ãß°¡
api ÇÁ·ÎÁ§Æ®¿Í util ÇÁ·ÎÁ§Æ® Ãß°¡
API ±¸Çö
º¹ÇÕ ¸¶ÀÌÅ©·Î¼ºñ½º Ãß°¡
API Ŭ·¡½º
¼Ó¼º
ÅëÇÕ ÄÄÆ÷³ÍÆ®
º¹ÇÕ API ±¸Çö
¿¹¿Ü ó¸® Ãß°¡
Àü¿ª REST ÄÁÆ®·Ñ·¯ ¿¹¿Ü Çڵ鷯
API ±¸ÇöÀÇ ¿¹¿Ü ó¸®
API Ŭ¶óÀ̾ðÆ®ÀÇ ¿¹¿Ü ó¸®
API ¼öµ¿ Å×½ºÆ®
ÀÚµ¿ÈµÈ ¸¶ÀÌÅ©·Î¼ºñ½º Å×½ºÆ®
¹ÝÀÚµ¿ÈµÈ ¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ Å×½ºÆ®
Å×½ºÆ® ½ºÅ©¸³Æ® ½ÇÇà
¿ä¾à
Áú¹®
4Àå. µµÄ¿¸¦ »ç¿ëÇÑ ¸¶ÀÌÅ©·Î¼ºñ½º ¹èÆ÷
±â¼ú ¿ä±¸ »çÇ×
µµÄ¿ ¼Ò°³
ù µµÄ¿ Ä¿¸Çµå ½ÇÇà
µµÄ¿¿¡¼ ÀÚ¹Ù¸¦ ½ÇÇàÇÒ ¶§ÀÇ ¹®Á¦
»ç¿ë °¡´ÉÇÑ CPU Á¦ÇÑ
»ç¿ë °¡´ÉÇÑ ¸Þ¸ð¸® Á¦ÇÑ
µµÄ¿·Î ´ÜÀÏ ¸¶ÀÌÅ©·Î¼ºñ½º ½ÇÇà
¼Ò½º ÄÚµå º¯°æ
µµÄ¿ À̹ÌÁö ºôµå
¼ºñ½º ½ÃÀÛ
ÄÁÅ×À̳ʸ¦ ºÐ¸® ¸ðµå·Î ½ÇÇà
µµÄ¿ ÄÄÆ÷Á »ç¿ëÇÑ ¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ °ü¸®
¼Ò½º ÄÚµå º¯°æ
¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ ½ÃÀÛ
°øÁ¶ ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ Å×½ºÆ® ÀÚµ¿È
Å×½ºÆ® ½ÇÇà ¹®Á¦ ÇØ°á
¿ä¾à
Áú¹®
5Àå. OpenAPI¸¦ »ç¿ëÇÑ API ¹®¼È
±â¼ú ¿ä±¸ »çÇ×
springdoc-openapi ¼Ò°³
¼Ò½º ÄÚµå º¯°æ
±×·¡µé ºôµå ÆÄÀÏ¿¡ ÀÇÁ¸¼º Ãß°¡
ProductCompositeServiceApplication¿¡ ±¸¼º°ú API Á¤º¸ Ãß°¡
ProductCompositeService ÀÎÅÍÆäÀ̽º¿¡ API Á¤º¸ Ãß°¡
¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ ±¸Ãà ¹× ½ÃÀÛ
OpenAPI ¹®¼ »ç¿ë¹ý
¿ä¾à
Áú¹®
6Àå. ¿µ¼Ó¼º Ãß°¡
±â¼ú ¿ä±¸ »çÇ×
¸ñÇ¥
ÇÙ½É ¸¶ÀÌÅ©·Î¼ºñ½º¿¡ ¿µ¼Ó¼º °èÃþ Ãß°¡
ÀÇÁ¸¼º Ãß°¡
¿£Æ¼Æ¼ Ŭ·¡½º¸¦ »ç¿ëÇØ µ¥ÀÌÅÍ ÀúÀå
½ºÇÁ¸µ µ¥ÀÌÅÍ ¸®Æ÷ÁöÅ͸® Á¤ÀÇ
¿µ¼Ó¼º¿¡ ÁßÁ¡À» µÐ ÀÚµ¿ Å×½ºÆ® ÀÛ¼º
Testcontainers »ç¿ë¹ý
¿µ¼Ó¼º Å×½ºÆ® ÀÛ¼º
¼ºñ½º °èÃþ¿¡¼ ¿µ¼Ó¼º °èÃþ »ç¿ë
µ¥ÀÌÅͺ£À̽º ¿¬°á URL ±â·Ï
»õ API Ãß°¡
¼ºñ½º °èÃþ¿¡¼ ¿µ¼Ó¼º °èÃþ È£Ãâ
ÀÚ¹Ù ºó ¸ÅÆÛ ¼±¾ð
¼ºñ½º Å×½ºÆ® ¾÷µ¥ÀÌÆ®
º¹ÇÕ ¼ºñ½º API È®Àå
º¹ÇÕ ¼ºñ½º API¿¡ »õ ¿ÀÆÛ·¹ÀÌ¼Ç Ãß°¡
ÅëÇÕ °èÃþ¿¡ ¸Þ¼µå Ãß°¡
»õ º¹ÇÕ API ¿ÀÆÛ·¹ÀÌ¼Ç ±¸Çö
º¹ÇÕ ¼ºñ½º Å×½ºÆ® ¾÷µ¥ÀÌÆ®
µµÄ¿ ÄÄÆ÷Áî ȯ°æ¿¡ µ¥ÀÌÅͺ£À̽º Ãß°¡
µµÄ¿ ÄÄÆ÷Áî ±¸¼º
µ¥ÀÌÅͺ£À̽º ¿¬°á ±¸¼º
MongoDB ¹× MySQL CLI µµ±¸
»õ API ¹× ¿µ¼Ó¼º °èÃþÀÇ ¼öµ¿ Å×½ºÆ®
¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æÀÇ ÀÚµ¿ Å×½ºÆ® ¾÷µ¥ÀÌÆ®
¿ä¾à
Áú¹®
7Àå. ¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼ºñ½º °³¹ß
±â¼ú ¿ä±¸ »çÇ×
³íºí·ÎÅ· µ¿±â API¿Í À̺¥Æ® ±â¹Ý ºñµ¿±â ¼ºñ½ºÀÇ ¼±Åà ±âÁØ
³íºí·ÎÅ· µ¿±â REST API °³¹ß
ÇÁ·ÎÁ§Æ® ¸®¾×ÅÍ ¼Ò°³
½ºÇÁ¸µ µ¥ÀÌÅÍ MongoDB¸¦ »ç¿ëÇÑ ³íºí·ÎÅ· ¿µ¼Ó¼º
ÇÙ½É ¼ºñ½ºÀÇ ³íºí·ÎÅ· REST API
º¹ÇÕ ¼ºñ½ºÀÇ ³íºí·ÎÅ· REST API
À̺¥Æ® ±â¹Ý ºñµ¿±â ¼ºñ½º °³¹ß
¸Þ½Ã¡ °ü·Ã ¹®Á¦ ó¸®
ÅäÇÈ ¹× À̺¥Æ® Á¤ÀÇ
±×·¡µé ºôµå ÆÄÀÏ º¯°æ
ÇÙ½É ¼ºñ½º¿¡¼ À̺¥Æ® ¼Òºñ
º¹ÇÕ ¼ºñ½º¿¡¼ À̺¥Æ® °Ô½Ã
¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æÀÇ ¼öµ¿ Å×½ºÆ®
À̺¥Æ® ÀúÀå
»óÅÂ Á¡°Ë API Ãß°¡
ÆÄƼ¼Ç ¾øÀÌ RabbitMQ »ç¿ë
ÆÄƼ¼ÇÀ» Ãß°¡ÇØ RabbitMQ »ç¿ë
ÅäÇÈ´ç 2°³ÀÇ ÆÄƼ¼ÇÀ¸·Î Ä«ÇÁÄ« »ç¿ë
¸®¾×Ƽºê ¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æÀÇ ÀÚµ¿ Å×½ºÆ®
¿ä¾à
Áú¹®
2ºÎ. ½ºÇÁ¸µ Ŭ¶ó¿ìµå¸¦ È°¿ëÇÑ ¸¶ÀÌÅ©·Î¼ºñ½º °ü¸®
8Àå. ½ºÇÁ¸µ Ŭ¶ó¿ìµå ¼Ò°³
±â¼ú ¿ä±¸ »çÇ×
½ºÇÁ¸µ Ŭ¶ó¿ìµåÀÇ ÁøÈ
³ÝÇø¯½º À¯·¹Ä«¸¦ °Ë»ö ¼ºñ½º·Î »ç¿ë
½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀ̸¦ ¿¡Áö ¼¹ö·Î »ç¿ë
±¸¼º Áß¾Óȸ¦ À§ÇØ ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× »ç¿ë
º¹¿ø·Â Çâ»óÀ» À§ÇØ Resilience4j »ç¿ë
Resilience4j¸¦ »ç¿ëÇÑ ¼Å¶ ºê·¹ÀÌÄ¿ »ùÇÃ
½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º¿Í ÁýŲÀ» »ç¿ëÇÑ ºÐ»ê ÃßÀû
¿ä¾à
Áú¹®
9Àå. ³ÝÇø¯½º À¯·¹Ä«¸¦ »ç¿ëÇÑ ¼ºñ½º °Ë»ö
±â¼ú ¿ä±¸ »çÇ×
¼ºñ½º °Ë»ö ¼Ò°³
DNS ±â¹Ý ¼ºñ½º °Ë»öÀÇ ¹®Á¦
¼ºñ½º °Ë»öÀÇ ¹®Á¦
³ÝÇø¯½º À¯·¹Ä«¸¦ ÀÌ¿ëÇÑ ¼ºñ½º °Ë»ö
³ÝÇø¯½º À¯·¹Ä« ¼¹ö ¼³Á¤
³ÝÇø¯½º À¯·¹Ä« ¼¹ö¿¡ ¸¶ÀÌÅ©·Î¼ºñ½º ¿¬°á
°³¹ß¿ë ±¸¼º ¼³Á¤
À¯·¹Ä« ±¸¼º ¸Å°³ º¯¼ö
À¯·¹Ä« ¼¹ö ±¸¼º
À¯·¹Ä« ¼¹ö¿¡ ¿¬°áÇÒ Å¬¶óÀ̾ðÆ® ±¸¼º
°Ë»ö ¼ºñ½º »ç¿ë
È®Àå
Ãà¼Ò
À¯·¹Ä« ¼¹öÀÇ Àå¾Ö »óȲ Å×½ºÆ®
À¯·¹Ä« ¼¹ö ´Ù½Ã ½ÃÀÛ
¿ä¾à
Áú¹®
10Àå. ½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀ̸¦ ¿¡Áö ¼¹ö·Î »ç¿ë
±â¼ú ¿ä±¸ »çÇ×
½Ã½ºÅÛ È¯°æ¿¡ ¿¡Áö ¼¹ö Ãß°¡
½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌ ¼³Á¤
º¹ÇÕ »óÅ Á¡°Ë Ãß°¡
½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌ ±¸¼º
¿¡Áö ¼¹ö Å×½ºÆ®
µµÄ¿ ¿£Áø ¿ÜºÎ·Î °ø°³µÇ´Â Ç׸ñ È®ÀÎ
¶ó¿ìÆà ±ÔÄ¢ Å×½ºÆ®
¿ä¾à
Áú¹®
11Àå. API Á¢±Ù º¸¾È
±â¼ú ¿ä±¸ »çÇ×
OAuth 2.0 ¹× OpenID Connect ¼Ò°³
OAuth 2.0 ¼Ò°³
OpenID Connect ¼Ò°³
½Ã½ºÅÛ È¯°æ º¸¾È
HTTPS¸¦ »ç¿ëÇÑ ¿ÜºÎ Åë½Å º¸È£
·±Å¸ÀÓ¿¡ ÀÚü ¼¸í ÀÎÁõ¼ ±³Ã¼
°Ë»ö ¼ºñ½º Á¢±Ù º¸¾È
À¯·¹Ä« ¼¹ö º¯°æ
À¯·¹Ä« Ŭ¶óÀ̾ðÆ® º¯°æ
·ÎÄà ±ÇÇÑ ºÎ¿© ¼¹ö Ãß°¡
OAuth 2.0°ú OpenID Connect¸¦ »ç¿ëÇÑ API º¸¾È
¿¡Áö ¼¹ö¿Í product-composite ¼ºñ½º º¯°æ
product-composite ¼ºñ½º º¯°æ
Å×½ºÆ® ½ºÅ©¸³Æ® º¯°æ
·ÎÄà ±ÇÇÑ ºÎ¿© ¼¹ö¸¦ »ç¿ëÇÑ Å×½ºÆ®
ÀÚµ¿ Å×½ºÆ® ºôµå ¹× ½ÇÇà
°Ë»ö ¼¹ö º¸¾È Å×½ºÆ®
Á¢±Ù ÅäÅ« ȹµæ
Á¢±Ù ÅäÅ«À» »ç¿ëÇØ º¸¾È API È£Ãâ
½º¿þ°Å UI¿¡¼ OAuth 2.0 Å×½ºÆ®
¿ÜºÎ OpenID Connect °ø±ÞÀÚ¸¦ »ç¿ëÇÑ Å×½ºÆ®
Auth0 »ç¿ëÀÚ °èÁ¤ÀÇ ¼³Á¤ ¹× ±¸¼º
Auth0¸¦ OpenID °ø±ÞÀÚ·Î »ç¿ëÇϱâ À§ÇØ ÇÊ¿äÇÑ º¯°æ »çÇ× Àû¿ë
Auth0¸¦ OpenID Connect °ø±ÞÀÚ·Î »ç¿ëÇØ Å×½ºÆ® ½ºÅ©¸³Æ® ½ÇÇà
Ŭ¶óÀ̾ðÆ® ÀÚ°Ý Áõ¸í ½ÂÀÎ È帧À» »ç¿ëÇØ Á¢±Ù ÅäÅ« ȹµæ
±ÇÇÑ ÄÚµå ½ÂÀÎ È帧À» »ç¿ëÇØ Á¢±Ù ÅäÅ« ȹµæ
Auth0 Á¢±Ù ÅäÅ«À» »ç¿ëÇØ º¸¾È API È£Ãâ
»ç¿ëÀÚ¿¡ ´ëÇÑ Ãß°¡ Á¤º¸ ȹµæ
¿ä¾à
Áú¹®
12Àå. ±¸¼º Áß¾ÓÈ
±â¼ú ¿ä±¸ »çÇ×
½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö ¼Ò°³
±¸¼º ÀúÀå¼ÒÀÇ ÀúÀå À¯Çü ¼±ÅÃ
Ŭ¶óÀ̾ðÆ®°¡ ¸ÕÀú Á¢¼ÓÇÒ ¼¹ö °áÁ¤
±¸¼º º¸¾È
±¸¼º ¼¹ö API ¼Ò°³
±¸¼º ¼¹ö ¼³Á¤
¿¡Áö ¼¹ö¿¡ ¶ó¿ìÆà ±ÔÄ¢ ¼³Á¤
µµÄ¿ ȯ°æÀ» À§ÇÑ ±¸¼º ¼¹ö ¼³Á¤
±¸¼º ¼¹öÀÇ Å¬¶óÀ̾ðÆ® ¼³Á¤
¿¬°á Á¤º¸ ±¸¼º
±¸¼º ÀúÀå¼Ò ±¸Á¶È
½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö »ç¿ë
ºôµå ¹× ÀÚµ¿È Å×½ºÆ® ½ÇÇà
±¸¼º ¼¹ö API·Î ±¸¼º Á¶È¸
¹Î°¨ÇÑ Á¤º¸ÀÇ ¾ÏÈ£È ¹× Çص¶
¿ä¾à
Áú¹®
13Àå. Resilience4j¸¦ »ç¿ëÇÑ º¹¿ø·Â °³¼±
±â¼ú ¿ä±¸ »çÇ×
Resilience4jÀÇ º¹¿ø ¸ÞÄ¿´ÏÁò ¼Ò°³
¼Å¶ ºê·¹ÀÌÄ¿ ¼Ò°³
½Ã°£ Á¦Çѱ⠼Ұ³
Àç½Ãµµ ¸ÞÄ¿´ÏÁò ¼Ò°³
¼Ò½º Äڵ忡 º¹¿ø·Â ¸ÞÄ¿´ÏÁò Ãß°¡
ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀ¸·Î Áö¿¬ ¹× ¹«ÀÛÀ§ ¿À·ù Ãß°¡
¼Å¶ ºê·¹ÀÌÄ¿ ¹× ½Ã°£ Á¦Çѱâ Ãß°¡
Àç½Ãµµ ¸ÞÄ¿´ÏÁò Ãß°¡
ÀÚµ¿ Å×½ºÆ® Ãß°¡
¼Å¶ ºê·¹ÀÌÄ¿ ¹× Àç½Ãµµ ¸ÞÄ¿´ÏÁò Å×½ºÆ®
ºôµå ¹× ÀÚµ¿È Å×½ºÆ® ½ÇÇà
Á¤»óÀûÀÎ ¿äû¸¸ À¯À﵃ ¶§ ¼Å¶ÀÌ ´ÝÇô ÀÖ´ÂÁö È®ÀÎ
¹®Á¦°¡ ¹ß»ýÇßÀ» ¶§ ¼Å¶ÀÌ ¿¸®´ÂÁö È®ÀÎ
¼Å¶ ºê·¹ÀÌÄ¿ ´Ù½Ã ´Ý±â
¹«ÀÛÀ§ ¿À·ù·Î Àç½Ãµµ ¸ÞÄ¿´ÏÁò Å×½ºÆ®
¿ä¾à
Áú¹®
14Àå. ºÐ»ê ÃßÀû
±â¼ú ¿ä±¸ »çÇ×
½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º¿Í ÁýŲÀ» »ç¿ëÇÑ ºÐ»ê ÃßÀû
¼Ò½º Äڵ忡 ºÐ»ê ÃßÀû Ãß°¡
ºôµå ÆÄÀÏ¿¡ ÀÇÁ¸¼º Ãß°¡
½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º ¹× ÁýŲ¿¡ ´ëÇÑ ±¸¼º Ãß°¡
µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ¿¡ ÁýŲ Ãß°¡
ºÐ»ê ÃßÀû ¼öÇà
RabbitMQ¸¦ ´ë±â¿ °ü¸®ÀÚ·Î »ç¿ëÇØ ½Ã½ºÅÛ È¯°æ ½ÃÀÛ
Á¤»óÀûÀÎ API ¿äû Àü¼Û
ºñÁ¤»óÀûÀÎ API ¿äû Àü¼Û
ºñµ¿±â 󸮸¦ À¯¹ßÇÏ´Â API ¿äû Àü¼Û
RabbitMQ¸¦ ÅëÇØ ÁýŲÀ¸·Î Àü´ÞµÈ ÃßÀû Á¤º¸ ¸ð´ÏÅ͸µ
Ä«ÇÁÄ«¸¦ ¸Þ½ÃÁö ºê·ÎÄ¿·Î »ç¿ë
¿ä¾à
Áú¹®
3ºÎ. Äí¹ö³×Ƽ½º¸¦ »ç¿ëÇÑ °æ·® ¸¶ÀÌÅ©·Î¼ºñ½º °³¹ß
15Àå. Äí¹ö³×Ƽ½º ¼Ò°³
±â¼ú ¿ä±¸ »çÇ×
Äí¹ö³×Ƽ½º °³³ä ¼Ò°³
Äí¹ö³×Ƽ½º API °´Ã¼ ¼Ò°³
Äí¹ö³×Ƽ½º ·±Å¸ÀÓ ÄÄÆ÷³ÍÆ® ¼Ò°³
¹Ì´ÏÅ¥ºê¸¦ »ç¿ëÇØ Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍ »ý¼º
¹Ì´ÏÅ¥ºê ÇÁ·ÎÇÊ »ç¿ë
Äí¹ö³×Ƽ½ºÀÇ CLI µµ±¸ÀÎ kubectl »ç¿ë
kubectl ÄÜÅؽºÆ® »ç¿ë
Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍ »ý¼º
»ùÇà µðÇ÷ÎÀ̸ÕÆ® »ý¼º
·ÎÄà Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍ °ü¸®
Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍ ÁßÁö ¹× ½ÃÀÛ
Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍ Á¾·á
¿ä¾à
Áú¹®
16Àå. Äí¹ö³×Ƽ½º¿¡ ¸¶ÀÌÅ©·Î¼ºñ½º ¹èÆ÷
±â¼ú ¿ä±¸ »çÇ×
³ÝÇø¯½º À¯·¹Ä«¸¦ Äí¹ö³×Ƽ½º ¼ºñ½º·Î ´ëü
Äí¹ö³×Ƽ½º °´Ã¼ ¼Ò°³
½ºÇÁ¸µ ºÎÆ®ÀÇ Áö¿ø ±â´É »ç¿ë
Ç︧ ¼Ò°³
Ç︧ Ä¿¸Çµå ½ÇÇà
Ç︧ Â÷Æ®ÀÇ ±¸Á¶
Ç︧ ÅÛÇø´°ú Àü´Þ °ª
common ¶óÀ̺귯¸® Â÷Æ®
components Â÷Æ®
environments Â÷Æ®
°³¹ß ¹× Å×½ºÆ® ȯ°æÀ» À§ÇÑ Äí¹ö³×Ƽ½º ¹èÆ÷
µµÄ¿ À̹ÌÁö ºôµå
Ç︧ Â÷Æ®ÀÇ ÀÇÁ¸¼º ÇØ°á
Äí¹ö³×Ƽ½º¿¡ ¹èÆ÷
Äí¹ö³×Ƽ½º ȯ°æ¿¡ ¸Â°Ô Å×½ºÆ® ½ºÅ©¸³Æ® ¼öÁ¤
µðÇ÷ÎÀ̸ÕÆ® Å×½ºÆ®
½ºÅ×ÀÌ¡ ¹× »ó¿ë ȯ°æÀ» À§ÇÑ Äí¹ö³×Ƽ½º ¹èÆ÷
¼Ò½º ÄÚµå ¼öÁ¤
Äí¹ö³×Ƽ½º¿¡ ¹èÆ÷
Á¤¸®
¿ä¾à
Áú¹®
17Àå. Äí¹ö³×Ƽ½º·Î ±âÁ¸ ½Ã½ºÅÛ È¯°æ ´ëü
±â¼ú ¿ä±¸ »çÇ×
½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö ´ëü
½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö¸¦ ´ëüÇϱâ À§ÇÑ º¯°æ ÀÛ¾÷
½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌ ´ëü
½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀ̸¦ ´ëüÇϱâ À§ÇÑ º¯°æ ÀÛ¾÷
ÀÎÁõ¼ ÇÁ·ÎºñÀú´× ÀÚµ¿È
Äí¹ö³×Ƽ½º ÄÁÇÇ±× ¸Ê, ½ÃÅ©¸´, Àα׷¹½º, cert-manager¸¦ »ç¿ëÇÑ Å×½ºÆ®
ÀÎÁõ¼ °»½Å
½ºÅ×ÀÌ¡ ¹× »ó¿ë ȯ°æÀ» À§ÇÑ Äí¹ö³×Ƽ½º ¹èÆ÷
Äí¹ö³×Ƽ½º ¾øÀ̵µ ¸¶ÀÌÅ©·Î¼ºñ½º°¡ ÀÛµ¿ÇÏ´ÂÁö È®ÀÎ
µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏÀÇ ¼öÁ¤ »çÇ×
µµÄ¿ ÄÄÆ÷Áî·Î Å×½ºÆ®
¿ä¾à
Áú¹®
18Àå. ¼ºñ½º ¸Þ½Ã¸¦ »ç¿ëÇØ °üÂû °¡´É¼º ¹× °ü¸® ÆíÀǼº °³¼±
±â¼ú ¿ä±¸ »çÇ×
À̽ºÆ¼¿À¸¦ ÀÌ¿ëÇÑ ¼ºñ½º ¸Þ½Ã ¼Ò°³
À̽ºÆ¼¿À ¼Ò°³
¸¶ÀÌÅ©·Î¼ºñ½º¿¡ À̽ºÆ¼¿À ÇÁ·Ï½Ã »ðÀÔ
À̽ºÆ¼¿ÀÀÇ API °´Ã¼ ¼Ò°³
¸¶ÀÌÅ©·Î¼ºñ½º ȯ°æ ´Ü¼øÈ
À̽ºÆ¼¿À Àα׷¹½º °ÔÀÌÆ®¿þÀÌ·Î Äí¹ö³×Ƽ½º Àα׷¹½º ÄÁÆ®·Ñ·¯ ´ëü
À̽ºÆ¼¿À ¿¹°Å ÄÄÆ÷³ÍÆ®·Î ÁýŲ ¼¹ö ´ëü
Äí¹ö³×Ƽ½º Ŭ·¯½ºÅÍ¿¡ À̽ºÆ¼¿À ¹èÆ÷
À̽ºÆ¼¿À ¼ºñ½º¿¡ ´ëÇÑ Á¢±Ù ¼³Á¤
¼ºñ½º ¸Þ½Ã »ý¼º
¼Ò½º ÄÚµå º¯°æ
Ä¿¸Çµå¸¦ ½ÇÇàÇØ ¼ºñ½º ¸Þ½Ã »ý¼º
¼ºñ½º ¸Þ½Ã °üÂû
¼ºñ½º ¸Þ½Ã º¸¾È
HTTPS¿Í ÀÎÁõ¼·Î ¿ÜºÎ ¿£µåÆ÷ÀÎÆ® º¸È£
OAuth 2.0/OIDC Á¢±Ù ÅäÅ«À» »ç¿ëÇÑ ¿ÜºÎ ¿äû ÀÎÁõ
»óÈ£ ÀÎÁõÀ» »ç¿ëÇÑ ³»ºÎ Åë½Å º¸È£
¼ºñ½º ¸Þ½ÃÀÇ º¹¿ø·Â È®º¸
°áÇÔÀ» »ðÀÔÇØ Åº·Â¼º Å×½ºÆ®
Áö¿¬À» »ðÀÔÇØ º¹¿ø·Â Å×½ºÆ®
ºñ°¡µ¿ ½Ã°£ ¾øÀÌ ¾÷µ¥ÀÌÆ® ¼öÇà
¼Ò½º ÄÚµå º¯°æ
v1 ¹× v2 ¹öÀüÀÇ ¸¶ÀÌÅ©·Î¼ºñ½º ¹èÆ÷
¸ðµç Æ®·¡ÇÈÀÌ v1 ¹öÀüÀÇ ¸¶ÀÌÅ©·Î¼ºñ½º·Î Àü´ÞµÇ´ÂÁö È®ÀÎ
Ä«³ª¸®¾Æ Å×½ºÆ® ½ÇÇà
ºí·ç/±×¸° ¹èÆ÷ ½ÇÇà
µµÄ¿ ÄÄÆ÷Áî·Î Å×½ºÆ® ½ÇÇà
¿ä¾à
Áú¹®
19Àå. EFK ½ºÅÃÀ» »ç¿ëÇÑ ·Î±ë Áß¾ÓÈ
±â¼ú ¿ä±¸ »çÇ×
Ç÷ç¾ðƼµå ¼Ò°³
Ç÷ç¾ðƼµå °³¿ä
Ç÷ç¾ðƼµå ±¸¼º
Äí¹ö³×Ƽ½º¿¡ EFK ½ºÅà ¹èÆ÷
¸¶ÀÌÅ©·Î¼ºñ½º ºôµå ¹× ¹èÆ÷
ÀÏ·¡½ºÆ½¼Ä¡¿Í Å°¹Ù³ª ¹èÆ÷
Ç÷ç¾ðƼµå ¹èÆ÷
EFK ½ºÅà ½Ç½À
Å°¹Ù³ª ÃʱâÈ
·Î±× ·¹ÄÚµå ºÐ¼®
¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ·Î±× ·¹ÄÚµå °Ë»ö
±Ùº» ¿øÀÎ ºÐ¼® ¼öÇà
¿ä¾à
Áú¹®
20Àå. ¸¶ÀÌÅ©·Î¼ºñ½º ¸ð´ÏÅ͸µ
±â¼ú ¿ä±¸ »çÇ×
ÇÁ·Î¸ÞÅ׿콺¿Í ±×¶óÆijª¸¦ »ç¿ëÇÑ ¼º´É ¸ð´ÏÅ͸µ
¾ÖÇø®ÄÉÀÌ¼Ç ¸ÞÆ®¸¯ ¼öÁýÀ» À§ÇÑ ¼Ò½º ÄÚµå º¯°æ
¸¶ÀÌÅ©·Î¼ºñ½º ºôµå ¹× ¹èÆ÷
±×¶óÆijª ´ë½Ãº¸µå¸¦ »ç¿ëÇÑ ¸¶ÀÌÅ©·Î¼ºñ½º ¸ð´ÏÅ͸µ
Å×½ºÆ®¿ë ·ÎÄà ¸ÞÀÏ ¼¹ö ¼³Ä¡
ºÎÇÏ Å×½ºÆ® ½ÇÇà
Å°¾Ë¸® ³»Àå ´ë½Ãº¸µå »ç¿ë
±âÁ¸ ±×¶óÆijª ´ë½Ãº¸µå °¡Á®¿À±â
»ç¿ëÀÚ Á¤ÀÇ ±×¶óÆijª ´ë½Ãº¸µå °³¹ß
±×¶óÆijª ´ë½Ãº¸µå ³»º¸³»±â ¹× °¡Á®¿À±â
±×¶óÆijª °æ°í ¼³Á¤
¸ÞÀÏ ±â¹Ý ¾Ë¸² ä³Î Á¤ÀÇ
¼Å¶ ºê·¹ÀÌÄ¿¿¡ °æ°í ¼³Á¤
¼Å¶ ºê·¹ÀÌÄ¿ °æ°í Å×½ºÆ®
¿ä¾à
Áú¹®
21Àå. ¸ÆOS¿ë ¼³Ä¡ Áöħ
±â¼ú ¿ä±¸ »çÇ×
µµ±¸ ¼³Ä¡
Ȩºê·ç ¼³Ä¡
Ȩºê·ç·Î µµ±¸ ¼³Ä¡
Ȩºê·ç ¾øÀÌ µµ±¸ ¼³Ä¡
¼³Ä¡ ÈÄ Á¶Ã³
¼³Ä¡ È®ÀÎ
¼Ò½º ÄÚµå ´Ù¿î·Îµå
IDE »ç¿ë
ÄÚµå ±¸Á¶
22Àå. À©µµ¿ì¿ë ¼³Ä¡ Áöħ
±â¼ú ¿ä±¸ »çÇ×
µµ±¸ ¼³Ä¡
À©µµ¿ì¿ë µµ±¸ ¼³Ä¡
WSL 2 ¸®´ª½º ¼¹ö¿¡ µµ±¸ ¼³Ä¡
¼Ò½º ÄÚµå ´Ù¿î·Îµå
ÄÚµå ±¸Á¶
23Àå. ÀÚ¹Ù ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ³×ÀÌƼºê ÄÄÆÄÀÏ
±â¼ú ¿ä±¸ »çÇ×
ÀÚ¹Ù ¼Ò½º ÄÚµåÀÇ ³×ÀÌƼºê ÄÄÆÄÀÏÀÌ ÇÊ¿äÇÑ ÀÌÀ¯
±×¶öVM ÇÁ·ÎÁ§Æ® ¼Ò°³
½ºÇÁ¸µ ³×ÀÌƼºê ÇÁ·ÎÁ§Æ® ¼Ò°³
¼Ò½º Äڵ带 ³×ÀÌƼºê À̹ÌÁö·Î ÄÄÆÄÀÏ
¼Ò½º ÄÚµå º¯°æ
ÃßÀû ¿¡ÀÌÀüÆ® ¼³Ä¡
ÃßÀû ¿¡ÀÌÀüÆ® ½ÇÇà
³×ÀÌƼºê À̹ÌÁö »ý¼º
µµÄ¿ ÄÄÆ÷Áî·Î Å×½ºÆ®
Äí¹ö³×Ƽ½º·Î Å×½ºÆ®
¿ä¾à
Áú¹®