12.11
ÁÖ¿ä´º½º
´º½ºÈ¨ > Ä®·³
[°­ÁÂ] °Ë»ö¿£Áø ÀÔ¹®¿¡¼­ ÀÀ¿ë±îÁö (2)¹öÁî´Ï À̽ÂÇÐ ¼­ºñ½º¿£Áö´Ï¾î¸µ ÆÀÀå

 
¡ã À̽ÂÇÐ ¹öÁî´Ï ¼­ºñ½º¿£Áö´Ï¾î¸µ ÆÀÀå

[ÄÄÇ»ÅÍ¿ùµå] ¸¹Àº ¾îÇø®ÄÉÀ̼ǵéÀº ¼­ºñ½º »ç¿ë¼º°ú ǰÁúÀ» º¸ÀåÇϱâ À§ÇØ »ó´çºÎºÐ ‘°Ë»ö’ ±â¼ú¿¡ ÀÇÁ¸Çϰí ÀÖ´Ù. ÇÏÁö¸¸ °Ë»öÀº ´Ù¾çÇÑ ±â¼úÀÇ À¶·º¹ÇÕü·Î ½±°Ô Á¢±ÙÇÏ±â ¾î·Æ°í ¿©·¯ °¡Áö ¾î·Á¿î ¹è°æ Áö½ÄÀ» ÇÊ¿ä·Î ÇÑ´Ù.

ÀÌ·± °Ë»ö ±â¼úÀÇ Á¢±Ù¼ºÀ» ³ôÀÌ°í ±¸ÇöÀ» ¿ëÀÌÇÏ°Ô ÇØÁÖ´Â ¼Ö·ç¼Çµé·Î´Â ¾ÆÆÄÄ¡ ·ç¾À(Apache Lucene) ¶óÀ̺귯¸®¿¡¼­ ÆÄ»ýµÈ ¾ÆÆÄÄ¡ ¼Ö¶ó(Apache Solr), ¿¤¶ó½ºÆ½¼­Ä¡(Elasticsearch)µîÀÌ ÀÖ´Ù. ¿¤¶ó½ºÆ½¼­Ä¡ÀÇ Çʼö ±¸¼º ¿ä¼ÒµéÀ» ÅëÇØ °Ë»ö ¿£Áø¿¡ ´ëÇÑ ÀÌÇØµµ¸¦ ³ôÀÌ°í ¼­ºñ½º·Î¼­ÀÇ È°¿ë °¡´É¼º°ú È¿¿ë °¡Ä¡¸¦ °øÀ¯ÇϰíÀÚ °­ÁÂ(6ȸ)¸¦ ½Å¼³Çß´Ù. <ÆíÁýÀÚ ÁÖ>

1. ¿¤¶ó½ºÆ½¼­Ä¡ ÆÄÀ̽ã Ŭ¶óÀÌ¾ðÆ®¸¦ ÀÌ¿ëÇÑ ‘°Ë»ö’ ÀÔ¹® (2018.9)
2. ¿¤¶ó½ºÆ½¼­Ä¡·Î °Ë»ö¿£Áø ÀüȯÇϱâ (À̹øÈ£)
3. ¿¤¶ó½ºÆ½¼­Ä¡ Ȱ¿ë(1): ÀÚµ¿¿Ï¼º
4. ¿¤¶ó½ºÆ½¼­Ä¡ Ȱ¿ë(2): ·Î±× ½Ã½ºÅÛ
5. ¿¤¶ó½ºÆ½¼­Ä¡ ´Ü°èº° ÃÖÀûÈ­
6. °Ë»ö¿£Áø °ü¸® ÀÚµ¿È­


Áö³­ ±ÛÀ» ÅëÇØ¼­ ¿¤¶ó½ºÆ½¼­Ä¡¸¦ ÀÌ¿ëÇØ °Ë»öÀ» ½±°í ºü¸£°Ô ÅëÇØ ÀÔ¹®ÇÏ°Ô µÆ´Ù. À̹ø ±ÛÀ» ÅëÇØ¼­ ±âÁ¸¿¡ °Ë»ö¿£ÁøÀ» ±¸ÃàÇÏ°í ¿î¿µÇÏ´Â µ¶ÀÚµéÀ» À§ÇØ ¼Õ½±°í ºÎ´ã ¾øÀÌ ¿¤¶ó½ºÆ½¼­Ä¡·Î ÀüȯÇÒ ¼ö ÀÖ´Â Æ÷ÀÎÆ®¸¦ Á¦½ÃÇØº¸·Á ÇÑ´Ù.

¿¤¶ó½ºÆ½¼­Ä¡´Â ½±°í ºü¸£Áö¸¸, ±âÁ¸¿¡ RDB³ª ´Ù¸¥ NoSQLÁ¦Ç°À» ±â¹ÝÀ¸·Î °Ë»ö¿£ÁøÀ» ±¸ÃàÇϰí ÀÖ´Ù¸é ¸¹Àº ¾çÀÇ µ¥ÀÌÅ͸¦ ÀÌÀüÇÏ°í ±âÁ¸¿¡ Á¦°øÇÏ´ø °Ë»ö ±â´ÉÀ» ±×´ë·Î µ¿ÀÏÇÏ°Ô Á¦°øÇÏ´Â °ÍÀº ³ì·ÏÁö ¾Ê´Ù.

±âÁ¸ÀÇ °Ë»ö¿£Áø¿¡¼­ »ç¿ëÇÏ´ø µ¥ÀÌÅ͸¦ ÀÌÀüÇÏ´Â °ÍÀº Áö³­ ±Û¿¡¼­ ´Ù·é bulk API¸¦ ÅëÇØ¼­ ¼Õ½±°Ô ¼öÇàÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ °Ë»ö ±â´ÉÀ» ±×´ë·Î ÀÌÀüÇÏ´Â °ÍÀº ÁúÀÇ ±¸Á¶³ª Áö¿øÇÏ´Â ÁúÀÇ ±â´ÉÀ» Á¦´ë·Î ÆÄ¾ÇÇÏÁö ¾ÊÀ¸¸é ¿øÇÏ´Â °á°ú¸¦ ¾ò±â Èûµé´Ù.

¿¤¶ó½ºÆ½¼­Ä¡´Â Query DSLÀ̶ó´Â Àü¿ë ÁúÀÇ ¾ð¾î¸¦ Á¦°øÇÑ´Ù. À̸¦ »ç¿ëÇØ ±âÁ¸¿¡ »ç¿ëÇÏ´ø °Ë»ö ±â´ÉÀ» È®º¸Çϰí, ³ª¾Æ°¡ ´õ ³ªÀº ¼º´É°ú ±â´ÉÀ¸·Î¼­ Á¦½Ã µÉ ¼ö ÀÖ´Â ºÎºÐÀ» È®ÀÎ ÇØº¸µµ·Ï ÇÏÀÚ.


# Hello, Query DSL!
Query DSLÀÇ Context´Â Query¿Í Filter·Î ³ª´©°Å³ª È¥ÇÕÇÏ¿© ±¸¼ºÇÒ ¼ö ÀÖ´Ù. Query´Â °Ë»öÇϰíÀÚ Çϴ Ű¿öµå¿ÍÀÇ ÀÏÄ¡¼ºÀ̳ª À¯»ç¼ºÀ» ½ºÄÚ¾î·Î Åõ¿µ½Ã۱â À§ÇÑ ¼ö´ÜÀ¸·Î »ç¿ëµÈ´Ù. ¹Ý¸é Filter´Â ƯÁ¤ ¿µ¿ªÀ» °Ë»öÇϰíÀÚ Çϰųª, °Ë»ö Ű¿öµåÀÇ ´ë»ó ¿µ¿ªÀ» ÇÑÁ¤½ÃŰ´Â ¿ªÇÒÀ» ÇÑ´Ù.

   
¡ã Query DSLÀÇ ±¸Á¶

Query¿Í FilterÀÇ »ç¿ëÀº °¢ ¿µ¿ªº°·Î ¼­·Î ´Ù¸¥ ÁúÀǸ¦ »ç¿ëÇÏÁö ¾Ê°í °øÅëÀÇ ÁúÀǵéÀ» ÇÒ ¼ö ÀÖ´Ù. ¿¤¶ó½ºÆ½¼­Ä¡´Â ÀÌ·¯ÇÑ °øÅëÀÇ ÁúÀÇ¿¡ ´ëÇØ ´Ù¾çÇÑ ÇüÅ·ΠÁö¿øÇϰí ÀÖÀ¸¸ç ÁúÀǵéÀÇ Á¾·ù·Î´Â Fulltext, Term, Compound, Joining, Geo, Specialized, SpanµîÀÌ ÀÖ´Ù. º» ±ÛÀ» ÅëÇØ¼­ ÁÖ·Î »ç¿ëµÇ´Â Term, Fulltext, Compound¿¡ °ü·ÃµÈ ÁúÀÇ¿¡ ´ëÇØ¼­ ¤¾îº¸°Ú´Ù. µ¥ÀÌÅÍ´Â Áö³­ ±Û¿¡¼­ »ç¿ëÇÑ ÁÖ¼Ò·Ï ¿¹Á¦¸¦ ÀÌ¿ëÇÑ´Ù.


# ã°í ½ÍÀº°ÍÀ» Á¼Çô º¸ÀÚ: Term level queries
Term ÁúÀǵéÀº ¸íÈ®ÇÑ ¹üÀ§³ª ÀüÁ¦ µîÀÇ Á¶°ÇÀ» Åõ¿µ½ÃŰ±â ¿ëÀÌÇϱ⠶§¹®¿¡ ¾Õ¼­ ¾ð±ÞÇÑ Filter context¸¦ È®º¸ÇÏ´Â µ¥¿¡ ÁÖ·Î »ç¿ëµÈ´Ù. Term ÁúÀǵéÀº ¸Å¿ì ´Ù¾çÇÑ ¹æ½ÄÀ» Á¦°øÇϰí ÀÖ´Ù. º» ±Û¿¡¼­´Â ±× Áß term, terms, range, prefix, wildcard, type ÁúÀǸ¦ »ç¿ëÇØº¸µµ·Ï ÇÏÀÚ.

term ÁúÀÇ´Â ÇüÅÂ¼Ò ºÐ¼®±â¿¡ µû¶ó ºÐ¸®µÈ ÅäÅ« ´ÜÀ§¸¦ ±âÁØÀ¸·Î ¿Ïº®È÷ ÀÏÄ¡ÇÏ´Â ³»¿ëÀ» °Ë»ö °á°ú·Î Á¦°øÇÑ´Ù. term°ú terms´Â ´ÜÀÏ¿µ¿ªÀ̰ųª ´ÙÁß¿µ¿ªÀ» Åõ¿µ ½ÃŰ´Â Á¤µµÀÇ Â÷À̸¦ °®°í ÀÖ´Ù. terms¸¦ »ç¿ë½Ã¿¡´Â ¹è¿­ Çü½ÄÀ¸·Î °ªÀ» Àü´ÞÇØ¾ß ÇØÁÖ¸é µÈ´Ù.
   
¡ã ¼Ò¼Ó ȸ»ç¸í ‘buzzni’ °Ë»ö °á°ú
   
¡ã ¼Ò¼Ó ȸ»ç¸í ‘buzzni’ ¶Ç´Â ‘fossiel’ °Ë»ö °á°ú

range´Â ¼öÄ¡ ±â¹ÝÀÇ °ªÀÇ ¹üÀ§¿¡ ÇØ´çÇÏ´Â °á°ú¸¦ Á¦°øÇÑ´Ù. ¹üÀ§¸¦ Ç¥ÇöÇÏ´Â ¹æ½ÄÀº 4°¡Áö·Î Áö¿øµÇ¸ç, gte(Greater-than or equal to), gt(Greater-than), lte(Less-than or equal to), lt(Less-than) µîÀÇ ºÎµîÈ£ ó¸® ¹æ½ÄÀ» ÅÃÇϰí ÀÖ´Ù. ³¯Â¥³ª ½Ã°£ÀÇ ¹üÀ§¸¦ Á¦ÇÑÇϰųª ³ªÀÌÁ¦ÇÑ °°Àº ´Ü¼øÇÑ ºÎºÐÀ» ó¸®ÇÒ ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù.

   
¡ã 35¼¼ ÀÌ»ó °Ë»ö °á°ú

ÇüÅÂ¼Ò ºÐ¼®À» »ç¿ëÇÏÁö ¾Ê´Â term ÁúÀÇ ±â¹Ý¿¡¼­ Á¢µÎ¾î³ª ÀÓÀÇ ¹®ÀÚ¸¦ »ç¿ëÇØ¾ß ÇÏ´Â °æ¿ì, prefix ¿Í wildcard ÁúÀǸ¦ »ç¿ëÇÏ¸é µÈ´Ù. ÀϺΠÀ¯È¿ÇÑ ¿¹»ó °Ë»ö °á°ú¿¡ ´ëÇÑ »çÀüÁ¤º¸¸¦ °®°í ÀÖ´Â °æ¿ì°¡ ÀÌ¿¡ ÇØ´çÇÑ´Ù. ÇÑ ±ÛÀÚ ¶Ç´Â ´Ù¼öÀÇ ±ÛÀÚ·Î ½ÃÀ۵ǰųª »çÀÌ ±ÛÀÚ·Î Á¢±ÙÇÏ´Â °æ¿ì¿¡ Ȱ¿ëÀÌ °¡´ÉÇÏ´Ù. ¶ÇÇÑ wildcard´Â ‘*’, ‘?’ »ç¿ë¿¡ µû¶ó ±ÛÀÚ ¼ö¸¦ Á¶Á¤ÀÌ °¡´ÉÇÏ´Ù.

   
¡ã À̸§ÀÌ ‘l’·Î ½ÃÀÛÇØ¼­ ‘e’ ·Î ³¡³ª´Â ´Ü¾î °Ë»ö °á°ú

# ã°í ½ÍÀº °ÍÀ» ¼ø¼­´ë·Î: Full text queries
Term ÁúÀǵé·Î °Ë»öÀÇ ¹üÀ§¸¦ ¼³Á¤ Çß´Ù¸é ÇüÅÂ¼Ò ºÐ¼®±â¸¦ ±â¹ÝÀ¸·Î µ¿ÀÛÇÏ´Â Full text ÁúÀǸ¦ »ç¿ëÇØ ¼øÀ§¸¦ ºÎ¿©ÇÑ °Ë»ö °á°ú¸¦ ¸¸µé¾î º¸ÀÚ. °Ë»ö ´ë»ó ¹®¼­¿Í °Ë»ö Ű¿öµå°£ÀÇ À¯»ç¼º ºÐ¼®À» ÅëÇØ Á¡¼ö·Î ³ªÅ¸³»°í ¿øÇÏ´Â °á°ú¿¡ ±ÙÁ¢ÇÑ ¼ø¼­·Î Á¦°øÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁØ´Ù.

match ÁúÀÇ´Â ÇüÅÂ¼Ò ºÐ¼®À» °ÅÄ£ °Ë»ö ´ë»ó ¹®¼­¿Í °Ë»ö Ű¿öµå °£¿¡ ÀÏÄ¡ÇÏ´Â ºÎºÐÀÌ ÀÖ´Â °æ¿ì °Ë»ö°á°ú·Î Á¦°øÇÑ´Ù. operator¸¦ ÅëÇØ and³ª or ·ÎÁ÷ÀÇ ÀÏÄ¡ ¹æ½ÄÀ» ¼±ÅÃÇϰųª, ÇüÅÂ¼Ò ºÐ¼®±â¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï analyzer ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ºÒÇÊ¿äÇÑ ·ÕÅ×ÀÏ ¼º°ÝÀÇ °Ë»ö °á°ú¸¦ ¿¹¹æÇÒ ¼ö ÀÖµµ·Ï minimum_should_match¸¦ ÅëÇØ ÃÖ¼Ò ÀÏÄ¡ ¹üÀ§¸¦ ¼³Á¤ÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.

   
¡ã À̸§¿¡ ÀϺΰ¡ ‘lee’¿Í À¯»çÇÑ Á¶°ÇÀ¸·Î °Ë»ö °á°ú

ÀϺΠ¿µ¿ª¿¡ ´ëÇØ ÀÏÄ¡ÇÏ´Â °Ë»ö°á°ú°¡ ¾Æ´Ñ ±¸¹® Àüü°¡ ÀÏÄ¡ÇØ¾ß °Ë»öÀÌ °¡´ÉÇϵµ·Ï Çϱâ À§Çؼ­´Â match_phrase ÁúÀǸ¦ »ç¿ëÇÏ¸é µÈ´Ù. ´Ù¸¸ ¸ðµç °Ë»ö Ű¿öµå¿¡ ´ëÇØ ¶ç¾î¾²±â¸¦ Æ÷ÇÔÇØ Á¤È®ÇÑ À§Ä¡¸¦ ¿äÃ»ÇØ¾ß °Ë»ö °á°ú·Î µµÃâµÇ´Â ±î´Ù·Î¿î ÁúÀÇ´Ù. µ¿ÀÏÇÑ ´Ü¾î ±¸¼ºÀÌÁö¸¸ ´Ü¾îÀÇ À§Ä¡°¡ µµÄ¡µÈ ÇüÅ¿¡ ´ëÇØ¼­´Â slop ¿É¼ÇÀ» ÅëÇØ ¿ÏÀü ÀÏÄ¡ÀÇ Çã¿ë Á¤µµ¸¦ Á¶Àý ÇÒ ¼ö ÀÖ´Ù.

   
¡ã ´Ü¾îÀÇ À§Ä¡°¡ µµÄ¡µÈ °Ë»ö Ű¿öµå°¡ À¯»ç Á¶°Ç¿¡ ºÎÇÕÇÏ´Â °æ¿ì °Ë»ö °á°ú

match ÁúÀÇ´Â ´ÜÀÏ Çʵ常À» ´ë»óÀ¸·Î °Ë»öÀ» Áö¿øÇϱ⠶§¹®¿¡, ´ÙÁß Çʵ带 °Ë»ö ´ë»óÀ¸·Î »ç¿ëÇÏ·Á¸é multi_match Ȱ¿ëÇØ¾ß ÇÑ´Ù. multi_match´Â ±âº»ÀûÀ¸·Î best_fields, most_fields, cross_fields, phrase, phrase_prefix ŸÀÔÀ» Áö¿øÇÑ´Ù. ´ÙÁß Çʵ带 ´ë»óÀ¸·Î Çϱ⠶§¹®¿¡ °Ë»ö Á¤Ã¥¿¡ µû¶ó ÇÊ¿äÇÑ Å¸ÀÔÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù.

   
¡ã À̸§°ú ȸ»ç¸íÀ» ´ë»óÀ¸·Î ‘seunghak’ ´Ü¾î¿¡ ´ëÇÑ À¯»ç Á¶°Ç¿¡ ºÎÇÕÇÏ´Â °Ë»ö °á°ú


# ÃÖ¼±À» À§ÇÑ Á¶ÇÕ: Compound queries
Compund ÁúÀǵéÀº °Ë»öÀ» À§ÇÑ ´Ù¾çÇÑ ÁúÀǸ¦ ¸ðÀ¸°í ¸ð¾Æ¼­ °øÅë ¸ñÀûÀ» °¡Áø ÁúÀÇ ÇüÅ·Π¸¸µå´Â °ÍÀ» Áö¿øÇÑ´Ù. Constant Score, Bool, Dis Max, Function Score, Boosting µîÀÌ ÀÌ¿¡ ÇØ´çµÈ´Ù. Çʼö´Â ¾Æ´ÏÁö¸¸ °Ë»ö ¼º´ÉÀ» ²ø¾î¿Ã¸®´Â µ¥ À¯¿ëÇÏ´Ù. ±× Áß¿¡ °¡Àå º¸ÆíÀûÀÌ°í ¸¹ÀÌ ¾²ÀÌ´Â Bool ÁúÀǸ¦ »ç¿ëÇØº¸µµ·Ï ÇÏÀÚ.

Bool ÁúÀÇ´Â must, filter, should, must_notÀ¸·Î ±¸¼ºµÇ¸ç, filterÀÇ °æ¿ì ¾Õ¼­ »ç¿ëÇß´ø Filter ContextÀÇ ¿ªÇÒÀ» ÇØÁÖ´Â ¿µ¿ªÀÌ´Ù. °¢ ¿µ¿ªÀº À̸§¿¡¼­ ÁÖ´Â ÀÇ¹Ì ±×´ë·Î Á÷°üÀûÀ¸·Î ÀÎÁöÇÏ¸é µÈ´Ù. must´Â ¿µ¿ª ³»¿¡¼­ ÇØ´çµÇ´Â Á¶°ÇµéÀ» ¸ðµÎ ¸¸Á·ÇØ¾ß ÇÔÀ», must_not´Â must¿Í ¹Ý´ë·Î Àý´ë·Î »ç¿ëÇÏÁö ¾ÊÀ» Á¶°ÇÀ», should´Â ºÎºÐ Á¶°Ç¿¡ ¸¸Á·ÇÏ´Â °æ¿ì¸¦ Á¤ÀÇ ÇÑ´Ù.

   
¡ã ¼ºº°¿¡ ÇÊÅ͸¦ Àû¿ëÇϰí, À̸§À¸·Î À¯»ç Á¶°Ç¿¡ ºÎÇÕÇÏ´Â °Ë»ö °á°ú

ÇÊÅÍ Á¶°ÇÀº ƯÁ¤ÇÑ ¿µ¿ª¿¡ ÇÑÁ¤ÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇϰí´Â ´À½¼ÇÏ°Ô Ã³¸® ÇÒ ¼ö¹Û¿¡ ¾ø±â ¶§¹®¿¡ ÇüÅÂ¼Ò ºÐ¼®ÀÌ ÀüÁ¦°¡ µÇ´Â ÁúÀǸ¦ ÀûÀýÈ÷ »ç¿ëÇØ¾ß ÇÑ´Ù. ƯÈ÷ °Ë»ö°á°ú¿¡ Á¡¼ö¸¦ ³ª¿­ÇÏ¿© À¯»ç¼ºÀÌ ³ôÀº ¼ø¼­·Î °Ë»ö°á°ú°¡ Åõ¿µµÅ¾ß ÇÏ´Â °æ¿ì ÇÊÅ͸¸À¸·Î´Â ¸ñÀû¼ºÀ» È帮±â ½±´Ù.

   
¡ã ¼ºº° ÇÊÅÍ¿Í ¿¬·É Á¦¿Ü¸¦ Àû¿ëÇϰí, À̸§ÀÌ À¯»ç Á¶°ÇÀ¸·Î ½ºÄÚ¾î·Î Ç¥ÇöÇÑ °Ë»ö °á°ú


# ¸¶Ä¡¸ç
query DSLÀº ¿¤¶ó½ºÆ½¼­Ä¡ÀÇ ‘²É’À̶ó ÇÒ ¼ö ÀÖ´Ù. ã°íÀÚ ÇÏ´Â °ÍÀ» Àß Ã£¾ÆÁÖ´Â °ÍÀÌ °Ë»öÀÇ ±Ã±ØÀûÀÎ ¸ñÀûÀ̶ó¸é, À̰ÍÀÌ °¡´ÉÇϵµ·Ï ÇØÁÖ´Â °ÍÀÌ ¹Ù·Î ¿¤¶ó½ºÆ½¼­Ä¡°¡ query DSL¿¡°Ô ºÎ¿©ÇÑ ¿ªÇÒÀÌ´Ù.

query DSLÀº ¿¤¶ó½ºÆ½¼­Ä¡ °Ë»ö±â´ÉÀÇ ¸ðµç °ÍÀ» ´ã°í ÀÖ´Ù. ¶§¹®¿¡ query DSL¿¡ ´ëÇØ Àß ¾Ë°í ÀÖ´Â °ÍÀº »õ·Î¿î °Ë»ö¿£ÁøÀ» ¸¸µé ¶§µµ, ±âÁ¸¿¡ ±¸ÃàµÈ °Ë»ö¿£ÁøÀ» ¿¤¶ó½ºÆ½¼­Ä¡·Î ÀüȯÇϱâ À§Çؼ­µµ °¡Àå Áß¿äÇÑ ³»¿ëÀÌ´Ù.

±âÁ¸¿¡ ´Ù¸¥ °Ë»ö ¿£Áø¿¡¼­ ÁÖ·Î »ç¿ëÇÏ´ø ±â´ÉÀ̳ª ºÎÁ·Çß´ø ±â´É¿¡ ´ëÇØ query DSLÀ» ÅëÇØ Á÷Á¢ ±¸Çö ÇØº¸±â¸¦ ±ÇÇÑ´Ù. ¿¤¶ó½ºÆ½¼­Ä¡´Â ½Ã½ºÅÛ Ãø¸éÀÇ ¿£Áø ±¸Ãà¿¡ ¼Ò¿äµÇ´Â ¸®¼Ò½º°¡ ¸Å¿ì À۱⠶§¹®¿¡ °Ë»ö ±â´ÉÀÇ º»¿¬¿¡ ´õ ¸¹Àº ½Ã°£À» ÇÒ¾Ö ÇÒ ¼ö ÀÖÀ» °ÍÀ̰í, ±Ã±ØÀûÀ¸·Î °Ë»ö ¼º´É ÀÚü¿¡ º¯È­¸¦ °¡Á®´Ù ÁÙ °ÍÀÌ´Ù.

Àαâ±â»ç ¼øÀ§
(¿ì)08503 ¼­¿ïƯº°½Ã ±Ýõ±¸ °¡»êµðÁöÅÐ1·Î 181 (°¡»ê W CENTER) 1713~1715È£
TEL : 02-2039-6160  FAX : 02-2039-6163  »ç¾÷ÀÚµî·Ï¹øÈ£:106-86-40304
°³ÀÎÁ¤º¸/û¼Ò³âº¸È£Ã¥ÀÓÀÚ:±è¼±¿À  µî·Ï¹øÈ£:¼­¿ï ¾Æ 00418  µî·ÏÀÏÀÚ:2007.08  ¹ßÇàÀÎ:±è¿ë¼®  ÆíÁýÀÎ:±è¼±¿À