Ã¥¼Ò°³
ÀÌ·ÐÀº źźÇÏ°Ô, ½Ç½ÀÀº ½Ç¹«¿¡ °¡±õ°Ô!
½ºÇÁ¸µ ºÎÆ®¿Í ½ºÇÁ¸µ Ŭ¶ó¿ìµå¸¦ ÀÌ¿ëÇÑ ¸ð¹ü »ç·Ê¸¦ Á÷Á¢ ½ÇÇàÇÏ¸ç ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ °³³äÀ» È®½ÇÇÏ°Ô ÀÍÈ÷ÀÚ!
¸¶ÀÌÅ©·Î¼ºñ½º´Â ¼ºñ½º °³¹ß, ±× ÀÌ»ó(Ŭ¶ó¿ìµå, ÀÎÇÁ¶ó, ÀÚµ¿È, Å×½ºÆÃ, ȸº¹¼º, º¸¾È, ÀÎÁõ, ·Î±ë, ¸ð´ÏÅ͸µ, ¹èÆ÷ µî)À» ÇÊ¿ä·Î ÇÑ´Ù. Ŭ¶ó¿ìµå¸¦ »ç¿ëÇÏ¸é ¾ÈÁ¤¼º, »ý»ê¼º, È®À强, À¯Áö º¸¼ö µî ¿©·¯ °¡Áö ¸é¿¡¼ À¯¿ëÇÏ´Ù. Ã¥¿¡¼´Â ÀÌ·¯ÇÑ ÀåÁ¡ÀÌ ÀÖ´Â ½ºÇÁ¸µ Ŭ¶ó¿ìµå¸¦ »ç¿ëÇØ ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ºôµå¿Í ¹èÆ÷¸¦ ÃÖ¼ÒÈÇϵµ·Ï Çß´Ù. ½ºÇÁ¸µ ºÎÆ®¿Í ½ºÇÁ¸µ Ŭ¶ó¿ìµå, µµÄ¿, ÇϽÃÄÚÇÁ º¼Æ®, ¾ÆÆÄÄ¡ Ä«ÇÁÄ«, ŰŬ·Ï, ¿ÀÇ ÁýŲ, ELK ½ºÅÃ, ±×¶óÆijª, ÇÁ·Î¸ÞÅ׿콺, AWS EKS, ±êÇãºê/Á¨Å²½º¸¦ »ç¿ëÇØ Äí¹ö³×Ƽ½º ±â¹ÝÀÇ ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ ±¸ÃàÇغ¸¸é¼ °³³ä°ú ½Ç¹«¸¦ µ¿½Ã¿¡ ¹è¿ï ¼ö ÀÖ´Ù. ¶ÇÇÑ, ÇÙ½É ¸¶ÀÌÅ©·Î¼ºñ½º °³¹ß ÆÐÅÏ, ¶ó¿ìÆà ÆÐÅÏ, Ŭ¶óÀ̾ðÆ® ȸº¹¼º ÆÐÅÏ, ±¸Ãà/¹èÄ¡ ÆÐÅÏ µî ÁÖ¿ä ÆÐÅϵµ ÇÔ²² »ìÆ캻´Ù. ÀÌ Ã¥À» ÅëÇØ ¾î¶»°Ô ¼ºñ½º¸¦ ¸¸µé°í °³¼±ÇØ ³ª°¥ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ ´Ù¾çÇÑ °í¹Îµé¿¡ ´ëÇÑ ÇعýÀ» ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÀúÀÚ¼Ò°³
¼ÒÇÁÆ®¿þ¾î ¾ÆÅ°ÅØÆ®À̸ç, Genesis CloudÀÇ °³¹ßÀÚ Âü¿©ÆÀÀ» À̲ø°í ÀÖ´Ù. Genesis Cloud °í°´°ú ³»ºÎ °³¹ßÀÚ¿¡°Ô Ŭ¶ó¿ìµå ±â¹ÝÀÇ ÄÁÅà ¼¾ÅÍ¿Í ÀüÈ Åë½Å ¼Ö·ç¼Ç ±¸Ãà ¹æ¹ý, Ŭ¶ó¿ìµå¿¡¼ °³¹ß ¸ð¹ü »ç·Ê¸¦ ¸¸µå´Â ¹æ¹ýÀ» °¡¸£Ä¡´Â µ¥ ´ëºÎºÐÀÇ ½Ã°£À» º¸³½´Ù. AWS Ç÷¡Æû¿¡¼ ÀüÈ Åë½Å ±â¹Ý ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ Á÷Á¢ ±¸ÃàÇÏ°í ÀÖÀ¸¸ç, ÀÚ¹Ù, Closure, Go¸¦ Æ÷ÇÔÇÑ ¿©·¯ ±â¼ú Ç÷§Æû¿¡¼ ¸¶ÀÌÅ©·Î¼ºñ½º ¼³°è ¹× ±¸Ãà ¾÷¹«¸¦ ´ã´çÇÏ°í ÀÖ´Ù.
¸ñÂ÷
1Àå ½ºÇÁ¸µ, Ŭ¶ó¿ìµå¿Í ¸¸³ª´Ù
1.1 ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó·Î ÁøÈ
__1.1.1 N-°èÃþ ¾ÆÅ°ÅØó
__1.1.2 ¸ð³î¸®½º ¾ÆÅ°ÅØó
__1.1.3 ¸¶ÀÌÅ©·Î¼ºñ½º¶õ?
__1.1.4 ¾ÖÇø®ÄÉÀÌ¼Ç ±¸Ãà ¹æ¹ýÀ» ¿Ö ¹Ù²Ù¾î¾ß ÇÒ±î?
1.2 ½ºÇÁ¸µ ¸¶ÀÌÅ©·Î¼ºñ½º
1.3 ¿ì¸®°¡ ±¸ÃàÇÒ °ÍÀº ¹«¾ùÀΰ¡?
1.4 ÀÌ Ã¥ÀÇ ³»¿ë
__1.4.1 ÀÌ Ã¥¿¡¼ ¹è¿ï ³»¿ë
__1.4.2 ÀÌ Ã¥ÀÇ ¿¬°ü¼º
1.5 Ŭ¶ó¿ìµå ¹× ¸¶ÀÌÅ©·Î¼ºñ½º ±â¹Ý ¾ÖÇø®ÄÉÀ̼Ç
__1.5.1 ½ºÇÁ¸µ ºÎÆ®·Î ¸¶ÀÌÅ©·Î¼ºñ½º ±¸ÃàÇϱâ
__1.5.2 Ŭ¶ó¿ìµå ÄÄÇ»ÆÃÀ̶õ Á¤È®È÷ ¹«¾ùÀΰ¡?
__1.5.3 ¿Ö Ŭ¶ó¿ìµå¿Í ¸¶ÀÌÅ©·Î¼ºñ½ºÀΰ¡?
1.6 ¸¶ÀÌÅ©·Î¼ºñ½º´Â ÄÚµå ÀÛ¼º ÀÌ»óÀ» ÀǹÌÇÑ´Ù
1.7 ÇÙ½É ¸¶ÀÌÅ©·Î¼ºñ½º °³¹ß ÆÐÅÏ
1.8 ¸¶ÀÌÅ©·Î¼ºñ½º ¶ó¿ìÆà ÆÐÅÏ
1.9 ¸¶ÀÌÅ©·Î¼ºñ½º Ŭ¶óÀ̾ðÆ® ȸº¹¼º
1.10 ¸¶ÀÌÅ©·Î¼ºñ½º º¸¾È ÆÐÅÏ
1.11 ¸¶ÀÌÅ©·Î¼ºñ½º ·Î±ë°ú ÃßÀû ÆÐÅÏ
1.12 ¾ÖÇø®ÄÉÀÌ¼Ç ÁöÇ¥ ÆÐÅÏ
1.13 ¸¶ÀÌÅ©·Î¼ºñ½º ºôµå/¹èÆ÷ ÆÐÅÏ
1.14 ¿ä¾à
2Àå ½ºÇÁ¸µ Ŭ¶ó¿ìµå¿Í ÇÔ²² ¸¶ÀÌÅ©·Î¼ºñ½º ¼¼°è ŽÇè
2.1 ½ºÇÁ¸µ Ŭ¶ó¿ìµå¶õ?
__2.1.1 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇDZ×
__2.1.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ¼ºñ½º µð½ºÄ¿¹ö¸®
__2.1.3 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ·Îµå ¹ë·±¼¿Í Resilience4j
__2.1.4 ½ºÇÁ¸µ Ŭ¶ó¿ìµå API °ÔÀÌÆ®¿þÀÌ
__2.1.5 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½ºÆ®¸²
__2.1.6 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º
__2.1.7 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½ÃÅ¥¸®Æ¼
2.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ¿¹Á¦ ¼Ò°³
2.3 Ŭ¶ó¿ìµå ³×ÀÌƼºê ¸¶ÀÌÅ©·Î¼ºñ½º ±¸Ãà ¹æ¹ý
__2.3.1 Äڵ庣À̽º
__2.3.2 ÀÇÁ¸¼º
__2.3.3 ±¸¼º Á¤º¸
__2.3.4 ¹é¿£µå ¼ºñ½º
__2.3.5 ºôµå, ¸±¸®½º, ½ÇÇà
__2.3.6 ÇÁ·Î¼¼½º
__2.3.7 Æ÷Æ® ¹ÙÀεù
__2.3.8 µ¿½Ã¼º
__2.3.9 Æó±â °¡´É
__2.3.10 °³¹ß ¹× ¿î¿µ ȯ°æ ÀÏÄ¡
__2.3.11 ·Î±×
__2.3.12 °ü¸® ÇÁ·Î¼¼½º
2.4 ÀûÀýÇÑ ¿¹Á¦ µµÀÔ
2.5 ½ºÇÁ¸µ ºÎÆ®¿Í ÀÚ¹Ù·Î ¸¶ÀÌÅ©·Î¼ºñ½º ¸¸µé±â
__2.5.1 ȯ°æ ¼³Á¤
__2.5.2 »À´ë ÇÁ·ÎÁ§Æ® ½ÃÀÛÇϱâ
__2.5.3 ½ºÇÁ¸µ ºÎÆ® ¾ÖÇø®ÄÉÀÌ¼Ç ºÎÆÃÇϱâ: ºÎÆ®½ºÆ®·¦ Ŭ·¡½º ÀÛ¼º
2.6 ¿ä¾à
3Àå ½ºÇÁ¸µ ºÎÆ®·Î ¸¶ÀÌÅ©·Î¼ºñ½º ±¸ÃàÇϱâ
3.1 ¾ÆÅ°ÅØÆ® À̾߱â: ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó ¼³°è
__3.1.1 ºñÁî´Ï½º ¹®Á¦ ºÐÇØ
__3.1.2 ¼ºñ½º ¼¼ºÐÈ È®Á¤
__3.1.3 ¼ºñ½º ÀÎÅÍÆäÀ̽º ¼³°è
3.2 ¸¶ÀÌÅ©·Î¼ºñ½º¸¦ »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÒ ¶§
__3.2.1 ºÐ»ê ½Ã½ºÅÛ ±¸ÃàÀÇ º¹À⼺
__3.2.2 ¼¹ö ¶Ç´Â ÄÁÅ×ÀÌ³Ê ½ºÇÁ·Ñ
__3.2.3 ¾ÖÇø®ÄÉÀÌ¼Ç Å¸ÀÔ
__3.2.4 µ¥ÀÌÅÍ Æ®·£Àè¼Ç°ú ÀÏ°ü¼º
3.3 °³¹ßÀÚ À̾߱â: ½ºÇÁ¸µ ºÎÆ®¿Í ÀÚ¹Ù
__3.3.1 ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ÃâÀÔ±¸ ¸¸µé±â: ½ºÇÁ¸µ ºÎÆ® ÄÁÆ®·Ñ·¯
__3.3.2 ¶óÀ̼±½Ì ¼ºñ½º¿¡ ±¹Á¦È Ãß°¡Çϱâ
__3.3.3 °ü·Ã ¸µÅ©¸¦ Ç¥½ÃÇÏ´Â ½ºÇÁ¸µ HATEOAS ±¸Çö
3.4 µ¥ºê¿É½º À̾߱â: Ȥµ¶ÇÑ ·±Å¸ÀÓ ±¸Ãà
__3.4.1 ¼ºñ½º Á¶¸³: ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ÆÐŰ¡°ú ¹èÆ÷
__3.4.2 ¼ºñ½º ºÎÆ®½ºÆ®·¡ÇÎ: ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ ±¸¼º °ü¸®
__3.4.3 ¼ºñ½º µî·Ï°ú µð½ºÄ¿¹ö¸®: Ŭ¶óÀ̾ðÆ®°¡ ¸¶ÀÌÅ©·Î¼ºñ½º¿Í Åë½ÅÇÏ´Â ¹æ¹ý
__3.4.4 ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ »óÅ Àü´Þ
3.5 ¸ðµç °üÁ¡ ÅëÇÕÇϱâ
3.6 ¿ä¾à
4Àå µµÄ¿
4.1 ÄÁÅ×ÀÌ³Ê ¶Ç´Â °¡»ó ¸Ó½Å?
4.2 µµÄ¿¶õ?
4.3 Dockerfiles
4.4 µµÄ¿ ÄÄÆ÷Áî
4.5 ¸¶ÀÌÅ©·Î¼ºñ½º¿Í µµÄ¿ ÅëÇÕÇϱâ
__4.5.1 µµÄ¿ À̹ÌÁö ¸¸µé±â
__4.5.2 ½ºÇÁ¸µ ºÎÆ®·Î µµÄ¿ À̹ÌÁö »ý¼ºÇϱâ
__4.5.3 µµÄ¿ ÄÄÆ÷Áî·Î ¼ºñ½º ½ÇÇàÇϱâ
4.6 ¿ä¾à
5Àå ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö·Î ±¸¼º °ü¸®
5.1 ±¸¼º(±×¸®°í º¹À⼺) °ü¸®
__5.1.1 ±¸¼º °ü¸® ¾ÆÅ°ÅØó
__5.1.2 ±¸Çö ¼Ö·ç¼Ç ¼±ÅÃ
5.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö ±¸Ãà
__5.2.1 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ºÎÆ®½ºÆ®·¦ Ŭ·¡½º ¼³Á¤
__5.2.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö¿¡ ÆÄÀÏ ½Ã½ºÅÛ »ç¿ë
__5.2.3 ¼ºñ½ºÀÇ ±¸¼º ÆÄÀÏ ¼³Á¤
5.3 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±×¿Í ½ºÇÁ¸µ ºÎÆ® Ŭ¶óÀ̾ðÆ® ÅëÇÕ
__5.3.1 ¶óÀ̼±½Ì ¼ºñ½ºÀÇ ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼ºñ½º ÀÇÁ¸¼º ¼³Á¤
__5.3.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× »ç¿ëÀ» À§ÇÑ ¶óÀ̼±½Ì ¼ºñ½º ±¸¼º
__5.3.3 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ¼Ò½º ¿¬°á
__5.3.4 @ConfigurationProperties¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÆÛƼ Á÷Á¢ Àбâ
__5.3.5 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÆÛƼ °»½Å
__5.3.6 ±ê°ú ÇÔ²² ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼¹ö »ç¿ë
__5.3.7 º¼Æ®¿Í ½ºÇÁ¸µ Ŭ¶ó¿ìµå ÄÁÇÇ±× ¼ºñ½º ÅëÇÕ
__5.3.8 º¼Æ® UI
5.4 Áß¿äÇÑ ±¸¼º Á¤º¸ º¸È£
__5.4.1 ´ëĪ ¾ÏÈ£È Å° ¼³Á¤
__5.4.2 ÇÁ·ÎÆÛƼ ¾ÏÈ£È¿Í º¹È£È
5.5 ¸¶Ä¡¸ç
5.6 ¿ä¾à
6Àå ¼ºñ½º µð½ºÄ¿¹ö¸®
6.1 ¼ºñ½º À§Ä¡ È®ÀÎ
6.2 Ŭ¶ó¿ìµå¿¡¼ ¼ºñ½º µð½ºÄ¿¹ö¸®
__6.2.1 ¼ºñ½º µð½ºÄ¿¹ö¸® ¾ÆÅ°ÅØó
__6.2.2 ½ºÇÁ¸µ°ú ³ÝÇø¯½º À¯·¹Ä«¸¦ »ç¿ëÇÑ ¼ºñ½º µð½ºÄ¿¹ö¸®
6.3 ½ºÇÁ¸µ À¯·¹Ä« ¼ºñ½º ±¸Ãà
6.4 ½ºÇÁ¸µ À¯·¹Ä«¿¡ ¼ºñ½º µî·Ï
__6.4.1 À¯·¹Ä« REST API
__6.4.2 À¯·¹Ä« ´ë½Ãº¸µå
6.5 ¼ºñ½º µð½ºÄ¿¹ö¸®¸¦ ÀÌ¿ëÇÑ ¼ºñ½º °Ë»ö
__6.5.1 ½ºÇÁ¸µ Discovery Client·Î ¼ºñ½º ÀνºÅϽº °Ë»ö
__6.5.2 ·Îµå ¹ë·±¼¸¦ Áö¿øÇÏ´Â ½ºÇÁ¸µ REST ÅÛÇø´À¸·Î ¼ºñ½º È£Ãâ
__6.5.3 ³ÝÇø¯½º Feign Ŭ¶óÀ̾ðÆ®·Î ¼ºñ½º È£Ãâ
6.6 ¿ä¾à
7Àå ³ª»Û »óȲ¿¡ ´ëºñÇÑ ½ºÇÁ¸µ Ŭ¶ó¿ìµå¿Í Resilience4j¸¦ »ç¿ëÇÑ È¸º¹¼º ÆÐÅÏ
7.1 Ŭ¶óÀ̾ðÆ® Ãø ȸº¹¼ºÀ̶õ?
__7.1.1 Ŭ¶óÀ̾ðÆ® Ãø ·Îµå ¹ë·±½Ì
__7.1.2 ȸ·Î Â÷´Ü±â
__7.1.3 Æú¹é ó¸®
__7.1.4 ¹úÅ©Çìµå
7.2 Ŭ¶óÀ̾ðÆ® ȸº¹¼ºÀÌ Áß¿äÇÑ ÀÌÀ¯
7.3 Resilience4j ±¸Çö
7.4 ½ºÇÁ¸µ Ŭ¶ó¿ìµå¿Í Resilience4j¸¦ »ç¿ëÇÏ´Â ¶óÀ̼±½Ì ¼ºñ½º ¼³Á¤
7.5 ȸ·Î Â÷´Ü±â ±¸Çö
__7.5.1 Á¶Á÷ ¼ºñ½º¿¡ ȸ·Î Â÷´Ü±â Ãß°¡
__7.5.2 ȸ·Î Â÷´Ü±â »ç¿ëÀÚ Á¤ÀÇ
7.6 Æú¹é ó¸®
7.7 ¹úÅ©Çìµå ÆÐÅÏ ±¸Çö
7.8 Àç½Ãµµ ÆÐÅÏ ±¸Çö
7.9 ¼Óµµ Á¦Çѱâ ÆÐÅÏ ±¸Çö
7.10 ThreadLocal°ú Resilience4j
7.11 ¿ä¾à
8Àå ½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀ̸¦ ÀÌ¿ëÇÑ ¼ºñ½º ¶ó¿ìÆÃ
8.1 ¼ºñ½º °ÔÀÌÆ®¿þÀ̶õ?
8.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌ ¼Ò°³
__8.2.1 ½ºÇÁ¸µ ºÎÆ® °ÔÀÌÆ®¿þÀÌ ÇÁ·ÎÁ§Æ® ¼³Á¤
__8.2.2 À¯·¹Ä«¿Í Åë½ÅÇÏ´Â ½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌ ±¸¼º
8.3 ½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌ¿¡¼ ¶ó¿ìÆà ±¸¼º
__8.3.1 ¼ºñ½º µð½ºÄ¿¹ö¸®¸¦ ÀÌ¿ëÇÑ ÀÚµ¿ °æ·Î ¸ÅÇÎ
__8.3.2 ¼ºñ½º µð½ºÄ¿¹ö¸®¸¦ ÀÌ¿ëÇÑ ¼öµ¿ °æ·Î ¸ÅÇÎ
__8.3.3 µ¿ÀûÀ¸·Î ¶ó¿ìÆà ±¸¼ºÀ» Àç·Îµù
8.4 ½ºÇÁ¸µ Ŭ¶ó¿ìµå °ÔÀÌÆ®¿þÀÌÀÇ ÁøÁ¤ÇÑ ´É·Â: Predicate°ú Filter Factories
__8.4.1 °ÔÀÌÆ®¿þÀÌ Predicate Factories
__8.4.2 °ÔÀÌÆ®¿þÀÌ Filter Factories
__8.4.3 »ç¿ëÀÚ Á¤ÀÇ ÇÊÅÍ
8.5 »çÀü ÇÊÅÍ ¸¸µé±â
8.6 ¼ºñ½º¿¡¼ »ó°ü°ü°è ID »ç¿ë
__8.6.1 À¯ÀԵǴ HTTP ¿äûÀ» °¡·Îä´Â UserContextFilter
__8.6.2 ¼ºñ½º¿¡ ½±°Ô ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â HTTP Çì´õ¸¦ ¸¸µå´Â UserContext
__8.6.3 »ó°ü°ü°è ID ÀüÆĸ¦ À§ÇÑ »ç¿ëÀÚ Á¤ÀÇ RestTemplate°ú UserContextInterceptor
8.7 »ó°ü°ü°è ID¸¦ ¼ö½ÅÇÏ´Â »çÈÄ ÇÊÅÍ ÀÛ¼º
8.8 ¿ä¾à
9Àå ¸¶ÀÌÅ©·Î¼ºñ½º º¸¾È
9.1 OAuth2 ¼Ò°³
9.2 ŰŬ·Ï ¼Ò°³
9.3 ÀÛ°Ô ½ÃÀÛÇϱâ: ½ºÇÁ¸µ°ú ŰŬ·ÏÀ¸·Î ÇÑ °³ÀÇ ¿£µåÆ÷ÀÎÆ® º¸È£
__9.3.1 µµÄ¿¿¡ ŰŬ·Ï Ãß°¡Çϱâ
__9.3.2 ŰŬ·Ï ¼³Á¤
__9.3.3 Ŭ¶óÀ̾ðÆ® ¾ÖÇø®ÄÉÀÌ¼Ç µî·Ï
__9.3.4 O-stock »ç¿ëÀÚ ±¸¼º
__9.3.5 O-stock »ç¿ëÀÚ ÀÎÁõ
9.4 ŰŬ·ÏÀ¸·Î Á¶Á÷ ¼ºñ½º º¸È£Çϱâ
__9.4.1 ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼¿Í ŰŬ·Ï JARs¸¦ ¼ºñ½º¿¡ Ãß°¡
__9.4.2 ŰŬ·Ï ¼¹ö Á¢¼ÓÀ» À§ÇÑ ¼ºñ½º ±¸¼º
__9.4.3 ¼ºñ½º¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â »ç¿ëÀÚ ¹× ´ë»ó Á¤ÀÇ
__9.4.4 ¾×¼¼½º ÅäÅ« ÀüÆÄ
__9.4.5 JWTÀÇ »ç¿ëÀÚ Á¤ÀÇ Çʵå ÆĽÌ
9.5 ¸¶ÀÌÅ©·Î¼ºñ½º º¸¾ÈÀ» ¸¶Ä¡¸ç
__9.5.1 ¸ðµç ¼ºñ½º Åë½Å¿¡ HTTPS/SSLÀ» »ç¿ëÇ϶ó
__9.5.2 ¼ºñ½º °ÔÀÌÆ®¿þÀ̸¦ »ç¿ëÇÏ¿© ¸¶ÀÌÅ©·Î¼ºñ½º¿¡ Á¢±ÙÇ϶ó
__9.5.3 °ø°³ API ¹× ºñ°ø°³ API ¿µ¿ªÀ» ÁöÁ¤Ç϶ó
__9.5.4 ºÒÇÊ¿äÇÑ ³×Æ®¿öÅ© Æ÷Æ®¸¦ Â÷´ÜÇؼ ¸¶ÀÌÅ©·Î¼ºñ½º °ø°Ý ÁöÁ¡À» Á¦ÇÑÇ϶ó
9.6 ¿ä¾à
10Àå ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½ºÆ®¸²À» »ç¿ëÇÑ À̺¥Æ® ±â¹Ý ¾ÆÅ°ÅØó
10.1 ¸Þ½Ã¡°ú EDA, ¸¶ÀÌÅ©·Î¼ºñ½ºÀÇ »ç·Ê
__10.1.1 µ¿±â½Ä ¿äû- ÀÀ´ä ¹æ½ÄÀ¸·Î »óÅ º¯È Àü´Þ
__10.1.2 ¸Þ½Ã¡À» »ç¿ëÇÑ ¼ºñ½º °£ »óÅ º¯È Àü´Þ
__10.1.3 ¸Þ½Ã¡ ¾ÆÅ°ÅØóÀÇ ´ÜÁ¡
10.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½ºÆ®¸² ¼Ò°³
10.3 °£´ÜÇÑ ¸Þ½ÃÁö »ý»êÀÚ¿Í ¼ÒºñÀÚ ÀÛ¼º
__10.3.1 ¾ÆÆÄÄ¡ Ä«ÇÁÄ« ¹× ·¹µð½º µµÄ¿ ±¸¼º
__10.3.2 Á¶Á÷ ¼ºñ½º¿¡¼ ¸Þ½ÃÁö »ý»êÀÚ ÀÛ¼º
__10.3.3 ¶óÀ̼±½Ì ¼ºñ½º¿¡¼ ¸Þ½ÃÁö ¼ÒºñÀÚ ÀÛ¼º
__10.3.4 ¸Þ½ÃÁö ¼ºñ½º µ¿ÀÛ º¸±â
10.4 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½ºÆ®¸² »ç¿ë »ç·Ê: ºÐ»ê ij½Ì
__10.4.1 ij½Ã °Ë»öÀ» À§ÇÑ ·¹µð½º
__10.4.2 »ç¿ëÀÚ Á¤ÀÇ Ã¤³Î ¼³Á¤
10.5 ¿ä¾à
11Àå ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º¿Í ÁýŲÀ» ÀÌ¿ëÇÑ ºÐ»ê ÃßÀû
11.1 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º¿Í »ó°ü°ü°è ID
__11.1.1 ¶óÀ̼±½Ì ¹× Á¶Á÷ ¼ºñ½º¿¡ ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º Ãß°¡
__11.1.2 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½ºÀÇ ÃßÀû ºÐ¼®
11.2 ·Î±× ¼öÁý°ú ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º
__11.2.1 µ¿ÀÛÇÏ´Â ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º/ELK ½ºÅà ±¸Çö
__11.2.2 ¼ºñ½º¿¡¼ ·Î±×¹é ±¸¼º
__11.2.3 µµÄ¿¿¡¼ ELK ½ºÅà ¾ÖÇø®ÄÉÀÌ¼Ç Á¤ÀÇ ¹× ½ÇÇà
__11.2.4 Å°¹Ù³ª ±¸¼º
__11.2.5 Å°¹Ù³ª¿¡¼ ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½ºÀÇ ÃßÀû ID °Ë»ö
11.3 ÁýŲÀ» »ç¿ëÇÑ ºÐ»ê ÃßÀû
__11.3.1 ½ºÇÁ¸µ Ŭ¶ó¿ìµå ½½·ç½º¿Í ÁýŲ ÀÇÁ¸¼º ¼³Á¤
__11.3.2 ÁýŲ ¿¬°áÀ» À§ÇÑ ¼ºñ½º ±¸¼º ¼³Á¤
__11.3.3 ÁýŲ ¼¹ö ±¸¼º
__11.3.4 ÃßÀû ·¹º§ ¼³Á¤
__11.3.5 ÁýŲÀ¸·Î Æ®·£Àè¼Ç ÃßÀû
__11.3.6 ´õ º¹ÀâÇÑ Æ®·£Àè¼ÇÀÇ ½Ã°¢È
__11.3.7 ¸Þ½Ã¡ ÃßÀû ¼öÁý
__11.3.8 »ç¿ëÀÚ Á¤ÀÇ ½ºÆÒ
11.4 ¿ä¾à
12Àå ¸¶ÀÌÅ©·Î¼ºñ½º ¹èÆ÷
12.1 ºôµå/¹èÆ÷ ÆÄÀÌÇÁ¶óÀÎ ¾ÆÅ°ÅØó
12.2 Ŭ¶ó¿ìµå¿¡ O-stock ÇÙ½É ÀÎÇÁ¶ó½ºÆ®·°Ã³ ¼³Á¤
__12.2.1 ¾Æ¸¶Á¸ RDS¸¦ »ç¿ëÇÑ PostgreSQL µ¥ÀÌÅͺ£À̽º »ý¼º
__12.2.2 ¾Æ¸¶Á¸¿¡ ·¹µð½º Ŭ·¯½ºÅÍ ±¸Ãà
12.3 ÀÎÇÁ¶ó½ºÆ®·°Ã³¸¦ ³Ñ¾î: O-stock°ú ELK ¹èÆ÷
__12.3.1 ELK EC2 »ý¼º
__12.3.2 EC2 ÀνºÅϽº¿¡ ELK ½ºÅà ¹èÆ÷
__12.3.3 EKS Ŭ·¯½ºÅÍ »ý¼º
12.4 ºôµå/¹èÆ÷ ÆÄÀÌÇÁ¶óÀÎ ÀÎ ¾×¼Ç
12.5 ºôµå/¹èÆ÷ ÆÄÀÌÇÁ¶óÀÎ »ý¼º
__12.5.1 ±êÇãºê ¼³Á¤
__12.5.2 Á¨Å²½º¿¡¼ ¼ºñ½º ºôµå È°¼ºÈ
__12.5.3 ÆÄÀÌÇÁ¶óÀÎ ½ºÅ©¸³Æ® ÀÌÇØ ¹× ÀÛ¼º
__12.5.4 Äí¹ö³×Ƽ½º ÆÄÀÌÇÁ¶óÀÎ ½ºÅ©¸³Æ® ÀÛ¼º
12.6 ºôµå/¹èÆ÷ ÆÄÀÌÇÁ¶óÀÎ °íÂû
12.7 ¿ä¾à
ºÎ·Ï A ¸¶ÀÌÅ©·Î¼ºñ½º ¾ÆÅ°ÅØó ¸ð¹ü »ç·Ê
A.1 ¸®Ã³µå½¼ ¼º¼÷µµ ¸ðµ¨
A.2 ½ºÇÁ¸µ HATEOAS
A.3 ±¸¼º ¿ÜºÎÈ
A.4 Áö¼ÓÀû ÅëÇÕ(CI)°ú Áö¼ÓÀû Àü´Þ(CD)
A.5 ¸ð´ÏÅ͸µ
A.6 ·Î±ë
A.7 API °ÔÀÌÆ®¿þÀÌ
ºÎ·Ï B OAuth2 ±×·£Æ® ŸÀÔ
B.1 Æнº¿öµå ±×·£Æ® ŸÀÔ
B.2 Ŭ¶óÀ̾ðÆ® ÀÚ°Ý Áõ¸í ±×·£Æ® ŸÀÔ
B.3 Àΰ¡ ÄÚµå ±×·£Æ® ŸÀÔ
B.4 ¾Ï½ÃÀû ±×·£Æ® ŸÀÔ
B.5 ÅäÅ« ¸®ÇÁ·¹½Ã ¹æ¹ý
ºÎ·Ï C ¼ºñ½º ¸ð´ÏÅ͸µ
C.1 ½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ·Î ¸ð´ÏÅ͸µ
__C.1.1 ½ºÇÁ¸µ ºÎÆ® ¾×Ãß¿¡ÀÌÅÍ Ãß°¡
__C.1.2 ¾×Ãß¿¡ÀÌÅÍ ¿£µåÆ÷ÀÎÆ® È°¼ºÈ
C.2 ¸¶ÀÌÅ©·Î¹ÌÅÍ¿Í ÇÁ·Î¸ÞÅ׿콺 ¼³Á¤
__C.2.1 ¸¶ÀÌÅ©·Î¹ÌÅÍ¿Í ÇÁ·Î¸ÞÅ׿콺ÀÇ ÀÌÇØ
__C.2.2 ¸¶ÀÌÅ©·Î¹ÌÅÍ¿Í ÇÁ·Î¸ÞÅ׿콺 ±¸Çö
C.3 ±×¶óÆijª ±¸¼º
C.4 ¿ä¾à