¾×ƼºêX¸¦ »ç¿ëÇÏ´Â °¡Àå Å« ÀÌÀ¯ µÎ °¡Áö´Â Ŭ¶óÀÌ¾ðÆ® ÀÚ¿øÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡°ú À©µµ¿ìÀÇ UI ÄÄÆ÷³ÍÆ®¸¦ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. Ajax´Â ÀÌ µÎ °¡Áö ¿ëµµ¸¦ ¸ðµÎ ¸¸Á·½Ãų ¼ö´Â ¾øÁö¸¸ °í±Þ UI¸¦ ÇÊ¿ä·Î ÇÏ´Â ¾ÖÇø®ÄÉÀ̼DZîÁö Ajax·Î ¸¸µé ¼ö ÀÖÀ» Á¤µµ·Î UI ±â´ÉÀº °·ÂÇÏ´Ù. ƯÁý 3ºÎ¿¡¼´Â ÀÌÁ¡¿¡ Æ÷Ä¿½ÌÇÏ¿© Ajax·Î ¾×ƼºêX¸¦ ´ëüÇÏ´Â ¹æ¹ýµé¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.
¸ÕÀú ¾×ƼºêX°¡ ÇÒ ¼ö ÀÖ´Â ÀÏ¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÀÚ. Å©°Ô µÎ °¡Áö·Î ºÐ·ùÇÒ ¼ö ÀÖÀ» °Í °°´Ù. Çϳª´Â Ŭ¶óÀ̾ðÆ®ÀÇ ÀÚ¿øÀ» ÀÌ¿ëÇÏ´Â ÀÏÀÌ´Ù. À¥ ºê¶ó¿ìÀúÀÇ º¸¾È ¸ðµ¨¿¡¼´Â Ŭ¶óÀ̾ðÆ®ÀÇ ÀÚ¿ø Áß ÀϺκи¸ Á¢±ÙÇÒ ¼ö Àִµ¥ ¾×ƼºêX¸¦ »ç¿ëÇϸé Ŭ¶óÀ̾ðÆ®ÀÇ °ÅÀÇ ¸ðµç ÀÚ¿øÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.
ÀÎÅÍ³Ý ¹ðÅ·À» ÇÒ ¶§ ¶ß´Â Űº¸µå º¸¾È ¸ðµâÀº Çϵå¿þ¾î Á¦¾î¸¦ ÅëÇØ Űº¸µåÀÇ ÀÔ·ÂÀ» ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ ÇØÅ·ÇÏÁö ¾Ê´ÂÁö °¨½ÃÇÏ´Â °ÍÀÌ´Ù.
¹ÙÀÌ·¯½º °Ë»ç ÇÁ·Î±×·¥ °°Àº °Ç Ŭ¶óÀ̾ðÆ®ÀÇ ÆÄÀÏ ½Ã½ºÅÛ¿¡ Á¢±ÙÇÒ ¼ö Àֱ⠶§¹®¿¡ °¡´ÉÇÑ °ÍÀ̰í ÀÚ½ÅÀÇ PC¸¦ ´Ù¸¥ »ç¼³ ³×Æ®¿öÅ©(ÁַΠȸ»ç ³×Æ®¿öÅ©)¿¡ ¼Ò¼ÓµÈ °Íó·³ ¸¸µé¾îÁÖ´Â VPN(°¡»ó »ç¼³ ³×Æ®¿öÅ©) ÇÁ·Î±×·¥µµ Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿öÅ© ÀÚ¿øÀ» ÀÌ¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ °¡´ÉÇÑ °ÍÀÌ´Ù. ¹°·Ð °ÔÀÓµµ °¡´ÉÇÏ´Ù.
ÀÌó·³ Ŭ¶óÀ̾ðÆ®ÀÇ ÀÚ¿øÀ» ¸¶À½´ë·Î Ȱ¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ °·ÂÇÑ µµ±¸°¡ µÇ±âµµ ÇÏÁö¸¸ ½ºÆÄÀÌ¿þ¾î °°Àº µµ±¸·Î ¾Ç¿ëµÇ±âµµ ÇÑ´Ù.
¶Ç ´Ù¸¥ Çϳª´Â À©µµ¿ìÀÇ UI ÄÄÆ÷³ÍÆ®µéÀ» ½±°Ô Ȱ¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ±âº»ÀûÀÎ ÄÄÆ÷³ÍÆ® ¿Ü¿¡´Â ¸ðµÎ Á÷Á¢ ¸¸µé¾î¾ß ÇÏ´Â HTML°ú´Â ´Þ¸® À©µµ¿ìÀÇ UI ÄÄÆ÷³ÍÆ®´Â Á¾·ùµµ ¸¹°í ¿Ï¼ºµµ°¡ ³ôÀºµ¥´Ù GUI »ý¼º Åøµµ ÁÁ±â ¶§¹®¿¡ ±â´É¼ºÀÌ ³ôÀº UI¸¦ ½±°Ô ¸¸µé ¼ö ÀÖ´Ù. ±×·¡¼ °í°´ÀÌ Á¦ÇÑµÈ SI(½Ã½ºÅÛ ÅëÇÕ) ÇÁ·ÎÁ§Æ®¿¡¼´Â º¹ÀâÇÑ ¿ä±¸»çÇ×À» ó¸®Çϱâ À§ÇØ ¾×ƼºêX¸¦ ¼±ÅÃÇÏ´Â °æ¿ì°¡ ¸¹´Ù.
°£È¤ ´õ È·ÁÇÏ°í ¸·°ÇÑ UI¸¦ À§Çؼ ¾×ƼºêX¸¦ ¾´´Ù°í Çϱ⵵ Çϴµ¥ ½Ç»ó HTML°ú CSS, ÀÚ¹Ù½ºÅ©¸³Æ®·Îµµ °í¼öÁØ UI¸¦ ¸¸µå´Â ÀÏÀÌ ±×¸® ¾î·Á¿î ÀÏÀº ¾Æ´Ï´Ù.
±×º¸´Ù ÀÌ¹Ì ÁغñµÇ°í °ËÁõµÈ UI ÄÄÆ÷³ÍÆ®°¡ ¸¹°í °Ñº¸±â UI¸¸ ¸¸µé ¼ö ÀÖ´Â HTML À§ÁöÀ¨ µµ±¸¿¡ ºñÇØ µ¿ÀÛ±îÁö ¼¼¹ÐÇÏ°Ô Á¶Á¤ÇÒ ¼ö ÀÖ´Â ºñÁÖ¾ó ½ºÆ©µð¿À°¡ ´õ Æí¸®ÇÏ´Ù´Â Á¡ÀÌ Áß¿äÇÏ°Ô ÀÛ¿ëÇÏ´Â °Í °°´Ù.
±×·³ Ajax°¡ ÇÒ ¼ö ÀÖ´Â ÀÏÀº ¹«¾ùÀϱî. Ajax´Â ¿ø·¡´Â À¥¿¡¼ ºñµ¿±â Åë½ÅÀ» ÇÏ´Â ±â¼úÀ» ÀÏÄ´ ¸»À̾ú´Ù. ÇÏÁö¸¸ ¿äÁòÀº Àǹ̰¡ È®ÀåµÇ¾î DHTML, CSS, ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ Æ÷°ýÇÏ´Â °³³äÀ¸·Î À̾߱âµÇ±âµµ ÇÑ´Ù. ¿©±â¼µµ ÀÌ·± ³ÐÀº ÀǹÌÀÇ °³³äÀ» Ajax¿¡ Àû¿ëÇÏ´Â °ÍÀÌ ÀûÀýÇÒ µíÇÏ´Ù. ÀÌ·± Ãø¸é¿¡¼ º»´Ù¸é Ajax°¡ ´ëüÇÒ ¼ö ÀÖ´Â °ÍÀº ¾ÕÀÇ µÎ °¡Áö Áß ÈÄÀÚ´Ù.
Ajax ¿ª½Ã À¥ ºê¶ó¿ìÀú º¸¾È ¸ðµ¨À» ³Ñ¾î¼Áø ¸øÇϱ⠶§¹®¿¡ ÀüÀÚÀÇ ¹®Á¦´Â ÀüÇô ÇØ°áÇÒ ¼ö ¾ø´Ù. ±×·± ¸é¿¡¼ Ajax´Â ¾×ƼºêXÀÇ ¿ÏÀüÇÑ ´ë¾ÈÀº ¾Æ´Ñ ¼ÀÀÌ´Ù.
ÇÏÁö¸¸ ÈÄÀÚÀÇ °æ¿ì´Â »ó´çÈ÷ ¸¹Àº ºÎºÐÀ» ´ëüÇÒ ¼ö ÀÖ´Ù. ¿äÁò¿¡´Â ¿öµåÇÁ·Î¼¼¼³ª ½ºÇÁ·¹µå½ÃƮó·³ °í±Þ UI¸¦ ÇÊ¿ä·Î ÇÏ´Â ¾ÖÇø®ÄÉÀ̼ǵµ ¾×ƼºêX¸¦ ÀüÇô ¾²Áö ¾Ê°í ¸¸µé¾î³»´Â °æ¿ìµµ º¼ ¼ö ÀÖÀ» Á¤µµ´Ù.
 |
| <ȸé 1> À§Å° ±â¹Ý À¥³ëÆ® ¼ºñ½º : ½ºÇÁ¸µ³ëÆ® |
ƯÁý 3ºÎ¿¡¼´Â Ajax·Î ¾×ƼºêX¸¦ ´ëüÇÏ´Â ¸î °¡Áö »ç·Êµé¿¡ ´ëÇØ ¾Ë¾Æº¼ °ÍÀÌ´Ù. °¡±ÞÀû Ãß»óÀûÀÎ À̾߱âµéº¸´Ù´Â ÄÚµå·Î À̾߱âÇÏ¸é¼ ÀÚ¹Ù½ºÅ©¸³Æ®¿Í HTML/CSS·Î UI¸¦ ¸¸µé¾î ³ª°¡´Â °ÍÀÌ »ý°¢º¸´Ù ½±°í Àç¹ÌÀÖ´Ù´Â »ç½ÇÀ» º¸¿©ÁÖ°í ½Í´Ù.
 | HTML WYSIWYG ¿¡µðÅÍ ¸¸µé±â |  |
°ú°Å ´Ü¼ø ÅØ½ºÆ®¸¸ ÀúÀåÇÏ´ø °Ô½ÃÆÇÀÌ Á¡Á¡ ÁøÈÇÏ¿© ´Ù¾çÇÑ ½ºÅ¸ÀÏÀ» Ç¥ÇöÇÏ·Á´Â ¿å±¸°¡ °ÇØÁö¸é¼ Ä«Æä³ª ºí·Î±× µî¿¡µµ ¾×ƼºêX³ª ÀÚ¹Ù ¾ÖÇø´À¸·Î ¸¸µç ¿¡µðÅͰ¡ ¸¹ÀÌ Ã¤¿ëµÇ¾ú´Ù. ±×·±µ¥ ¿äÁò¿¡´Â ¾×ƼºêX ¿¡µðÅ͵éÀÌ ¼ø¼ö HTML/ÀÚ¹Ù½ºÅ©¸³Æ® ¿¡µðÅͰ¡ Á¡Â÷ ´Ã¾î³ª´Â Ãß¼¼´Ù.
ÃֽŠÀ¥ ºê¶ó¿ìÀúµé¿¡ À§ÁöÀ¨(WYSIWYG) ¿¡µðÅͰ¡ žÀçµÇ¸é¼ ¾×ƼºêX ¾øÀÌ ±¸ÇöÇÒ ¼ö ÀÖ°Ô µÈ °ÍÀÌ´Ù. À¥ ºê¶ó¿ìÀú¿¡ ³»ÀåµÈ À§ÁöÀ¨ ¿¡µðÅ͸¦ »ç¿ëÇÏ¸é °Ô½ÃÆÇ µî¿¡ À§ÁöÀ¨ ¿¡µðÅ͸¦ ºÙÀÌ´Â ÀÏÀº º°·Î ¾î·ÆÁö ¾Ê´Ù.
ÀÌ¹Ì ¿ÀǼҽº·Î ¿Ï¼ºµµ ³ôÀº ¿¡µðÅ͵µ ¸¹ÀÌ ³ª¿Í ÀÖÁö¸¸ ¿©±â¼´Â Á÷Á¢ ¸¸µé¾îº¸ÀÚ. ÆÄÀÌ¾îÆø½º¿Í IEÀÇ API°¡ Á¶±Ý¾¿ ´Ù¸£±â ¶§¹®¿¡ ±× Â÷ÀÌÁ¡µµ Á¶±Ý »ìÆìº¼ °ÍÀÌ´Ù.
HTML ÆíÁý ¸ðµå
À§ÁöÀ¨ ¿¡µðÅ͸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀº µÎ °¡Áö´Ù. Çϳª´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ document.designMode¿¡ 'on' °ªÀ» ÁÖ´Â °ÍÀÌ´Ù. ±×·¯¸é ÆäÀÌÁö Àüü°¡ ¿¡µðÆÃ ÇÒ ¼ö ÀÖ´Â ¸ðµå·Î ¹Ù²î°Ô µÈ´Ù. ÀÌ ¹æ¹ýÀº ÆÄÀÌ¾îÆø½º¿Í IE ¸ðµÎ µ¿ÀÛÇÑ´Ù. <¸®½ºÆ® 1>À» º¸ÀÚ.
| |
<html>
<head>
<script type="text/javascript">
<document.designMode = 'on'
</script>
</head>
<body>
<h2>Hello
<p>World
</body>
</html>
| |
 |
<¸®½ºÆ® 1>À» ºê¶ó¿ìÀú·Î ¿¸é <ȸé 2>¿Í °°ÀÌ º¸ÀδÙ.
 |
<ȸé 2> <¸®½ºÆ® 1>ÀÇ ½ÇÇà °á°ú
|
°Ñº¸±â·Ð º° ´Ù¸¦ ¹Ù ¾ø¾î º¸ÀÌÁö¸¸ ÀÌ ÆäÀÌÁö´Â ºê¶ó¿ìÀú»ó¿¡¼ ÆíÁýÀÌ °¡´ÉÇÏ´Ù. ¸¸¾à e¿Í l »çÀÌ¿¡ Ä¿¼°¡ ÀÖ´Â »óÅ¿¡¼ a¸¦ ÀÔ·ÂÇϸé Heallo°¡ º¸ÀÏ °ÍÀÌ´Ù. ¹°·Ð ½ºÅ¸ÀÏÀº ÁÖº¯ ½ºÅ¸ÀÏÀ» ±×´ë·Î À¯ÁöÇÑ´Ù. È»ìÇ¥ Ű·Î À̵¿ÇÏ´Â °Íµµ ÀÏ¹Ý ¿¡µðÅÍ¿Í ºñ½ÁÇÏ°í ±ÛÀÚ¸¦ ÀÔ·ÂÇϰųª Áö¿ì´Â °Íµµ ºñ½ÁÇÏ´Ù. À¥ ºê¶ó¿ìÀú ÀÚü¿¡¼ Ű ÀÔ·ÂÀ» ¹Þ¾Æ¼ HTML ¹®¼ÀÇ DOM °´Ã¼¸¦ ¼öÁ¤ÇÏ´Â °ÍÀÌ´Ù. ±×·¡¼ DOM Inspector µîÀ¸·Î º¸¸é ¿¤¸®¸ÕÆ®ÀÇ ³»¿ëÀÌ Heallo·Î ¹Ù²î´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.
IE¿¡´Â designMode¿Í´Â º°°³·Î ¶Ç contentEditableÀ̶ó´Â ¼Ó¼ºÀÌ ÀÖ´Ù. designMode°¡ HTML ¹®¼ Àüü¸¦ ÆíÁýÇÒ ¼ö ÀÖµµ·Ï Çϴµ¥ ¹ÝÇØ contentEditable ¼Ó¼ºÀº document °´Ã¼ÀÇ ¼Ó¼ºÀÌ ¾Æ´Ï¶ó ¿¤¸®¸ÕÆ®ÀÇ ¼Ó¼ºÀ¸·Î HTML ¹®¼ÀÇ ÀϺκи¸ ÆíÁýÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¼ö ÀÖ´Ù. div³ª span, a µîÀÇ ¿¤¸®¸ÕÆ®¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ À¥ ¿¡µðÅ͸¦ ¸¸µé±â´Â ÆÄÀÌ¾îÆø½ºº¸´Ù IE°¡ Á¶±Ý ´õ ½±´Ù.
¹Ý¸é designMode´Â ¹®¼ Àüü¸¦ ÆíÁýÇÒ ¼ö ÀÖµµ·Ï ¸¸µé±â ¶§¹®¿¡ ¸Þ´º³ª ³»ºñ°ÔÀ̼DZîÁö Áö¿ö¹ö¸± ¼öµµ ÀÖ°í ¶Ç designMode¿¡¼´Â ¸µÅ©¸¦ Ŭ¸¯Çصµ À̵¿ÇÏÁö ¾Ê±â ¶§¹®¿¡ Áö¿ìÁö ¾Ê´õ¶óµµ µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. ±×·¡¼ designMode¸¸ Áö¿øÇÏ´Â ºê¶ó¿ìÀú¿¡¼´Â À§ÁöÀ¨ ¿¡µðÅ͸¦ ¸¸µé ¶§ iframeÀ» »ç¿ëÇÑ´Ù.
iframe ¾È¿¡ designMode¸¦ ÄÒ ¹®¼¸¦ ³Ö°í ¹Ù±ù¿¡ ¸Þ´º³ª ³»ºñ°ÔÀ̼ÇÀÌ ÀÖ´Â ¹®¼´Â designMode¸¦ ²ö »óÅ·Π³öµÎ´Â °ÍÀÌ´Ù. ±×·¯¸é iframe ¿µ¿ª¸¸ ÀÚÀ¯·Ó°Ô ÆíÁýÇÒ ¼ö ÀÖ´Ù. <¸®½ºÆ® 2>¿Í ºñ½ÁÇÑ ½ÄÀ¸·Î ¸¸µé¸é µÈ´Ù.
| <¸®½ºÆ® 2> ¿¡µðÅÍ ±âº» Ʋ | | | |
<body>
<div>
<a href="...">¸Þ´º1</a>
<a href="...">¸Þ´º2</a>
<a href="...">¸Þ´º3</a>
</div>
<iframe id="editor" onload="this.contentWindow.document.designMode='on';"></iframe>
</body>
| |
 |
<¸®½ºÆ® 2>¸¦ ½ÇÇàÇϸé <ȸé 5>¿Í °°ÀÌ Ç¥½ÃµÈ´Ù. À̶§, ¹Ú½º ¹Ù±ùÀº ÀÏ¹Ý À¥ÆäÀÌÁöó·³ µ¿ÀÛÇÏ°í ¹Ú½º ¾ÈÀÇ ¿µ¿ªÀº ÆíÁý °¡´ÉÇÑ »óŰ¡ µÈ´Ù. À©µµ¿ì ÇÁ·Î±×·¡¹ÖÀ¸·Î ºñÀ¯ÇÑ´Ù¸é RichEdit ÄÁÆ®·ÑÀ» »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ ¼ÀÀÌ´Ù. ÇÏÁö¸¸ À̰͸¸À¸·Î´Â ¿ÏÀüÇÑ ¿¡µðÅͰ¡ µÉ ¼ö ¾ø´Ù. À§ÁöÀ¨ »óÅÂÀÇ ¹®¼¸¦ ±× ½ºÅ¸ÀÏ ±×´ë·Î ±ÛÀ» ¾²°Å³ª Áö¿ì°Å³ª ÇÒ ¼ö´Â ÀÖÁö¸¸ »õ·Î¿î ½ºÅ¸ÀÏ·Î ±ÛÀ» ¾²Áö´Â ¸øÇϱ⠶§¹®ÀÌ´Ù.
¿¹¸¦ µé¾î World¿¡¼ ù ¹øÂ° ¿¹Á¦ ÄÚµåÀÇ <p>World</p> ºÎºÐÀ» ÆíÁýÇÒ ¶§ or ºÎºÐÀ» Áö¿ì°Å³ª ´Ù¸¥ ±ÛÀÚ·Î ¹Ù²Ü ¼ö´Â À־ ÀÌ ºÎºÐ¸¸ °Á¶Çϱâ À§ÇØ<p>W<strong>or</strong>ld</p>¿Í °°ÀÌ ¸¸µé ¼ö´Â ¾ø´Ù. ½±°Ô ¸»ÇÏ¸é »õ·Î¿î ű׸¦ »ðÀÔÇÒ ¼ö´ÜÀÌ ¾ø´Ù. ¿£ÅÍ۸¦ ´©¸£¸é <p> ű׳ª <br>űװ¡ »ðÀԵǴ °Ô ÀüºÎÀÌ´Ù.
 |
<ȸé 3> <¸®½ºÆ® 2>ÀÇ °á°úȸé
|
 |
<ȸé 4> tinyMCE
|
±×·¡¼ ¿¡µðÅ͸¦ ¿Ï¼ºÇϱâ À§Çؼ´Â ¿©·¯ °¡Áö ¹öưµéÀ» ºÙÀÌ°í ´ÜÃà۸¦ ÇÒ´çÇØ¼ »õ·Î¿î ű׸¦ »ðÀÔÇÒ ¼ö ÀÖ°Ô ÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ¿ÀǼҽº ¿¡µðÅÍÀÎ tinyMCEÀÇ È¸é Áß ÇϳªÀε¥ ÀÌó·³ ¸¸µé¾î¾ß ¿Ï¼ºµÈ ¿¡µðÅͰ¡ µÇ´Â °ÍÀÌ´Ù.
Bold ¹öư ¸¸µé±â
¿©±â¼´Â °£´ÜÇÏ°Ô ¼±ÅÃµÈ ºÎºÐÀ» Bold·Î °Á¶ÇÏ´Â ¹öưÀ» ¸¸µé¾î¼ ºÙ¿©º¸ÀÚ. ¸ÕÀú, À©µµ¿ì ÇÁ·Î±×·¡¹Ö¿¡¼ RichEdit ÄÁÆ®·ÑÀ» ¾²·Á¸é °®´Ù ºÙÀÌ´Â °Í»Ó¸¸ ¾Æ´Ï¶ó RichEdit ÄÁÆ®·ÑÀÇ API¸¦ ¾Ë¾Æ¾ß ÇϵíÀÌ À¥ ¿¡µðÅÍ¿¡¼µµ À¥ ºê¶ó¿ìÀú¿¡¼ Á¦°øÇÏ´Â ¿¡µðÅÍÀÇ API¸¦ ¾Ë¾Æ¾ß ÇÑ´Ù. À̰͵µ ÆÄÀÌ¾îÆø½º¿Í IE°¡ ¾à°£ ´Ù¸£±ä ÇÏÁö¸¸ »ó´çÈ÷ ºñ½ÁÇÑ ÆíÀÌ´Ù. µÑ ´Ù document °´Ã¼¿¡¼ execCommand¶ó´Â ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. execCommandÀÇ »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.
bSuccess = object.execCommand(sCommand [, bUserInterface] [, vValue])
IE¿¡¼´Â selection °´Ã¼³ª range °´Ã¼¿¡µµ ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ù ¹øÂ° sCommand´Â ½ÇÇàÇÒ ¸í·ÉÀÇ Á¾·ù, µÎ ¹øÂ°´Â UI°¡ ºÙ´À³Ä ¾Æ´Ï³ÄÀε¥ ÀÏ´ÜÀº ¹«Á¶°Ç false¸¦ ÁØ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. ¼¼ ¹øÂ°´Â ¸í·ÉÀ» ½ÇÇàÇϴµ¥ ºÎ°¡ÀûÀ¸·Î ÇÊ¿äÇÑ °ªµéÀ» ³Ñ°ÜÁÖ´Â °ÍÀÌ´Ù.
´ëºÎºÐÀÇ ÆíÁý API´Â ÀÌ execCommand ¸Þ¼Òµå Çϳª¿¡¼ sCommand¸¦ ´Ù¾çÇÏ°Ô ¹Ù²ã°¡¸é¼ ½ÇÇàÇÏ°Ô µÈ´Ù. sCommandÀÇ Á¾·ù·Î´Â bold, createlink, fontname, forecolor, formatblock µî ¿¡µðÅÍ¿¡ ÇÊ¿äÇÑ ´Ù¾çÇÑ °ÍµéÀÌ ÀÖÀ¸¸ç ÀÚ¼¼ÇÑ ³»¿ëÀº ÆÄÀÌ¾îÆø½º »çÀÌÆ®³ª MSDN¿¡¼ ã¾Æº¼ ¼ö ÀÖ´Ù.
¿©±â¼´Â °Á¶ÇÏ´Â ¹öưÀ» ºÙÀÏ °ÍÀ̹ǷΠÇÊ¿äÇÑ Ä¿¸Çµå´Â bold´Ù. ¹Ù·Î ¾ÕÀÇ ¿¹Á¦ Äڵ忡¼ div ÅÂ±× ¾È¿¡ <¸®½ºÆ® 3>°ú °°Àº Äڵ带 »ðÀÔÇØº¸ÀÚ.
<¸®½ºÆ® 4>´Â ÀÔ·ÂµÈ Å±׸¦ ¼¹ö¿¡¼ ó¸®ÇØÁÖ´Â ÄÚµåÀÌ´Ù. <¸®½ºÆ® 2>¿Í <¸®½ºÆ® 3>À» ºñ±³Çغ¸¸é ÄÚµå ·®µµ ÁÙ°í, Á¤Á¦µÈ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ¿Í °°ÀÌ ¶óÀ̺귯¸®¸¦ »ç¿ëÇϸé Á÷Á¢ © ¶§ÀÇ ¼ö°í¸¦ ¸¹ÀÌ ÁÙÀÏ ¼ö ÀÖ´Ù. ¶Ç ÀÌ¹Ì °ËÁõµÈ ·ÎÁ÷À¸·Î ¾ÈÀüÇÏ°í ºü¸£°Ô ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.
| |
<:script type="text/javascript">
function editorDocument() {
return document.getElementById('editor').contentWindow.document
}
<:/script>
<:a href="#" onmousedown="return false;" onclick="editorDocument().execCommand('bold', false, true); return false;">°Á¶<:/a>
| |
 |
±×¸®°í À¥ ºê¶ó¿ìÀú¿¡¼ ´Ù½Ã html ÆÄÀÏÀ» ¿¾îº¸ÀÚ. ¸µÅ©°¡ Çϳª ´õ »ý°å´Ù. ÀÌÁ¦ ÆíÁýÀ» ÇÏ´Ù°¡ °Á¶ ¸µÅ©¸¦ ´©¸£¸é ±× ´ÙÀ½ºÎÅÍ ÀÔ·ÂÇÏ´Â ±ÛÀÚ´Â ÁøÇÏ°Ô Ç¥½ÃµÉ °ÍÀÌ´Ù. ÀϺκÐÀ» ¼±ÅÃÇÏ°í °Á¶ ¸µÅ©¸¦ ´©¸£¸é ±× ºÎºÐ¸¸ °Á¶µÈ´Ù. ÀÌ·± ½ÄÀ¸·Î ¿¡µðÅÍ¿¡ ÇÊ¿äÇÑ ´Ù¾çÇÑ ±â´ÉµéÀ» Ãß°¡ÇÏ¸é ¾Õ¼ º» tinyMCE¿Í °°Àº À¥ ¿¡µðÅ͸¦ ¸¸µé ¼ö ÀÖ´Ù.
 |
<ȸé 5> <¸®½ºÆ® 3>ÀÇ °á°úȸé
|
ÀÌó·³ »ý°¢º¸´Ù À¥ ¿¡µðÅ͸¦ ¸¸µå´Â ÀÏÀÌ ¾î·ÆÁö ¾ÊÀ½À» ¾Ë ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ±×·¸´Ù°í ¶Ç ½¬±â¸¸ ÇÑ Àϵµ ¾Æ´Ï´Ù. ºê¶ó¿ìÀú¸¶´Ù µ¿ÀÛÀÌ Á¶±Ý¾¿ ´Ù¸£°í À¥ ºê¶ó¿ìÀú¿¡ ³»ÀåµÈ ¿¡µðÅÍ¿¡ ¹ö±×°¡ ¸¹±â ¶§¹®ÀÌ´Ù.
±×·¡¼ tinyMCE °°Àº ¿¡µðÅÍ¿¡¼´Â ÀÌ·± ºÎºÐÀ» ¸¹ÀÌ ¼öÁ¤ÇØ ³õ¾Ò°í ÇÊÀÚ°¡ °³¹ß¿¡ Âü¿©Çß´ø ½ºÇÁ¸µ³ëÆ®¿¡¼µµ óÀ½¿¡´Â tinyMCE¸¦ ¾²´Ù°¡ ¼ö¸¹Àº ¹ö±×¸¦ °ßµðÁö ¸øÇÏ°í ¿¡µðÅ͸¦ óÀ½ºÎÅÍ ´Ù½Ã ¸¸µé±âµµ Çß´Ù. ¾Æ¹«Æ° ÀÌÁ¦ »ç¿ëÀڵ鿡°Ô ¾×ƼºêX¸¦ ¼³Ä¡Çϵµ·Ï °¿äÇÏÁö ¾Ê°íµµ ²Ï ±¦ÂúÀº ¼öÁØÀÇ À§ÁöÀ¨ ¿¡µðÅ͸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº Èñ¸ÁÀûÀÎ ÀÏÀÌ´Ù.
| |
|
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡µµ ´Ù¾çÇÑ ÇÁ·¹ÀÓ¿öÅ©¿Í °³¹ßµµ±¸°¡ Àִµ¥ ¿©±â¼´Â ÇÁ·ÎÅäŸÀÔ(prototype)°ú ÆÄÀ̾î¹ö±×(Firebug)¸¦ ¼Ò°³Çغ¸·Á°í ÇÑ´Ù. ÇÁ·ÎÅäŸÀÔÀº ¿äÁò °¡Àå ³Î¸® ¾²ÀÌ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÁ·¹ÀÓ¿öÅ©ÀÌ´Ù. Ajax ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â ÆÐÅÏ Áß ¾ð¾îÀÇ ±âº»ÀûÀÎ ºÎºÐµéÀ» ½±°Ô ÇØÁÖ´Â ¶óÀ̺귯¸®ÀÌ´Ù. ´ëÇ¥ÀûÀ¸·Î $() ÇÔ¼ö°¡ ÀÖ´Ù. ¾Õ¼± ¿¹Á¦¿¡¼ »ç¿ëÇß´ø ÄÚµå Áß¿¡ ´ÙÀ½°ú °°Àº ºÎºÐÀº
document.getElementById('editor')
¾Æ·¡¿Í °°ÀÌ ¹Ù²Ü ¼ö ÀÖ´Ù.
$('editor')
´Ü¼øÇÑ Ãà¾à¿¡ ºÒ°úÇÏÁö¸¸ ½ÇÁ¦ °³¹ß °úÁ¤¿¡¼´Â Á¤¸» Å« ÆíÀǸ¦ Á¦°øÇÑ´Ù. À̿ܿ¡ CSS Selector¿Í °°Àº ¹®¹ýÀ¸·Î ¿¤¸®¸ÕÆ®ÀÇ ¸ñ·ÏÀ» °¡Á®¿Ã ¼ö ÀÖ´Â $$ ÇÔ¼öµµ ÀÖ°í Event °´Ã¼³ª Array °´Ã¼¸¦ Æí¸®ÇÏ°Ô ´Ù·ê ¼ö ÀÖ´Â ¹æ¹ýµµ Á¦°øÇÑ´Ù. ¿¹Á¦¸¦ ÅëÇØ »ìÆìº¸ÀÚ.
var list = [1, 4, 6, 3, 11, 8, 4, 7, 8]
var uniqList = list.uniq() // Áߺ¹ ¿ø¼Ò Á¦°Å [1, 4, 6, 3, 11, 8, 7]
·çºñ¿¡¼ ¸¹ÀÌ »ç¿ëÇÏ´Â ¹æ½ÄÀ¸·Î closure¸¦ Ȱ¿ëÇØ¼ for ·çÇÁ¸¦ ´ëüÇÒ ¼öµµ ÀÖ´Ù.
list.each(function(element) {
sum = sum + element
})
Event °´Ã¼ÀÇ °æ¿ì´Â ºê¶ó¿ìÀú ȣȯ¼ºÀ» °ÆÁ¤ÇÏÁö ¾Ê°í »ç¿ëÇÒ ¼ö ÀÖ´Â µµ±¸µéÀ» ¸¹ÀÌ Á¦°øÇÑ´Ù.
Event.pointerX(event) // IE, ÆÄÀÌ¾îÆø½º¿¡ »ó°ü¾øÀÌ event°¡ ¹ß»ýÇÑ ¸¶¿ì½º ÁÂÇ¥¸¦ °¡Á®¿À¸é¼ ½ºÅ©·Ñ º¸Á¤µµ ÇØÁØ´Ù.
Event.element(event) // IEÀÇ event.srcElement, FirefoxÀÇ event.targetElement
ÀÚ¼¼ÇÑ ³»¿ëÀº prototypejs.org¿¡¼ º¼ ¼ö ÀÖ´Ù. ¿äÁòÀº jQuery¶ó´Â ÇÁ·¹ÀÓ¿öÅ©µµ ¶ß°í ÀÖÁö¸¸ ÇÁ·ÎÅäŸÀÔÀÌ ¿ö³« ºü¸¥ ¼Óµµ·Î ´ëÁßÈµÇ¾î¼ ¸¹Àº ´Ù¸¥ ¶óÀ̺귯¸®°¡ ÇÁ·ÎÅäŸÀÔ ±â¹ÝÀ¸·Î µÇ¾î Àֱ⠶§¹®¿¡ ¾Ë¾ÆµÎ¸é ÁÁÀ» °ÍÀÌ´Ù.
ÀϹÝÀûÀ¸·Î º¹ÀâÇÑ Ajax ¾ÖÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ ¶§´Â µð¹ö±ë µµ±¸°¡ Á» ´õ ¸¹°í Ç¥ÁØ Áö¿øÀÌ ÁÁÀº ÆÄÀÌ¾îÆø½º ±âÁØÀ¸·Î °³¹ßÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÆÄÀÌ¾îÆø½º¿¡´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÄܼÖ, Web Developer Åø¹Ù, DOM Inspector µî °³¹ß¿¡ Æí¸®ÇÑ µµ±¸°¡ ¸¹´Ù.
±× Áß °¡Àå Áß¿äÇÑ µµ±¸´Â ¾Æ¸¶ ÆÄÀ̾î¹ö±×ÀÏ °ÍÀÌ´Ù. DOM ±¸Á¶¸¦ ½Ç½Ã°£À¸·Î º¸¸é¼ °¢Á¾ ¼Ó¼ºµéÀ» ½±°Ô º¼ ¼ö ÀÖ°í ³»¿ëÀ» ¹Ù²Ü ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®µµ ÀÚµ¿¿Ï¼ºÀÌ Áö¿øµÇ´Â shellÀÌ Á¦°øµÇ¸ç °£´ÜÇÑ µð¹ö±ëµµ °¡´ÉÇÏ°í ¿¡·¯°¡ ³µÀ» ¶§ Á¤È®ÇÑ ÁöÁ¡À» Ç¥½ÃÇØ Áֱ⵵ ÇÑ´Ù. IE¿¡µµ ÃÖ±Ù MS°¡ ³»³õÀº IE Dev Toolbar°¡ ÀÖ±ä ÇÏÁö¸¸ ÆÄÀ̾î¹ö±×ÀÇ ±â´ÉÀÌ ¾ÐµµÀûÀÌ´Ù.
| | | | | |
| |
 | µå·¡±× ¾Ø µå·Ó ±â´É ¸¸µé±â |  |
À¥ ÆäÀÌÁö ³»¿¡¼ÀÇ µå·¡±× ¾Ø µå·Óµµ ÀÚ¹Ù½ºÅ©¸³Æ®¿Í CSS¸¸À¸·Î ±¸ÇöÇÒ ¼ö ÀÖ´Ù. µå·¡±× ¾Ø µå·ÓÀº À©µµ¿ìó·³ À¥ ºê¶ó¿ìÀú ³»ÀÇ ´ëÈ»óÀÚ¸¦ ²ø¾î¼ ¿òÁ÷ÀδٵçÁö, Æ®¸®¿¡¼ Ç׸ñÀ» ²ø¾î¼ ¿Å±â´Â µî ´Ù¾çÇÑ ÀÀ¿ëÀÌ °¡´ÉÇϱ⠶§¹®¿¡ Á÷°üÀûÀÎ UI¸¦ ¸¸µå´Âµ¥ À¯¿ëÇÏ´Ù. ¸¸µå´Â ¹æ¹ýµµ ¾î·ÆÁö ¾Ê´Ù.
¿ì¼± CSS¿¡´Â Àý´ë ÁÂÇ¥·Î ƯÁ¤ ¿¤¸®¸ÕÆ®ÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ ÀÖ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼´Â ´ÙÀ½°ú °°Àº ÄÚµå·Î CSS styleÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
element.style.top = '200px'
element.style.left = '150px'
À̰ÍÀº element¸¦ À§¿¡¼ 200 Çȼ¿, ¿ÞÂÊ¿¡¼ 150 Çȼ¿ÀÇ À§Ä¡¿¡ ³õÀ¸¶ó´Â °ÍÀÌ´Ù. ÀÌ ±â´ÉÀ» ÀÌ¿ëÇÏ¸é Æ¯Á¤ ¿¤¸®¸ÕÆ®ÀÇ À§Ä¡¸¦ ¸¶À½´ë·Î Á¶Á¤ÇÒ ¼ö ÀÖ´Ù. ¶Ç, ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼´Â ¸¶¿ì½º À̺¥Æ®¸¦ Àâ¾Æ³»¼ ±× ÁöÁ¡ÀÇ ÁÂÇ¥¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù.
¸¶¿ì½º¸¦ ´©¸¦ ¶§ mousedown, ¿òÁ÷ÀÏ ¶§ mousemove, ¶¿ ¶§ mouseup À̺¥Æ®°¡ ¹ß»ýÇϴµ¥ À̰ÍÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù. ÁÂÇ¥´Â ÇÁ·ÎÅäŸÀÔÀÇ À̺¥Æ® °´Ã¼¸¦ ÅëÇØ¼ ½±°Ô °¡Á®¿Ã ¼ö ÀÖ´Ù. ±×¸®°í ¿¤¸®¸ÕÆ®ÀÇ ÇöÀç À§Ä¡µµ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ element.offsetLeft, element.offsetTop ¼Ó¼ºÀ¸·Î ¾Ë ¼ö ÀÖ´Ù.
¿¤¸®¸ÕÆ®ÀÇ ÁÂÇ¥¸¦ ÀÐÀ» ¶§´Â ÀÚ¹Ù½ºÅ©¸³Æ®·Î, ¼öÁ¤ÇÒ ¶§´Â CSSÀÇ style ¼Ó¼ºÀ¸·Î ¾´´Ù´Â Á¡¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. ÀÌ Á¤µµ¸¸ ¾Ë¸é ³ª¸ÓÁö´Â »ê¼ö¸¸ ÇÏ¸é µÈ´Ù.
´ëÈ»óÀÚ ¸¸µé±â
¸ÕÀú ¹®¼¿¡ ´ëÈ»óÀÚ Çϳª¸¦ ±×·Áº¸ÀÚ. À̹ø ¿¹Á¦ºÎÅÍ´Â ÇÁ·ÎÅäŸÀÔ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.
| <¸®½ºÆ® 4> ´ëÈ»óÀÚ ¸¸µé±â | | | |
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<style>
#dialog {
position:absolute;
left: 150px;
top: 100px;
padding: 1em;
background-color: lightgreen;
}
</style>
</head>
<body>
<div id="dialog">
Hello
</div>
</body>
</html>
| |
 |
<¸®½ºÆ® 4>¸¦ ½ÇÇà½Ã۸é <ȸé 8>°ú °°Àº ȸéÀÌ Ç¥½ÃµÉ °ÍÀÌ´Ù. ÆË¾÷ À©µµ¿ì°¡ ¾Æ´Ï¶ó HTML ¹®¼ ¾È¿¡ div ű׸¦ ¶ç¿ö¼ ¸¶Ä¡ ´ëÈ»óÀÚó·³ º¸ÀÌ°Ô ¸¸µç´Ù.
 |
<ȸé 4> <ȸé 6> <¸®½ºÆ® 4>ÀÇ °á°úȸé
|
À̺¥Æ® Çڵ鷯 ¼³Á¤Çϱâ
¿ì¸®´Â ¿©±â¼ Hello°¡ ÀÖ´Â ´ëÈ»óÀÚ¸¦ ¸¶¿ì½º·Î ´©¸£°í ¿òÁ÷ÀÌ¸é ´ëÈ»óÀÚ°¡ µû¶ó ¿òÁ÷À̵µ·Ï ¸¸µé °ÍÀÌ´Ù. ¸ÕÀú HTML ¹®¼¿¡ À̺¥Æ®¸¦ °É¾î¾ß ÇÑ´Ù. Hello°¡ ÀÖ´Â div ű׿¡¼ ¸¶¿ì½º¸¦ ´©¸£¸é µå·¡±×°¡ ½ÃÀ۵ǹǷΠdiv ű׿¡ onmousedown À̺¥Æ® Çڵ鷯¸¦ ¼³Á¤ÇÑ´Ù.
±×¸®°í ¸¶¿ì½º°¡ À̵¿ÇÏ´Â ¹üÀ§´Â ¹®¼ ÀüüÀ̹ǷΠ¹®¼ Àüü¿¡ onmousemove À̺¥Æ® Çڵ鷯¸¦ °É°í µå·¡±× Á¾·á¸¦ È®ÀÎÇϱâ À§ÇØ onmouseup À̺¥Æ®µµ ¹®¼ Àüü¿¡ °É¾îÁØ´Ù. À§ÀÇ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ¸é µÈ´Ù.
<body onmousemove="drag($('dialog'), event)" onmouseup="dragEnd($('dialog'), event)">
<div id="dialog" onmousedown="dragBegin(this, event)">
À̺¥Æ® Çڵ鷯¿¡¼ ÇÔ¼ö¸¦ ½ÇÇàÇÏ¸é¼ µÎ °³ÀÇ ÀÎÀÚ¸¦ ³Ñ±ä´Ù. ù ¹øÂ° ÀÎÀÚ´Â div ű×ÀÇ DOM °´Ã¼ÀÌ°í µÎ ¹øÂ° ÀÎÀÚ´Â À̺¥Æ®ÀÇ ¼Ó¼ºÀ» ´ã°í ÀÖ´Â °´Ã¼ÀÌ´Ù. À̺¥Æ® Çڵ鷯¿¡¼´Â ÀÌ µÎ °¡Áö ÀÎÀÚ¸¦ °¡Áö°í Á¶ÀÛÇÏ°Ô µÈ´Ù.
µå·¡±× À̺¥Æ® Çڵ鷯 ¸¸µé±â
±×·³ ÀÌÁ¦ °¢ À̺¥Æ®¿¡ µû¶ó µ¿ÀÛÇÏ´Â ½ÇÁ¦ À̺¥Æ® Çڵ鷯 ÇÔ¼ö¸¦ ¸¸µé¾îº¸ÀÚ. ¸ÕÀú dragBegin¿¡¼ ÇØ¾ß ÇÒ ÀÏÀº µå·¡±×¸¦ ½ÃÀÛÇÑ ÁöÁ¡ÀÇ ÁÂÇ¥¸¦ ±â¾ïÇÏ°í µå·¡±× ½ÃÀÛÀ» ¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°Àº ÄÚµå¸é ÃæºÐÇÏ´Ù.
| <¸®½ºÆ® 5> µå·¡±× ½ÃÀÛ ¾Ë¸®±â | | | |
function dragBegin(element, event) {
element.dragging = true
element.startx = Event.pointerX(event)
element.starty = Event.pointerY(event)
| |
 |
element °´Ã¼¿¡ ¹Ù·Î ¿ì¸®°¡ Á¤ÀÇÇÑ ¼Ó¼ºÀ» ´ëÀÔÇÏ´Â °ÍÀÌ Æ¯ÀÌÇØº¸ÀÏ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. DOM °´Ã¼µµ ÀÏ¹Ý ÀÚ¹Ù½ºÅ©¸³Æ® °´Ã¼¿Í ¶È°°ÀÌ ´Ù·ê ¼ö ÀÖ°í ÀÚ¹Ù½ºÅ©¸³Æ®´Â ¼Ó¼ºÀ» µ¿ÀûÀ¸·Î ÇÒ´çÇÒ ¼ö Àֱ⠶§¹®¿¡ <¸®½ºÆ® 5>¿Í °°Àº Äڵ尡 °¡´ÉÇÏ´Ù.
º¸Åë DOM °´Ã¼¿¡ ´ëÀÀÇÏ´Â ÀÚ¹Ù½ºÅ©¸³Æ® °´Ã¼¸¦ proxy °´Ã¼·Î ¸¸µé¾î¼ ¾²´Â °æ¿ì°¡ ¸¹Àºµ¥ DOM °´Ã¼ ÀÚü¿¡ ¸Þ¼Òµå¿Í ¼Ó¼ºÀ» ºÎ¿©Çؼ ½ÇÁ¦·Î µå·¡±×ÇÒ ¼ö ÀÖ´Â °´Ã¼ÀÎ °Íó·³ ´Ù·ê ¼öµµ ÀÖ´Ù. Áö±ÝÀº µå·¡±× ¾Ø µå·ÓÀÇ ¿ø¸®¸¦ º¸¿©ÁÖ´Â °ÍÀÌ ¸ñÀûÀ̱⠶§¹®¿¡ °£ÆíÇÑ ÀÌ ¹æ¹ýÀ» ¼±ÅÃÇßÁö¸¸ »óȲ¿¡ µû¶ó ´Ù¸¥ ¼±ÅÃÀÌ °¡´ÉÇÒ °ÍÀÌ´Ù.
ÀÌÁ¦ óÀ½ µå·¡±×ÇÑ ÁöÁ¡Àº ÀúÀåÇßÀ¸´Ï drag ÇÔ¼ö¿¡¼´Â ¸¶¿ì½º°¡ À̵¿ÇÑ °Å¸®¸¦ °è»êÇØ¼ ±×¸¸Å div ű׸¦ À̵¿½ÃŰ¸é µÈ´Ù. <¸®½ºÆ® 6>°ú °°Àº Äڵ尡 µÉ °ÍÀÌ´Ù.
| <¸®½ºÆ® 6> µå·¡±× ÇÔ¼ö Àû¿ë | | | |
function drag(element, event) {
if (!dragging) return
element.style.left = element.offsetLeft + Event.pointerX(event) - element.startx + 'px'
element.style.top = element.offsetTop + Event.pointerY(event) - element.starty + 'px'
element.startx = Event.pointerX(event)
element.starty = Event.pointerY(event)
}
| |
 |
¿©±â±îÁö ÇÏ°í ½ÇÇàÇØº¸¸é ÀÌÁ¦ Hello°¡ ¸¶¿ì½º¸¦ µû¶ó´Ù´Ï´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌÁ¦ ¸¶¿ì½º ¹öư¿¡¼ ¼ÕÀ» ¶ÃÀ» ¶§ µå·¡±× ¾È µÇµµ·Ï ÇÏ´Â Äڵ常 ³ÖÀ¸¸é µÈ´Ù.
function dragEnd(element, event) {
element.dragging = false
}
À̰ɷΠµå·¡±× ¾Ø µå·ÓÀÇ ¿Ï¼ºÀÌ´Ù. ºÒ°ú ÇÔ¼ö ¼¼ °³¸¦ »ç¿ëÇÑ ¿ ¸î ÁÙÀÇ ÄÚµå·Î µå·¡±× ¾Ø µå·ÓÀÌ ±¸ÇöµÇ´Â °ÍÀÌ´Ù.
µå·¡±× ¾Ø µå·Ó ÄÚµå ÁÙÀ̱â
»ê¼ö¸¸ ÀßÇÑ´Ù¸é Á» ´õ ÁÙÀÏ ¼öµµ ÀÖ´Ù. »ç½Ç ¸¶¿ì½º¸¦ Ŭ¸¯ÇÑ ÁöÁ¡°ú ´ëÈ»óÀÚÀÇ Á»ó´Ü°úÀÇ °Å¸®´Â ´Ã ÀÏÁ¤ÇÏ°Ô À¯ÁöµÈ´Ù. ±×·¸´Ù¸é ÀÌ Â÷À̸¸ óÀ½¿¡ ±¸Çصθé Áß°£¿¡ º¯ÇÏ´Â °ªÀ» ¸Å¹ø ÀúÀåÇÏÁö ¾Ê¾Æµµ µÈ´Ù. Áï, ´ÙÀ½Ã³·³ Äڵ带 ÁÙÀÏ ¼ö ÀÖ´Ù.
| <¸®½ºÆ® 7> °³¼±µÈ µå·¡±× ¾Ø µå·Ó ÄÚµå | | | |
function dragBegin(element, event) {
element.dragging = true
element.diffx = Event.pointerX(event) - $('dialog').offsetLeft
element.diffy = Event.pointerY(event) - $('dialog').offsetTop
}
function drag(element, event) {
if (!element.dragging) return
element.style.left = Event.pointerX(event) - element.diffx + 'px'
element.style.top = Event.pointerY(event) - element.diffy + 'px'
}
function dragEnd(element, event) {
element.dragging = false
}
| |
 |
µå·¡±×°¡ ¾î·Á¿î ±â¼úÀÏ °Í °°Áö¸¸ ÀǿܷΠÀÌ·¸°Ô °£´ÜÇÏ°Ô ±¸ÇöµÈ´Ù. µå·ÓÀº dragEnd¿¡¼ ´Ù¸¥ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â Äڵ常 Á¶±Ý Ãß°¡ÇÏ¸é µÈ´Ù. À̰ÍÀº µ¶ÀÚÀÇ ¸òÀ¸·Î ³²°ÜµÐ´Ù.
¶Ç Çϳª ½Å°æ ½á¾ß ÇÒ °ÍÀº À̺¥Æ® Çڵ鷯´Ù. ¿©±â¼´Â °£´ÜÇÏ°Ô ±¸ÇöÇϱâ À§ÇØ ¿¤¸®¸ÕÆ®¿¡ Á÷Á¢ À̺¥Æ® Çڵ鷯¸¦ ´Þ¾ÒÁö¸¸ ½ÇÀü¿¡¼´Â À̺¥Æ® Çڵ鷯µµ µ¿ÀûÀ¸·Î ÇÒ´çÇÑ´Ù. body ¿¤¸®¸ÕƮó·³ ³ÐÀº ¹üÀ§¿¡ mousemoveó·³ ÀÚÁÖ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ °É¾îµÎ´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.
±×·¡¼ body¿¡ À̺¥Æ®¸¦ °Å´Â °ÍÀº ´ëÈ»óÀÚ¿¡ mousedown À̺¥Æ®°¡ ¹ß»ýÇÑ ½ÃÁ¡¿¡ °É°í mouseup À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ À̺¥Æ® Çڵ鷯¸¦ Á¦°ÅÇÏ´Â °ÍÀÌ ÁÁ´Ù. dragBegin, dragEnd ÇÔ¼ö¸¦ Á¶±Ý¸¸ ¼öÁ¤ÇÏ¸é ½±°Ô ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
script.aculo.us °°Àº ÇÁ·¹ÀÓ¿öÅ©¿¡¼ µå·¡±× ¾Ø µå·ÓÀ» ±¸ÇöÇÏ´Â ¹æ¹ýµµ Å©°Ô ´Ù¸£Áö ¾Ê´Ù. ´Ù¸¸ Á» ´õ ±â´ÉÀÌ ¸¹±â ¶§¹®¿¡ ÄÚµå´Â ÈξÀ ±äµ¥ ¿©±â ÀÖ´Â Á¤µµÀÇ ¿ø¸®¸¸ ÀÌÇØÇϸé script.aculo.usÀÇ µå·¡±× ¾Ø µå·Ó Äڵ嵵 ½±°Ô ÀÌÇØÇϰí Ȱ¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÇÑ °¡Áö ¤°í ³Ñ¾î°¡¾ß ÇÒ °ÍÀº ¸ðµç Á¾·ùÀÇ µå·¡±× ¾Ø µå·ÓÀÌ °¡´ÉÇÑ °ÍÀº ¾Æ´Ï¶ó´Â »ç½ÇÀÌ´Ù. À¥ ºê¶ó¿ìÀúÀÇ ³»Àå ¿¡µðÅͰ¡ ¾î´À Á¤µµ ±âº» µå·¡±× ¾Ø µå·ÓÀ» Áö¿øÇϱ⵵ Çϰí HTML ¹®¼ ¾È¿¡¼µµ À§¿Í °°Àº ¹æ½ÄÀ¸·Î µå·¡±× ¾Ø µå·ÓÀÌ °¡´ÉÇÏÁö¸¸ Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÖ´Â ÆÄÀÏÀÇ µå·¡±× ¾Ø µå·Ó°ú ¿¬°èÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù.
Ž»ö±â¿¡¼ À̹ÌÁö¸¦ ²ø¾î¼ À¥ ºê¶ó¿ìÀú¿¡ ¿Ã·Á³õ´Â´Ù°í À̹ÌÁö°¡ ¾÷·Îµå µÇµµ·Ï ÇÒ ¼ö´Â ¾ø´Ù´Â ¾ê±â´Ù. ¾Õ¼ ¾ð±ÞÇÑ °Íó·³ Ŭ¶óÀ̾ðÆ®ÀÇ ÀÚ¿ø¿¡´Â Á¢±ÙÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ÀÌ·± ºÎºÐÀº ¿ª½Ã Ŭ¶óÀ̾ðÆ®ÀÇ ÀÚ¿ø¿¡ Á¢±ÙÇÏ´Â ÀÏÀ̱⠶§¹®¿¡ ¾×ƼºêXµç ÀÚ¹Ù ¾ÖÇø´ÀÌµç ´Ù¸¥ ±â¼úÀ» »ç¿ëÇØ¾ßÇÑ´Ù.
 | µ¿ÀûÀ¸·Î ·Îµù ÇÏ´Â Æ®¸® ¸¸µé±â
|  |
À̹ø¿¡´Â Á¼Àº ÀǹÌÀÇ AjaxÀÎ ºñµ¿±â Åë½Å±îÁö Ȱ¿ëÇÏ´Â »ç·Ê¸¦ »ìÆìº¸ÀÚ. Æ®¸® ÄÁÆ®·ÑÀº ÀÌ¹Ì ²Ï ¿À·¡ ÀüºÎÅÍ ¾×ƼºêX°¡ ¾Æ´Ï¶ó ÀÚ¹Ù½ºÅ©¸³Æ®·Î ±¸ÇöµÇ¾î ¿Ô´Ù. ÇÏÁö¸¸ ±âÁ¸¿¡´Â ±×³É µ¥ÀÌÅ͸¦ ¹Ì¸® ´Ù ·ÎµùÇØ ³õ°í º¸¿©ÁÖ´Â ½ÄÀ̾ú´Ù. ÇÏÁö¸¸ AjaxÀÇ µîÀåÀ¸·Î Á» ´õ µ¿ÀûÀÎ Æ®¸®°¡ °¡´ÉÇØÁ³´Ù. À©µµ¿ì¿¡¼ Ž»ö±â¸¦ ¿¸é óÀ½ºÎÅÍ ´Ù º¸¿©ÁÖ´Â °ÍÀÌ ¾Æ´Ï¶ó µð½ºÅ©¿¡¼ ÀÐÀº ¸¸Å¸¸ º¸¿©ÁÖ°í ´Ù Àбâ Àü¿¡µµ Æ®¸®¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ¿Í °°Àº µ¿ÀÛÀÌ À¥¿¡¼µµ °¡´ÉÇÏ´Ù.
Æ®¸® ¸¸µé±â
¸ÕÀú Æ®¸®ºÎÅÍ ¸¸µé¾îº¸ÀÚ. À̹ø¿¡µµ ÇÁ·ÎÅäŸÀÔÀ» »ç¿ëÇÑ´Ù. ´ÙÀ½°ú °°Àº ÄÚµå·Î ÃÖ»óÀ§ ³ëµå·Î ±¸¼ºµÈ Æ®¸®¸¦ ±×¸± ¼ö ÀÖÀ» °ÍÀÌ´Ù.
| |
<ul id="tree">
<li id="search"><span>+ </span>°Ë»ö</li>
<li id="community"><span>+ </span>Ä¿¹Â´ÏƼ</li>
<li id="shopping"><span>+ </span>¼îÇÎ</li>
</ul>
| |
 |
| <¸®½ºÆ® 9> Æ®¸®ÀÇ ÇÏÀ§ ³ëµå | | | |
<script type="text/javascript">
var treeData = {
search: [{key:'google', name: '±¸±Û'}, {key:'naver', name: '³×À̹ö'}, {key:'yahoo', name: '¾ßÈÄ'}],
community: [{key:'cyworld', name: '½ÎÀÌ¿ùµå'}, {key:'daumcafe', name: '´ÙÀ½ Ä«Æä'}],
shopping: [{key:'openmarket', name: '¿ÀÇ ¸¶ÄÏ'}, {key:'shoppingmall', name: '¼îÇθô'}],
openmarket: [{key:'gmarket', name: 'G ¸¶ÄÏ'}, {key:'auction', name: '¿Á¼Ç'}, {key:'ebay', name: 'À̺£ÀÌ'}],
shoppingmall: [{key:'cjmall', name: 'CJ Mall'}, {key:'amazon', name: '¾Æ¸¶Á¸'}]
}
</script>
| |
 |
treeData º¯¼ö¿¡ °ªµéÀ» ³Ö°í Àִµ¥ ¿©±â¼ »ç¿ëÇÑ ¹®¹ýÀÌ JSON(JavaScript Object Notation)ÀÌ´Ù. {}·Î µÑ·¯½Ñ ºÎºÐÀº ÇϳªÀÇ °´Ã¼°¡ µÇ´Âµ¥ »çÀü°ú °°Àº ±¸Á¶´Ù. {key:'google', name: '±¸±Û'}Àº key, nameÀ̶ó´Â µÎ °³ÀÇ ¼Ó¼ºÀ» °¡Áö¸ç ±× °ªÀº °¢°¢ 'google'°ú '±¸±Û'ÀÌ µÇ´Â °ÍÀÌ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â °´Ã¼ ÀÚü°¡ ´Ù¸¥ ¾ð¾îÀÇ »çÀü °´Ã¼³ª ÇØ½Ã Å×À̺í, ¸Ê µî°ú ºñ½ÁÇÑ ¿ªÇÒÀ» ÇÑ´Ù. Ajax¿¡¼ ÀÀ´äÀÇ ÀڷᱸÁ¶·Î ÈçÈ÷ ¾²ÀÌ´Â Çü½ÄÀÌ´Ù.
treeDataÀÇ ³»¿ëÀº Æ®¸® ±¸Á¶¸¦ Å×À̺í ÇüÅ·ΠǮ¾î ³õÀº °ÍÀÌ´Ù. °Ë»ö Ä«Å×°í¸®´Â search¶ó´Â id¸¦ °®°í ÀÖ°í ÀÌ ¾Æ·¡¿¡´Â id°¡ google, naver, yahooÀÎ Ç׸ñµéÀÌ ÀÖ´Ù. ¸¶Âù°¡Áö·Î communityµµ ÀÖ°í shoppingÀº ÇÑ ´Ü°è°¡ ´õ Àִµ¥ openmarketÀÌ ÀÖ°í shoppingmallÀÌ Àִµ¥ °¢°¢Àº ¶Ç ÇÏÀ§ ¿¤¸®¸ÕÆ®¸¦ °¡Áø´Ù.
Æ®¸® ÆîÄ¡±â¿Í Á¢±â
±×¸®°í ÀÌÁ¦ li ¿¤¸®¸ÕÆ® ¾È¿¡ +°¡ ±×·ÁÁø span ¿¤¸®¸ÕÆ®¿¡ Ŭ¸¯ À̺¥Æ®¸¦ ´Þ¸é µÈ´Ù. ´ÙÀ½Ã³·³ ´Þ¸é µÈ´Ù.
$$('#tree span').each(function(element) {
Event.observe(element, 'click', toggle)
})
ÀÌ ÄÚµå´Â ÇÁ·ÎÅäŸÀÔÀÌ Á¦°øÇÏ´Â ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ °ÍÀÌ´Ù. id°¡ treeÀÎ ¿¤¸®¸ÕÆ® ¹Ø¿¡ ÀÖ´Â ¿¤¸®¸ÕÆ® Áß span ¿¤¸®¸ÕÆ®¸¦ ¸ðµÎ ã¾Æ¼ ±× °¢°¢¿¡ ´ëÇØ¼ À̺¥Æ®¸¦ ÇÒ´çÇÏ´Â °ÍÀÌ´Ù. Event.observeÀÇ Àǹ̴ element¿¡ 'click' À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§ toggle ÇÔ¼ö¸¦ ½ÇÇàÇ϶ó´Â ¶æÀÌ´Ù. toggleÀº Æ®¸®ÀÇ ÇÏÀ§ ³ëµå°¡ Á¢Çô ÀÖÀ¸¸é ÆîÄ¡°í, ÆîÃÄÁ® ÀÖÀ¸¸é Á¢´Â ±â´ÉÀ» ÇÏ¸é µÈ´Ù. ÀÌ·± ±â´ÉÀº <¸®½ºÆ® 10>À̸é ÃæºÐÇÏ´Ù.
| <¸®½ºÆ® 10> toggle À̺¥Æ® | | | |
function toggle(event) {
var element = Event.element(event).parentNode
if (element.expanded) {
fold(element)
element.expanded = false
} else {
expand(element)
element.expanded = true
}
}
| |
 |
ÀÌÁ¦ ÆîÄ¡´Â expand ÇÔ¼ö¿Í Á¢´Â fold ÇÔ¼ö¸¸ ³²¾Ò´Ù. expand´Â <¸®½ºÆ® 11>°ú °°´Ù.
| |
function expand(element) {
var ul = document.createElement('ul')
element.appendChild(ul)
var children = treeData[element.id]
children.each(function(child) {
var li = document.createElement('li')
ul.appendChild(li)
li.id = child.key
li.innerHTML = '<span>+ </span>' + child.name
Event.observe(li.firstChild, 'click', toggle)
})
element.firstChild.innerHTML = '- '
}
| |
 |
µ¥ÀÌÅ͸¦ °¡Á®¿Í¼ document.createElement ÇÔ¼ö·Î ¿¤¸®¸ÕÆ®¸¦ »ý¼ºÇÑ ÈÄ ÇöÀç ³ëµå¿¡ appendChild·Î °®´Ù ºÙÀÌ¸é µÈ´Ù. Á¢´Â °ÍÀº °£´ÜÇÏ´Ù. ´ÙÀ½°ú °°ÀÌ expand¿¡¼ ºÙ¿´´ø ¿¤¸®¸ÕÆ®µéÀ» ÁË´Ù Áö¿ì¸é µÈ´Ù.
function fold(element) {
element.removeChild(element.getElementsByTagName('ul')[0])
element.firstChild.innerHTML = '+ '
}
µ¿Àû ·Îµù ±â´É ¸¸µé±â
¿©±â±îÁö¸¸ ÇÏ¸é µ¥ÀÌÅ͸¦ óÀ½¿¡ ´Ù °¡Á®¿Í¼ Æ®¸® ±¸Á¶·Î Ç¥ÇöÇÏ´Â °ÍÀÌ µÇ´Â °ÍÀÌ´Ù. ÀÌÁ¦ µ¿ÀûÀ¸·Î µ¥ÀÌÅÍ ·ÎµùÇÏ´Â ºÎºÐÀ» Ãß°¡Çغ¸ÀÚ. expand ÇÔ¼ö¸¦ º¸¸é Áß°£¿¡ treeDataelement.id¸¦ ÅëÇØ¼ ÀÚ½Ä ³ëµåµéÀ» ¹è¿ ÇüÅ·Π°¡Á®¿À´Â Äڵ尡 ÀÖ´Ù. ÀÌ ºÎºÐ¿¡¼ Ajax¸¦ ÅëÇØ¼ µ¥ÀÌÅ͸¦ °¡Á®¿À°Ô ÇÏ¸é µÈ´Ù.
´Ù¸¸ ºñµ¿±â·Î Åë½ÅÇÏ´Â ÄÚµå´Â µ¥ÀÌÅ͸¦ °¡Á®¿Àµµ·Ï ¿äûÇÏ´Â ºÎºÐ°ú °¡Á®¿Â µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ºÎºÐÀÌ ºÐ¸®°¡ µÇ¾î¾ß ÇÑ´Ù. expand ÇÔ¼ö¿¡¼´Â µ¥ÀÌÅ͸¦ °¡Á®¿Àµµ·Ï ¿äû¸¸ ÇÏ°í µ¥ÀÌÅ͸¦ °¡Á®¿À°í ³ª¸é addChildren ÇÔ¼ö¸¦ È£ÃâµÇµµ·Ï ÇÏ¸é µÈ´Ù. ±×·³ <¸®½ºÆ® 12>¿Í °°Àº Äڵ尡 µÉ °ÍÀÌ´Ù.
| <¸®½ºÆ® 12> addChildren ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ µ¿Àû ·Îµù ÄÚµå | | | |
function expand(element) {
new Ajax.Request('/treeData?id=' + element.id, {
method: get,
onSuccess: addChildren
})
}
function addChildren(request) {
var children = eval(request.responseText)
var ul = document.createElement('ul')
children.each(function(child) {
var li = document.createElement('li')
ul.appendChild(li)
li.id = child.key
li.innerHTML = '<span>+ </span>' + child.name
Event.observe(li.firstChild, 'click', toggle)
})
element.firstChild.innerHTML = '- '
}
| |
 |
Ajax.Requestµµ ÇÁ·ÎÅäŸÀÔ¿¡¼ Á¦°øÇÏ´Â ±â´ÉÀÌ´Ù. ºê¶ó¿ìÀúº°·Î È£Ãâ¹æ¹ýÀÌ ´Ù¸¥ XMLHttpReqeust °´Ã¼¸¦ wrapping ÇØ¼ ¾²±â ÆíÇÏ°Ô ÇØÁØ´Ù. ¿©±â¼ ù ¹øÂ° ÀÎÀÚ°¡ È£ÃâÇÒ URLÀε¥ ÀÌ Äڵ尡 Á¦´ë·Î µ¿ÀÛÇÏ·Á¸é ¼¹ö »çÀ̵åÀÇ Äڵ嵵 ÇÊ¿äÇÏ´Ù. ÇÏÁö¸¸ °£´ÜÇÏ°Ô ÅØ½ºÆ® ÆÄÀÏÀ» ¸¸µé¾î¼ ÅØ½ºÆ® ÆÄÀÏ URLÀ» ½á ³Ö°í ÅØ½ºÆ® ÆÄÀÏ ³»¿ë¿¡´Â JSON ŸÀÔÀ¸·Î ³»¿ëÀ» ½á ³õ¾Æ¼ Å×½ºÆ®Çغ¼ ¼ö´Â ÀÖÀ» °ÍÀÌ´Ù.
 | Àç¹Ì ÀÖ´Â Ajax UI ÇÁ·Î±×·¡¹Ö
|  |
¸î °¡Áö ¿¹Á¦¸¦ ÅëÇØ »ìÆìº» °Íó·³ À¥¿¡¼ ÀÚ¹Ù½ºÅ©¸³Æ®·Î ±â´É¼º ³ôÀº UI¸¦ ¸¸µå´Â ÀÏÀº ±×¸® ¾î·Á¿î ÀÏÀÌ ¾Æ´Ï´Ù. °Ô´Ù°¡ ÀÌ¹Ì ÀÌ·± UI ÄÄÆ÷³ÍÆ®µéÀ» ¸¸µé¾î¼ ¸ð¾Æ ³õÀº ¿ÀǼҽº ¶óÀ̺귯¸®µµ ÀÖ´Ù. Dojo°°Àº ÇÁ·¹ÀÓ¿öÅ©´Â À©µµ¿ì ÇÁ·Î±×·¡¹Ö ÇÏ´Â ´À³¦À¸·Î »ç¿ëÇÒ ¼ö ÀÖ°í script.aculo.us °°Àº ÇÁ·¹ÀÓ¿öÅ©´Â UI °ü·ÃµÈ ÄÄÆ÷³ÍÆ®µéÀ» ¸ð¾Æ¼ Á¦°øÇϰí ÀÖ´Ù.
jQuery´Â ¾Õ¼ »ìÆìº» ÇÁ·ÎÅäŸÀÔ°ú script.aculo.us¸¦ ÇÕÄ£ ±â´ÉÀ» Á¦°øÇÑ´Ù. ´ëºÎºÐ Ä¿½ºÅ͸¶ÀÌÁîÇϱ⠽±°Ô µÇ¾î Àֱ⠶§¹®¿¡ º°´Ù¸¥ ³ë·Â ¾øÀÌ °¡Á®´Ù ¾µ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
±×·³¿¡µµ ºÒ±¸Çϰí ÀÌ·± UI ÄÄÆ÷³ÍÆ®¸¦ ¸¸µå´Â ¹æ¹ýÀº ¾Ë¾ÆµÑ Çʿ䰡 ÀÖ´Ù. ÇÁ·¹ÀÓ¿öÅ©µéÀÌ Á¦°øÇÏ´Â °Í°ú ºñ½ÁÇÏÁö¸¸ ´Ù¸¥ ÄÄÆ÷³ÍÆ®¸¦ ¸¸µé¾î¾ß ÇÏ´Â °æ¿ì°¡ ¸¹±â ¶§¹®ÀÌ´Ù. ¿¹¸¦ µé¸é ½ºÇÁ¸µ³ëÆ®¿¡¼´Â Æ®¸® ¸ñ·ÏÀ» º¸¿©ÁÖ´Â »çÀÌµå ¹Ù°¡ Àִµ¥ ÀÌ ºÎºÐÀÇ Å©±â¸¦ ¸¶¿ì½º µå·¡±×·Î Á¶Á¤ÇÏ´Â ±â´ÉÀÌ ÀÖ´Ù.
ÀÌ·± ±â´ÉÀº ÀϹÝÀûÀÎ µå·¡±× ¾Ø µå·Ó ÄÄÆ÷³ÍÆ®·Î´Â ºÙÀÌ±â ¾î·Æ´Ù. ±×·² ¶§ µå·¡±× ¾Ø µå·ÓÀÇ ±¸Çö ¹æ¹ýÀ» ¾Ë°í ÀÖ´Ù¸é ¼Õ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù.
ÀÌ¹Ì ¿Ï¼ºµÈ ÄÄÆ÷³ÍÆ®¸¦ Á¶¸³ÇÏ´Â ¾×ƼºêX°¡ °³¹ßÀÌ ºü¸¥ Ãø¸éµµ ÀÖÁö¸¸ ¹èÆ÷ ¸é¿¡¼´Â ¾Æ¹«·¡µµ °³¹ßÀÚ³ª »ç¿ëÀÚ³ª ¸ðµÎ¿¡°Ô ºÒÆíÇÏ´Ù. ¹Ý¸é¿¡ Ajax UI ÄÄÆ÷³ÍÆ®´Â °³¹ßÀÌ ¾×ƼºêX¿¡ ºñÇØ Å©°Ô ´À¸®Áö ¾Ê°í ¹èÆ÷¿¡´Â ¿ùµîÈ÷ À¯¸®ÇÏ´Ù. Á¢±Ù¼ºÀÇ Ãø¸é¿¡¼µµ ¾×ƼºêX³ª Ç÷¡½Ã, ÀÚ¹Ù ¾ÖÇø´ µîÀÇ ´Ù¸¥ ±â¼ú¿¡ ºñÇØ ºê¶ó¿ìÀú¸¸ ÀÖÀ¸¸é µÇ´Â Ajax ±â¼úÀÌ °¡Àå ÁÁ´Ù°í ÇÒ ¼ö ÀÖ´Ù.
ÇÏÁö¸¸ ÇÊÀÚ°¡ ±×º¸´Ù ´õ Áß¿äÇÑ ÀåÁ¡À¸·Î ²Å°í ½ÍÀº °ÍÀº Ajax °³¹ßÀº Á» ´õ Àç¹ÌÀÖ´Ù´Â °ÍÀÌ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â ÇöÀç ³Î¸® »ç¿ëµÇ´Â ¾ð¾î Áß °¡Àå ´ÙÀ̳»¹ÍÇÑ ¾ð¾îÀÌ´Ù. ±× ´öºÐ¿¡ ÄÚµå¿Í »ý°¢ÀÇ °Å¸®°¡ ºñ±³Àû ª¾Æ¼ ÁÁÀº Äڵ带 ¸¸µé ¼ö ÀÖ°í ´Ù¸¥ UI °³¹ß¿¡ ºñÇØ °á°ú¸¦ »¡¸® È®ÀÎÇÒ ¼ö ÀÖ´Ù´Â Á¡µµ ¸Å·ÂÀûÀÌ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®°¡ ÇѶ§´Â ½ºÆÄ°ÔƼ ¼Ò½ºÀÇ ¿Â»óÀÎ °Íó·³ À̾߱âµÇ±âµµ ÇßÁö¸¸ ÇÁ·Î±×·¡¸Ó°¡ ¾Æ´Ñ »ç¶÷µéµµ ½±°Ô °¡Á®´Ù ¾²°í ÀÀ¿ëÇÒ ¼ö ÀÖ´Â ¾ð¾îÀÓÀº ºÎÀÎÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù. ±×¸®°í µ¿ÀûÀÎ ¾ð¾î´Â ÁöÀúºÐÇØÁú ¼ö ÀÖ´Â ÇѰ赵 Å©Áö¸¸ ´õ ÁÁÀº Äڵ带 ¸¸µé ¼ö ÀÖ´Â ÇѰ赵 Å©´Ù. °³¹ßÀÚ¿¡°Ô ´õ ¸¹Àº ±ÇÇÑÀ» ºÎ¿©ÇØÁÖ´Â °ÍÀÌ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®, CSS ±â¼úÀÇ ¹ßÀüÀ¸·Î ÀÌÁ¦ UI ¶§¹®¿¡ ¾×ƼºêX¸¦ ¾µ ÇÊ¿ä´Â °ÅÀÇ ¾ø¾îÁ³´Ù. ±×·³¿¡µµ ºÒ±¸ÇÏ°í ¾ÆÁ÷ ±×·ì¿þ¾î³ª SI ºÐ¾ß¿¡¼´Â ¾×ƼºêX°¡ ¸¹ÀÌ ¾²À̰í ÀÖ´Ù. À¥ Á¢±Ù¼ºµµ ÇØÄ¡°í »ç¿ëÀÚµµ ±ÍÂú°Ô ¸¸µå´Â ¾×ƼºêX, UI¿¡¼ »ç¿ëÇÏ´Â °Í¸¸ÀÌ¶óµµ ÁÙ¿©¾ß ÇÏÁö ¾ÊÀ»±î.
ÇÊÀÚ°¡ ÀÌ ±ÛÀ» ¾²°í ÀÖ´Â PCÀÇ OSµµ ¸®´ª½ºÀε¥ ¾×ƼºêX ¶§¹®¿¡ »ç³» ±×·ì¿þ¾î¿¡ Á¢¼Óµµ ¸øÇÏ´Â ºÒÆíÀ» °Þ°í ÀÖ´Ù. ÃÖ±Ù PC¸¦ »õ·Î ±¸ÀÔÇÑ »ç¶÷µéµµ À©µµ¿ì ºñ½ºÅ¸¿¡¼ Á¦´ë·Î »ç¿ëÇÒ ¼ö ¾ø´Â »çÀÌÆ®°¡ ¸¹¾Æ¼ ¾î·Á¿òÀÌ ¸¹À» °ÍÀÌ´Ù.
¸»µµ ¸¹°í Å»µµ ¸¹Àº ¾×ƼºêX, UI ºÎºÐ¸¸ÀÌ¶óµµ Ajax·Î ´ëÃ¼ÇØ º¸ÀÚ. Ajax ÇÁ·Î±×·¡¹ÖÀÌ »ý°¢º¸´Ù ½±°í Àç¹ÌÀÖ´Ù´Â °ÍÀ» µ¶ÀÚ ¿©·¯ºÐµµ ´À³¢°Ô µÇ±â¸¦ ¹Ù¶õ´Ù. @
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.