ITÁ¤º¸´º½º
2022.06.14 / 23:59

ÀÚ¹Ù¤ýÀÚ¹Ù½ºÅ©¸³Æ®¿ë Ç® ½ºÅà ÇÁ·¹ÀÓ¿öÅ©, Á¦ÀÌÈü½ºÅÍÀÇ ÀÌÇØ

ŹÃÄ
Ãßõ ¼ö 137

Á¦ÀÌÈü½ºÅÍ(JHipster)´Â ¸®¾×Ƽºê ÇÁ·ÐÆ® ¿£µå¸¦ »ç¿ëÇÑ Ç® ½ºÅà ÀÚ¹Ù ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀ» ½±°Ô ÇÑ´Ù´Â ¿ø´ëÇÑ ¸ñÇ¥·Î ¿À·¡ Àü¿¡ ½ÃÀÛµÈ ÀÚ¹Ù/ÀÚ¹Ù½ºÅ©¸³Æ® ÇÏÀ̺긮µå ÇÁ·ÎÁ§Æ®´Ù. Á¦ÀÌÈü½ºÅÍ °³¹ßÆÀÀº ¾÷°èÀÇ º¯È­¿¡ º¸Á¶¸¦ ¸ÂÃç ²ÙÁØÈ÷ »õ ¹öÀüÀ» ³»³ù´Âµ¥, ¿©±â¼­´Â °£´ÜÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¸é¼­ ÀÌ ÇÁ·¹ÀÓ¿öÅ©·Î ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¾Æº¸ÀÚ. 
 

Á¦ÀÌÈü½ºÅͶõ

±âº»ÀûÀ¸·Î Á¦ÀÌÈü½ºÅÍ(JHipster)´Â ÇÁ·ÐÆ® ¿£µå¿ë ¸®¾×Æ®(React), ºä(Vue), ¾Þ±Ö·¯(Angular)¸¦ Áö¿øÇÏ¸ç ½ºº§Æ®(Svelte)¸¦ ºñ·ÔÇÑ ´Ù¸¥ ÇÁ·¹ÀÓ¿öÅ©´Â ºí·çÇÁ¸°Æ®(blueprints)¶ó´Â Ç÷¯±×ÀÎÀ» ÅëÇØ Áö¿øÇÑ´Ù. ¹é¿£µåÀÇ °æ¿ì ½ºÇÁ¸µ ºÎÆ®(Spring Boot)ÀÇ ºñÁßÀÌ Å©´Ù. Èú¶ó(Hilla) ÇÁ·¹ÀÓ¿öÅ©¿Í ºñ½ÁÇÏÁö¸¸, ±¤¹üÀ§ÇÑ ÇÁ·ÐÆ® ¿£µå ½ºÅÃÀ» Áö¿øÇÑ´Ù´Â ´õ Å« ¸ñÇ¥¸¦ °®°í ÀÖ´Ù. ±âº»ÀûÀ¸·Î Á¦ÀÌÈü½ºÅÍ´Â ÀÚ¹Ù ¹× ÀÚ¹Ù½ºÅ©¸³Æ® ºôµå ÅøüÀÎÀ» ÅëÇÕÇÏ°í ±× À§¿¡ ´Ù¾çÇÑ °ü¸® ±â´ÉÀ» µ¡¾º¿ì´Â °í±Þ ºôµå ÅøÀÌ´Ù. 

Á¦ÀÌÈü½ºÅÍ´Â Ç® ½ºÅà ¾ÖÇø®ÄÉÀÌ¼Ç ¿Ü¿¡ ¸¶ÀÌÅ©·Î¼­ºñ½º ±¸¼º¿ä¼Ò¸¦ Áö¿øÇϸç JPA ±â¹Ý °ü°èÇü µ¥ÀÌÅͺ£À̽º¿Í ¸ù°íDB(MongoDB), Ä«»êµå¶ó(Cassandra) °°Àº NoSQL µ¥ÀÌÅͽºÅä¾î¸¦ À§ÇÑ °ñ°ÝÀ» Á¦°øÇÑ´Ù. ·Î±ë°ú ºÐ¼®À» À§ÇÑ ±â´Éµµ ÀÖ´Ù. 

Á¦ÀÌÈü½ºÅÍÀÇ Åø¼Â¿¡´Â ¸í·ÉÁÙ ¹× µµ¸ÞÀκ° ¾ð¾î(DSL)¿Í ½Ã°¢Àû µ¥ÀÌÅÍ ¸ðµ¨·¯ ¹× À¥ ±â¹Ý »ý¼ºÀÚ(constructor)°¡ Æ÷ÇԵȴÙ(½ºÇÁ¸µ À̴ϼȶóÀÌÀú(Spring Initializr)ÀÇ °­È­µÈ ÇüŶó°í º¸¸é µÈ´Ù). ¿©±â¼­´Â ¸í·ÉÁÙÀ» »ç¿ëÇØ ½ÃÀÛÇÑ´Ù. Âü°í·Î ºñ±³Àû ÃֽŠÀÚ¹Ù, Node.js, ±ê ¹öÀüÀÌ ¼³Ä¡µÈ ½Ã½ºÅÛÀÌ ÇÊ¿äÇÏ´Ù. 
 

Á¦ÀÌÈü½ºÅÍ ¿¹Á¦ ¾ÖÇø®ÄÉÀ̼Ǡ

Á¦ÀÌÈü½ºÅÍ Äü½ºÅ¸Æ®¿¡ µû¶ó generator-jhipster NPM ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ°í »ý¼º±â¸¦ ½ÇÇàÇÒ »õ µð·ºÅ͸®¸¦ ¸¸µç´Ù. <È­¸é 1>°ú ºñ½ÁÇÑ ÀÎÅÍ·¢Æ¼ºê ÇÁ·ÒÇÁÆ®°¡ Ç¥½ÃµÉ °ÍÀÌ´Ù. 
 

<È­¸é 1> Á¦³Ê·¹ÀÌÅÍ Á¦ÀÌÈü½ºÅÍ ÀÎÅÍ·¢Æ¼ºê ºô´õ © IDG


´ëºÎºÐ ±âº»°ª ±×´ë·Î µÎ¸é µÇÁö¸¸ ¿©±â¼­´Â ¸ù°íDB¸¦ µ¥ÀÌÅͺ£À̽º·Î, ¸®¾×Æ®¸¦ ÇÁ·ÐÆ® ¿£µå ÇÁ·¹ÀÓ¿öÅ©·Î »ç¿ëÇÑ´Ù(ºÎÃ÷¿öÄ¡(Bootswatch) Å׸¶´Â ÃëÇâ¿¡ µû¶ó ¼±ÅÃÇÏ¸é µÈ´Ù). ÀÌ·¸°Ô ¿É¼ÇÀ» Á¤ÇÏ°í ³ª¸é Á¦ÀÌÈü½ºÅÍ°¡ ÀÛµ¿ÇØ Á¶±ÝÀü¿¡ ¸¸µç µð·ºÅ͸®¿¡ »õ ¾ÖÇø®ÄÉÀ̼ÇÀ» »ý¼ºÇÑ´Ù. À̸¦ ½ÇÇàÇÏ·Á¸é ½Ã½ºÅÛ¿¡ ¸ù°íDB°¡ ÀÖ¾î¾ß ÇÑ´Ù. ¼³Ä¡ ÁöħÀº ¸ù°íDB ¼³¸í¼­¸¦ Âü°íÇÑ´Ù.
 

¾ÖÇø®ÄÉÀÌ¼Ç ºôµå¿Í ½ÇÇà 

ÀÌÁ¦ Á¦ÀÌÈü½ºÅÍ°¡ Ç® ½ºÅà ÀÚ¹Ù ¹× ÀÚ¹Ù½ºÅ©¸³Æ® ¾ÖÇø®ÄÉÀ̼ÇÀÇ µÎ ºÎºÐÀ» »ý¼ºÇÑ´Ù. ¹é¿£µå´Â ¸ÞÀ̺ì(Maven)À¸·Î, ÇÁ·ÐÆ® ¿£µå´Â À¥ÆÑ(webpack)À¸·Î ±¸ÃàµÆ´Ù. µÎ ºÎºÐÀ» µ¿½Ã¿¡ ½ÇÇàÇØ ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´Ù(¹é±×¶ó¿îµå¿¡¼­ ¸ù°íDBµµ ½ÇÇà ÁßÀ̾î¾ß ÇÑ´Ù). ¼Ð¿¡¼­ ./mvn -P-webappÀ» ÀÔ·ÂÇÑ´Ù. ÀÌ ¸í·ÉÀº ÀÚ¹Ù ¹é¿£µå¸¦ ºôµåÇÏ°í ½ÇÇàÇÑ´Ù. ¸ÞÀ̺ìÀÌ À¥ÆÑ ºÎºÐÀ» ½ÇÇàÇÏÁö ¾Êµµ·Ï Çϱâ À§ÇØ -P-webapp Ç÷¡±×¸¦ »ç¿ëÇÑ´Ù. 

´Ù¸¥ ¼Ð¿¡¼­ npm start¸¦ ÀÔ·ÂÇÑ´Ù. ÀÌ ¸í·ÉÀº ÇÁ·ÐÆ® ¿£µå¸¦ ºôµåÇؼ­ À¥ÆÑÀÇ dev ¸ðµå·Î ½ÇÇàÇϸç API È£ÃâÀº ¹æ±Ý ¸¸µç ÀÚ¹Ù ¼­¹ö¸¦ ÇâÇÑ´Ù. ¸ðµç ºÎºÐÀÌ ¿øÈ°ÇÏ°Ô ÁøÇàµÆ´Ù¸é localhost:8080¿¡¼­ <È­¸é 2>¿Í °°Àº È­¸éÀÌ Ç¥½ÃµÈ´Ù. 
 

<È­¸é 2> Á¦ÀÌÈü½ºÅÍ À£ÄÄ È­¸é © IDG

 

Å×½ºÆ® »ç¿ëÀÚ ¸¸µé±â

ÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀº ²Ä²ÄÈ÷ »ìÆ캼 ÇÊ¿ä°¡ ÀÖ´Ù. ¸ÕÀú Á¦ÀÌÈü½ºÅÍÀÇ »ý¼º±â´Â ±â´ÉÀû »ç¿ëÀÚ °ü¸®, JWT ±â¹Ý ÀÎÁõ ½Ã½ºÅÛÀ» Æ÷ÇÔÇØ ÀϹÝÀûÀÎ Åø¿¡ ºñÇØ ÈξÀ ´õ ¸¹Àº ¿ä¼Ò¸¦ Ãâ·ÂÇÑ´Ù. ¶ÇÇÑ, ¾ÖÇø®ÄÉÀ̼ǿ¡´Â ±âº» °èÁ¤ÀÌ Àִµ¥ ÀÌ °èÁ¤À» »ç¿ëÇØ Å×½ºÆ® »ç¿ëÀÚ¸¦ ¸¸µç´Ù.

½ÃÀÛÇÏ·Á¸é ¾ÖÇø®ÄÉÀÌ¼Ç È­¸é ¿À¸¥ÂÊ »ó´ÜÀÇ µî·Ï(Register) ¿É¼ÇÀ» »ç¿ëÇØ »õ »ç¿ëÀÚ¸¦ ¸¸µç´Ù. ±× ´ÙÀ½ Å×½ºÆ® »ç¿ëÀÚ(test@test.com)¸¦ ¸¸µé°í ·Î±×ÀÎ(log in)À¸·Î À̵¿ÇØ ±âº» admin/admin »ç¿ëÀÚ¸¦ ¼±ÅÃÇÑ´Ù. »ç¿ëÀÚ °ü¸® È­¸éÀ¸·Î À̵¿Çϸé(Administration(°ü¸®) > User Management(»ç¿ëÀÚ °ü¸®)) »õ »ç¿ëÀÚ¸¦ º¼ ¼ö ÀÖ´Ù. ºñÈ°¼º ¹öÆ°À» È°¼ºÀ¸·Î ÀüȯÇØ »ç¿ëÀÚ¸¦ È°¼ºÈ­ÇÑ ´ÙÀ½ Å×½ºÆ® »ç¿ëÀÚ·Î ·Î±×ÀÎÇÑ´Ù. Âü°í·Î ÀÌ »ç¿ëÀÚ´Â °ü¸® Äֿܼ¡ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù. 

¾Õ¼­ ¼³¸íÇÑ °Íó·³ Á¦ÀÌÈü½ºÅÍ´Â ¸®¾×Æ®, ¸ù°íDB ½ºÅûӸ¸ ¾Æ´Ï¶ó ¾Þ±Ö·¯, ºä, ±×¸®°í ´Ù¾çÇÑ SQL ¹× NoSQL µ¥ÀÌÅͽºÅä¾î¸¦ Áö¿øÇÑ´Ù. ÀÌ ¶§¹®¿¡ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â ±â´ÉÀÌ »ó´çÈ÷ ¸¹´Ù. 
 

ÄÚµå »ìÆ캸±â 

Á¦ÀÌÈü½ºÅÍ´Â ÀÌ·¯ÇÑ ¸ðµç ±â´ÉÀ» Áö¿øÇϱâ À§ÇÑ ¸¹Àº Äڵ带 Á¦°øÇÑ´Ù. ÁÁÀº Á¡Àº ÄÚµåÀÇ ´ëºÎºÐÀÌ ÃÖ½ÅÀÌ°í ÇÁ·Î±×·¡¹Ö ¸ð¹ü »ç·Ê¸¦ µû¸¥´Ù´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î ¸®¾×Æ® ÄÚµå´Â ÇÔ¼öÇü ±¸¼º¿ä¼Ò¸¦ »ç¿ëÇÏ°í ÈÄÅ©¸¦ È°¿ëÇϸç Áß¾ÓÈ­µÈ ¸®´ö½º(Redux) ½ºÅä¾î¸¦ ´ë»óÀ¸·Î ½ÇÇàµÈ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç µð·ºÅ͸®¸¦ º¸¸é ´ÙÀ½°ú °°Àº ±¸Á¶¸¦ º¼ ¼ö ÀÖ´Ù. 
 

/foundry-jhipster/ 
/webpack/ : À¥ÆÑ ¹øµéÀ» À§ÇÑ ±¸¼º/À¯Æ¿¸®Æ¼ 
/src/main/ 
/java/ : ÀÚ¹Ù ¼Ò½º 
/webapp/ : ÇÁ·ÐÆ® ¿£µå ¼Ò½º 
/target/ : µÎ ºôµåÀÇ Ãâ·Â µð·ºÅ͸® 
/webapp/ : ÇÁ·ÐÆ® ¿£µå ºôµå Ãâ·Â 
/java/ : ¹é¿£µå ºôµå Ãâ·Â 
/docker/ : ÄÁÅ×À̳ÊÈ­¸¦ Áö¿øÇϱâ À§ÇÑ ÆÄÀÏ 


ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÁÖ Å¬·¡½º´Â src/main/java/com/mycompany/myapp/JhipsterApp.java´Ù. ±âº»ÀûÀ¸·Î ½ºÇÁ¸µ ºÎÆ® À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ̸ç --spring.profiles.active=your-active-profileÀ» ÅëÇØ ¸í·ÉÁÙ Àμö·Î ±¸¼ºÇÒ ¼ö ÀÖ´Ù. 

±âº» ÀÚ¹Ù ¾ÖÇø®ÄÉÀ̼ÇÀº »ç¿ëÀÚ CRUD(»ý¼º, Àбâ, ¾÷µ¥ÀÌÆ®, »èÁ¦) ±â´ÉÀ» À§ÇÑ APIÀ̸ç, ÀÎÁõ°ú ±ÇÇÑ ºÎ¿©´Â ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼(Spring Security)¸¦ ÅëÇØ ½ÇÇàµÈ´Ù. ½ºÇÁ¸µ ½ÃÅ¥¸®Æ¼ ½Ã½ºÅÛÀº /myapp/security¿¡ ±¸¼ºµÈ´Ù. Á¦ÀÌÈü½ºÅÍ´Â JSON À¥ ÅäÅ«À» »ç¿ëÇϹǷΠin /security/jwt¿¡ À̸¦ Áö¿øÇϴ Ŭ·¡½º°¡ ÀÖ´Ù. 

¾ÖÇø®ÄÉÀ̼ÇÀÇ µµ¸ÞÀÎ ¸ðµ¨Àº /domain¿¡ Á¤ÀǵȴÙ. ÀÌ ºÎºÐÀº °ð ³ª¿Ã ÇÁ·ÐÆ® ¿£µå /entities¿¡ »óÀÀÇÏ´Â ¿ä¼Ò´Ù. package.json¿¡¼­ »ç¿ë °¡´ÉÇÑ ÇÁ·ÐÆ® ¿£µå ½ºÅ©¸³Æ®¸¦ ã´Â´Ù. Áö±Ý »ç¿ë ÁßÀÎ dev mode ¸í·É ¿Ü¿¡ mongodb prune ¸í·É, Å×½ºÆ® ¹× ÇÁ·Î´ö¼Ç ºôµå ¸í·É µîÀÌ ÀÖ´Ù. Ŭ¶óÀ̾ðÆ® Ç׸ñÀº /src/main/webapp/index.html¿¡ ÀÖÁö¸¸ ½ÇÁ¦ ÀÛ¾÷Àº /sec/main/webapp/app/app.tsx¿¡¼­ ½ÃÀ۵Ǹç, ÀÌ´Â ´Ù¾çÇÑ ÆäÀÌÁö ±¸¼º¿ä¼Ò¸¦ È£½ºÆÃÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¶ó¿ìÅÍ(°æ·Î´Â router.tsx¿¡ Á¤ÀǵÊ)¸¦ Á¤ÀÇÇÑ´Ù. 

main/webapp/app/modules¿¡¼­ Á¤ÀÇµÈ ¾ÖÇø®ÄÉÀ̼ÇÀÇ À¥ ÆäÀÌÁö ±¸¼º¿ä¼Ò¸¦ ãÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î /home/home.tsx¿¡´Â ȨÆäÀÌÁö Á¤ÀÇ°¡ ÀÖ´Ù. /main/webapp/app/shared µð·ºÅ͸®¿¡¼­ ¾ÖÇø®ÄÉÀÌ¼Ç Àü¹Ý¿¡ »ç¿ëµÇ´Â Äڵ带 º¼ ¼ö ÀÖ´Ù. ´ëºÎºÐÀº ¸ðµ¨ Á¤ÀÇ ¹× ¸®µà¼­¿Í °°Àº Áß¾Ó ÀúÀå¼Ò¿ëÀÌ´Ù. ÇöÀç ¾ÖÇø®ÄÉÀ̼ÇÀº »ç¿ëÀÚ¸¸ ´Ù·ç¹Ç·Î °øÀ¯ µð·ºÅ͸®¿¡´Â ÇØ´ç ±¸¼º¿ä¼Ò ¹× ÀÎÁõ Äڵ常 ÀÖ´Ù. /entities Æú´õ¿¡´Â ¸ðµ¨¸µµÈ ¿£Æ¼Æ¼¸¦ Áö¿øÇϱâ À§ÇÑ Äڵ尡 Æ÷ÇԵȴÙ. »ç¿ëÀÚ ¸ðµ¨ÀÌ °øÀ¯ µð·ºÅ͸®¿¡ ÀúÀåµÈ °ÍÀ» º¼ ¼ö ÀÖ´Ù. ¾ÆÁ÷ ¿£Æ¼Æ¼´Â ¾øÀ¸¹Ç·Î Ãß°¡ÇØ º¸ÀÚ. 
 

¸ðµ¨ Á¤ÀÇ : JDL ¹× JDL-½ºÆ©µð¿À 

JDLÀº ¾ÖÇø®ÄÉÀÌ¼Ç ¸ðµ¨À» Á¤ÀÇÇϱâ À§ÇÑ Á¦ÀÌÈü½ºÅÍÀÇ µµ¸ÞÀκ° ¾ð¾îÁö¸¸ ±× ¿Ü¿¡µµ ¸¹Àº ¿ªÇÒÀ» ÇÑ´Ù. JDL ¸ÞŸµ¥ÀÌÅÍ·Î Àüü ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¤ÀÇÇÒ ¼ö Àִµ¥ ¿©±â¼­´Â ¸ðµ¨À» Áß½ÉÀ¸·Î »ìÆ캸ÀÚ. 

ÀÏ´Ü, Á¦ÀÌÈü½ºÅÍÀÇ ¿Â¶óÀÎ ÅøÀΠJDL-½ºÆ©µð¿À(JDL-Studio)¸¦ »ç¿ëÇؼ­ µµ¸ÞÀÎ ¸ðµ¨À» À§ÇÑ ¸î °¡Áö CRUD ±â´ÉÀ» ºü¸£°Ô ¸¸µç´Ù. <È­¸é 3>°ú °°Àº ¿£Æ¼Æ¼ °ü°è ºô´õ¸¦ º¼ ¼ö ÀÖ´Ù. 
 

<È­¸é 3> JDL ºô´õ © IDG


JDL ºô´õ´Â ¿£Æ¼Æ¼ ¹× ¿£Æ¼Æ¼ÀÇ ¼Ó¼º°ú ±× »çÀÌÀÇ °ü°è Á¤ÀǸ¦ Áö¿øÇÑ´Ù. ±¸¹®Àº ÀÌÇØÇϱ⠽¬¿ì¹Ç·Î µû·Î ¼³¸íÇÏÁö´Â ¾Ê°Ú´Ù. ¿ÞÂÊ Á¤ÀÇ¿¡¼­ ¼öÁ¤ÇÑ ´ÙÀ½ ºñÁÖ¾ó µð½ºÇ÷¹ÀÌ¿¡¼­ ¾î¶»°Ô Ç¥½ÃµÇ´ÂÁö¸¦ °üÂûÇÏ´Â ¹æ½ÄÀ¸·Î ±¸¹®À» »ìÆ캼 ¼ö ÀÖ´Ù. ÁÖ¾îÁø °ü°è¸¦ ¼ö¶ôÇÏ°í, È­¸é ¿À¸¥ÂÊ ¸Ç À§ÀÇ ÀÌ JDL ¼Ò½º ´Ù¿î·Îµå(Download this JDL source) ¹öÆ°À» ´­·¯ ³»º¸³½´Ù(µµ±¸ ¸ðÀ½¿¡´Â ¸ð¾ç°ú µ¿ÀÛÀ» ±¸¼ºÇϱâ À§ÇÑ ¿©·¯ ¿É¼ÇÀÌ ÀÖ´Ù.) 

ÆÄÀÏÀÌ »ý¼ºµÇ¸é ÇÁ·ÎÁ§Æ® ·çÆ®¿¡¼­ ¸í·ÉÁÙÀ» ¿­°í jhipster jdl my-jdl-file.jdlÀ» ÀÔ·ÂÇÑ´Ù. ¿©±â¼­ my-jdl-file.jdlÀº ¹æ±Ý ³»º¸³½ ÆÄÀÏÀÇ À̸§ÀÌ´Ù. ÆÄÀÏ µÎ °³¸¦ µ¤¾î¾µ °ÍÀÎÁö ¹¯´Â ¸Þ½ÃÁö°¡ Ç¥½ÃµÇ¸é ¼ö¶ôÇؼ­ µ¤¾î¾´´Ù. ¿Ï·áµÇ¸é ¼­¹ö¸¦ ´Ù½Ã ½ÃÀÛÇؼ­ ¾ÖÇø®ÄÉÀ̼ǿ¡ Ãß°¡ÇÑ ºÎºÐÀ» º¼ ¼ö ÀÖ´Ù. ºê¶ó¿ìÀú·Î µ¹¾Æ°¡¼­ Æ÷Æ® 9000¿¡¼­ ´Ù½Ã ¾ÖÇø®ÄÉÀ̼ÇÀ» ¿­°í admin/adminÀ¸·Î ·Î±×ÀÎÇÑ´Ù. 

ÀÌÁ¦ Ž»ö Ç¥½ÃÁÙ¿¡¼­ ¿£Æ¼Æ¼(Entities) ¸Þ´º¸¦ ¿­¸é ¹æ±Ý °¡Á®¿Â ¸ðµç ¿£Æ¼Æ¼¿Í ÀÌ ¿£Æ¼Æ¼ °ü¸®¸¦ À§ÇØ ¿ÏÀüÈ÷ ±¸ÇöµÈ ÄܼÖÀ» º¼ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î »õ ¡°Country¡± ¿£Æ¼Æ¼¸¦ ¸¸µç ´ÙÀ½ »õ ¡°Location¡± ¿£Æ¼Æ¼¸¦ ¸¸µé¾î »õ·Î »ý¼ºµÈ ÀÌ ±¹°¡¸¦ ÀÚ½ÅÀÇ À§Ä¡¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸ðµç CRUD ±â´Éµµ ÀÖ´Ù. 
 

¸ð´ÏÅ͸µ ¹× API °ü¸® 

°ü¸® »ç¿ëÀÚ¸¦ À§ÇÑ ¸î °¡Áö ºÎ°¡ ±â´ÉÀ» ¤°í ³Ñ¾î°¡ÀÚ. °ü¸®(Administration) ¸Þ´º¿¡´Â ½ÇÇà ÁßÀÎ JVMÀÇ Æ¯¼ºÀ» º¸¿©ÁÖ´Â ¸ÞÆ®¸¯(Metrics) ¿É¼ÇÀÌ Æ÷ÇԵŠÀÖ´Ù(<È­¸é 4> ÂüÁ¶). ¸ð´ÏÅ͸µ ±â´É°ú °ü·ÃµÈ ÀÚ¼¼ÇÑ ³»¿ëÀº Á¦ÀÌÈü½ºÅÍ ¼³¸í¼­¿¡¼­ º¼ ¼ö ÀÖ´Ù. 
 

<È­¸é 4> Á¦ÀÌÈü½ºÅÍ ¸ð´ÏÅÍ © IDG


Á¦ÀÌÈü½ºÅÍ´Â ¹é¿£µå ¿£µåÆ÷ÀÎÆ®¸¦ À§ÇÑ ¿ÀÇ API/½º¿þ°Å(Swagger) Á¤ÀÇ¿Í À̸¦ ´Ù·ç±â À§ÇÑ °£´ÜÇÑ Äֵܼµ »ý¼ºÇÑ´Ù. <È­¸é 5>¿¡¼­ API °ü¸® È­¸éÀ» º¼ ¼ö ÀÖ´Ù. 
 

<È­¸é 5> API °ü¸® È­¸é © IDG


Á¤¸®Çϸé Á¦ÀÌÈü½ºÅÍ´Â ´Ù¾çÇÑ µ¥ÀÌÅͽºÅä¾î¿Í ÇÁ·ÐÆ®¿£µå ÇÁ·¹ÀÓ¿öÅ©¸¦ ¾µ ¼ö ÀÖ´Â À¯¿¬ÇÑ ¾ÆÅ°ÅØó¸¦ »ç¿ëÇØ ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀüüÀûÀ¸·Î ÀλóÀûÀÎ ÇÁ·¹ÀÓ¿öÅ©´Ù.

¿ø¹®º¸±â:
https://www.itworld.co.kr/news/239909#csidx4818e8144cfa30aaa10d14c39028038