[¹é¿£µå¸¦ ³Ñ¾î, °³¹ßÀÚ°¡ µÇ±â À§ÇØ] - °³¹ß¿¡ °ü½ÉÀ» °®°Ô µÈ °è±â
´ëÇлý ¶§ ÀÚ¹Ù¸¦ Á¢ÇÑ ÈÄ Ã³À½¿¡´Â Ãë¾÷À» À§ÇØ ¿©·¯ Ȱµ¿À» ÇØ º¸¾Ò½À´Ï´Ù.
±×·¯´ø Áß ±×µ¿¾È ¹è¿î ³»¿ëµéÀ» Åä´ë·Î Äڵ带 ÇÑ ¶¡ ÇÑ ¶¡ Â¥¸é¼ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇØ º¸¾Ò´Âµ¥, ¿øÇÏ´Â °á°ú¹°À» Çϳª¾¿ ¸¸µé ¼ö ÀÖ´Ù´Â °ÍÀÌ Àλó ±í¾ú½À´Ï´Ù.
ÀÌÈÄ·Î °ÀǸ¦ µè°Å³ª Áö½ÄÀ» ½×Àº ÈÄ ´Ù½Ã Äڵ带 ¼öÁ¤ÇÏ¸é¼ °°Àº °á°ú¿©µµ ´Ù¸¥ ¹æ½ÄÀÌ ÀÖÀ» ¼ö ÀÖ°í, ±× Äڵ带 Àß ¸¸µé¾î ³»´Â °ÍÀÇ Á߿伺À» ¾Ë¾Ò½À´Ï´Ù.
±×·¸°Ô ÇϳªÀÇ °á°ú¹°À» ¸¸µé±â À§ÇÑ ¸¹Àº ±æÀÌ Á¸ÀçÇϸç, ¾î¶² ½ÄÀ¸·Î ±¸ÇöÇÏ´ÂÁö¿¡ µû¶ó ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë°Ô µÈ ÈÄ °è¼ÓÇØ¼ À̸¦ ¹è¿ö³ª°¡ ÃÖ°íÀÇ ½Ç·ÂÀ» °®°í ½Í´Ù´Â ¸¶À½À» °¡Áö°Ô µÇ¾ú½À´Ï´Ù.
±×¸®°í ¿îÀÌ ÁÁ°Ôµµ ÀÌ·± ¸¶À½°¡ÁüÀ» °®°Ô µÇÀÚ, °³¹ß ÀÚü°¡ Àç¹ÌÀÖ¾îÁ³°í ´Ü¼øÈ÷ °øºÎ³ª ÀÏÀÌ ¾Æ´Ñ Ãë¹Ì·Î¼ Áñ±æ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù.
[¹Ì·¡¸¦ À§ÇÑ 2022³â] - °³¹ßÀڷμÀÇ Áö±Ý±îÁöÀÇ ¹ßÀÚÃë
- ¹è¿ò°ú ±âÃÊ
2021³â±îÁö Àú´Â ¸¹Àº °øºÎ¸¦ ÇÑ µÚ, ÀÌ¿¡ °üÇÑ ÇÁ·ÎÁ§Æ®¸¦ ½ÃµµÇß°í À̸¦ ÅëÇØ Spring boot¿¡ °üÇÑ ±âº»ÀûÀÎ Áö½ÄÀ» ½×À» ¼ö ÀÖ¾ú½À´Ï´Ù.
°¡Àå ÁÁ¾ÆÇÏ´Â Spring boot°ü·Ã °³¹ß °øºÎ ¿Ü¿¡µµ, ¾Ë°í¸®Áò Ç®À̸¦ À§ÇØ ¸ÅÀÏ java¸¦ ÅëÇÑ ¹®Á¦ Ç®À̸¦ ÁøÇàÇϰí ÀÖÀ¸¸ç, ¹é¿£µå¿¡ ÀÖ¾î ÇʼöÀûÀÎ ¿ä¼Ò Áß ÇϳªÀÎ DB°øºÎ¸¦ À§ÇØ ÀÌ¿¡ °üÇÑ ¹®Á¦ Ç®ÀÌ¿Í ±âÃÊ °øºÎ¸¦ ÇØ ¿Ô½À´Ï´Ù.
¶Ç front-end¿ÍÀÇ Åë½ÅÀ» ÆÄ¾ÇÇϱâ À§ÇØ javascript¸¦ ÅëÇÑ ¸î °¡Áö ÇÁ·ÎÁ§Æ®¸¦ ½ÃµµÇØ º¸¸ç, ¹é¿£µå °³¹ßÀڷμ °¡Áø Áö½ÄÀÇ ³ÐÀ̸¦ Ű¿ì±â À§ÇÑ »çÀü Áغñ¸¦ ÇØ º¸¾Ò½À´Ï´Ù.
- È®ÀÎ, ±×¸®°í Àû¿ë
´Ù¾çÇÑ °øºÎ¸¦ ÅëÇØ °³¹ßÀڷμÀÇ ±âÃʸ¦ ´ÙÁø ÈÄ, Á¦°¡ ¹è¿î °ÍµéÀ» È®ÀÎÇØ º¸´Â µ¿½Ã¿¡ ¿©·¯ ¹®Á¦¸¦ °æÇèÇϸç À̸¦ ÇØ°áÇØ º¸±â À§ÇØ °³ÀÎ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ¿´½À´Ï´Ù.
Spring bootȯ°æ¿¡¼ Spring data JPA¿Í H2 Database, spring security, ±×¸®°í À̸¦ º¸¿©ÁÖ´Â ÇÁ·ÐÆ® ºä¸¦ ±¸ÇöÇÏ¿© º¸¾Ò°í, AWS»ó¿¡¼ ±¸µ¿½ÃÄÑ È®ÀÎÇØ º¸¾Ò½À´Ï´Ù.
°³¹ßÀÇ ½ÃÀÛºÎÅÍ ³¡±îÁö È¥ÀÚ ÁøÇàÇØ º¸¸é¼ ´Ù¾çÇÑ ¹®Á¦¸¦ ½ÇÁ¦·Î Á¢ÇÒ ¼ö ÀÖ¾ú°í, ÀÌÀü¿¡ ¹è¿ü´ø ³»¿ëÀ» ½ÇÁ¦·Î Àû¿ëÇϰųª »õ·Î¿î ±â¼úµé ½ÃµµÇØ º¸¸é¼ Á¶±Ý ´õ °³¹ß¿¡ÀÇ Èï¹Ì¸¦ °¡Áú ¼ö ÀÖ¾ú½À´Ï´Ù.
¶ÇÇÑ ´Ü¼øÈ÷ ±â´ÉÀÇ ±¸Çö¿¡ ÃÊÁ¡À» ¸ÂÃß¾î °³¹ßÇÏ´Â °Í º¸´Ù´Â, ÃÖ¼±ÀÇ ÆÛÆ÷¸Õ½º¿Í ±ò²ûÇÑ ÄÚµå ÀÛ¼ºÀ» À§ÇØ °è¼ÓÇØ¼ ³ë·ÂÇØ¾ß ÇÑ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ¾ú½À´Ï´Ù.
- ¹ßÀüÀ» À§ÇÏ¿©
ÀÌÀü±îÁö °³¹ßÀڷμÀÇ Áö½ÄÀÇ È®Àå°ú ´Ù¾çÇÑ °æÇèÀ» ½×¾Æ ¿Ã¸®´Â µ¥¿¡ ÁýÁßÇÏ¿´´Ù¸é, ÀÌÈķδ ±íÀ̸¦ ´õÇØ³ª°¡´Â °øºÎ¸¦ ÁøÇà Áß¿¡ ÀÖ½À´Ï´Ù.
¸ÕÀú ¿µ¼Ó¼º ÄÁÅØ½º¿Í JPA¿¡ °üÇÑ °³³ä°ú Ȱ¿ë¿¡ °üÇÑ °øºÎ¸¦ ÅëÇØ °ü°èÇü µ¥ÀÌÅͺ£À̽º - °´Ã¼ÁöÇâ ¾ð¾îÀÇ ÆÐ·¯´ÙÀÓ Â÷ÀÌ¿Í °í·Á»çÇ׿¡ ´ëÇØ ¹è¿ü½À´Ï´Ù.
¶Ç JPA, Spring Data JPA¿¡¼ÀÇ N+1¹æÁö ¹æ¹ý°ú ¿µ¼Ó¼º ÄÁÅØ½ºÀÇ Dirty checkingÀ» »ç¿ëÇÑ update »ç¿ë ÀÌÀ¯, OSVI¸¦ »ç¿ëÇÑ ÃÖÀûÈ, ½Ç¹«¿¡¼ÀÇ lazy fetch¿Í fetch join °ü·Ã ÁÖÀÇ»çÇ× µî Á¶±Ý ´õ ½ÇÁ¦ÀûÀ̰í Áß¿äÇÑ °³³äµéÀ» Á¤¸®Çϰí, À̸¦ ÅëÇØ ±âÁ¸ ÇÁ·ÎÁ§Æ®¸¦ ¸®ÆÑÅ͸µ Áß¿¡ ÀÖ½À´Ï´Ù.
±×¸®°í Á¦°¡ °¡Áø Áö½ÄµéÀÌ ¸Â´ÂÁö È®ÀÎÇÏ°í ´õ ¸¹Àº »ç¶÷°ú Çù¾÷ÇÏ¿© ¹ßÀüÇÒ ¼ö ÀÖ´Â °³¹ßÀÚ°¡ µÇ±â À§ÇØ `µðÇÁ¸¸ 11±â`¿¡ ÇÔ²²ÇÏ¿© µðÀÚÀ̳Ê, FE°³¹ßÀÚ, BE°³¹ßÀÚµé°ú ÇÔ²² °øÅëÀÇ ¸ñÇ¥¸¦ ÀÌ·ç¾î º¸¾Ò½À´Ï´Ù.
ÇØ´ç ÇÁ·ÎÁ§Æ®´Â ´õ¿í ¸¹Àº °ÍÀ» ¹è¿ì±â À§ÇØ Redis¸¦ »ç¿ëÇÑ Ä³½Ì ó¸®, FK¸¦ »ç¿ëÇÏÁö ¾Ê´Â °³¹ß°ú ±× ÀÌÀ¯¿¡ °üÇÑ °øºÎ¸¦ ÇÔ²² ÁøÇà Áß¿¡ ÀÖ½À´Ï´Ù.