Korea |
| ||
IBM Ȩ | Á¦Ç° & ¼ºñ½º | °í°´Áö¿ø & ´Ù¿î·Îµå | ȸ¿ø°¡ÀÔ |
Working XML: °æ·Î ÄÄÆÄÀÏ°ú Å×½ºÆ® ÀÚµ¿È |
|||
Çڵ鷯 ÄÄÆÄÀÏ·¯ÀÎ HC¿¡ ´ëÇÑ ÀÛ¾÷ÀÌ °è¼ÓµÇ°í ÀÖ´Ù. Áö³ ´Þ ÀÌ Ä÷³¿¡¼ ¼Ò°³µÈ °Íó·³, HCÀÇ ¸ñÇ¥´Â SAX
¾ð¶æ º¸¸é HC°¡ ÇÁ·Î±×·¡¸Ó¿¡°Ô ´õ ¸¹Àº ÀÛ¾÷À» ¿ä±¸ÇÏ´Â °Íó·³ º¸ÀÌÁö¸¸, ÇÁ·Ï½Ã°¡ ¾ÖÇø®ÄÉÀÌ¼Ç Çڵ鷯·ÎºÎÅÍ ÀÚµ¿À¸·Î ÄÄÆÄÀϵȴٴ Á¡À» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ¾î¶² ÇÁ·Î·¡¹Öµµ ÇÊ¿äÇÏÁö ¾Ê´Ù. Áö³ ´Þ¿¡ ¼³¸íÇßµíÀÌ, ³ª´Â Deterministic Finite Automaton (DFA)¸¦ »ç¿ëÇÏ¿© ÇÁ·Ï½Ã¸¦ ÄÄÆÄÀÏÇÒ °èȹÀÌ´Ù. DFA´Â ¸Å¿ì È¿À²ÀûÀ̱⠶§¹®¿¡ ¸Å·ÂÀûÀÌ´Ù. ¶ÇÇÑ À̵éÀ» ±¸ÃàÇϱâ À§ÇÑ ¾Ë°í¸®ÁòÀÌ Àß ¹®¼ÈµÇ¾î ÀÖ´Ù. ³»°¡ »ç¿ëÇÒ ¾Ë°í¸®ÁòÀº ¿ø·¡ Á¤±Ô½ÄÀ» ÄÄÆÄÀÏÇϱâ À§ÇØ ¼³°èµÇ¾úÁö¸¸, ³ª´Â ÀÌ°ÍÀÌ XPaths¿¡µµ ½±°Ô Àû¿ëµÉ ¼ö ÀÖ´Ù°í ¹Ï´Â´Ù. ³ª´Â ÄÄÆÄÀÏ·¯ ±¸Ãà¿¡ ÀÖ¾î °¡Àå È®½ÇÇÑ ÂüÁ¶ ÀÚ·á Áß ÇϳªÀÎ Compilers: Principles, Techniques and Tools (Âü°í ÀÚ·á)·ÎºÎÅÍ ´ëºÎºÐÀÇ ¾Ë°í¸®Áò ±¸¼º ¿ä¼Ò¸¦ °¡Á®¿Ã °ÍÀÌ´Ù. ¿©·¯ºÐ °¡±îÀÌ¿¡ ÇÑ ±ÇÀÌ ÀÖ´Ù¸é, DFA ±¸ÃàÀº ¾Ë°í¸®Áò 3.5ÀÌ´Ù. Áö³ ´ÞÀÇ ¼³¸í¿¡¼ DFA°¡ º¯È¯ (transition) ´ÙÀ̾î±×·¥À̶ó´Â »ç½ÇÀ» ȸ»óÇغ¸ÀÚ. ±×¸²
1Àº ±×¸². simpara/ulinkÀÇ º¯È¯ ´ÙÀ̾î±×·¥ ¾Ë°í¸®ÁòÀ» ´õ Àß ÀÌÇØÇϱâ À§ÇØ ¿©·¯ºÐÀº ÀÌ º¯È¯ ´ÙÀ̾î±×·¥À» ½ºÅðú ºñ±³ÇÒ ¼ö ÀÖ´Ù. º»ÁúÀûÀ¸·Î ÇÁ·Ï½Ã´Â
´ÙÀ̾î±×·¥ÀÇ ´Ù¾çÇÑ ´Ü°è´Â ½ºÅÃÀÇ ±¸¼ºÀ» ³ªÅ¸³½´Ù. »óÅ 0Àº ºó ½ºÅÃÀ», »óÅ 1Àº ÇÑ element
( ´Ù½Ã ¸»ÇØ, DFA¸¦ ±¸ÃàÇÏ·Á¸é ¿©·¯ºÐÀº °¡´ÉÇÑ ½ºÅà ±¸¼º¸¸Å ¸¹Àº »óŸ¦ ÇÒ´çÇØ¾ß ÇÏ°í ÀÌ »óŵ鰣ÀÇ º¯È¯ ±â´ÉÀ» »êÃâÇØ¾ß ÇÑ´Ù. ¿©·¯ºÐÀÌ »ó»óÇÒ ¼ö ÀÖµíÀÌ, ±×¸² 1Àº ³Ê¹« °£´ÜÇÏ´Ù. ½ÇÁ¦ ÇÁ·Ï½Ã´Â Çϳª°¡ ¾Æ´Ñ ¿©·¯ °³ÀÇ XPaths¸¦ ÀνÄÇÏ·Á ÇÒ °ÍÀ̱⠶§¹®¿¡ ¿©·¯ º¯È¯ ´ÙÀ̾î±×·¥À» º´ÇàÇÏ¿© ó¸®ÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ÇÁ·Ï½Ã´Â ´ÙÀ½ ¼¼ XPaths Áß Çϳª¸¦ ãÀ» °ÍÀÌ´Ù.:
DFA°¡ ´õ ¸¹Àº XPaths¸¦ ÀνÄÇÏ·Á°í ½ÃµµÇÏ¸é »óÅ ¹øÈ£°¡ Áõ°¡ÇÒ °ÍÀÌ´Ù. ½ÇÁ¦·Î, ½ºÅà Ãø¸é¿¡¼ »ý°¢Çϸé
XML elements´Â À̸§ °ø°£ URI¿Í Áö¿ª¸í(local name)ÀÌ °áÇÕµÈ °ÍÀ¸·Î ½Äº°µÈ´Ù. ÀÌ °áÇÕÀ» Á» ´õ È¿°úÀûÀ¸·Î
ó¸®Çϱâ À§ÇØ ³ª´Â
¾Ë°í¸®ÁòÀº XPaths ¼¼Æ®¸¦ ó¸®ÇÏ°í ¼¼ °¡Áö¸¦ ÄÄÆÄÀÏÇÑ´Ù. º¯È¯ ´ÙÀ̾î±×·¥ÀÌ °ÅÄ¥ »óŵé, ÇÑ »óÅ¿¡¼ ´Ù¸¥ »óÅ·ΠÀ̵¿ÇÏ´Â º¯È¯ ±â´É, ±×¸®°í ¾î¶² »óÅ°¡ Xpath¸¦ ¼º°øÀûÀ¸·Î ÀνÄÇß´ÂÁö¸¦ ³ªÅ¸³»´Â Ç¥½Ã°¡ ±×°ÍÀÌ´Ù. ¾Ë°í¸®ÁòÀº ÇÁ·±Æ® ¿£µå (ÇÁ·±Æ® ¿£µå¿Í ¹é ¿£µå¿¡ ´ëÇÑ »ó¼¼ »çÇ×Àº ÀÌÀü
Ä÷³ ÂüÁ¶)°¡ ÀνÄÇÒ ¸ðµç XPaths¸¦ Æ÷ÇÔÇÑ parse Æ®¸®¸¦ ¹ÝȯÇÒ °ÍÀ̶ó°í ±â´ëÇÑ´Ù.
Listing 2´Â Æ®¸®¿¡ ³ªÅ¸³ elementµéÀÎ
³ëµå´Â (ÀÚ½ÅÀÇ
XML ³ëµå´Â ÀÌÀü Ä÷³¿¡¼ ¼³¸íÇÑ´ë·Î, DFA ±¸Ãà ¾Ë°í¸®ÁòÀº ÀÌ parse Æ®¸®¸¦ »óÅ ¼¼Æ®·Î º¯È¯ÇÑ´Ù. À̸¦ À§ÇØ ¾Ë°í¸®ÁòÀº ¾ó¸¶³ª ¸¹Àº XML ³ëµå°¡ ÁÖ¾îÁø ³ëµå µÚ¿¡ ³ªÅ¸³ª´ÂÁö¸¦ °è»êÇÑ´Ù. °¢ »óÅ°¡ ƯÁ¤ ½ºÅà ±¸¼ºÀ» ³ªÅ¸³½´Ù´Â Á¡À» ±â¾ïÇÏ¸é ¾Ë°í¸®ÁòÀÇ ÀÌ ºÎºÐÀ» ÀÌÇØÇϱⰡ ´õ ½¬¿ï °ÍÀÌ´Ù. ¾Ë°í¸®ÁòÀº º»ÁúÀûÀ¸·Î parse Æ®¸® ³»ÀÇ ÁÖ¾îÁø ³ëµå¿¡ À̸¦ ¼ö ÀÖ´Â ¸ðµç °¡´ÉÇÑ ½ºÅà ±¸¼ºÀ» »êÃâÇÑ´Ù. À̸¦ À§ÇØ,
µÎ °¡Áö ¿¹¸¦ µé¾î º¸°Ú´Ù. XPath XPath Ç¥
1Àº Ç¥ 1.firstpos()¿Í
nullable() »êÃâÇϱâ
È¥¶õ½º·´´Ù¸é, »óŵéÀÌ ½ºÅà ±¸¼ºÀ» ³ªÅ¸³½´Ù´Â »ç½Ç¸¸ ±â¾ïÇϵµ·Ï ÇÑ´Ù. parse Æ®¸®°¡ ÁÖ¾îÁø´Ù¸é, ¿©·¯ºÐÀº º¯È¯ ±â´ÉÀ» ó¸®Çϱâ À§ÇØ Listing
3ÀÇ ¾Ë°í¸®ÁòµéÀ» Àû¿ëÇÑ´Ù. ¿©·¯ºÐÀº º¯È¯ ±â´ÉÀ» ÀÌÂ÷¿ø Çà·ÄÀÎ
JUnit ¼ÒÇÁÆ®¿þ¾î ÇÁ·ÎÁ§Æ®¿¡¼ ¸í¹éÇÑ ÇϳªÀÇ »ç½ÇÀº ÇÁ·Î±×·¡¸Ó°¡ ÀÚ½ÅÀÇ ¼ÒÇÁÆ®¿þ¾î¿¡ ¹ö±×¸¦ ³¢¿ö ³Ö´Â´Ù´Â °ÍÀÌ´Ù. ³ª´Â ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¸Ó´Â ÄÚµå 10 ¶óÀδç 1°³ÀÇ ¹ö±×¸¦ ÀÛ¼ºÇÑ´Ù´Â Åë°è¸¦ ÀÐÀº ÀûÀÌ ÀÖ´Ù. Å×½ºÆ®´Â ¹ö±×¸¦ ¹ß°ßÇÏ°í °íÄ¡±â À§ÇØ ¼³°èµÇ¾ú´Ù. Å×½ºÆÃÀº ¸Å¿ì ¹Ýº¹ÀûÀÌ°í Áö°Ü¿î ÀÛ¾÷ÀÇ ÀüÇüÀûÀÎ ¿¹ÀÌ´Ù. ¼ÒÇÁÆ®¿þ¾î¸¦ Å×½ºÆ®ÇÒ ¶§ âÁ¶¼ºÀ̶õ °ÅÀÇ ¾ø´Ù.: ƯÁ¤ °ªÀ» ÁÖ°í °á°ú¸¦ º¸±â¸¸ ÇÏ¸é µÈ´Ù. °á°ú°¡ ¿©·¯ºÐÀÌ ¿¹»óÇÑ °Í°ú ´Ù¸£¸é ¿©·¯ºÐÀº ¹ö±×¸¦ ¹ß°ßÇÑ °ÍÀÌ´Ù. ¾ÆÁÖ Áö°ã°í ¹Ýº¹ÀûÀ̱⠶§¹®¿¡ Å×½ºÆ®µéÀº (Àû¾îµµ ÀϺΠÅ×½ºÆ®µéÀº) ÀÚµ¿ÈµÇ¾î¾ß ÇÑ´Ù. ¾îÂî µÇ¾ú°Ç, ÄÄÇ»ÅÍ´Â ÇÁ·Î±×·¡¸Óº¸´Ù´Â Àγ»½ÉÀÌ °ÇÏ´Ù. µû¶ó¼ ÄÄÇ»ÅÍ´Â Áö°ã°í ¹Ýº¹ÀûÀÎ ÀÛ¾÷À» ¼öÇàÇÒ ÀÌ»óÀûÀÎ Èĺ¸ÀÚÀÌ´Ù. ÀÚµ¿ÈµÈ Å×½ºÆÃÀº ¿©·¯ºÐÀÌ ´Ù¸¥ ¼ÒÇÁÆ®¿þ¾î¸¦ Å×½ºÆ®Çϱâ À§ÇÑ ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÛ¼ºÇÔÀ» ÀǹÌÇÑ´Ù. ÀÌ ¹æ½ÄÀÇ ÀåÁ¡Àº ¿©·¯ºÐÀÌ ÇÊ¿äÇÒ ¶§¸¶´Ù ÀÚÁÖ Å×½ºÆà ¼ÒÇÁÆ®¿þ¾î¸¦ ½ÇÇà½Ãų ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¿ì¸®´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼ º¯°æµÈ ºÎºÐ¸¸ Å×½ºÆ®ÇÏ´Â °æ¿ì°¡ ³Ê¹«³ª ¸¹´Ù. ÀÌ ¶§ ¹®Á¦´Â ¹°·Ð ¹«¾ùÀÌ º¯°æµÇ¾ú´ÂÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÄÚµå ³» ÇÑ ¼½¼ÇÀÇ º¯È°¡ ´Ù¸¥ ¼½¼Ç¿¡¼ ¹ö±×¸¦ ¸¸µé¾î³»´Â °ÍÀº ÈçÇÑ ÀÏÀÌ´Ù. ¿©·¯ºÐÀÌ µÎ ¼½¼ÇÀÌ °ü·ÃµÇ¾î ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÁö ¸øÇÑ´Ù¸é ¿©·¯ºÐÀº ÀÌ »óȲ¿¡ ´ëÇØ Å×½ºÆ®ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¹Ý¸é ÀÚµ¿ÈµÈ Å×½ºÆ®´Â ¾ïÁö½º·¯¿î ¹æ½ÄÀ» ÅÃÇÑ´Ù. À̵éÀº ½ÇÇàµÉ ¶§¸¶´Ù Àü ¾ÖÇø®ÄÉÀ̼ÇÀ» Å×½ºÆ®ÇÒ °¡´É¼ºÀ» °¡Áö°í ÀÖ°í, ÀÌ´Â ÄÚµåÀÇ °ü·ÃµÇÁö ¾ÊÀº ¼½¼Ç¿¡¼ ¹ö±×¸¦ ¹ß°ßÇÒ °¡´É¼ºÀ» ³ô¿©ÁØ´Ù. ÀÚµ¿ÈµÈ Å×½ºÆ®ÀÇ ¶Ç ´Ù¸¥ ÀÌÁ¡Àº ¹ö±×°¡ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀçµîÀåÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ¿©·¯ºÐÀÌ ¹ö±×¸¦ °íÄ¥ ¶§¸¶´Ù ±× ¹ö±×¸¦ ó¸®Çϱâ À§ÇÑ Å×½ºÆ®¸¦ ÀÛ¼ºÇØ µÎ´Â °ÍÀÌ ÁÁ´Ù. ÇÁ·ÎÁ§Æ® ±â°£ µ¿¾È ±× ¹ö±×°¡ ´Ù½Ã µîÀåÇÒ ¶§ ¿©·¯ ¹ø Å×½ºÆ®ÇÏ´Â °ÍÀÌ ½ÇÆÐÇÒ °¡´É¼ºÀÌ ÀÖ´Ù. extreme programming ¿îµ¿ (Âü°í ÀÚ·á)Àº ÀÚµ¿ÈµÈ Å×½ºÆ®¸¦ º¸±Þ½ÃÄ×´Ù. °í¹éÄÁ´ë, ³ª´Â ÀÚµ¿ÈµÈ Å×½ºÆ®¸¦ ü°èÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê´Â´Ù. ³» °æÇè¿¡ µû¸£¸é ÀÚµ¿ÈµÈ Å×½ºÆ®´Â public ÀÎÅÍÆäÀ̽º°¡ ÀÚÁÖ º¯°æµÇÁö ¾Ê´Â Ŭ·¡½º¿¡¼ °¡Àå È¿°úÀûÀ̾ú´Ù. public ÀÎÅÍÆäÀ̽º°¡ ¸¹ÀÌ º¯°æµÇ´Â Ŭ·¡½º¿¡¼´Â ´ú È¿°úÀûÀ̾ú°í, ¿©±â¿¡´Â ´ëºÎºÐÀÇ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º Äڵ尡 Æ÷ÇԵȴÙ. ÀÚµ¿ÈµÈ Å×½ºÆÃÀÇ ¿¬»ê¾î´Â automatedÀÌ°í, ¿©·¯ºÐÀÌ ÀÚÁÖ »ç¿ëÇÏÁö ¾ÊÀ» ¹«¾ð°¡¸¦ ÀÚµ¿ÈÇÏ´Â °ÍÀº ¾µ¸ð¾ø´Â ÀÏÀÌ´Ù. ¸¶Âù°¡Áö·Î ¿©·¯ºÐÀÌ ÀÚÁÖ ½ÇÇà½Ãų °ÍÀ̶ó°í ¾Ë°í ÀÖ´Â °Í¿¡ ´ëÇÑ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ´Â °ÍÀÌ È¿°úÀûÀÌ´Ù. ÀÚµ¿ÈµÈ Å×½ºÆ®´Â ¶ÇÇÑ Æ®¸® Á¶ÀÛ°ú °°Àº ´Ù¼Ò ¾Ö¸ÅÇÑ ÄÚµå¿Í ƯÈ÷ ÄÄÆÄÀÏ·¯¿¡ ÀÌ»óÀûÀÌ´Ù. JUnit ¿©ÀüÈ÷, ÀÚµ¿ÈµÈ Å×½ºÆÃÀº ÇÁ·ÎÁ§Æ® ±â°£µ¿¾È ±â´ëÇß´ø ¼º°ú¸¦ ¿Ã¸®´Â ÅõÀÚÀÌ´Ù. Å×½ºÆ®¸¦ ÀÚµ¿È½ÃÅ°·Á°í ³ë·ÂÇÏ´Â °Íº¸´Ù Å×½ºÆ®¸¦ ¹Ù·Î ¼öÇàÇÏ´Â ÆíÀÌ ºü¸£´Ù. ¿¹¸¦ µé¾î, ÁÖ¾îÁø Ŭ·¡½º¸¦ ¼öÀÛ¾÷À¸·Î ÇÑ ¹ø Å×½ºÆ®ÇÏ´Â °Íº¸´Ù Å×½ºÆ® ÄÉÀ̽º¸¦ ÀÛ¼ºÇϴµ¥ 5½Ã°£ÀÇ ÀÛ¾÷ÀÌ ´õ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ¿©·¯ºÐÀÌ Å×½ºÆ®¸¦ 6¹ø ÀÌ»ó ½ÇÇà½ÃŲ´Ù¸é Å×½ºÆ® ÄÉÀ̽º¸¦ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¼öÁö°¡ ¸ÂÀ» °ÍÀÌ´Ù. °¡·É ¿©·¯ºÐÀÌ Å×½ºÆ®¸¦ 50¹ø ½ÇÇà½ÃÅ°¸é (ÀÌ È½¼ö´Â Áß°£ ±Ô¸ðÀÇ ÇÁ·ÎÁ§Æ®¿¡¼Á¶Â÷ ¸¹Àº °ÍÀÌ ¾Æ´Ï´Ù), ±× È¿°ú´Â ¾öû³ª´Ù. ½ÇÁúÀûÀ¸·Î ¸»ÇØ, ÀÚµ¿ÈµÈ Å×½ºÆ®¸¦ ÀÛ¼ºÇϱâ À§Çؼ´Â µÎ °¡Áö Àü·« Áß Çϳª¸¦ µû¸¦ ¼ö ÀÖ´Ù. Å×½ºÆõǴ Äڵ带 ÀÛ¼ºÇÒ ¶§ Å×½ºÆ®¸¦ ÀÛ¼ºÇÒ ¼öµµ ÀÖ°í Å×½ºÆ®¸¦ ÀÛ¼ºÀ» Àü´ãÇÏ´Â ¶Ç´Ù¸¥ °³¹ßÀÚ ÆÀÀ» ¸¸µé ¼öµµ ÀÖ´Ù. ´çºÐ°£Àº ³»°¡ È¥ÀÚ Å×½ºÆ®¸¦ ÀÛ¼ºÇÏ°ÚÁö¸¸, ¿©·¯ºÐÀÌ Å×½ºÆ® suite ÀÛ¼ºÀ» ÀÚ¿øÇÏ°í ½Í´Ù¸é ananas-discussion ¸ÞÀϸµ ¸®½ºÆ®¿¡ µî·ÏÇϱ⠹ٶõ´Ù. °ú°Å¿¡ ³ª´Â ³» Å×½ºÆ®¸¦ ÆòÀÌÇÑ Àڹ٠Ŭ·¡½º·Î ÀÛ¼ºÇÏ¿´´Ù. ±×·¯³ª ÇÑ Ä£±¸°¡ JunitÀ» Å×½ºÆ®ÇØ º¸¶ó°í Á¦¾ÈÇÏ¿´´Ù. HC´Â JUnitÀ» Å×½ºÆ®Çϱ⿡ ÁÁÀº ÇÁ·ÎÁ§Æ®·Î º¸¿´À¸¹Ç·Î, ³ª´Â ÀÌ°ÍÀ» ´Ù¿î·ÎµåÇÏ¿´´Ù. JUnitÀº ÀÚµ¿ÈµÈ Å×½ºÆ®¸¦ ÀÛ¼ºÇϱâ À§ÇÑ °£´ÜÇÏ°í ÀÛÀº ÇÁ·¹ÀÓ¿öÅ©ÀÌ´Ù. JUnitÀº ±×·¸°Ô ¸¹Àº ±â´ÉÀ» °¡Áö°í ÀÖÁö ¾ÊÁö¸¸ (´ÜÁö ¸î °³ÀÇ Å¬·¡½ºÀÏ »ÓÀÌ´Ù), Å×½ºÆà ÀýÂ÷¸¦ °ø½ÄÈÇÏ´Â °ÍÀ» µµ¿ÍÁØ´Ù. Listing
4´Â ³»°¡ ³ª´Â ³» Å×½ºÆ®µéÀ» º°°³ÀÇ ÆÐÅ°Áö( JUnitÀ» »ç¿ëÇÒ ¶§ÀÇ ÀÌÁ¡Àº ÇÁ·¹ÀÓ¿öÅ©°¡ Å×½ºÆ® Ŭ·¡½º ·Îµù, Å×½ºÆ® ½ÇÇà ¹× °á°ú º¸°í¸¦ Áö¿øÇÑ´Ù´Â Á¡ÀÌ´Ù. ÇÁ·¹ÀÓ¿öÅ©´Â ¶ÇÇÑ Å×½ºÆ® suite¶ó´Â °³³äÀ» Áö¿øÇϴµ¥, ÀÌ´Â Å×½ºÆ®¸¦ ³í¸®Àû ´ÜÀ§·Î Á¶Á÷ÈÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¸¶Áö¸·À¸·Î, ÇÁ·¹ÀÓ¿öÅ©´Â ±×·¡ÇÈÀ¸·Î µÈ ½ÇÇàÀÚ¿Í ÄÜ¼Ö ½ÇÇàÀÚ¸¦ Á¦°øÇÑ´Ù. ±×·¡ÇÈ ÄܼÖÀº Çѵΰ³ Ŭ·¡½ºµéÀ» ´ëȽÄÀ¸·Î Å×½ºÆ®Çϴµ¥ ÁÁÀº ¹Ý¸é, ÄܼÖÀº ¿¹¸¦ µé¾î Àüü ÀçºôµåÀÇ ÀÏºÎ¿Í °°Àº ¹èÄ¡ ¸ðµå·Î Å×½ºÆ®¸¦ ½ÇÇà½ÃŲ´Ù. ³ª´Â ¾ÆÁ÷ HCÀÇ Äڵ带 ananas.org ·¹Æ÷ÁöÅ丮¿¡ °Ô½ÃÇÏÁö ¾Ê¾Ò´Âµ¥, ¿ÏÀüÇÑ Áغñ°¡ µÇÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. DFA ÄÄÆÄÀÏÀ» ¸¶¹«¸®ÇØ¾ß °Ô½ÃÇÒ¸¸ÇÑ °¡Ä¡°¡ ÀÖ´Â »õ·Î¿î °ÍÀ» °¡Áú ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª ÀÚµ¿ÈµÈ Å×½ºÆ®¿¡ (±×¸®°í JUnit¿¡ °üÇØ °øºÎÇϴµ¥) ÅõÀÚµÈ ½Ã°£Àº Àß »ç¿ëµÇ¾ú´Ù°í È®½ÅÇÑ´Ù. ; ±× ½Ã°£Àº À̹ø ÇÁ·ÎÁ§Æ® µ¿¾È º¸´äµÉ °ÍÀÌ´Ù. ´ÙÀ½ ´Þ¿¡´Â ÄÄÆÄÀÏ·¯ÀÇ ½ÇÇà ¹öÀüÀ» (ÃÖÀûȵÇÁö ¾ÊÀº ¹öÀüÀ̱ä ÇÏÁö¸¸) °¡Áú ¼ö Àֱ⸦ ¹Ù¶ó¸ç, ÇÁ·Ï½Ã¿¡ ´ëÇØ ÀÛ¾÷ÇÒ °èȹÀÌ´Ù.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||