• 2024
  • ÀÚ¼Ò¼­¿¬½À

ÀÚ±â¼Ò°³¼­ »ùÇÃ

  • Á¶È¸¼ö 1,566
  • À̸ÞÀϺ¸³»±â
    ÁÖ¼Òº¹»ç
    Æ®À§ÅÍ °øÀ¯
    ÆäÀ̽ººÏ °øÀ¯

(ÁÖ)º¼Å¸

[º¼Å¸] ÇÕ°Ý ÀÚ±â¼Ò°³¼­

ÇÕ°Ý
ÀÎÅͳݡ¤IT¡¤Åë½Å¡¤¸ð¹ÙÀÏ¡¤°ÔÀÓ À¥ÇÁ·Î±×·¡¸Ó JAVA
°æ·Â »ç¿ø 3³âÂ÷ 2023³â /10¿ù
"Çù¾÷ ÇÁ·ÎÁ§Æ®¿Í ¼º°ú¿¡ °üÇÏ¿©"

[µðÇÁ¸¸ ÇÁ·ÎÁ§Æ®] - ¹é¿£µå¸¦ ³Ñ¾î °³¹ßÀÚ°¡ µÇ±â À§ÇØ

2022³â ÃÊ¿¡, µðÇÁ¸¸À̶ó´Â µ¿¾Æ¸®¿¡ µé¾î°¡¸ç ¹é¿£µå °³¹ßÀڷμ­ ÃÖ´ëÇÑÀÇ ¹è¿òÀ» ¾ò±â À§ÇØ ´Ù¾çÇÑ ³ë·ÂÀ» Çß½À´Ï´Ù.
ȸ»ç¸¦ ÀçÁ÷ÇÏ¸ç »ç³»¿¡¼­ ÁøÇàÇÏ´ø ÇÁ·ÎÁ§Æ® ¿Ü¿¡µµ, ÃâÅð±Ù ½Ã°£À» ÀÌ¿ëÇÏ¿© ¾Ë°í¸®Áò ¹®Á¦¸¦ Ç®¾úÀ¸¸ç Ãß°¡·Î µ¿¾Æ¸®¿¡¼­ÀÇ °³¹ßÀ» À§ÇØ API°³¹ß°ú °íµµÈ­ µîÀ» °øºÎÇß½À´Ï´Ù.
ÁÖ¸»¿¡´Â Åä¿äÀÏ 14½ÃºÎÅÍ 17½Ã±îÁö µ¿¾Æ¸® Á¤±Ô ¹ÌÆÃÀ» ÁøÇàÇß°í, ÀÏ¿äÀÏ¿¡´Â Ãß°¡ÀûÀÎ ½ºÅ͵𸦠ÁøÇàÇÏ¿´½À´Ï´Ù.

ÀÌ·¯ÇÑ ½ºÄÉÁìÀ» °èȹÇß´ø ÀÌÀ¯´Â ÀÌÀü¿¡ ¹è¿ü´ø ³»¿ëµéÀ» ½ÇÁ¦·Î Àû¿ëÇÏ´Â °Í ¿Ü¿¡µµ ´õ ¸¹Àº °ÍÀ» ¹è¿ì°í ½Í¾ú°í, ´õ¿í ¶Ù¾î³­ °³¹ßÀÚ°¡ µÇ°í ½Í¾ú±â ¶§¹®ÀÔ´Ï´Ù.

´Ù¸¸ ÀÏÁÖÀÏ ³»³» ´Ù¾çÇÑ ½ºÅ͵𸦠ÁøÇàÇϸ鼭 ÁÖº¯ Ä£±¸µéÀ̳ª °¡Á·µé°ú º¸³¾ ½Ã°£ÀÌ ÁÙ¾îµé°Ô µÈ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ¾ú½À´Ï´Ù.

¶ÇÇÑ APIÀÇ ¿î¿µ°ú À¯Áöº¸¼ö¸¦ ªÀº ½Ã°£µ¿¾È ºü¸£°Ô Àû¿ëÇØ¾ß Ç߱⿡, Æò¼Ò¿¡ ÀáÀ» ÁÙÀÌ¸ç °³¹ß¿¡ ¸ôµÎÇÏ¿´½À´Ï´Ù.

ÀÌ ¶§¹®¿¡ ¸¹Àº °ÍÀ» ¹è¿ï ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ¾úÁö¸¸, °³ÀÎÀÇ »î¿¡¼­´Â Èûµç °ÍµéÀÌ ¸¹¾Ò½À´Ï´Ù.
´ÙÇàÀ̵µ µ¿¾Æ¸®¸¦ Çϸ鼭 Ä£ÇØÁø ºÐµé°ú À̾߱⸦ ³ª´©¸ç °è¼ÓÇؼ­ °øºÎ¿¡ÀÇ ¿øµ¿·ÂÀ» À¯ÁöÇÒ ¼ö ÀÖ¾ú°í, ²ö±â¸¦ °®°í ¸ðµç ¸ñÇ¥¸¦ ´Þ¼ºÇÒ ¼ö ÀÖ°Ô²û ³ë·ÂÇß½À´Ï´Ù.

±× ´öºÐ¿¡ ÀúÈñ°¡ ÁøÇàÇß´ø ÇÁ·ÎÁ§Æ®´Â ½ÇÁ¦ ¾îÇø®ÄÉÀ̼ÇÀ» Ãâ½ÃÇßÀ¸¸ç, ÇØ´ç ³»¿ëÀ» ÅëÇØ °øºÎÇÑ °ÍÀ» ¹ÙÅÁÀ¸·Î ¹é¿£µå °³¹ß¿¡ÀÇ Áö½ÄÀ» ÇÔ¾çÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù.

ÀÌÀü±îÁö´Â ÇÏ·çÀÇ ³²´Â ½Ã°£À» °øºÎ¿¡ »ç¿ëÇÏ¿´´Ù¸é, ¿ÃÇØÀÇ »ó¹Ý±âÀÇ »îÀº ¸ðµç »îÀ» ÃÖ´ëÇÑÀ¸·Î ½ñ¾ÆºÎ¾ú´Ù°í ½º½º·Î »ý°¢ÇÒ ¼ö ÀÖÀ» Á¤µµ·Î °øºÎ¿¡ ¸ôµÎÇÏ¿´°í, ´öºÐ¿¡ ¸¶À½¸Ô¾ú´ø °ÍÀ» ÀÌ·ç°í ÇÒ ¼ö ÀÖ´Ù´Â ÀÚ½ÅÀ» °®°Ô µÇ¾ú½À´Ï´Ù.

µ¿¾Æ¸®¿¡¼­ °ÞÀº ¹®Á¦Á¡°ú ÇØ°á ¹æ½Ä, ±×¸®°í °ü·Ã ³»¿ëµéÀº ȸ°í¿Í Á¤¸®·Î ³²°ÜµÎ¾ú½À´Ï´Ù.

---

[ÇÑÀÌÀ½ ÇÁ·ÎÁ§Æ®] - °³¹ßÀÇ Ã¹°ÉÀ½

´ëÇб³ ¶§¿¡ ±âÁ¸ µµ¾î¶ô¿¡ ÇÊ¿äÇÏ´Ù°í »ý°¢ÇÑ ±â´ÉÀ» ºÎ¿©Çϱâ À§ÇÑ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇØ º¸¾Ò½À´Ï´Ù.
±âÁ¸ÀÇ µµ¾î¶ôÀº ¿©·¯¹ø °°Àº ¹øÈ£¸¦ ´©¸¦ °æ¿ì ´Ù¸¥ »ç¶÷ÀÌ À̸¦ ¾Ë¾Æº¼ ¼ö ÀÖ°í, Ç×»ó µ¿ÀÏÇÑ ¹øÈ£¸¦ »ç¿ëÇϱ⠶§¹®¿¡ Á¤º¸ÀÇ Å»Ãë°¡ ½¬¿î ´ÜÁ¡ÀÌ ÀÖ¾ú½À´Ï´Ù.
À̸¦ ÇØ°áÇϱâ À§ÇØ ¾îÇø®ÄÉÀ̼ǰú ¿¬µ¿ÇÏ¿© ÀÎÁõ¹ÞÀº »ç¿ëÀÚ¸¸ÀÌ 1ȸ¿ë ºñ¹Ð¹øÈ£¸¦ ÅëÇØ µµ¾î¶ôÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô²û ÇÏ´Â ÇÁ·ÎÁ§Æ®¸¦ ÇØ º¸¾Ò½À´Ï´Ù.

ÇØ´ç ÇÁ·ÎÁ§Æ®´Â ÇÑÀÌÀ½À̶ó´Â ±¹°¡ Áö¿ø ÇÁ·Î±×·¥¿¡¼­ ÁøÇàÇÏ¿´À¸¸ç, ºê·¹ÀÎ ½ºÅä¹ÖÀ» ÅëÇØ ±âÁ¸ÀÇ ¾ÆÀ̵ð¾î¿¡ Ãß°¡·Î ¸¹Àº ³»¿ëÀ» ´õÇß½À´Ï´Ù.
1. Ãë¾à°èÃþÀÇ °æ¿ì µµ¾î¶ô¿¡ ¹Ì¸® µî·ÏÇÏ¿©, ÀÏÁ¤ ±â°£ °³/Æó ±â·ÏÀÌ ¾ø´Â °æ¿ì ÀÚµ¿À¸·Î ÁÖº¯ °ü°ø¼­¿¡ ¿¬¶ôÀÌ °¡µµ·Ï ÇÏ´Â ±â´É
2. µµ¾î¶ôÀ» ÅÍÄ¡Æеå·Î ±¸¼ºÇÏ¿© ¾îÇø®ÄÉÀ̼ÇÀ» ÅëÇØ UI¸¦ ¸¶À½´ë·Î º¯°æ ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±â´É
3. Àӽà ºñ¹Ð¹øÈ£¸¦ ¹ß±ÞÇÏ¿© ÇØ´ç µµ¾î¶ô¿¡ µî·ÏµÈ ±¸¼º¿øÀÌ ¾Æ´Ï¿©µµ ÃâÀÔÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±â´É
4. °¡Á· ¿©Çà µî ¾Æ¹«µµ ÇØ´ç µµ¾î¶ôÀ» »ç¿ëÇÏÁö ¾ÊÀ» ¿¹Á¤ÀÏ ¶§¿¡ ÀÛµ¿ ÀÚü¸¦ ¸·À» ¼ö ÀÖµµ·Ï ÇÏ´Â ±â´É
5. µµ¾î¶ôÀÇ °³/Æó/¿¡·¯ ·Î±×¸¦ ÀúÀåÇÏ¿© È®ÀÎÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±â´É

µî, ¿©·¯ ¾ÆÀ̵ð¾îµéÀÌ Á¦¾ÈµÇ¾úÀ¸¸ç, ÀÌ Áß ÀúÈñÀÇ ±â¼ú°ú ½Ã°£ »ó ±¸Çö °¡´ÉÇÏ´Ù°í ÆÇ´ÜµÈ ±â´ÉÀ» ½ÇÁ¦·Î ¿Ï¼ºÇØ º¸¾Ò°í ÇÑÀÌÀ½ ÇÁ·ÎÁ§Æ®¿¡ ¼º°øÀûÀ¸·Î Á¦ÃâÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù.

±×¸®°í ÀÌ·± ´Ù¾çÇÑ ¾ÆÀ̵ð¾îµéÀ» ÅëÇØ Æ¯Ç㸦 Ãâ¿øÇÏ¿´À¸¸ç »ýÈ°¿¡ ÀÖ¾î ºÒÆíÇÑ °ÍÀÌ ÀÖ´Ù¸é À̸¦ ÇØ°áÇϱâ À§ÇÑ ´ëÀÀ ¹æ¾ÈÀ» »ý°¢ÇÏ´Â ¹ýÀ» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù.

"±×µ¿¾ÈÀÇ ³ë·Â°ú ¾ÕÀ¸·ÎÀÇ ¹æÇâÀ»"

- È®ÀÎ, ±×¸®°í Àû¿ë

´Ù¾çÇÑ °øºÎ¸¦ ÅëÇØ °³¹ßÀڷμ­ÀÇ ±âÃʸ¦ ´ÙÁø ÈÄ, Á¦°¡ ¹è¿î °ÍµéÀ» È®ÀÎÇØ º¸´Â µ¿½Ã¿¡ ¿©·¯ ¹®Á¦¸¦ °æÇèÇϸç À̸¦ ÇØ°áÇØ º¸±â À§ÇØ °³ÀÎ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ¿´½À´Ï´Ù.
Spring bootȯ°æ¿¡¼­ Spring data JPA¿Í H2 Database, spring security, ±×¸®°í À̸¦ º¸¿©ÁÖ´Â ÇÁ·ÐÆ® ºä¸¦ ±¸ÇöÇÏ¿© º¸¾Ò°í, AWS»ó¿¡¼­ ±¸µ¿½ÃÄÑ È®ÀÎÇØ º¸¾Ò½À´Ï´Ù.
°³¹ßÀÇ ½ÃÀÛºÎÅÍ ³¡±îÁö È¥ÀÚ ÁøÇàÇØ º¸¸é¼­ ´Ù¾çÇÑ ¹®Á¦¸¦ ½ÇÁ¦·Î Á¢ÇÒ ¼ö ÀÖ¾ú°í, ÀÌÀü¿¡ ¹è¿ü´ø ³»¿ëÀ» ½ÇÁ¦·Î Àû¿ëÇϰųª »õ·Î¿î ±â¼úµé ½ÃµµÇØ º¸¸é¼­ Á¶±Ý ´õ °³¹ß¿¡ÀÇ Èï¹Ì¸¦ °¡Áú ¼ö ÀÖ¾ú½À´Ï´Ù.
¶ÇÇÑ ´Ü¼øÈ÷ ±â´ÉÀÇ ±¸Çö¿¡ ÃÊÁ¡À» ¸ÂÃß¾î °³¹ßÇÏ´Â °Í º¸´Ù´Â, ÃÖ¼±ÀÇ ÆÛÆ÷¸Õ½º¿Í ±ò²ûÇÑ ÄÚµå ÀÛ¼ºÀ» À§ÇØ °è¼ÓÇؼ­ ³ë·ÂÇØ¾ß ÇÑ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù.

- ¹ßÀüÀ» À§ÇÏ¿©

ÀÌÀü±îÁö °³¹ßÀڷμ­ÀÇ Áö½ÄÀÇ È®Àå°ú ´Ù¾çÇÑ °æÇèÀ» ½×¾Æ ¿Ã¸®´Â µ¥¿¡ ÁýÁßÇÏ¿´´Ù¸é, ÀÌÈķδ ±íÀ̸¦ ´õÇسª°¡´Â °øºÎ¸¦ ÇÏ°í ÀÖ½À´Ï´Ù.
JPA, Spring Data JPA¿¡¼­ÀÇ N+1¹æÁö ¹æ¹ý°ú ¿µ¼Ó¼º ÄÁÅؽºÀÇ Dirty checkingÀ» »ç¿ëÇÑ update »ç¿ë ÀÌÀ¯, OSVI¸¦ »ç¿ëÇÑ ÃÖÀûÈ­, ½Ç¹«¿¡¼­ÀÇ lazy fetch¿Í fetch join °ü·Ã ÁÖÀÇ»çÇ× µî ±âÃÊÀûÀÌÁö¸¸ Áß¿äÇÑ °³³äµéÀ» Á¤¸®ÇÏ°í, À̸¦ ÅëÇØ ±âÁ¸ ÇÁ·ÎÁ§Æ®¸¦ ¸®ÆÑÅ͸µ Áß¿¡ ÀÖ½À´Ï´Ù.
±×¸®°í Á¦°¡ °¡Áø Áö½ÄµéÀÌ ¸Â´ÂÁö È®ÀÎÇÏ°í ´õ ¸¹Àº »ç¶÷°ú Çù¾÷ÇÏ¿© ¹ßÀüÇÒ ¼ö ÀÖ´Â °³¹ßÀÚ°¡ µÇ±â À§ÇØ `µðÇÁ¸¸ 11±â`¿¡ ÇÔ²²ÇÏ¿© µðÀÚÀ̳Ê, FE°³¹ßÀÚ, BE°³¹ßÀÚµé°ú ÇÔ²² °øÅëÀÇ ¸ñÇ¥¸¦ ÀÌ·ç¾î º¸¾Ò½À´Ï´Ù.
ÇØ´ç ÇÁ·ÎÁ§Æ®´Â ´õ¿í ¸¹Àº °ÍÀ» ¹è¿ì±â À§ÇØ Redis¸¦ »ç¿ëÇÑ Ä³½Ì ó¸®, FK¸¦ »ç¿ëÇÏÁö ¾Ê´Â °³¹ß°ú ±× ÀÌÀ¯¿¡ °üÇÑ °øºÎ¸¦ ÇÔ²² ÁøÇà Áß¿¡ ÀÖ½À´Ï´Ù.

ÀÌÀü ´ÙÀ½
¸ñ·Ï