ÀÚ¹Ù¿¡¼ µ¥ÀÌÅÍ Ä³½Ã ±¸ÇöÇϱâ
¿À´ÃÀº ÀÚ¹Ù(Java)¿¡¼ µ¥ÀÌÅÍ Ä³½Ã(cache)¸¦ Á÷Á¢ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» Á¤¸®Çغ¸°íÀÚ ÇÑ´Ù. ¸¹ÀÌµé »ç¿ëÇÏ´Â Ehcache °°Àº ¶óÀ̺귯¸®µµ ÀÖ°í º°µµÀÇ ±â°è·Î ij½Ã ¼¹ö¸¦ µÎ´Â ¹æ¹ýµµ ÀÖÁö¸¸ ij½ÃÀÇ °³³äÀº ±×¸® ¾î·Á¿î °Ô ¾Æ´Ï¸ç ƯÈ÷ Àбâ Àü¿ë ij½Ã´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼ °£´ÜÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ¡°Ä³½Ã! ¾î·ÆÁö ¾Ê¾Æ¿ä~¡±
ij½ÃÀÇ °³³ä
¿ì¸®³ª¶óÀÇ ±â¾÷¿ë À¥¾ÖÇø®ÄÉÀ̼ÇÀº ´ëºÎºÐ °ü°èÇü µ¥ÀÌÅͺ£À̽º(RDBMS)¸¦ ¹é¿£µå¿¡ µÎ°í µ¥ÀÌÅÍ Æ®·£Àè¼Ç À§ÁÖ·Î ¿î¿µµÇ´Â °æ¿ì°¡ ¸¹´Ù. ±Ô¸ð°¡ Å« »çÀÌÆ®´Â ¼º´ÉÀ» À§ÇØ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö³ª µ¥ÀÌÅͺ£À̽º ¼¹ö¸¦ ÀÌÁßÈÇϴµ¥ »ç¿ëÀÚ°¡ ¸¹ÀÌ ¸ô¸®¸é °á±¹ º´¸ñ(bottleneck)ÀÌ µÇ´Â °÷Àº µ¥ÀÌÅͺ£À̽ºÀÎ °æ¿ì°¡ ¸¹´Ù.
µ¥ÀÌÅͺ£À̽ºÀÇ ¼º´ÉÀ» Çâ»óÇÏ´Â ¹æ¹ýÀÌ ¿©·¯°¡Áö°¡ Àִµ¥ °¡Àå ±Ùº»ÀûÀÎ ¹æ¹ýÀº µ¥ÀÌÅͺ£À̽º ÁúÀǸ¦ ÁÙÀÌ´Â °ÍÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. ¾ÖÇø®ÄÉÀÌ¼Ç ÀÔÀå¿¡¼ ij½Ã´Â µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅ͸¦ Á¤ÀûÀÎ ¸Þ¸ð¸®¿¡ º¸°üÇص״ٰ¡ ÇÊ¿äÇÒ ¶§ µ¥ÀÌÅͺ£À̽º°¡ ¾Æ´Ï¶ó ¸Þ¸ð¸®¿¡¼ ¹Ù·Î ²¨³» ¾²¸é µÇ´Â °ÍÀÌ´Ù.
±×·¡¼ ij½ÃÀÇ ±âº»ÀûÀÎ ÇüÅ´ ¾Æ·¡ ±×¸²°ú °°ÀÌ µ¥ÀÌÅ͸¦ ½×¾ÆµÎ°í ¿øÇÏ´Â µ¥ÀÌÅ͸¦ ¹Ù·Î ãÀ» ¼ö ÀÖµµ·Ï Å°(key)¸¦ ºÎ¿©ÇÏ¿© È£Ãâ Ãø¿¡¼ ÇØ´ç Å°¸¦ ij½Ã¿¡ ³Ñ±â¸é ±×¿¡ ÇØ´çÇÏ´Â µ¥ÀÌÅÍ°¡ ¹ÝȯµÇ°Ô ÇÏ´Â °ÍÀÌ´Ù. Å°/°ª ÇüÅÂÀÇ µ¥ÀÌÅÍ ±¸Á¶´Â ´ëÇ¥ÀûÀ¸·Î ÇؽÃÅ×À̺íÀ» »ç¿ëÇÏ¸é ¹Ù·Î ±¸ÇöÀÌ °¡´ÉÇÏ´Ù.
ij½Ã¿¡ µé¾î°¥ µ¥ÀÌÅÍ´Â ÀÚÁÖ »ç¿ëÇϸ鼵µ º¯°æÀº ÀÚÁÖ ÀϾÁö ¾Ê°í(Àбâ´Â ¸¹Áö¸¸ ¾²±â´Â ÀûÀº °Í) ¶Ç ±× µ¥ÀÌÅÍ ¾çÀÌ ³Ê¹« Å©Áö ¾ÊÀº °ÍÀ» ¼±ÅÃÇÏ´Â °ÍÀÌ ÀûÇÕÇÏ´Ù. ÀÚÁÖ »ç¿ëÇÏ´Â °ÍÀ» ij½ÌÇÒ ¼ö·Ï ¼º´É Çâ»ó¿¡ µµ¿òÀÌ µÉ °ÍÀε¥ ¾çÀÌ Å©´Ù¸é ±× ¸¸Å ¾ÖÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÒ ¸Þ¸ð¸®¸¦ ¼Ò¸ðÇϹǷΠ¸Þ¸ð¸® ¼º´É¿¡ ¾Ç¿µÇâÀÌ ÀÖÀ» ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¶Ç º¯°æÀÌ ÀÚÁÖ ÀϾ¸é ij½Ã³ª µ¥ÀÌÅͺ£À̽º¸¦ ±×¿¡ ¸Â°Ô °»½ÅÇØÁà¾ß ÇϹǷΠij½Ã¿Í µ¥ÀÌÅͺ£À̽º°£ÀÇ Æ®·£Àè¼ÇÀÌ ÀÚÁÖ ¹ß»ýÇÏ°Ô µÉ °ÍÀÌ´Ù.
±×·¡¼ ij½Ì¿¡ ÀûÇÕÇÑ µ¥ÀÌÅÍÀÇ ¿¹¸¦ µéÀÚ¸é ±âÁØ Á¤º¸¼º µ¥ÀÌÅÍ°¡ ÀÖ´Ù(°Ô½ÃÆÇÀ̶ó¸é °Ô½ÃÆÇ ¼³Á¤, ¼îÇθôÀ̶ó¸é »óÇ° Ä«Å×°í¸®, ¶Ç ±× ¹Û¿¡µµ ¸Þ´º¶óµç°¡ ´Ù¾çÇÑ ¾÷¹« ÄÚµåµé). ±âÁØ Á¤º¸¼º µ¥ÀÌÅÍ´Â Çѹø ¼Â¾÷µÇ¸é ÀÚÁÖ ¹Ù²îÁö ¾Ê°í ¶Ç ±× °³¼ö°¡ ¸¹¾Æ¾ß ¸î ¹é°³ÀÎ °æ¿ì°¡ ´ëºÎºÐÀ̹ǷΠ¸Þ¸ð¸® ºÎ´ãÀÌ Å©Áö ¾ÊÀ¸¸é¼µµ µ¥ÀÌÅͺ£À̽º ÁúÀÇ È¸¼ö¸¦ ÁÙÀÌ´Â µ¥ »ó´çÇÑ µµ¿òÀÌ µÉ ¼ö ÀÖ´Ù.
ÀÚ¹Ù¿¡¼ÀÇ Ä³½Ã ±¸Çö
Å°/°ª ÇüÅÂÀÇ Ä³½Ã¸¦ ±¸ÇöÇÏ·Á¸é ±âº»ÀûÀ¸·Î ´ÙÀ½°ú °°Àº µ¿ÀÛÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù.
- µ¥ÀÌÅÍ ÁúÀÇ – Å°¸¦ ¹Þ¾Æ ¿øÇÏ´Â µ¥ÀÌÅ͸¦ ã¾Æ ¹ÝȯÇϱâ
- ij½Ã ÀûÀç – µ¥ÀÌÅͺ£À̽º¿¡¼ µ¥ÀÌÅÍ ·ÎµùÇϱâ
ÀÌÁ¦ ij½Ã Ŭ·¡½º¸¦ ¼³°èÇÏ´Â °úÁ¤À» ¹â¾Æº¸ÀÚ. ÀÌ ±ÛÀº ½Ç¿ëÀûÀ¸·Î »ç¿ëÇÒ Å¬·¡½º¸¦ À§ÇÑ ¹æ¹ýÀ» Á¦½ÃÇÏ·Á´Â °ÍÀÌÁö¸¸ °úÁ¤À» ´Ù º¸ÀÌ°íÀÚ ÇÑ´Ù.
¿©±â¼´Â ¿¹¸¦ µé¾î »óÇ° Ä«Å×°í¸®¸¦ ±¸ÇöÇÑ´Ù°í Çغ¸ÀÚ. ÀÌ »óÇ° Ä«Å×°í¸®´Â ¼îÇθô¿¡ ÇÑ ¼¼Æ®¸¸ ÀÖ´Â °Ô ¾Æ´Ï°í ¿©·¯ ¼¼Æ®°¡ ÀÖ´Ù°í ÇÑ´Ù. ¼îÇθô ¸ÞÀÎ ¸Þ´º¸¦ ÅëÇØ º¸ÀÌ´Â ±âº»ÀûÀÎ »óÇ° Ä«Å×°í¸®µµ ÀÖÁö¸¸ ÆǸÅÀÚº°·Î ¼ºê¸ôÀÌ ÀÖ¾î¼ ÀÌ·¯ÇÑ ¼ºê¸ô¸¶´Ù º°µµÀÇ »óÇ° Ä«Å×°í¸®°¡ °ü¸®µÈ´Ù. ¹æ¹®ÀÚ°¡ ¼îÇθôÀÇ °ÅÀÇ ¸ðµç À¥ÆäÀÌÁö¿¡ µé¾î°¥ ¶§¸¶´Ù »óÇ° Ä«Å×°í¸®¸¦ ¸Þ´º³ª ȸ鿡 Ç¥½ÃÇØ¾ß ÇÒ ÅÙµ¥ ÀÌ·± µ¥ÀÌÅ͸¦ ¸Å¹ø µ¥ÀÌÅͺ£À̽º¿¡¼ Àоî¿Â´Ù¸é ºÎ´ãÀÌ »ó´çÇÒ °ÍÀÌ´Ù. (½ÇÁ¦·Î´Â µ¥ÀÌÅͺ£À̽º ÀÚü¿¡µµ ij½Ã ±â´ÉÀÌ ÀÖ´Â µî ¹«Á¶°Ç µ¥ÀÌÅͺ£À̽º¿¡ 100% ºÎ´ãÀÌ °¡´Â °ÍÀº ¾Æ´ÏÁö¸¸¡¦)
¾Æ¹«Æ° ÀÌ·± »óȲÀ» °¡Á¤ÇßÀ» ¶§ ´ë·« ´ÙÀ½°ú °°ÀÌ »óÇ° Ä«Å×°í¸®¿¡ ´ëÇÑ ¾÷¹« ·ÎÁ÷À» ó¸®ÇÏ´Â ¼ºñ½º Ŭ·¡½ºÀÇ ÀÎÅÍÆäÀ̽º¸¦ »ý°¢Çغ¼ ¼ö ÀÖ´Ù. ½ºÇÁ¸µ ±â¹ÝÀ¸·Î °³¹ßÇÏ´Â °æ¿ì°¡ ¸¹¾Æ ±×·¯ÇÑ ¹æ½ÄÀ¸·Î Ŭ·¡½º¸¦ »ý°¢ÇغÃÀ¸³ª ±âº» °³³äÀÌ °£´ÜÇϹǷΠ´Ù¸¥ °÷¿¡ Àû¿ëÇÏ´Â µ¥ º° ¹®Á¦´Â ¾øÀ» °ÍÀÌ´Ù.
ÀÌ·¸°Ô ÀÎÅÍÆäÀ̽º¸¦ »ý°¢Çغ¸´Ï ¹®Á¦°¡ Çϳª »ý±ä´Ù. ¡°ÀûÀç ¸Þ¼µå¡±´Â ¾ðÁ¦ È£ÃâÇØ¾ß Çϴ°¡? ij½Ã¸¦ »ç¿ëÇϱâ Àü¿¡ ºÒ·¯µÎ±ä ÇØ¾ß Çϴµ¥ È£ÃâÇÏ´Â ÂÊ¿¡¼ µ¥ÀÌÅÍ ÀûÀç°¡ µÆ´ÂÁö ¾ÈµÆ´ÂÁö ½Å°æ¾²¸é¼ È£ÃâÇÒ ¼ö ÀÖÀ»±î? ¹°·Ð ´äÀº No´Ù. È£Ãâ ¹Þ´Â ÀÌ Ä³½Ã ¼ºñ½º Ŭ·¡½º Ãø¿¡¼ µ¥ÀÌÅÍ ÀûÀç°¡ µÆ´ÂÁö¸¦ ÆÇ´ÜÇÏ´Â °Ô ½¬¿ï °ÍÀÌ´Ù. ±×¸®°í µ¿½Ã¼ºµµ °í·ÁÇØ¾ß ÇÑ´Ù. ÀûÀç ¸Þ¼µå¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ µ¥ÀÌÅͺ£À̽º¿¡¼ °¡Á®¿À´Â ÀÛ¾÷Àº »ó´ëÀûÀ¸·Î »ó´çÇÑ ½Ã°£ÀÌ °É¸®´Â ÀÛ¾÷ÀÌ´Ù. µû¶ó¼ À¥ ȯ°æ°ú °°ÀÌ µ¿½Ã »ç¿ëÀÚ°¡ ¸¹Àº ȯ°æ¿¡¼´Â ÀÌ·¯ÇÑ ÃʱâÈ ÀÛ¾÷ÀÌ µ¿½Ã¿¡ ´Ù¼ö ¹ß»ýÇÒ °¡´É¼ºÀ» ¿°µÎ¿¡ µÖ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ¹®Á¦µéÀ» °í·ÁÇßÀ» ¶§ À§ ÀÎÅÍÆäÀ̽º´Â ¾Æ·¡¿Í °°ÀÌ ¹Ù²î¾î¾ß Çϸç,
±¸Çö Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ ¸¸µé ¼ö ÀÖ´Ù.
¿øº» µ¥ÀÌÅÍ°¡ µ¥ÀÌÅͺ£À̽º¿¡¼ ¼öÁ¤µÆÀ¸¸é ij½Ã´Â µ¥ÀÌÅ͸¦ ´Ù½Ã ÀûÀçÇØ¾ß ÇÒ °ÍÀÌ´Ù. ±×·±µ¥ ±× ½ÃÁ¡ÀÌ Ä³½Ã µ¥ÀÌÅ͸¦ »ç¿ëÇÏ´Â ½ÃÁ¡°ú ¹Ýµå½Ã ÀÏÄ¡ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ij½Ã µ¥ÀÌÅÍ°¡ ÇÊ¿äÇÑ ½ÃÁ¡Àº »ç¿ëÇÏ´Â ÂÊ¿¡¼ °áÁ¤µÇ´Â °ÍÀÌ´Ù. ±×·¡¼ À§¿Í °°ÀÌ Ä³½Ã¸¦ ´Ù½Ã ·ÎµùÇÏ´Â ¸Þ¼µå°¡ ¾Æ´Ï¶ó ij½Ã µ¥ÀÌÅÍ°¡ À¯È¿ÇÏÁö ¾Ê°Ô µÇ¾ú´Ù´Â ¸Þ¼µå¸¦ Á¤ÀÇÇÏ°Ô µÆ´Ù. ±×·¡¼ È£ÃâÇÏ´Â ÂÊ¿¡¼ ÃʱâÈÀÇ Ã¥ÀÓÀ» Áö±â Èûµé¹Ç·Î ¾Õ¼ »ý°¢Çß´ø loadCategoryGroups()
¸Þ¼µåÀÇ ¿ªÇÒÀº ÁúÀÇ ¸Þ¼µå¿¡¼ ¼öÇàÇÏ´Â °ÍÀÌ ¸ÂÀ¸¸ç ÀÌ °úÁ¤¿¡¼ µ¿½Ã¼ºµµ °í·ÁÇÏ¿© ±¸ÇöÇß´Ù. ¡°ÃʱâÈ¡±¿Í ¡°µ¥ÀÌÅÍ ÀûÀ硱ÀÇ µ¿ÀÛÀº ±¸ºÐµÇ´Â °Ô ¸Â´Ù´Â ÆÇ´ÜÀÌ »ý±â¸ç À§¿Í °°ÀÌ ±¸¼ºÇÑ °ÍÀÌ´Ù.
ÀÌÁ¦ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »óÇ° Ä«Å×°í¸® µ¥ÀÌÅÍ°¡ ¼öÁ¤µÉ °æ¿ì À§ÀÇ invalidateCategoryGroups()
¸Þ¼µå¸¦ È£ÃâÇÏ°í »óÇ° Ä«Å×°í¸®¸¦ °¡Á®´Ù ¾²´Â ÂÊ¿¡¼´Â findCategoryGroup()
¸Þ¼µå¸¦ È£ÃâÇØ »ç¿ëÇÏ¸é µÈ´Ù. À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÖ¾î¼ Ä³½ÃÀÇ À¯½ºÄÉÀ̽º´Â ÀÌ°ÍÀ¸·Î ³¡ÀÌ´Ù. ±×·¯³ª¡¦ ¸¸¾à À¥¾ÖÇø®ÄÉÀ̼ÇÀ» °ÅÄ¡Áö ¾Ê°í µ¥ÀÌÅͺ£À̽º µ¥ÀÌÅÍ°¡ ¼öÁ¤µÇ´Â °æ¿ì´Â ¾î¶»°Ô ÇØ¾ß Çϴ°¡? µ¥ÀÌÅͺ£À̽º Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥À¸·Î SQLÀ» Á÷Á¢ ½ÇÇàÇÏ¿© µ¥ÀÌÅÍ°¡ ¼öÁ¤µÇ´Â °Í °°Àº °æ¿ì ¸»ÀÌ´Ù.
À̸¦ À§Çؼ´Â ½Ã°£¿¡ µû¸¥ ij½Ã Ãʱâȵµ ÇÊ¿äÇÏ°Ô µÈ´Ù. À̸¦ °í·ÁÇØ À§ ¸Þ¼µå´Â ´Ù½Ã ´ÙÀ½°ú °°ÀÌ ¹Ù²î°Ô µÈ´Ù. ij½Ã À¯È¿ ½Ã°£À» 600ÃÊ(10ºÐ)·Î ¼³Á¤ÇÑ ¿¹½Ã´Ù.
¸¶Ä¡¸ç
À§ÀÇ »ç·Ê´Â ƯÁ¤ÇÑ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ÇÑÁ¤ÀûÀÎ »ç·ÊÁö¸¸ ½±°Ô ´Ù¾çÇÑ »ç·Ê¿¡ Àû¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ°í ¹ü¿ë ij½Ã ±¸Çö¿¡ ´ëÇÑ ¹Ø±×¸²µµ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó »ý°¢µÈ´Ù.
¿£ÅÍÇÁ¶óÀÌÁî±Þ À¥¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¼º´ÉÀº »ó´çÈ÷ Áß¿äÇÑ À̽´´Ù. ±× ÇÑ °¡Áö »ç·Ê·Î µ¥ÀÌÅÍ Ä³½Ã¿¡ ´ëÇØ ¿©±â¼ ¾ð±ÞÇßÁö¸¸ Áß¿äÇÑ °ÍÀº ½ÇÁ¦·Î ¼º´ÉÀÌ °¡Àå ÀúÇϵǴ º´¸ñÀÌ ¾îµòÁö¸¦ ÆľÇÇÏ°í ±×¿¡ ¸Â°Ô ó¹æÇÏ´Â °ÍÀÏ °ÍÀÌ´Ù. ¸ÅÀϸÅÀÏÀÌ ¹®Á¦ ÇØ°áÀÇ °úÁ¤ÀÎ °³¹ßÀÚ¿¡°Ô ¼º´ÉÀº ¶Ç´Ù¸¥ º¹º´ÀÌ´Ù.