XML°ú À¥ ¼ºñ½º, ÀÚ¹Ù·Î ±æµéÀ̱â
ÀÌâ½Å(Ƽ¸Æ½º¼ÒÇÁÆ®ÀÇ À¥&XML Å×Å©³î·ÎÁö ÆÀ Ã¥ÀÓÀÚ) 2007/01/08
[Áöµð³ÝÄÚ¸®¾Æ] XML°ú À¥ ¼ºñ½º´Â À¥ 2.0 ±× ÀÚü¶ó°í ¸»ÇÒ ¼ö ÀÖÀ» Á¤µµ·Î Áß¿äÇÑ °³³äÀÌ´Ù. ÀÌ¹Ì XMLÀº °³¹ßÀÚµé »çÀÌ¿¡¼ ³Î¸® ¾Ë·ÁÁ® ÀÖÁö¸¸, ¾ÆÁ÷µµ ÆÄ°íµé¸é µé¼ö·Ï ÂüÀ¸·Î ¾Ëµí ¸ð¸¦ µíÇÑ ¸éµµ ¸¹´Ù. XML/ À¥ ¼ºñ½º¿Í Ç÷§ÆûÀÇ µ¶¸³¼ºÀ» °øÀ¯ÇÏ´Â ÀÚ¹Ù¸¦ ÅëÇØ¼ ±× ¹æ¹ýÀ» ã¾Æº¸ÀÚ.
XML ¿¹»Ú°Ô º¸¿©ÁÖ±â
XMLÀº ¿ì¸®¿¡°Ô ¾î¶² ¸ð½ÀÀ¸·Î µå·¯³ª ÀÖÀ»±î? Å©°Ô µÎ °¡Áö´Ù. Çϳª´Â À¥¿¡ °ø°³µÇ¾î À¥ ºê¶ó¿ìÀú·Î º¸°Ô µÇ°Å³ª, ¶Ç Çϳª´Â ÆÄÀÏ·Î ÀúÀåµÇ¾î ÅØ½ºÆ® ¿¡µðÅÍ(XMLÀ» ¿ ¼ö ÀÖ´Â ¾ÖÇø®ÄÉÀ̼Ç)·Î È®ÀÎÇÒ ¼ö°¡ ÀÖ´Ù. ÀÌ·¸°Ô XMLÀº ¹°¸®ÀûÀÎ ÇüŸ¦ °¡Áú ¼ö ÀÖÁö¸¸, XML ¹®¼°¡ Àü´ÞÇÏ´Â Àǹ̴ ±× ÇüÅ¿ʹ »ç½Ç µ¶¸³ÀûÀÌ´Ù. Áï XML Information Set(ÀÌÇÏ XML ÀÎÆ÷¼Â)À̶ó´Â Ãß»óÀûÀÎ Àǹ̸¦ ½ÇüÈÇÏ´Â ÇÁ·¹Á¨Å×À̼ÇÀ¸·Î XML ÆÄÀÏÀÌ Á¸ÀçÇÏ´Â ¼ÀÀÌ´Ù.
<±×¸² 1> XML ÀÎÆ÷¼Â°ú XML ¹®¼
°á°úÀûÀ¸·Î DOM°ú SAX¿Í °°ÀÌ ÀÚ¹Ù·Î XML ¹®¼¸¦ ÆÄ½ÌÇÏ´Â °æ¿ì ÀÚ¹Ù¿¡¼´Â ¹Ù·Î ÀÌ XML ÀÎÆ÷¼ÂÀ» ´Ù·ç°Ô µÇ´Â ¼ÀÀÌ´Ù. ±×·¸´Ù¸é ÀÚ¹Ù¿¡¼ XML ¹®¼¸¦ ¸¸µå´Â °æ¿ì´Â ¾î¶³±î? »ç½Ç ÇüŸ¦ °¡Áø Á¸ÀçÀϼö·Ï ±× ÇüŰ¡ ¾Æ¸§´ä°Ô Ç¥ÇöµÇ¸é º¸±â°¡ ÁÁÀº °ÍÀº ´ç¿¬ÇÏ´Ù. XMLµµ ¸¶Âù°¡Áö´Ù.
<±×¸² 2>±âºÐ ÁÁÀº XML Ç¥Çö°ú Â¥ÁõÀ» À¯¹ßÇÏ´Â XML Ç¥Çö
À§ÀÇ µÎ °¡Áö XML Ç¥Çö °¡¿îµ¥ ¾î´À ÂÊÀÌ ´õ º¸±â ÁÁÀ»±î? ¹°¾î º¸±â°¡ ¾¦½º·¯¿ï Á¤µµ·Î ´äÀº ÀÚ¸íÇÏ´Ù. ±×·¸´Ù°í XML Ãâ·Â ÀÚü°¡ ±×·¸°Ô °£´ÜÇÑ °ÍÀº ¾Æ´Ï´Ù. ´õ¿í ±× Ãâ·Â¹°À» ¿¹»Ú°Ô ´Ùµë´Â °Íµµ ½±Áö°¡ ¾Ê´Ù. XML Ãâ·ÂÀº JDK 5 ÀÌÀü¿¡´Â XML ¾²±â(Serialize)¿¡ ´ëÇÑ Ç¥ÁØ API°¡ ¾ø¾î¼ ÈçÈ÷ JAXP(Java API for XML Processing)ÀÇ Transformer¸¦ ¾²°Å³ª ºñÇ¥ÁØ ¶óÀ̺귯¸®(´ëÇ¥ÀûÀÎ °ÍÀÌ Apache XercesÀÇ XMLSerializer)¸¦ »ç¿ëÇß¾ú´Ù. ¿©±â¿¡ µé¿©¾²±â¿Í °°Àº XML Ãâ·Â °ü·Ã ¿É¼ÇÀ» ÁÙ ¼öµµ ÀÖ¾ú´Ù. ÇÏÁö¸¸ JDK 5 ÀÌ»óÀ» »ç¿ëÇÒ °æ¿ì, Á¤È®È÷´Â JAXP 1.3ÀÇ DOM Level 3¸¦ ¾´´Ù¸é °£´ÜÇϸ鼵µ Ç¥ÁØÀûÀÎ ¿É¼ÇÀ¸·Î ¿¹»Û ¸ð¾çÀÇ XML Ãâ·ÂÀÌ °¡´ÉÇÏ´Ù. ±×·³ XMLÀ» Ãâ·ÂÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.
°¡) JDK 5³ª JAXP 1.3À» ¾²´Â °æ¿ì
DOMImplementation implementation= DOMImplementationRegistry.
newInstance().getDOMImplementation(¡°XML 3.0¡±);DOM ImplementationLS feature = (DOMImplementationLS) implementation.
getFeature(¡°LS¡±,¡±3.0¡±);LSSerializer serializer = feature.create LSSerializer();LSOutput output = feature.createLSOutput(); output.setByteStream(System.out);serializer.write(doc, output)
À§ÀÇ ¿¹Á¦ ÄÚµå´Â org.w3c.dom.Node ŸÀÔÀÇ docÀ» System.out, Áï ÄÜ¼Ö È¸éÀ¸·Î Ãâ·ÂÇÑ´Ù. LSSerializer¸¦ ¾ò¾î¿À´Â ¾Õ 3ÁÙÀÌ Á» º¹ÀâÇØº¸ÀÏ ¼ö ÀÖÁö¸¸, ±× ÀÌÈķδ ¸Å¿ì Á÷°üÀûÀÌ°í °£ÆíÇÏ°Ô NodeÀÇ Ãâ·ÂÀ» µ½´Â´Ù.
³ª) »çÁ¤»ó JDK 5³ª JAXP 1.3 ÀÌ»óÀ» ¾µ ¼ö ¾ø´Ù¸é Â÷¼±Ã¥À¸·Î javax.xml.transform.Transformer¸¦ »ç¿ëÇÑ´Ù.
TransformerFactory transformerFactory = TransformerFactory.
newInstance();Transformer transformer = transformerFactory.
newTransformer();transformer.transform(new DOMSource(node), new StreamResult(System.out));
À§ÀÇ ÄÚµå ¶ÇÇÑ ÇÏ´Â ÀÏÀº °¡)ÀÇ ÄÚµå¿Í ¶È°°´Ù. ÆÑÅ丮¿¡¼ Transformer¸¦ ¾ò¾î ¿À´Â ºÎºÐÀº °¡)ÀÇ LSSerializer¸¦ ¾ò¾î ¿À´Â °úÁ¤º¸´Ù °£´ÜÇØ º¸ÀÌÁö¸¸, ÃÖÁ¾ÀûÀ¸·Î Ãâ·ÂÇÏ´Â ºÎºÐ¿¡ ¹«·Á 2 °³ÀÇ ·¹ÆÛ(Wrapper, DOMSource, StreamResult)°¡ ¾²ÀÌ°Ô µÅ ¹«°Ì´Ù´Â ´À³¦À» Áö¿ï ¼ö ¾ø´Ù.
±×·¸´Ù¸é, ¾Õ¿¡¼ »ìÆìº» XML Ãâ·Â ·ÎÁ÷¿¡ ¼ºÇü ¼ö¼ú(?)À» ÇϰíÀÚ ÇÒ °æ¿ì ¾î¶»°Ô Çϸé ÁÁÀ»±î?
°¡)ÀÇ °æ¿ì´Â serializer.getDomConfig().setParameter( ¡°format-pretty-print¡±, Boolean.TRUE); ¸¦ serializer. write Çϱâ Àü¿¡ ¼³Á¤ÇÏ¸é µÈ´Ù.
³ª)ÀÇ °æ¿ì´Â transformer.setOutputProperty¡°( indent¡±,¡° yes¡±); ¸¦ transformer.transformÇϱâ Àü¿¡ ¼³Á¤ÇÏ¸é µÈ´Ù. ÀÌ·ÐÀº ÀÌ·¸Áö¸¸, ½ÇÁ¦·Î´Â °í·ÁÇØ¾ß ÇÒ ¹®Á¦°¡ ¸î °¡Áö ´õ ÀÖ´Ù.
°¡)ÀÇ °æ¿ì ¾ÈŸ±õ°Ôµµ JAXP 1.3 ½ºÆå»ó formatpretty-print ¿É¼ÇÀÇ Áö¿øÀÌ Çʼö°¡ ¾Æ´Ï¾î¼ ±âº»ÀûÀ¸·Î ´Â Áö¿øÀÌ µÇÁö ¾Ê°í Àִµ¥, ÇÊÀÚ°¡ Á¦¾ÈÇÑ ÆÐÄ¡(https:// jaxp.dev.java.net/issues/show_bug.cgi?id=6)°¡ JDK 6(ºôµå 92)ºÎÅÍ Àû¿ëµÇ¾î »ç¿ë °¡´ÉÇØÁ³´Ù. (JDK 5¿¡ÀÇ Àû¿ë ¿©ºÎ´Â ºÒÅõ¸íÇÏ´Ù)
JDK¿¡ ³»ÀåµÈ JAXP¸¦ ¾²Áö ¾Ê°í Apache Xerces¿Í °°Àº º°µµÀÇ JAXP ±¸Çöü¸¦ ¾²´Â °æ¿ì¿¡´Â Xerces 2.8.0 ÀÌÈÄ·Î ÀÌ ÆÐÄ¡°¡ Àû¿ëµÇ¾î format-pretty-printÀÇ ¿É¼Ç »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ³ª)ÀÇ °æ¿ì¿¡´Â XSLT 1.0 ½ºÆåÀÇ 16Àå Output(http://www.w3.org/TR/xslt#output)¿¡¼ Á¤ÀÇÇÏ´Â ´Ù¾çÇÑ ¼³Á¤À» setOutputProperty·Î ¼³Á¤ÀÌ °¡´ÉÇϹǷΠÂü°íÇϱ⠹ٶõ´Ù.
JAXB¿Í °°Àº XML ¹ÙÀεù ¼Ö·ç¼ÇÀÌ ³ª¿Í ¿ì¸®¸¦ ÆíÇÏ°Ô ÇØÁÖ°í ÀÖÁö¸¸, ÀÚ¹ÙÀÇ XML 󸮿¡ ÀÖ¾î °¡Àå ¹Ø´Ü¿¡ ÀÚ¸® ÀâÀº Ç¥ÁØÀÎ JAXP ¶ÇÇÑ ¿©ÀüÈ÷ Á÷Á¢ XMLÀ» ´Ù·ç¾î¾ß ÇÒ ¶§ ÇÊ¿äÇÏ´Ù.
ÇöÀç ÃֽйöÀüÀÎ 1.3ÀÌ JDK 5¿¡ žÀçµÇ¾î ÀÖ°í, JDK 1.4¿Íµµ ÇÔ²² ¾µ ¼ö ÀÖ´Ù. JAXP 1.3Àº ÀÚ¹Ù¿¡¼ Á¤ÀÇÇÏÁö ¾ÊÀº XML ½ºÅ°¸¶ ŸÀÔÀ» Ãß°¡Çϰí, ¾Õ¿¡¼ »ìÆìº» DOM L3¿Í XPath µîÀ» Áö¿øÇÏ´Â µî ±â´É¸é¿¡¼ Å©°Ô Çâ»óµÇ¾ú´Ù.
JDK 6¿¡ ³»ÀåµÉ JAXP 1.4´Â ÀÌ·¯ÇÑ JAXP 1.3ÀÇ ³ôÀº ±â´É¼ºÀ» ¹ÙÅÁÀ¸·Î Ç®(pull) ¹æ½ÄÀÇ XML ó¸® APIÀÎ StAX(St reaming API for XML)À» Æ÷ÇÔÇß´Ù. ÀÌÁ¦ ÀÚ¹Ùµµ .NET°ú ´ëµîÇÑ ¼öÁØ, Áï Àθ޸𸮠ÀÎÆ÷¼Â(DOM)-Ǫ½Ã(SAX)-Ç®(StAX)ÀÇ »ï¹ÚÀÚ¸¦ ¸ðµÎ °®Ãß°Ô µÈ ¼ÀÀÌ´Ù. JAXP 1.4 RIÀÇ °³¹ßÀº java.net¿¡¼ ¿ÀÇ ¼Ò½º·Î ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç, https://jaxp-sources.dev.java.net/ ¿¡¼ ¼Ò½º¿Í ¸ÅÁÖ ¹èÆ÷µÇ´Â ¹ÙÀ̳ʸ®¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù. ¾ÆÁ÷ ½ºÆåÀÌ ÃÖÁ¾ ½ÂÀÎµÈ »óÅ´ ¾Æ´ÏÁö¸¸, JAXP 1.4¸¦ ¹Ì¸® °æÇèÇØº¸°í ½Í´Ù¸é JDK6(https://jdk6. dev.java.net/ ¿¡¼ ÃֽŠºôµå¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù)ÀÇ »ç¿ëÀ» ±ÇÇÑ´Ù.
µµ´ëü À¥ ¼ºñ½º´Â ¾ðÁ¦ ¶ß´Â °Å¾ß?
À¥ °³¹ßÀÚ¶ó¸é µè±â ½È¾îµµ µéÀ» ¼ö¹Û¿¡ ¾ø´Â ¸»ÀÌ ÀÖ´Ù. ¹Ù·Î À¥ ¼ºñ½º¶õ ´Ü¾î´Ù. À¥ ¼ºñ½º¿Í °ü·ÃµÈ ±â¼úÀÇ »Ñ¸®¸¦ ÆÄ°íµé¸é XML°ú °ÅÀÇ ¾î±ú¸¦ ³ª¶õÈ÷ Çϰí ÀÖ´Ù´Â ´À³¦À» ÁöÀ» ¼ö°¡ ¾ø´Ù.
ÇÊÀÚ´Â ±âÀÌÇϸ®¸¸Ä¡ ½Å±â¼ú°ú °ü·ÃµÈ Ã¥À» ¸î ¹ø ¹ø¿ªÇÑ °æÇèÀÌ ÀÖ´Ù. °¡Àå ¸ÕÀú ¹ø¿ªÇÑ Ã¥ÀÌ <ÀÚ¹Ù ¼ºí¸´ ÇÁ·Î±×·¡¹Ö>ÀÇ °³Á¤ÆÇ(2001³â Ãâ½Ã)À¸·Î Ã¥ÀÇ ÈĹݺΠ³»¿ëÀº ¿ÏÀüÈ÷ »õ·Î¿î °ÍÀ̾ú´Ù. ±× µÚ¸¦ À̾î <ÀÚ¹Ù À¥ ¼ºñ½º>(2002³â Ãâ½Ã)µµ ÇÑÂü À¥ ¼ºñ½º ¹Ù¶÷ÀÌ °Å¼¼°Ô ºÒ ¶§ ¹ø¿ªÇÏ°Ô µÇ¾ú´Ù. À̶§¸¸ ÇØµµ SOA(Service Oriented Architecture)ÀÇ ¹Ù¶÷ÀÌ Àϱ⠽ÃÀÛÇÒ ¹«·ÆÀ̾ú´Ù.(°¡Àå ÃÖ±Ù¿¡ ¹ø¿ªÇÑ
µµ ±¹³»¿¡¼ óÀ½ Ãâ°£µÈ Ajax Ã¥ÀÌ´Ù)
µ¹ÀÌÄѺ¸¸é ÇÊÀÚÀÇ ¹ø¿ªÀÛ¾÷µµ ¹ú½á 4³â ÀüÀÇ ÀÏÀÌ µÇ¾ú´Ù. ¹Ý¸é¿¡ IT±â¾÷¿¡¼ ¸¸ÅÀº »çÁ¤ÀÌ ¸Å¿ì ´Ù¸¥ °Í °°´Ù. ESB(Enterprise Service Bus) °³³äÀÌ Á¤¸³µÇ¾î °¡´Ù°¡µµ ÇÑÆíÀ¸·Î´Â À¥ ¼ºñ½º ±â¹ÝÀÇ SOA°¡ ÀÚ¸® Àâ¾Æ °¡´Â ºÐÀ§±â´Ù. ƯÈ÷ ¾Æ¸¶Á¸°ú ±¸±Û µî°ú ´Þ¸® ±¹³»¿¡¼´Â ¾ÆÁ÷µµ À¥ ¼ºñ½ºÀÇ È®»êÀÌ ¸Å¿ì ´õµò ÆíÀÌ´Ù.
ÇÊÀÚÀÇ °³ÀÎÀûÀÎ »ý°¢µµ ÀÌ¿Í ´Ù¸£Áö ¾Ê´Ù. XML °³³äÀÌ ³ª¿Â ½ÃÁ¡ÀÌ 1999³âÀÌ´Ù. ±×¸®°í ±¹³» IT½ÃÀå¿¡ 2003³â ¹æÄ«½´¶û½º¸¦ ÅëÇØ XML ±â¹ÝÀÇ ±â¾÷ °£ ´ëÇü ÅëÇÕ ½Ã½ºÅÛÀÌ µîÀåÇß´Ù. ±â¾÷ SOAµµ ÀÌÁ¦ °Ü¿ì ½ÃÀÛ ´Ü°è¿¡ ºÒ°úÇÑ ÆíÀÌ´Ù. ¹Î°£ SOA´Â ¾Æ¸¶µµ 2007³â ÇϹݱ⿡³ª µé¾î¼¾ß ¹°²¿°¡ Æ®ÀÏ °ÍÀ̶ó´Â »ý°¢ÀÌ µç´Ù.
IT ±â¾÷ÀÇ À¥ ¼ºñ½º ±â¼ú ¿ä±¸ ¼öÁØÀº Àü¹®°¡µéÀÇ ¿¹Ãø´ë·Î ½Å·Ú °¡´É ¸Þ½Ã¡(Reliable Messaging)°ú º¸¾È(Security)¸¦ ±âº»À¸·Î Çϰí ÀÖ´Ù. µÚÀÌ¾î Æ®·£Àè¼Ç±îÁö ¿ä±¸ÇÏ°Ô µÇ°ÚÁö¸¸, ¼ºñ½º¶ó´Â °³³ä ÀÚü°¡ ¸Å¿ì Å« ¾÷¹« ´ÜÀ§¿¡¼ ¼ºñ½ºµéÀ» Çѱºµ¥·Î ¹¾î Æ®·£Àè¼ÇÀÌ ¹ß»ý °¡´ÉÇϵµ·Ï ÇÏ·Á¸é ¾ÆÁ÷µµ ½Ã°£ÀÌ ÇÊ¿äÇÒ °Í °°´Ù.
ÀÌ·± »çÁ¤µéÀ» ³õ°í º¼ ¶§ ½Å·Ú °¡´É ¸Þ½Ã¡À̳ª º¸¾È°ú °°Àº ÀÏÂ÷Àû ÁøÀÔ À庮Àº ¾ÆÁ÷ Çʼö ¿ä¼Ò°¡ ¾Æ´Ñ °Íó·³ º¸À̰í, ¾ÕÀ¸·Î Á¡Â÷ ±× Çʿ伺À» ´À³¥ °ÍÀ¸·Î º¸ÀδÙ. µû¶ó¼ ÇöÀç ¾ÈÁ¤ÀûÀ¸·Î ¾µ ¼ö ÀÖ´Â À¥ ¼ºñ½º ±â¼ú(ÀÚ¹Ù¿Í.NET)Àº ÀÌ·¯ÇÑ ½ÃÀåÀÇ ¿ä±¸¸¦ ÃæºÐÈ÷ µé¾î ÁÙ ¼ö ÀÖ´Â ¼öÁØ¿¡ ¿Ã¶ó ÀÖ´Ù.
±×¸®°í ¸Å¿ì ´ÙÇེ·´°íµµ ±â´ë°¡ µÇ´Â ÀÏÀÌ ÀÖ´Ù. ÀÌ¹Ì WS-I (Web Services Interoperability Organization)À̶ó´Â À¥ ¼ºñ½º »óÈ£¿î¿µ¼ºÀ» À§ÇÑ °øµ¿Ã¼ÀÇ È°µ¿À» ÅëÇØ SOAP°ú WSDLÀÇ »ç¿ë¿¡ ´ëÇÑ »óÈ£¿î¿µ¼ºÀ» È®º¸ÇÑ ÀÏÀÌ´Ù. ¶Ç ÀÌ °°Àº ¹ÙÅÁÀ§¿¡ WS-Addressing, WS-Reliable Messaging, WS-Security µîÀÇ WS-*(½ºÅ¸) ½ºÆå¿¡ ´ëÇÑ »óÈ£¿î¿µ¼ºÀ» À§ÇØ À¥ ¼ºñ½º°èÀÇ ¾ç´ë »ê¸ÆÀÎ ÀÚ¹Ù¿Í.NETÀÇ ´ëÇ¥ÁÖÀÚÀÎ ½ã°ú MS°¡ ¼·Î ¼ÕÀ» ÀâÀº ´ë¸ñÀº ¸Å¿ì °í¹«ÀûÀÎ ÀÏÀÌ´Ù. ¼·Î WSIT(Web Services Interope rability Technologies)¿Í WCF(Windows Communi cation Foundation) ±â¼úÀÇ »óÈ£ ¿î¿µ¼º È®º¸¸¦ À§ÇÑ ³ë·ÂÀ» ÇÔ²² ±â¿ïÀ̰í ÀÖ´Ù. 2006³â 8¿ù ÇöÀç ÀÌµé ¾ç»çÀÇ ÁøÇà »óȲÀ» Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.
<Ç¥ 1> WSIT°ú WCFÀÇ WS-* »óÈ£¿î¿µ¼º Å×½ºÆ® »óȲ
¾ÆÁ÷±îÁö´Â »óÈ£¿î¿µ¼º¸é¿¡¼ Ãʱ⠴ܰ迡 ºÒ°úÇØ WCF¿Í WSITµµ ÇÑâ °³¹ß Áß¿¡ ÀÖ´Ù. WCF´Â À©µµ ºñ½ºÅ¸¿¡ ³»ÀåµÇ¹Ç·Î ³»³â 1¿ù Àü¿¡´Â ¸¶¹«¸®µÇ¾î¾ß Çϰí, WSITµµ °°Àº ½Ã±â¿¡ ¿Ï¼ºÆÇÀÌ ³ª¿Í ¼·Î º¸Á¶¸¦ ¸ÂÃâ °ÍÀ¸·Î ¿¹»óµÈ´Ù.
WSIT°ú WCFÀÇ °øÁ¶°¡ ¼·Î Áß¿äÇÑ ÀÌÀ¯´Â, ½ã°ú MS°¡ °¢°¢ ÀÚ¹Ù¿Í .NETÀÇ Â÷¼¼´ë Ç÷§Æû¿¡ ´Ü¼øÈ÷ À¥ ¼ºñ½º ±âÃÊ ±â¼ú(SOAP°ú WSDL)»Ó¸¸ ¾Æ´Ï¶ó °í±Þ ±â¼ú(WS-*)±îÁö ±âº»À¸·Î Á¦°øÇÏ¿© »ç¿ëÀÚÀÇ ÀÀ¿ëÆøÀ» Çö½ÇÀûÀ¸·Î ´Ã·Á°¥ °ÍÀ̶ó´Â ±â´ë°¡ ±ò·Á Àֱ⠶§¹®ÀÌ´Ù. WSITÀÌ JDK 6¿¡ ³»ÀåµÉÁö´Â ¾ÆÁ÷ Á¤È®È÷ ¾Ë·ÁÁ® ÀÖÁö´Â ¾ÊÁö¸¸, ¸ÓÁö¾Ê¾Æ ÀÚ¹Ù¿Í À©µµ´Â À¥ ¼ºñ½º·Î ¼·Î ¿Ïº®ÇÏ°Ô ¹ÀÏ ¼ö ÀÖ°Ô µÉ °ÍÀ¸·Î º¸ÀδÙ.
JWS 2.0Àº WSITÀ» ¿Ã¸®±â À§ÇÑ ±â¹Ý ÇÁ·¹ÀÓ¿öÅ©·Î, JAX-WS, JAXB, SAAJ µîÀ» Æ÷ÇÔÇÑ´Ù. Java SE 6¿¡´Â JWS 2.0ÀÌ µé¾î ÀÖ°í, .NET ÇÁ·¹ÀÓ¿öÅ© 3.0¿¡µµ WCF°¡ µé¾î ÀÖ´Ù. ±¸Ã¼ÀûÀ¸·Î ¸»Çϸé, ÇöÀçµµ Windows 2003À̳ª XP¿¡ .NET Framework 3.0À» ±ò¸é WCF¸¦ ¾µ ¼ö ÀÖ´Ù.
¶Ç Java SE 5¿¡ WSIT Milestone Release 1(https://wsit.dev.java.net/ ¿¡¼ ¹ÞÀ» ¼ö ÀÖ´Ù)À» ¼³Ä¡Çϸé WSITÀ» ¾µ ¼ö ÀÖ´Ù. ´Ù¸¸ WSIT ±â¹Ý ¼ºñ½º¸¦ ¸¸µé°í ¶ç¿ì·Á¸é ÅèÄÏÀ̳ª ±Û·¡½ºÇǽÃ(GlassFish)¿Í °°Àº À¥ ÄÁÅ×À̳ʰ¡ ÇÊ¿äÇÏ´Ù. ÀÌÀü¿¡ °ø°³µÈ WCF ¹öÀü(3¿ù CTP³ª 6¿ù CTP)¿Í WSIT´Â Å×½ºÆ®µÇÁö ¾ÊÀº »óÅÂÀ̹ǷΠWCFÀÇ svcutil.exe ¹öÀüÀÌ 3.0.4011.0 ÀÎÁö¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.
WSITÀÇ Æ©Å丮¾ó(http://java.sun.com/webser vices/interop/reference/tutorial/doc/index.html)À» º¸¸é ´çÀå WSITÀÌ ¹«¾ùÀ» °¡Àå ±Þ¼±¹«·Î »ý°¢ÇÏ´ÂÁö¸¦ ¾Ë ¼ö ÀÖ´Ù. ¹Ù·Î MTOMÀ» ÅëÇÑ ¸Þ½ÃÁö ÃÖÀûÈ, ½Å·Ú °¡´ÉÇÑ ¸Þ½Ã¡, º¸¾È, Åø Áö¿ø(³ÝºóÁî) µîÀÇ Ç׸ñµéÀÌ ÇÊ¿äÇÔÀ» ¾Ë ¼ö°¡ ÀÖ´Ù.
ÇöÀç ¿ì¸®µéÀÇ ¸Þ½ÅÀú »ç¿ë ÆÐÅÏÀ» º¸¸é (Åø Áö¿øÀ» Á¦¿ÜÇϰí ) À§ÀÇ Ç׸ñµéÀÌ °ÅÀÇ µé¾î¸Â´Â °ÍÀ» º¼ ¼ö°¡ ÀÖ´Ù. ¸Þ½ÅÀú·Î ÅØ½ºÆ®¸¦ ÁÖ°í¹Þ±âµµ ÇÏÁö¸¸, À̹ÌÁö³ª ¿öµå ¹®¼°°Àº µ¢Ä¡ Å« ¹ÙÀ̳ʸ® ÆÄÀϵ鵵 °ðÀß ÁÖ°í¹Þ´Â´Ù. µû¶ó¼ ±âÁ¸ÀÇ SOAP Åë½Å¿¡¼ ¹ÙÀ̳ʸ®¸¦ ÅØ½ºÆ®·Î º¯È¯ÇÏ´Â Àϸí Base64 ¹æ½ÄÀÇ ÀÎÄÚµù-µðÄÚµùÀº ¸Å¿ì ºñÈ¿À²ÀûÀÌ´Ù.
MTOMÀº XOP(XML Optimized Packaging)À̶ó´Â ±â¼úÀ» ±â¹ÝÀ¸·Î SOAP ¸Þ½ÃÁö ¾È¿¡ µé¾îÀÖ´Â ¹ÙÀ̳ʸ® µ¥ÀÌÅ͸¦ ÅØ½ºÆ® ¾ç ÂÊ¿¡¼ ¸ðµÎ Áö¿øÇϹǷΠÀÌÁ¦ ÷ºÎ ÆÄÀÏÀÌ µé¾î°£ À¥ ¼ºñ½º 󸮴 ´õ ÀÌ»ó ºñȣȯ¼ºÀÇ ´Ë¿¡ ºüÁöÁö ¾Ê¾Æµµ µÈ´Ù.
¸Þ½ÅÀú¸¦ ¾²´Ù º¸¸é °¡²û »ó´ë¹æ°úÀÇ ¿¬°áÀÌ ²÷°Ü ¹æ±Ý ÃÆ´ø ÅØ½ºÆ®°¡ »ó´ë¹æ¿¡°Ô º¸³»ÁöÁö ¾Ê¾Ò´Ù´Â ¸Þ½ÃÁö¸¦ º¸°Ô µÈ´Ù. ±×·¯¸é º¸Åë ÅØ½ºÆ®¸¦ ±×´ë·Î ´Ù½Ã Ãļ »ó´ë¹æ°úÀÇ ´ëȸ¦ °è¼ÓÇÏ°Ô µÇ´Âµ¥, ÀÌ·² °æ¿ì ½Å·Ú °¡´ÉÇÑ ¸Þ½Ã¡ÀÌ ÇÊ¿äÇÏ´Ù.
¸Þ½ÅÀú·Î º¸³»´Â ¸Þ½ÃÁö¸¦ Áß°£¿¡ ´©±º°¡°¡ °¡·Îä¼ º¼ ¼ö ÀÖ´Ù¸é Á¤¸» À§Çèõ¸¸ÇÑ ÀÏÀÏ °ÍÀÌ´Ù. ¹°·Ð SSLÀ» ½á¼ Àü¼ÛÃþ Àüü¿¡ º¸¾ÈÀ» °É ¼öµµ ÀÖ°í, ½Å¿ëÄ«µå¿Í °°Àº ¹Î°¨ÇÑ °³ÀÎ Á¤º¸ ºÎºÐ¸¸ °É·¯¼ º¸¾ÈÀ» °ÈÇÒ ¼öµµ ÀÖ´Ù. ƯÈ÷ µ·°ú °ü·ÃµÈ »çÇ×Àº ÇʼöÀûÀÏ ¼ö¹Û¿¡ ¾ø´Ù.
<±×¸² 3> ÀÚ¹Ù Ç÷§Æû°ú À©µµ Ç÷§ÆûÀÇ À¥ ¼ºñ½º ÅëÇÕ
¾î¶² À¥ ¼ºñ½º¿¡ ´ëÇÑ MTOM, WS-RM, WS-Security µîÀÇ ¼³Á¤Àº À¥ ¼ºñ½º Ç÷§Æû ³ª¸§´ë·Î(Áï ºñÇ¥ÁØÀûÀ¸·Î) ÇÒ ¼öµµ ÀÖÁö¸¸(»ç½Ç °ú°Å¿¡´Â ±×·¡ ¿Ô´Ù), WS-Policy¶ó´Â À̸§ÀÇ Ç¥ÁØ ½ºÆåÀÌ ³ª¿À¸é¼ À̸¦ ±â¹ÝÀ¸·Î WS-* »ç¿ë¿¡ ´ëÇÑ ¼³Á¤À» Ç¥ÁØÀûÀ¸·Î ÇÒ ¼ö ÀÖ´Â ±æÀÌ ¿·Á ¸¹Àº À¥ ¼ºñ½º Ç÷§ÆûµéÀÌ Áö¿øÀ» ½ÃÀÛÇϰí ÀÖ´Ù.
ÇÏÁö¸¸ WS-SecurityPolicy¿Í °°Àº ½ºÆåÀº ¸Å¿ì º¹ÀâÇÏ¿© »ç¶÷ÀÌ Á÷Á¢ ±× ¼³Á¤À» XML ¹®¼·Î ÀÛ¼ºÇϱ⿡´Â ºÎ´ãÀÌ Ä¿¼, ±× ÀÏÀ» µµ¿ÍÁÖ´Â ÅøÀÌ ¸Å¿ì À¯¿ëÇÏ´Ù. ³ÝºóÁî 5.5(ÇöÀç º£Å¸ 2)´Â WSIT Ç÷¯±×ÀÎÀ» Áö¿øÇÏ¿© WSIT ±â¹Ý Ŭ¶óÀ̾ðÆ®/¼¹ö °³¹ß ½Ã¿¡ Policy ÆÄÀÏÀ» Á÷Á¢ ÀÛ¼ºÇÏÁö ¾Ê°íµµ WS-SecurityPolicyÀÇ ¼³Á¤À» °¡´ÉÇϵµ·Ï µ½°í ÀÖ´Ù.
WSIT¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ³íÀÇ´Â ÀÌ Ä÷³ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼¹Ç·Î, ´ÙÀ½ ±âȸ·Î ¹Ì·ç±â·Î Çϰí, 2007³â ¹Î°£ IT±â¾÷ÀÇ À¥ ¼ºñ½º ÈïÇàÀ» À§ÇÑ ÇÁ¸®-ÇÁ·Î´ö¼Ç¿¡ ´ëÇØ »ìÆìº¸¸é ´ÙÀ½°ú °°´Ù.
¡Ü °¡Á¤: (ÀϹÝÀÎÀ̳ª Áß¼Ò±â¾÷, Áï ÀÏÁ¾ÀÇ ·Õ Å×ÀÏ ´ë»ó) À¥ ¼ºñ½º¸¦ Á¦°øÇÏ´Â »ç¾÷À» ÇÑ´Ù.
¡Ü Çϵå¿þ¾î ÀÎÇÁ¶ó Áغñ: ÀûÀýÇÑ ±Ô¸ðÀÇ À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¼¹ö È£½ºÆÃÀ» ¸¶·ÃÇÑ´Ù.
¡Ü ¼ÒÇÁÆ®¿þ¾î Ç÷§Æû Áغñ: ¿ÀÇ ¼Ò½º ¹«·á À¯´Ð½º °è¿(¸®´ª½º³ª ¿ÀǼֶ󸮽º µî) + JDK 6 + GlassFish v2 + WSIT
¡Ü ¼ºñ½º °³¹ß: ³ÝºóÁî 5.5
¡Ü °í°´ ´ë»ó API °ø°³: WSDL + Policy. ÀÚ¹Ù¿Í .NETÀ¸·Î Ŭ¶óÀ̾ðÆ®ÀÛ¼º ¿¹Á¦ Á¦°ø.
Áö±ÝºÎÅÍ ÁغñÇÑ´Ù¸é ¿ÃÇØ ¾ÈÀ¸·Î´Â º£Å¸ ¼ºñ½º °³½Ã°¡ °¡´ÉÇϰí, ³»³â »ó¹Ý±â¿¡ º£Å¸ ¼ºñ½º¸¦ ¿î¿µÇÏ¸é¼ ¾ÈÁ¤È¸¦ ÅëÇØ ÇϹݱ⿡ Á¤Âø½ÃŰ´Â ÀÏÀÌ °¡´ÉÇÏÁö ¾ÊÀ»±î Èñ¸ÁÇØº»´Ù(ºñÁî´Ï½º ¸ðµ¨ÀÌ ±Ã±ÝÇÏ´Ù¸é ¾Æ¸¶Á¸ À¥ ¼ºñ½º http://aws.amazon.com À» Âü°íÇϱ⠹ٶõ´Ù).
´ë°üÀý À¥ ¼ºñ½º´Â ¾ðÁ¦ ¶ß´Â °Å¾ß?
ÇÊÀÚ°¡ ¿Ã »ó¹Ý±â¿¡ IBMÀÇ ESB ´ã´çÀÚ¿Í ¾ê±â¸¦ ³ª´« ÀûÀÌ Àִµ¥, ¿Ã ÇϹݱâºÎÅÍ ESB°¡ È®½ÇÈ÷ ¶ã °ÍÀ̶ó´Â ¸»À» µé¾ú´Ù. ±×·±µ¥ ¹Ù·Î ±× ¿¹¾ð(?)ÀÌ ½ÇÇöµÇ¾ú´Ù. ÀÌ¹Ì ±½Á÷±½Á÷ÇÑ Â÷¼¼´ë ÅëÇÕ ÇÁ·ÎÁ§Æ®µéÀÌ ESBÀ» Çʼö Ç׸ñÀ¸·Î ¿ä±¸Çϱ⠽ÃÀÛÇß´Ù. ÀÌ Ãß¼¼´Â SOAÀÇ ±¸Çö¿¡ ÀÖ¾î ESB°¡ ¸Þ½ÃÁö¶ó´Â ÇǸ¦ µ¹°Ô ÇÏ´Â ½ÉÀåÀÇ ¿ªÇÒÀ» ÇÒ °ÍÀÓÀ» ¶æÀ̱⵵ ÇÑ´Ù. BEA, IBM, Oracle µî ±×°£ ÀÌ ºÐ¾ß¿¡ ¸¹Àº ÅõÀÚ¸¦ Çß´ø ȸ»çµé¿¡°Ô´Â ±âȸÀÓÀÌ ºÐ¸íÇÏÁö¸¸, ESB´Â ¸Å¿ì ±¤¹üÀ§ÇÑ ¿µ¿ªÀ» ´Ù·ç´Â ±â¼úÀÌ´Ù º¸´Ï ±âº»ÀûÀ¸·Î ´ÙÀ½°ú °°Àº ¿ä¼ÒµéÀÌ ¸Å¿ì Áß¿äÇÏ´Ù.
¡Ü À¥ ¼ºñ½º : ¾Õ¿¡¼µµ ¾ð±ÞÇßµíÀÌ WS-Policy¸¦ ÅëÇÑ WS-* Áö¿øÀº ±âÃÊ ÁßÀÇ ±âÃÊÀÌ´Ù. ESB°¡ ½Ç¾î ³ª¸£´Â ¸Þ½ÃÁöÀÇ ¼Òºñ¿Í °ø±ÞÀÌ ´ëºÎºÐ À¥ ¼ºñ½º Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹öÀ̰í, ¼ºñ½º°£ÀÇ Á¶À²À» ¸ÃÀº ESB´Â À¥ ¼ºñ½º ¿ä¼Òµé°ú ±ä¹ÐÈ÷ »óÈ£ÀÛ¿ëÇØ¾ß ÇÑ´Ù.
¡Ü XML : ESB¿¡¼ ´Ù·ç´Â ¸Þ½ÃÁö´Â ¶ó¿ìÆÃ(routing)°ú º¯È¯(Transformation)ÀÇ ´ë»óÀÌ´Ù. ¸Þ½ÃÁö Æ÷¸ä¿¡´Â ¿©·¯ ¼±ÅÃÁö°¡ ÀÖÁö¸¸, ÇöÀç °¡Àå ¿ì¼¼ÇÑ °ÍÀº ¿ª½Ã XMLÀÌ´Ù. ÀÌ´Â ÅØ½ºÆ® ±â¹ÝÀÇ Ç÷§Æû µ¶¸³¼ºÀÌ °áÁ¤ÀûÀ̾ú°ÚÁö¸¸,
XQuery¿Í °°Àº XML ÁúÀÇ ¾ð¾î°¡ ºü¸£°Ô ÁøÈÇϰí ÀÖ¾î Á¤º¸ ¼··ÆÀÇ °·ÂÇÔÀÌ Á¡Â÷ ±âÁ¸ ÇÁ·Î±×·¡¹Ö ¾ð¾î³ª SQLÀ» ¾ÐµµÇÒ ¼öÁØÀ¸·Î ¼ºÀåÇ߱⠶§¹®ÀÌ´Ù. ÇöÀç ÀÚ¹Ù´Â XPath 1.0°ú XSLT 1.0 Á¤µµ¸¦ Áö¿øÇÏÁö¸¸, Á¶¸¸°£ XPath 2.0¿¡ ±â¹ÝÇÑ XQuery 1.0°ú XSLT 2.0ÀÇ »ç¿ëÀÌ ESBÀÇ ÁÖ¿ä ±â´ÉÀ¸·Î ÀÚ¸® ÀâÀ» °ÍÀ¸·Î º¸ÀδÙ.
¡Ü Åø : ESB´Â °³¹ß, ¹èÄ¡, °ü¸® Æ÷ÀÎÆ®°¡ ¾öû³ª°Ô ¸¹´Ù. ±×°É ´Ù ÁÖ¸Ô±¸±¸½ÄÀ¸·Î ÇÑ´Ù¸é ±×¾ß¸»·Î Àç¾ÓÀÏ °ÍÀÌ´Ù. ½ÇÁ¦ ¸¹Àº ESB ¼Ö·ç¼ÇµéÀÌ Àü¸é¿¡ ³»¼¼¿ì´Â ÀåÁ¡À¸·Î ÀڽŵéÀÇ ÅøÀ» ²Å°í, ESB¸¦ »ç¿ëÇÏ·Á´Â »ç¶÷µéÀÇ °¡Àå Å« °ü½É»çµµ »ç½Ç Åø Áö¿øÀÌ´Ù. ±×¸®°í ¹«¾ùº¸´Ùµµ ¿ÀÇ ¼Ò½º ESB ÇÁ·ÎÁ§Æ®µéµµ ¹ß°ÉÀ½ÀÌ »¡¶óÁ³´Ù. µ¶Àڵ鵵 ½Ã°£ÀÌ ³ª´Â´ë·Î ´ÙÀ½ ³»¿ëÀ» ²À Âü°íÇϱ⠹ٶõ´Ù.
¾ÆÆÄÄ¡ ServiceMix http://www.servicemix.org/site/home.html 3.0 M2ObjectWeb Celtix http://forge.objectweb.org/projects/celtix/ 1.0 FCS
½ã OpenESB https://open-esb.dev.java.net/ Build060512_3
Mule http://mule.codehaus.org/ 1.3-rc4
¿ÀÇ ¼Ò½º ESBµéÀÇ ¹®Á¦¶ó¸é ¾Æ¹«·¡µµ ºÎÁ·ÇÑ ¹®¼¿Í Åø Áö¿øÀÌ µÇ°Ú´Âµ¥, ¹Ù·Î ¿©±â¿¡ Æ´»õ ½ÃÀåÀÌ ÀÖ´Ù°í ÇϰڴÙ. ¶ÇÇÑ À¥ ¼ºñ½º¿Í XML °ü·Ã Àü¹®°¡¿¡ ´ëÇÑ ¼ö¿ä¿Í °¡Ä¡µµ ¿Ã¶ó°¥ °ÍÀ¸·Î º¸¿©, ´ÙÀ½°ú °°Àº Á¦¾ÈÀ» ÇÏ°í ½Í´Ù. Java EE 5, ƯÈ÷ JWS 2.0°ú WSIT ±â¹ÝÀÇ À¥ ¼ºñ½º ¼³°è, ±¸Ãà, °ü¸®¿¡ ´ëÇÑ Àü¹®ÀûÀÎ ±â¼úÀ» Á¦°øÇÏ´Â ÄÁ¼³ÆÃÀÌ ÇÊ¿äÇÏ´Ù.
XQuery 1.0 ÇÁ·Î¼¼¼°¡ ÇÊ¿äÇÏ´Ù. ½ÃÁß¿¡ ¿ÀÇ ¼Ò½ºµµ ÀÖÁö¸¸ ¼º´É°ú ÀϺΠ±â´ÉÀÌ ºüÁ® ÀÖ°í »ó¿ë ¿ÏÀüÆÇÀÌ °øÁ¸ÇÑ´Ù. µû¶ó¼ °í¼º´É°ú ºÎ°¡ ±â´ÉÀ» Á¦°øÇÏ´Â XQuery ÇÁ·Î¼¼¼ÀÇ Á¦°ø°ú XQuery ÀÛ¼º ÄÁ¼³ÆÃÀÌ ÇÊ¿äÇÏ´Ù.
»ó¿ë ESB¿¡ ´ëÇÑ ´ë¾ÈÀ¸·Î ¿ÀÇ ¼Ò½º ESB¸¦ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇØ¾ß ÇÑ´Ù. ±¸Ãà, ¹èÄ¡, °ü¸®¿¡ ´ëÇÑ ÄÁ¼³ÆÃ°ú ´õºÒ¾î Åø Á¦°øÀÌ °¡Ä¡°¡ ÀÖ´Ù.
±«¹°ÀÇ ÈïÇà µ¹Ç³, ±× ÀÛ¿ë°ú ¹ÝÀÛ¿ë
¿µÈ¡°±«¹°¡±ÀÌ °³ºÀ 21ÀÏ ¸¸¿¡ õ¸¸ °ü°´À» µ¹ÆÄÇß´Ù´Â ¼Ò½ÄÀÌ ¸¶³É ±â»Ú°Ô¸¸ µé¸®Áö ¾Ê´Â µ¥¿¡´Â, ÃÊ´ëÇü ¿µÈÀÇ ¼º°øÀÇ À̸鿡 °í»ç´çÇÏ´Â ÀÛÀº ¿µÈµéÀÌ Àֱ⠶§¹®ÀÌ´Ù.
½ÃÀå ³í¸®·Î¸¸À¸·Î Ç®¾î°¥ ¼ö ¾ø´Â °ÍÀÌ ¹Ù·Î Àΰ£ »çȸÀ̰í, ÀÚº»ÁÖÀÇÇÏ¿¡¼µµ Á¤ºÎÀÇ Á¶Á¤Àº ²÷ÀÓ¾ø´Â ³í¶õ ¼Ó¿¡ À̾îÁ®¿Ô´Ù. ½ºÅ©¸° ÄõÅÍ ¹®Á¦¸¸ ÇØµµ ±×·¸´Ù. ½ÃÀå Áö¹è·ÂÀÌ Ãë¾àÇÑ Çѱ¹ ¿µÈÀÇ ¾Õ³¯ÀÌ ±â·Î¿¡ ¼ ÀÖ´Ù´Â ¿ì·Á°¡ ´Ã°í ÀÖ´Ù. ÀÌ·± ¿µÈ½ÃÀåÀÇ Çö½ÇÀº ½ºÅ©¸° ÄõÅÍ °°Àº º¸È£¸·Á¶Â÷ ¾ø´Â Áß¼Ò ¼ÒÇÁÆ®¿þ¾î ȸ»çÀÇ ¸ô¶ôÀ» ¸Á¿¬ÀÚ½Ç ÁöÄÑ ºÁ¾ß ÇÏ´Â ¿ì¸®µé°ú Å©°Ô ´Ù¸£Áö ¾Ê´Ù´Â »ý°¢ÀÌ µç´Ù.
°ú¿¬ ¿ÀÇ ¼Ò½º¿Í À¥ 2.0ÀÌ ÀÌ·± ¿¾ÇÇÑ »óȲÀ» Ÿ°³ÇÒ ±æÀ» ¿¾î ÁÙÁö´Â ¾ÆÁ÷ È®½ÇÇÏÁö ¾Ê´Ù. ´Ù¸¸, À§±â¸¦ ±âȸ·Î »ï´Â ÁöÇý°¡ ºûÀ» ¹ßÇÒ °ÍÀ̶ó´Â Èñ¸ÁÀ» °¡Á®º¸ÀÚ.
XML°ú À¥ ¼ºñ½º´Â ¿©ÀüÈ÷ ¹ÌÁöÀÇ ¿µ¿ªÀ¸·Î »õ·Î¿î °³Ã´ÀÚ¸¦ ±â´Ù¸®°í ÀÖ´Ù. @
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î ¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
°ü·Ã±â»ç
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)