<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>겨미♡웹 &#187; JavaScript</title>
	<atom:link href="http://miya.pe.kr/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://miya.pe.kr</link>
	<description>웹 클라이언트 사이드 - UI 그리고 마크업.</description>
	<lastBuildDate>Mon, 26 Jul 2010 01:01:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>IE 자바스크립트 속도튜닝 계의 혁명(?), dynaTrace</title>
		<link>http://miya.pe.kr/2010/01/11/ie-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8-%ec%86%8d%eb%8f%84%ed%8a%9c%eb%8b%9d-%ea%b3%84%ec%9d%98-%ed%98%81%eb%aa%85-dynatrace/</link>
		<comments>http://miya.pe.kr/2010/01/11/ie-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8-%ec%86%8d%eb%8f%84%ed%8a%9c%eb%8b%9d-%ea%b3%84%ec%9d%98-%ed%98%81%eb%aa%85-dynatrace/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 06:15:51 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=115</guid>
		<description><![CDATA[dynaTrace는 웹 페이지의 서버 실행 시간, 페이지 렌더링 시간은 물론 자바스크립트 한 줄의 걸린시간까지 볼 수 있는 툴이다. 얼마전 자바스크립트의 실행속도 때문에 시름시름 앓다가 지인의 소개로 이 툴을 알게 된 후로 그런 고민들이 싹 사라졌다. 자바스크립트 속도 때문에 골치를 앓고 있는 이라면 당장 설치하길… 암튼 좀 짱임.]]></description>
			<content:encoded><![CDATA[<p><a href="http://ajax.dynatrace.com/pages/">dynaTrace</a>는 웹 페이지의 서버 실행 시간, 페이지 렌더링 시간은 물론 자바스크립트 한 줄의 걸린시간까지 볼 수 있는 툴이다. 얼마전 자바스크립트의 실행속도 때문에 시름시름 앓다가 지인의 소개로 이 툴을 알게 된 후로 그런 고민들이 싹 사라졌다.</p>
<p>자바스크립트 속도 때문에 골치를 앓고 있는 이라면 당장 설치하길…</p>
<p>암튼 좀 짱임.</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2010/01/11/ie-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8-%ec%86%8d%eb%8f%84%ed%8a%9c%eb%8b%9d-%ea%b3%84%ec%9d%98-%ed%98%81%eb%aa%85-dynatrace/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE6에서 안되는 CSS Selector, IE7 라이브러리</title>
		<link>http://miya.pe.kr/2008/12/17/ie6%ec%97%90%ec%84%9c-%ec%95%88%eb%90%98%eb%8a%94-css-selector-ie7-%eb%9d%bc%ec%9d%b4%eb%b8%8c%eb%9f%ac%eb%a6%ac/</link>
		<comments>http://miya.pe.kr/2008/12/17/ie6%ec%97%90%ec%84%9c-%ec%95%88%eb%90%98%eb%8a%94-css-selector-ie7-%eb%9d%bc%ec%9d%b4%eb%b8%8c%eb%9f%ac%eb%a6%ac/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 03:42:44 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=106</guid>
		<description><![CDATA[찬명님의 글에서도 알 수 있듯 IE6에서는 CSS multiple selector도 적용되지 않는데다가 child selector도 적용되지 않습니다. 아래와 같이 a와 b라는 ID를 갖는 디비전이 같은 클래스명을 갖는 하위요소를 포함하고 있다고 칩시다. &#60;div id=&#34;a&#34;&#62; &#60;div class=&#34;content&#34;&#62;…&#60;/div&#62; &#60;/div&#62; &#60;div id=&#34;b&#34;&#62; &#60;div class=&#34;content&#34;&#62;…&#60;/div&#62; &#60;/div&#62; 그런데 문제는 각각 다른 사람 &#8211; 혹은 같은 사람이더라도… &#8211; 이 작업한 a와 b가 부모, 자식간이 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://naradesign.net/wp/2008/12/16/371/">찬명님의 글</a>에서도 알 수 있듯 IE6에서는 <abbr title="Cascading Style Sheets">CSS</abbr> multiple selector도 적용되지 않는데다가 <a href="http://www.w3.org/TR/CSS21/selector.html#child-selectors">child selector</a>도 적용되지 않습니다.</p>

<p>아래와 같이 a와 b라는 ID를 갖는 디비전이 같은 클래스명을 갖는 하위요소를 포함하고 있다고 칩시다.</p>

<pre><code>&lt;div id=&quot;a&quot;&gt;
	&lt;div class=&quot;content&quot;&gt;…&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&quot;b&quot;&gt;
	&lt;div class=&quot;content&quot;&gt;…&lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p>그런데 문제는 각각 다른 사람 &#8211; 혹은 같은 사람이더라도… &#8211; 이 작업한 a와 b가 부모, 자식간이 되는 경우입니다. (물론 이미 부모, 자식간인 걸 알고 있어도 문제는 있습니다.)</p>

<pre><code>&lt;div id=&quot;a&quot;&gt;
	&lt;div class=&quot;content&quot;&gt;…&lt;/div&gt;
	&lt;div id=&quot;b&quot;&gt;
		&lt;div class=&quot;content&quot;&gt;…&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p>a에 포함된 content에 스타일을 입히려고 쓴 CSS가 b의 그것에도 영향을 미치게 됩니다. <strong>서로에 대해서 염두해두고 작업을 해야만 하는 것이죠.</strong> 프로젝트 규모가 커지고 요구사항이 빈번하게 바뀐다면 작업 시간은 그에 비례해서 더 커지게 됩니다.</p>

<p>IE6만 아니었으면 <code>#a div.content</code>라는 선택자 대신 <code>#a &gt; div.content</code>라는 선택자를 썼으면 해결될 일이겠죠. 그래서 저희 팀에서는 아래와 같이 항상 prefix를 달아주기로 결정했답니다.;;</p>

<pre><code>&lt;div id=&quot;a&quot;&gt;
	&lt;div class=&quot;a_content&quot;&gt;…&lt;/div&gt;
	&lt;div id=&quot;b&quot;&gt;
		&lt;div class=&quot;b_content&quot;&gt;…&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
</code></pre>

<p>괜찮은 해결책이라고 생각합니다만 클래스명이 쓸데없이 길어지고 마크업만 놓고 보면 “a_”와 같은 의미없는 접두어가 생겨버렸습니다. <a href="http://microformat.org">마이크로포맷</a> 같은 걸 적용하려고 할 때도 귀찮은 일이죠. <a href="http://resistan.com/savethedeveloper">웹 개발자가 살아나지 못하는 한</a> 울며 겨자먹기로 이 방법을 쓸 것 같습니다.</p>

<h3>IE7 자바스크립트 라이브러리</h3>

<p><a href="http://dean.edwards.name/'>Dean Edwards</a>라는 유명한 자바스크립트 개발자가 만든 <a href="http://code.google.com/p/ie7-js/">IE7</a>(브라우저가 아닙니다.)이라는 라이브러리는 IE6의 CSS 지원 정도를 IE7처럼 만들어주는 마법같은 라이브러리입니다. <strong>그런데! 열라 느립니다.</strong> -_-</p>

<p>IE7 라이브러리의 구동원리는 CSS 파일을 XML HTTP 요청으로 다시 받아 그 텍스트를 자바스크립트로 파싱하여 적용해주는 것입니다. 그 이유는 <a href="https://developer.mozilla.org/en/DOM/cssRule.cssText">cssText</a>로 읽을 수 있는 텍스트가 있지만 IE6의 경우 지원하지 않는 선택자 부분이 “UNKNOWN”이라는 문자열로 치환되어 버리기 때문입니다.<p>

<p class="captionwithsshot"><img alt="" src="/images/2008/ie6_csstext.png" /><br />UNKNOWN이라는 문자열로 바뀌어버린 Child Selector와 마지막 밖에 인식하지 못하는 Multuple Class Selector</p>

<p>따라서 일단 쓸데없는 요청이 한 번 늘어나는 데다가 안 그래도 굼벵이 자바스크립트 엔진을 가진 IE6에서 그 큰 CSS 파일을 파싱한다는 것 자체가 느릴 수 밖에 없는 원인입니다.</p>

<p>IE7 라이브러리 중 Multiple Selector 부분과 Child Selector 부분만 사용해보고자 하였었는데 XML HTTP 요청이라는 제약(CSS 파일의 도메인을 문서와 항상 같게 해야한다는 제약)과 그래도 부담될 IE6의 굼벵이 자바스크립트 엔진 때문에 포기하였습니다. 혹시 시도해보고자 하는 분이 계시면 연락주세요. 그간 IE7 라이브러리를 뜯어보았던 자세한 소감을 말씀드리지요. -_-;;</p>

]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/12/17/ie6%ec%97%90%ec%84%9c-%ec%95%88%eb%90%98%eb%8a%94-css-selector-ie7-%eb%9d%bc%ec%9d%b4%eb%b8%8c%eb%9f%ac%eb%a6%ac/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>간단 단어 번역 북마클릿, inline translator</title>
		<link>http://miya.pe.kr/2008/11/22/%ea%b0%84%eb%8b%a8-%eb%8b%a8%ec%96%b4-%eb%b2%88%ec%97%ad-%eb%b6%81%eb%a7%88%ed%81%b4%eb%a6%bf-inline-translator/</link>
		<comments>http://miya.pe.kr/2008/11/22/%ea%b0%84%eb%8b%a8-%eb%8b%a8%ec%96%b4-%eb%b2%88%ec%97%ad-%eb%b6%81%eb%a7%88%ed%81%b4%eb%a6%bf-inline-translator/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 13:59:45 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[번역]]></category>
		<category><![CDATA[북마클릿]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=103</guid>
		<description><![CDATA[단어를 드래그, 더블클릭 등으로 선택하면 선택된 단어를 번역하여 보여주는 북마클릿, 이름하여 inline translator를 만들었습니다. 개인적으로 영문서 읽기 성공률을 올려보고자 만들었는데 생각보다 쓸만한 것 같아 공유해봅니다. :) Google AJAX Language API를 사용하였고 API 지원하는 모든 언어가 번역되어 보여집니다. 아래의 링크를 북마크에 추가하신 후 원하시는 페이지에서 실행하여 사용하시면 됩니다. ( IE7 이상과 파이어폭스, 오페라, 사파리 등의 최신 [...]]]></description>
			<content:encoded><![CDATA[<p class="sshot"><img alt="실시간 단어 번역 북마클릿 실행화면" src="/images/2008/inline_translator_sample.png" width="500" /></p>

<p>단어를 드래그, 더블클릭 등으로 선택하면 선택된 단어를 번역하여 보여주는 북마클릿, 이름하여 <strong>inline translator</strong>를 만들었습니다. 개인적으로 영문서 읽기 성공률을 올려보고자 만들었는데 생각보다 쓸만한 것 같아 공유해봅니다. :)</p>

<p><a href="http://code.google.com/apis/ajaxlanguage/">Google AJAX Language API</a>를 사용하였고 <a href="http://code.google.com/apis/ajaxlanguage/documentation/#SupportedLanguages">API 지원하는 모든 언어</a>가 번역되어 보여집니다.</p>

<p>아래의 링크를 북마크에 추가하신 후 원하시는 페이지에서 실행하여 사용하시면 됩니다. (
IE7 이상과 파이어폭스, 오페라, 사파리 등의 최신 브라우저에서 사용 가능합니다.)</p>

<p><a href="javascript:(function(){try{var%20d=document;var%20s=d.createElement('script');s.setAttribute('type','text/javascript');s.setAttribute('charset','utf-8');s.setAttribute('src','http://www.miya.pe.kr/inline_translator.js');d.body.appendChild(s);}catch(e){}})()">간단 단어 번역</a></p>

<h3>추가: 파이어폭스 애드온</h3>

<p>다운로드: <a href="https://addons.mozilla.org/ko/firefox/addon/9842">Inline Translator 파이어폭스 애드온</a></p>

<p>아직 정식 애드온으로 등록되지 않은 관계로 로그인 후 받으실 수 있습니다. 정식 애드온이 되었으면 하시는 분들은 리뷰 작성 부탁드립니다. 그런데 영어로 작성하지 않으면 의미가 없다니 고려해주세요. ㅠㅠ 감사합니다. ^^</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/11/22/%ea%b0%84%eb%8b%a8-%eb%8b%a8%ec%96%b4-%eb%b2%88%ec%97%ad-%eb%b6%81%eb%a7%88%ed%81%b4%eb%a6%bf-inline-translator/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>접근성을 해치지 않는 자바스크립트의 사용, 그 다음엔?</title>
		<link>http://miya.pe.kr/2008/11/10/%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%ed%95%b4%ec%b9%98%ec%a7%80-%ec%95%8a%eb%8a%94-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%82%ac%ec%9a%a9-%ea%b7%b8-%eb%8b%a4%ec%9d%8c/</link>
		<comments>http://miya.pe.kr/2008/11/10/%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%ed%95%b4%ec%b9%98%ec%a7%80-%ec%95%8a%eb%8a%94-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%82%ac%ec%9a%a9-%ea%b7%b8-%eb%8b%a4%ec%9d%8c/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 14:16:55 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[ARIA]]></category>
		<category><![CDATA[WAI-ARIA]]></category>
		<category><![CDATA[Web Accessibility]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=97</guid>
		<description><![CDATA[접근성을 해치지 않는 자바스크립트의 사용 신현석님의 접근성을 해치지 않는 자바스크립트의 사용이라는 글을 읽어보셨는지요? 혹시 어렵고 복잡하다고 생각하실지 모르나 자바스크립트 기술 위에 HTML 표준에 대한 이해가 수반된다면 크게 복잡한 과정이 아닙니다. 웹 사이트 개발에 들어가기 앞서 위의 과정을 이해하고 있다면 접근성을 해치면서(?) 사용하는 자바스크립트와 같은 비용으로 자바스크립트가 불가능한 환경의 접근성, 검색엔진 최적화(SEO) 등의 이득을 챙길 수 [...]]]></description>
			<content:encoded><![CDATA[<h3>접근성을 해치지 않는 자바스크립트의 사용</h3>

<p>신현석님의 <a href="http://hyeonseok.com/docs/accessible-javascript/">접근성을 해치지 않는 자바스크립트의 사용</a>이라는 글을 읽어보셨는지요? 혹시 어렵고 복잡하다고 생각하실지 모르나 자바스크립트 기술 위에 HTML 표준에 대한 이해가 수반된다면 크게 복잡한 과정이 아닙니다. 웹 사이트 개발에 들어가기 앞서 위의 과정을 이해하고 있다면 접근성을 해치면서(?) 사용하는 자바스크립트와 같은 비용으로 자바스크립트가 불가능한 환경의 접근성, 검색엔진 최적화(<abbr title="Search Engine Optimization">SEO</abbr>) 등의 이득을 챙길 수 있습니다. 접근성을 보장하는 것이 그렇지 않은 것에 비해 추가비용을 필요로 하는 것은 사실이지만 그 추가비용 안에 위의 언급한 이득은 포함되어 있지 않습니다. 즉, 위의 이득들은 <strong>꽁짜</strong>란 얘기죠. ㅋ 실제로 <a href="http://me2day.net">미투데이</a>라는 서비스의 경우 자바스크립트를 제거한 상태에서도 정확하게 원하는 기능을 사용할 수 있고, 자바스크립트가 이 기능들을 좀 더 편하고 신속하게 이용할 수 있는 보조장치로 쓰인 모습을 볼 수 있습니다.</p>

<h3>그 다음엔?</h3>

<p>자… 그럼 이렇게 하면 끝일까요? 사실 아닙니다. 그 이유는 말빨이 부족한 제가 설명하는 대신 유명한 웹 접근성 관련 블로그인 <a href="http://www.456bereastreet.com">456 Berea Street</a>의 Roger Johansson옹의 글 <a href="http://www.456bereastreet.com/archive/200811/reading_up_on_wai-aria/">Reading up on <abbr title="Web Accessibility Initiative-Accessible Rich Internet Applications">WAI-ARIA</abbr></a>에서 따왔습니다.</p>

<blockquote>

<div xml:lang="en" lang="en">
<p>One of the more problematic areas of web accessibility is how to handle the custom widgets and dynamic changes to content used in most web applications and on many content-based websites.</p>
<p>Using JavaScript to add custom behaviour and update content can cause problems for people who rely on assistive technology (AT) such as screen readers. The problems often consist of the AT not being aware that content on the page has changed, the user not noticing that something has changed, or the user being aware that something changed but not what.</p>
</div>

<div title="허접 번역본;">
<p>웹 접근성에서 상당히 골칫거리인것들 중에 하나가 커스텀 위젯이나 대부분의 웹 어플리케이션이나 많은 컨텐츠 중심 웹 사이트들에서 사용된 컨텐츠의 동적인 변경을 어떻게 다루느냐하는 것이다.</p>
<p>자바스크립트를 사용하여 특정 동작을 추가하고 컨텐츠를 갱신하는 것은 스크린리더와 같은 보조기기에 의지하고 있는 사람들에게 문제를 일으킬 수 있다. 그 문제란 대개 보조기기가 페이지의 컨텐츠가 변경된 것을 감지하지 못하여 사용자가 무엇인가 바뀌었다는 것을 알지 못하거나, 혹은 사용자가 무엇인가 바뀌었다는 것은 알지만 그게 무엇인지는 모르는 문제를 가리킨다.</p>
</div>
</blockquote>

<p>그래서 나온게 <a href="http://www.w3.org/WAI/intro/aria"><abbr title="Web Accessibility Initiative-Accessible Rich Internet Applications">WAI-ARIA</abbr></a>입니다. 자, 그러면 당장 적용을 시키면 되나? 그렇습니…다라고 말씀을 드려야 하지만 좀 상황이 편하지만은 않습니다. WAI-ARIA라는 스펙 자체가 초안(Working Draft) 상태라 아직 표준으로 인정할 수 없는 상태이고 국내에서 유명한 스크린리더인 <a href="http://www.xvtech.com/xvision_renew/product/product_02.php">센스리더</a>는 WAI-ARIA의 W자도 찾아볼 수 없습니다. 구현이 전혀 안되어 있다는 얘기죠.</p>

<p class="captionwithsshot"><img alt="" src="/images/2008/accessibility/googlereader.gif" height="400" /><br />
구글리더는 ARIA 기능을 사용할 수 있는 감춰진 링크를 제공하고 있다.</p>

<p><q>보조기기들도 지원안하는 WAI-ARIA인지 뭔지 적용하나 마나 쓸모없지 않나?</q>라는 질문을 하실 수 있습니다. 마찬가지로 센스리더 등의 보조기기 제작사에서는 <q>구현된 사이트도 없는데 WAI-ARIA인지 뭔지 적용하나 마나 쓸모없지 않나?</q>라는 질문을 할 수 있고요. -_-;;;</p>

<p>둘 중 누가 먼저라는 걸 서로 주장하는 것도 웃깁니다. 오히려 서로 시급히 도입해야 할 판국이죠. 그렇지 않습니까? ^^</p>

<h3>지금 당장은?</h3>

<p>우여곡절 끝에 접근성을 해치치 않는 자바스크립트를 사용하고 그 위에 WAI-ARIA까지 적용했다고 합시다. 그런데 보조기기들은 아직이라면? 답은 의외로 간단합니다. 보조기기 사용자들이 자바스크립트를 꺼둔 상태로 사이트를 작동할 수 있는 기능(문서 시작점에 이 기능에 대한 링크를 제공한다던지…)을 주면 됩니다. :)</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/11/10/%ec%a0%91%ea%b7%bc%ec%84%b1%ec%9d%84-%ed%95%b4%ec%b9%98%ec%a7%80-%ec%95%8a%eb%8a%94-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%82%ac%ec%9a%a9-%ea%b7%b8-%eb%8b%a4%ec%9d%8c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>canvas와 VML을 통해 이미지를 둥글게…</title>
		<link>http://miya.pe.kr/2008/11/05/canvas%ec%99%80-vml%ec%9d%84-%ed%86%b5%ed%95%b4-%ec%9d%b4%eb%af%b8%ec%a7%80%eb%a5%bc-%eb%91%a5%ea%b8%80%ea%b2%8c%e2%80%a6/</link>
		<comments>http://miya.pe.kr/2008/11/05/canvas%ec%99%80-vml%ec%9d%84-%ed%86%b5%ed%95%b4-%ec%9d%b4%eb%af%b8%ec%a7%80%eb%a5%bc-%eb%91%a5%ea%b8%80%ea%b2%8c%e2%80%a6/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 10:21:30 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[svg]]></category>
		<category><![CDATA[vml]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/?p=96</guid>
		<description><![CDATA[요즘 웹에서 벡터 그래픽을 표현하는 방법에 대한 관심이 생겨 canvas, SVG, VML 등을 살펴보고 있습니다. SVG라는 표준이 있고 HTML5에는 canvas 요소가 기본적으로 들어가는데 일단 IE 때문에 표준으로 짜자잔이라던지 CSS background로 벡터 그래픽을 사용한다던지 하는 신나는 일은 나~중에나 될 것 같습니다만 자바스크립트를 통해 IR처럼 구현하는 건 가능할 것 같습니다. 컨텐츠를 HTML로 기본적으로 마크업한 뒤 자바스크립트로 갈아치우는거죠. [...]]]></description>
			<content:encoded><![CDATA[<p>요즘 웹에서 벡터 그래픽을 표현하는 방법에 대한 관심이 생겨 <a href="http://en.wikipedia.org/wiki/Canvas_tag">canvas</a>, <a href="http://ko.wikipedia.org/wiki/SVG"><abbr title="Scalable Vector Graphics">SVG</abbr></a>, <a href="http://en.wikipedia.org/wiki/VML"><abbr title="Vector Markup Language">VML</abbr></a> 등을 살펴보고 있습니다. SVG라는 표준이 있고 <abbr title="HyperText Markup Language 5">HTML5</abbr>에는 canvas 요소가 기본적으로 들어가는데 일단 IE 때문에 표준으로 짜자잔이라던지 <abbr title="Cascading Style Sheets">CSS</abbr> background로 벡터 그래픽을 사용한다던지 하는 신나는 일은 나~중에나 될 것 같습니다만 자바스크립트를 통해 <abbr title="Image Replacement">IR</abbr>처럼 구현하는 건 가능할 것 같습니다. 컨텐츠를 HTML로 기본적으로 마크업한 뒤 자바스크립트로 갈아치우는거죠.</p>

<p>쬐금 공부해본 결과물을 공유합니다. <a href="http://miya.pe.kr/examples/vector/rounded-image.html">이미지의 모서리를 둥글게 하는 스크립트 예제</a>입니다. 사용한 이미지가 조금 거시기하니 <strong>뭐 드시는 중이시거나 비위가 약한 분들은 조심</strong>하세요. -_-;;</p>

<p>원래 animated gif 파일인데 canvas를 사용하면 안되네요. 안되는건지, 제가 방법을 못 찾은건지… 원본이 궁금하신 분들은 <a href="http://miya.pe.kr/examples/vector/black-horror.gif">원본 이미지</a>를 보셔요. ㅋㅋ</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/11/05/canvas%ec%99%80-vml%ec%9d%84-%ed%86%b5%ed%95%b4-%ec%9d%b4%eb%af%b8%ec%a7%80%eb%a5%bc-%eb%91%a5%ea%b8%80%ea%b2%8c%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>62</slash:comments>
		</item>
		<item>
		<title>계속되는 파이어폭스3 베타의 노력</title>
		<link>http://miya.pe.kr/2008/03/14/%ea%b3%84%ec%86%8d%eb%90%98%eb%8a%94-%ed%8c%8c%ec%9d%b4%ec%96%b4%ed%8f%ad%ec%8a%a43-%eb%b2%a0%ed%83%80%ec%9d%98-%eb%85%b8%eb%a0%a5/</link>
		<comments>http://miya.pe.kr/2008/03/14/%ea%b3%84%ec%86%8d%eb%90%98%eb%8a%94-%ed%8c%8c%ec%9d%b4%ec%96%b4%ed%8f%ad%ec%8a%a43-%eb%b2%a0%ed%83%80%ec%9d%98-%eb%85%b8%eb%a0%a5/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 04:52:47 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[acid]]></category>
		<category><![CDATA[acid3]]></category>
		<category><![CDATA[firefox3]]></category>
		<category><![CDATA[ie8]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/archives/71</guid>
		<description><![CDATA[우연히 Acid Test Results on Popular Browsers라는 글을 보게 되었는데 최신 브라우저들의 Acid3 테스트의 점수를 볼 수 있었다. 놀라운 것은 파이어폭스3 베타의 점수였다. 베타 2는 55점, 베타 3는 59점을 기록한 것이다. 호기심에 베타 4를 테스트 해보니 무려 67점을 기록하였다. IE8은 Acid2 테스트를 통과하였다. 그러나 Acid3 테스트에서는 겨우 17점이라는 초라한 성적표를 보여주었다. 파이어폭스3 베타가 각 버전마다 [...]]]></description>
			<content:encoded><![CDATA[<p>우연히 <a href="http://www.sciactive.com/main/index.php?option=com_content&#038;task=view&#038;id=133&#038;Itemid=1" lang="en" xml:lang="en">Acid Test Results on Popular Browsers</a>라는 글을 보게 되었는데 최신 브라우저들의 <a href="http://acid3.acidtests.org"><span lang="en" xml:lang="en">Acid3</span> 테스트</a>의 점수를 볼 수 있었다. 놀라운 것은 파이어폭스3 베타의 점수였다. <strong>베타 2는 55점</strong>, <strong>베타 3는 59점</strong>을 기록한 것이다. 호기심에 <strong>베타 4를 테스트 해보니 무려 67점</strong>을 기록하였다.</p>
<p><img alt="파이어폭스3 베타 4의 Acid3 테스트: 67점" src="/images/2008/acid3/acid3_ff3b4.jpg" /></p>
<p><img alt="파이어폭스3 베타 3의 Acid3 테스트: 59점" src="/images/2008/acid3/acid3_ff3b3.jpg" /></p>
<p><img alt="파이어폭스3 베타 2의 Acid3 테스트: 55점" src="/images/2008/acid3/acid3_ff3b2.jpg" /></p>
<p><a href="http://channy.creation.net/blog/?p=467">IE8은 Acid2 테스트를 통과하였다.</a> 그러나 Acid3 테스트에서는 겨우 17점이라는 초라한 성적표를 보여주었다. 파이어폭스3 베타가 각 버전마다 4점, 8점의 향상을 보여준 것과 대조적으로 IE8은 IE7에서 겨우 3점 오른 것이 전부였다. MS 제품군이 그러하듯 IE8도 파이어폭스3 베타와 같은 계속적인 향상을 보여주기는 힘들지 않을까 생각된다.</p>
<p><img alt="IE8 베타의 Acid3 테스트: 17점" src="/images/2008/acid3/acid3_ie8b.jpg" /></p>
<p>파이어폭스3 베타 4의 Acid3 테스트 점수 67점은 오페라 9.50 베타 1의 점수 60점을 뛰어넘었다. 흐뭇한 마음으로 파이어폭스3 베타의 웹 표준 지원 노력이 어디까지 계속될지 지켜보아야겠다. 마음 속으로나마 열렬히 응원한다!</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/03/14/%ea%b3%84%ec%86%8d%eb%90%98%eb%8a%94-%ed%8c%8c%ec%9d%b4%ec%96%b4%ed%8f%ad%ec%8a%a43-%eb%b2%a0%ed%83%80%ec%9d%98-%eb%85%b8%eb%a0%a5/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>새로운 웹 표준 테스트, Acid3</title>
		<link>http://miya.pe.kr/2008/01/11/%ec%83%88%eb%a1%9c%ec%9a%b4-%ec%9b%b9-%ed%91%9c%ec%a4%80-%ed%85%8c%ec%8a%a4%ed%8a%b8-acid3/</link>
		<comments>http://miya.pe.kr/2008/01/11/%ec%83%88%eb%a1%9c%ec%9a%b4-%ec%9b%b9-%ed%91%9c%ec%a4%80-%ed%85%8c%ec%8a%a4%ed%8a%b8-acid3/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 01:21:29 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[acid2]]></category>
		<category><![CDATA[acid3]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[DOM3]]></category>
		<category><![CDATA[ECMAScript]]></category>

		<guid isPermaLink="false">http://miya.pe.kr/archives/68</guid>
		<description><![CDATA[최근 IE8이 Acid2 테스트를 통과했다고 해서 웹 표준 진영이 크게 고무된 바 있다. 그런데 HTML5의 리더인 이안 힉슨(Ian Hickson)이 또 웹 브라우저 제작자에게 또 시련을 주려나 보다. 바로 Acid3 테스트이다. Acid3을 100% 통과한 웹 브라우저의 화면 스크린샷 Ian Hickson has been working hard on the acid3 test. The new test will focus mostly on ECMAScript [...]]]></description>
			<content:encoded><![CDATA[<p>최근 <a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx">IE8이 Acid2 테스트를 통과했다</a>고 해서 웹 표준 진영이 크게 고무된 바 있다. 그런데 HTML5의 리더인 <a href="http://ln.hixie.ch/">이안 힉슨(Ian Hickson)</a>이 또 웹 브라우저 제작자에게 또 시련을 주려나 보다. 바로 <a href="http://hixie.ch/tests/evil/acid/003/">Acid3 테스트</a>이다.</p>
<p class="attach-image"><img src="/samples/2008/acid3/acid3.png" />
Acid3을 100% 통과한 웹 브라우저의 화면 스크린샷
<blockquote cite="http://dustinbrewer.com/developers-are-working-on-acid3-test/" lang="en"><p>Ian Hickson has been working hard on the acid3 test. The new test will focus mostly on ECMAScript and Dom through Selectors Level3, Media queries and data URIs. The new acid3 test isn’t quite ready yet but it should become ready within the coming months.</p></blockquote>
<p><cite><a href="http://dustinbrewer.com/">dustin brewer</a></cite>의 <a href="http://dustinbrewer.com/developers-are-working-on-acid3-test/">Developers are working on ACID3 test</a>이라는 글에 따르면 새로운 Acid3 테스트는 <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript</a>와 <a href="http://www.w3.org/DOM%3Cacronym%20title=">DOM3, CSS3의 </a><a href="http://www.w3.org/TR/css3-mediaqueries/">Media Queries</a>, <a href="http://software.hixie.ch/utilities/cgi/data/data">data URIs</a>에 초점을 둔 것이라고 한다. <a href="http://en.wikipedia.org/wiki/Acid2">Acid2 테스트</a>가 나온지 3년 가까이 지난만큼 그 동안 나온 새로운 웹 표준 기술들에 대한 검증의 필요성이 대두되어 Acid3 테스트가 작성중인 듯 하다.</p>
<p>글을 쓰며 IE8의 Acid2 테스트 통과에 환호하는 현실이 조금 씁쓸한 기분이 든다. 하지만 IE 역시 웹 표준을 적극 수용하려는 자세를 보이고 있는 만큼 Acid3 테스트는 Acid2의 그것보다 훨씬 빠르게 웹 브라우저에 반영될 것으로 기대한다.</p>
<p>아래는 재미로 최신 웹 브라우저들의 Acid3 테스트를 해본 결과이다. IE8의 점수가 궁금해진다. Acid3 테스트는 아직 완료된 테스트가 아니므로 참고만 하자.</p>
<table summary="최신 웹 브라우저들의 Acid3 테스트(2008년 1월 11일) 점수표">
<thead>
<tr>
<th scope="col">웹 브라우저</th>
<th scope="col">테스트 점수</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row"><a href="/samples/2008/acid3/ie6.png">Internet Explorer 6</a></th>
<td>0%</td>
</tr>
<tr>
<th scope="row"><a href="/samples/2008/acid3/ie7.png">Internet Explorer 7</a></th>
<td>0%</td>
</tr>
<tr>
<th scope="row"><a href="/samples/2008/acid3/ff2.png">Firefox 2.0.0.11</a></th>
<td>60%</td>
</tr>
<tr>
<th scope="row"><a href="/samples/2008/acid3/ff3.png">Firefox 3.0b2</a></th>
<td>63%</td>
</tr>
<tr>
<th scope="row"><a href="/samples/2008/acid3/safari3.png">Safari 3.0.4</a></th>
<td>50%</td>
</tr>
<tr>
<th scope="row"><a href="/samples/2008/acid3/opera9.png">Opera 9.25</a></th>
<td>56%</td>
</tr>
</tbody>
</table>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2008/01/11/%ec%83%88%eb%a1%9c%ec%9a%b4-%ec%9b%b9-%ed%91%9c%ec%a4%80-%ed%85%8c%ec%8a%a4%ed%8a%b8-acid3/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Miya Validator 0.2 버전 출시.</title>
		<link>http://miya.pe.kr/2007/12/21/miya-validator-02-%eb%b2%84%ec%a0%84-%ec%b6%9c%ec%8b%9c/</link>
		<comments>http://miya.pe.kr/2007/12/21/miya-validator-02-%eb%b2%84%ec%a0%84-%ec%b6%9c%ec%8b%9c/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 08:05:58 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Miya Validator]]></category>
		<category><![CDATA[폼 유효성 검사]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/62</guid>
		<description><![CDATA[Miya Validator에 몇가지 기능을 추가하여 0.2 버전을 공식배포합니다. 변경 사항 MiyaValidator 클래스의 add 함수와 addGroup 함수의 리턴값이 변경되었습니다. 특별히 폼 유효성 검사 외에 다른 작업을 하지 않으셨다면 사용상 변화된 점은 없습니다. add 함수의 리턴값 MiyaCondition의 instance에서 MiyaValidator의 conditions 변수의 해당 index값으로 변경 addGroup 함수의 리턴값 MiyaGroupCondition의 instance에서 MiyaValidator의 groupConditions 변수의 해당 index값으로 변경 추가 기능 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/miya-validator">Miya Validator</a>에 몇가지 기능을 추가하여 <a href="/miya-validator/miya-validator-download" title="Download">0.2 버전을 공식배포</a>합니다.</p>

<h3>변경 사항</h3>
<p>
    <a href="http://www.miya.pe.kr/miya-validator/miya-validator-documentation#miya-validator">MiyaValidator 클래스</a>의 <a href="http://www.miya.pe.kr/miya-validator/miya-validator-documentation#miya-validator-add">add 함수</a>와
    <a href="http://www.miya.pe.kr/miya-validator/miya-validator-documentation#miya-validator-addgroup">addGroup 함수</a>의 리턴값이 변경되었습니다. 특별히 폼 유효성 검사 외에 다른 작업을 하지 않으셨다면 사용상 변화된 점은 없습니다.
</p>
<dl>
    <dt>add 함수의 리턴값</dt>
    <dd>MiyaCondition의 instance에서 MiyaValidator의 conditions 변수의 해당 index값으로 변경</dd>
    <dt>addGroup 함수의 리턴값</dt>
    <dd>MiyaGroupCondition의 instance에서 MiyaValidator의 groupConditions 변수의 해당 index값으로 변경</dd>
</dl>

<h3>추가 기능</h3>
<h4>fileonly 속성 추가</h4>
<p>
    첨부파일의 확장자를 제한합니다. 이미지파일의 확장자를 검사하는 <a href="miya-validator-documentation#miya-condition-imageonly">imageonly 속성</a>과는 별도로
    업로드 가능한 첨부파일의 확장자를 직접 선언할 수 있는 속성입니다. 다음과 같은 방식으로 사용하실 수 있도록 구현됩니다.
</p>

<pre><code class="javascript">var v = new MiyaValidator(form);

v.add(&quot;somefile&quot;, {
fileonly: [&quot;hwp&quot;, &quot;doc&quot;, &quot;xls&quot;, &quot;ppt&quot;],
message: &quot;아래아 한글 또는 MS 오피스의 문서 파일만 업로드 하실 수 있습니다.&quot;
});</code></pre>

<h4>trim 속성 추가</h4>
<p>
    입력값의 공백을 제거 후 검사할 수 있는 속성입니다. 공백 제거 방법에 따라 다음과 같은 값을
    입력할 수 있습니다. 입력값은 trim 속성에 따라 공백이 제거된 후 검사되지만 실제 사용자의
    입력값은 그대로 유지되며 전송시에도 공백이 사용자가 입력한 상태대로 전송됩니다.
</p>
<dl>
    <dt>&quot;trim&quot; 또는 true</dt>
    <dd>입력값의 시작부분과 끝부분의 공백을 제거합니다.</dd>
    <dt>&quot;ltrim&quot;</dt>
    <dd>입력값의 시작부분의 공백을 제거합니다.</dd>
    <dt>&quot;rtrim&quot;</dt>
    <dd>입력값의 끝부분의 공백을 제거합니다.</dd>
    <dt>&quot;compress&quot;</dt>
    <dd>입력값의 모든 공백을 제거합니다.</dd>
</dl>
<h4>minlength 속성 추가</h4>
<p>
    <a href="http://www.w3.org/TR/html401/interact/forms.html#adef-maxlength">HTML4의 maxlength</a>의 반대개념으로 최소 글자수를 설정합니다.
</p>
<h4>min/max 속성 추가</h4>
<p>
    입력된 값의 최소/최대값을 정의합니다. 값은 반드시 숫자로 입력되어야 합니다.
</p>
<h4>법인번호(jurino) 형식(<a href="http://www.miya.pe.kr/miya-validator/miya-validator-documentation#miya-format">MiyaFormat</a>) 추가</h4>

<h3 id="bugfixed">오류 수정</h3>
<h4>requiremax 속성의 메시지 오류 수정</h4>
<p>
    에러 메시지의 오류를 수정하였습니다. 프로그램 동작에 영향을 미치는 부분이 아니기 때문에 0.1 버전에도 수정 반영되었습니다.
    <q>{requiremax}개 <del>이상</del><ins>이하</ins>의 항목이 입력되어야 합니다.</q>
</p>

<h3 id="specialthanksto">Special Thanks To</h3>
<p>
    0.2 버전의 모든 기능을 제안해주신 <cite>RedCat Caravan</cite>님께 진심으로 감사드립니다.
</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/12/21/miya-validator-02-%eb%b2%84%ec%a0%84-%ec%b6%9c%ec%8b%9c/feed/</wfw:commentRss>
		<slash:comments>122</slash:comments>
		</item>
		<item>
		<title>겸손한 자바스크립트의 기본</title>
		<link>http://miya.pe.kr/2007/11/25/%ea%b2%b8%ec%86%90%ed%95%9c-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ea%b8%b0%eb%b3%b8/</link>
		<comments>http://miya.pe.kr/2007/11/25/%ea%b2%b8%ec%86%90%ed%95%9c-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ea%b8%b0%eb%b3%b8/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 14:23:49 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[겸손한 자바스크립트]]></category>
		<category><![CDATA[마크업]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/21</guid>
		<description><![CDATA[겸손한 자바스크립트의 사전적인 의미는 문서(HTML)와 동작(자바스크립트)를 분리하는 것이지만, 그 이전에 기본은 자바스크립트를 사용하는 모든 경우에 대해 사용 가능한 경우와 가능하지 않은 경우를 염두하여 설계하는 것이다. 웹 페이지를 제작하면서 자바스크립트를 어떤 부분에 사용해야겠다라고 마음 먹으면 우리는 자바스크립트를 표시하는 &#60;script&#62; 태그를 쓴다. 앞서 얘기한 설계대로 &#60;script&#62; 태그의 사용 가능하지 않은 경우를 위해 &#60;noscript&#62; 태그를 쓸 수 있다. [...]]]></description>
			<content:encoded><![CDATA[<p>겸손한 자바스크립트의
    <ins datetime="2008-04-25T04:30:00+09:00">사전적인 의미는 문서(<abbr title="Hypertext Markup Language">HTML</abbr>)와 동작(자바스크립트)를
        분리하는 것이지만, 그 이전에</ins>
    기본은 <strong>자바스크립트를 사용하는 모든 경우에 대해 사용 가능한 경우와 가능하지 않은 경우를 염두하여 설계하는 것</strong>이다.</p>
<p>웹 페이지를 제작하면서 자바스크립트를 어떤 부분에 사용해야겠다라고 마음 먹으면
    우리는 자바스크립트를 표시하는 &lt;script&gt; 태그를 쓴다.
    앞서 얘기한 설계대로 &lt;script&gt; 태그의 사용 가능하지 않은 경우를 위해 &lt;noscript&gt; 태그를 쓸 수 있다.
    어플리케이션 레벨이 아닌 마크업이 잘 되어 정상적인 기능을 하는
<abbr title="Hypertext Markup Language">HTML</abbr> 문서에 부가적인 사용자 편의성의 증대를 목적으로
    사용하는 자바스크립트라면 &lt;script&gt; 태그가 동작하지 않을 경우
    자바스크립트가 없는 <abbr title="Hypertext Markup Language">HTML</abbr> 문서와 같이 작동하게 되므로
    굳이 &lt;noscript&gt; 태그가 필요하지 않을 것이다.</p>

<ins datetime="2008-04-25T04:30:00+09:00">
    <p>다음의 두 코드를 보자. 직업을 입력하지 않았을 때 오류메시지를 표시하는 스크립트를 삽입한 폼이다.</p>
    <pre><code class="html">&lt;form action=&quot;insert&quot; id=&quot;f&quot;&gt;
    &lt;fieldset&gt;
        &lt;label for=&quot;yourjob&quot;&gt;당신의 직업&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;job&quot; id=&quot;yourjob&quot; /&gt;
        <strong>&lt;a href=&quot;javascript:checkForm();&quot;&gt;전송&lt;/a&gt;</strong>
    &lt;/fieldset&gt;
&lt;/form&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
// &lt;![CDATA[
function checkForm() {
    var form = document.getElementById(&quot;f&quot;);
    if (form.elements[&quot;job&quot;].value == &quot;&quot;) {
        alert(&quot;직업을 입력해주세요.&#038;quot);
    } else {
        form.submit();
    };
};
// ]]&gt;
&lt;/script&gt;</code></pre>
    <pre><code class="html">&lt;form action=&quot;insert&quot; id=&quot;f&quot;&gt;
    &lt;fieldset&gt;
        &lt;label for=&quot;yourjob&quot;&gt;당신의 직업&lt;/label&gt;
        &lt;input type=&quot;text&quot; name=&quot;job&quot; id=&quot;yourjob&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;전송&quot; /&gt;
    &lt;/fieldset&gt;
&lt;/form&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
// &lt;![CDATA[
if (document.getElementById &amp;&amp; document.getElementById(&quot;f&quot;)) {
    var form = document.getElementById(&quot;f&quot;);
    form.onsubmit = function() {
        if (this.elements[&quot;job&quot;].value == &quot;&quot;) {
            alert(&quot;직업을 입력해주세요.&#038;quot);
            return false;
        };
    };
};
// ]]&gt;
&lt;/script&gt;</code></pre>
    <p>전자는 자바스크립트를 제거하였을 때 아무런 동작을 하지 않는 예제이고
        후자는 <abbr title="Hypertext Markup Language">HTML</abbr>에 선언된 링크로 이동할 수 있는 예제이다.
    <strong>어떤 코드를 작성하던 비슷한 시간이 소요</strong>되겠지만 &#8211; 학습에 필요한 시간은 제외한다. -
        전자의 경우 <strong>문서의 가치가 훨씬 떨어진다</strong>.</p>
</ins>

<p>모든 사용자가 당신의 자바스크립트 코드를 실행할 수 있을 것이라고 기대하지 말아야 한다.
    또, 어떤 사용자는 당신의 자바스크립트 코드 중 어떤 부분을 제대로 해석하지 못한다는 것을 알아야 한다.</p>

<p>자바스크립트는 플래시, ActiveX와 같은 외부 플러그인과 개념 상 다르지 않다.
    오히려 언급한 것처럼 사용자에 따라 불완전하게 실행될 가능성이 있기 때문에 더 다루기 어려운 기술임을 인식하여야 한다.</p>

<h3>참고 링크</h3>
<ul>
    <li><a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">Unobtrusive JavaScript &#8211; wikipedia</a></li>
    <li><a href="http://www.alistapart.com/articles/behavioralseparation">Behavior Seperation &#8211; A List Apart</a></li>
    <li><a href="http://sangini.net/56">자바스크립트를 올바르게 사용하기 &#8211; Sangini World</a></li>
    <li><a href="http://hyeonseok.com/docs/accessible-javascript/">접근성을 해치지 않는 자바스크립트의 사용 &#8211; 신현석</a></li>
</ul>

<p class="updatedat">마지막 업데이트: 2008년 4월 25일 04시 30분</p>]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/11/25/%ea%b2%b8%ec%86%90%ed%95%9c-%ec%9e%90%eb%b0%94%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ea%b8%b0%eb%b3%b8/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>진정 어플리케이션 같은 웹어플리케이션, QOOXDOO!</title>
		<link>http://miya.pe.kr/2007/09/11/%ec%a7%84%ec%a0%95-%ec%96%b4%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-%ea%b0%99%ec%9d%80-%ec%9b%b9%ec%96%b4%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-qooxdoo/</link>
		<comments>http://miya.pe.kr/2007/09/11/%ec%a7%84%ec%a0%95-%ec%96%b4%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-%ea%b0%99%ec%9d%80-%ec%9b%b9%ec%96%b4%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-qooxdoo/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 05:59:27 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[QOOXDOO]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/42</guid>
		<description><![CDATA[요즈음 웹이 데스크탑 어플리케이션을 흉내내기 시작하다가 어느샌가 데스크탑 어플리케이션의 한계를 뛰어넘은 모습을 자주 보게 된다. 2005년 구글 맵스에 열광하던 시절은 추억거리가 되었고, 2007년 현재에는 다양한 양질의 웹어플리케이션이 우열을 다투고 있다. 오늘 소개할 QOOXDOO는 쉬운 웹어플리케이션 제작을 위한 자바스크립트 프레임워크의 하나이다. Java의 Interface와 Ruby의 Mixin 개념을 도입한 OO 방식의 프레임워크인 QOOXDOO는 또한 기본적인 UI를 자체 제공하며 [...]]]></description>
			<content:encoded><![CDATA[<p>요즈음 웹이 데스크탑 어플리케이션을 흉내내기 시작하다가 어느샌가 데스크탑 어플리케이션의 한계를 뛰어넘은 모습을 자주 보게 된다. 2005년 구글 맵스에 열광하던 시절은 추억거리가 되었고, 2007년 현재에는 다양한 양질의 웹어플리케이션이 우열을 다투고 있다. 오늘 소개할 <a href="http://qooxdoo.org/" title="cook's doo">QOOXDOO</a>는 쉬운 웹어플리케이션 제작을 위한 자바스크립트 프레임워크의 하나이다.</p>
<p>Java의 <a href="http://en.wikipedia.org/wiki/Interface_(Java)">Interface</a>와 Ruby의 <a href="http://en.wikipedia.org/wiki/Mixin">Mixin</a> 개념을 도입한 <abbr title="Object Oriented(객체 지향)">OO</abbr> 방식의 프레임워크인 QOOXDOO는 또한 기본적인 <abbr title="User Interface">UI</abbr>를 자체 제공하며 관련 아이콘들이 <abbr title="Software Development Kit">SDK</abbr>에 포함되어 있다.</p>
<p>한글로 된 QOOXDOO에 관한 정보가 거의 없는 관계로 개발에 조금은 어려움이 있지만, 앞으로 중·소 사이트 제작 간 관리자 툴로서 활용할 목적으로 여러 프레임워크 중 <a href="http://qooxdoo.org/" title="cook's doo">QOOXDOO</a>를 선택하게 되었는데 아직은 목적 달성까지 남은 일이 많은 관계로 구체적인 적용사례나 노하우는 기회가 되면 다시 소개하기로 하겠다. (써보시거나 관련 정보를 보신 적 있으신 분들, 알려줘용!! ㅠㅠ)</p>
<h3>QOOXDOO 관련 링크</h3>
<ul>
<li><a href="http://qooxdoo.org/" title="cook's doo">QOOXDOO 공식 홈페이지</a></li>
<li><a href="http://qooxdoo.org/demo">데모 페이지</a> &#8211; showcase에서 전반적인 UI를 볼 수 있다.</li>
<li><a href="http://blog.gmane.org/gmane.comp.lang.javascript.qooxdoo.devel">메일링 리스트</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/09/11/%ec%a7%84%ec%a0%95-%ec%96%b4%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-%ea%b0%99%ec%9d%80-%ec%9b%b9%ec%96%b4%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-qooxdoo/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>내 브라우저에 X-Ray를 달자.</title>
		<link>http://miya.pe.kr/2007/08/23/%eb%82%b4-%eb%b8%8c%eb%9d%bc%ec%9a%b0%ec%a0%80%ec%97%90-xray%eb%a5%bc-%eb%8b%ac%ec%9e%90/</link>
		<comments>http://miya.pe.kr/2007/08/23/%eb%82%b4-%eb%b8%8c%eb%9d%bc%ec%9a%b0%ec%a0%80%ec%97%90-xray%eb%a5%bc-%eb%8b%ac%ec%9e%90/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 00:43:44 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XRAY]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/43</guid>
		<description><![CDATA[X-Ray :: for web developers v0.91a 웹 개발 간 브라우저의 어떤 개체(element)의 상세정보를 알고 싶다면 X-Ray를 이용 해 보자. 단순히 북마크에 X-Ray 스크립트를 넣고 원하는 페이지에서 북마크를 호출하여 주는 것만으로 준비는 끝이다! X-Ray (북마크 해 주세요!) XRAY라는 타이틀을 가진 조그마한 레이어가 나타난다. 이제 상세정보를 알고 싶은 어떤 개체(element)를 클릭하면, id, class, position, border, margin, padding [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://westciv.com/xray/xray_more.html" title="원문 보기">X-Ray :: for web developers v0.91a</a></p>
<p>웹 개발 간 브라우저의 어떤 개체(element)의 상세정보를 알고 싶다면 X-Ray를 이용 해 보자. 단순히 북마크에 X-Ray 스크립트를 넣고 원하는 페이지에서 북마크를 호출하여 주는 것만으로 준비는 끝이다!</p>
<p><a href="javascript:function%20loadScript(scriptURL)%20{%20var%20scriptElem%20=%20document.createElement('SCRIPT');%20scriptElem.setAttribute('language',%20'JavaScript');%20scriptElem.setAttribute('src',%20scriptURL);%20document.body.appendChild(scriptElem);}loadScript('http://westciv.com/xray/thexray.js');">X-Ray (북마크 해 주세요!)</a>
<p>XRAY라는 타이틀을 가진 조그마한 레이어가 나타난다. 이제 상세정보를 알고 싶은 어떤 개체(element)를 클릭하면, id, class, position, border, margin, padding 등의 정보를 얻을 수 있다. 그리고 개체(element)가 속한 <abbr title="HyperText Markup Language">HTML</abbr>의 구조가 표시되는데 부모 개체(element) 태그명을 클릭하면 해당 상세정보를 얻을 수 있다.</p>
<p class="attach-image"><img src="http://cfs3.tistory.com/upload_control/download.blog?fhandle=YmxvZzcwNDEyQGZzMy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMy5wbmc=" alt="X-Ray 예제" height="542" width="798" />X-Ray 예제</p>
<p>X-Ray를 끄고 싶다면 x 버튼을 클릭하거나 브라우저를 새로고침하면 끝이다.</p>
<p>웹디자이너나 퍼블리셔, 자바스크립트 개발자들에게 상당히 유용한 툴이 될 듯 하다. 이번 버전에서 IE6 이상에 대한 지원이 추가되었다고 하니 IE의 렌더링 오류 수정에도 크게 도움이 될 것 같다. 스크린샷을 찍고 그래픽 툴에서 붙여서 확대해서 픽셀 재는 수고를 좀 덜어주지 않을까? :)</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/08/23/%eb%82%b4-%eb%b8%8c%eb%9d%bc%ec%9a%b0%ec%a0%80%ec%97%90-xray%eb%a5%bc-%eb%8b%ac%ec%9e%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>소위 히든폼이라 불리는 HTML의 오용</title>
		<link>http://miya.pe.kr/2007/08/22/%ec%86%8c%ec%9c%84-%ed%9e%88%eb%93%a0%ed%8f%bc%ec%9d%b4%eb%9d%bc-%eb%b6%88%eb%a6%ac%eb%8a%94-html%ec%9d%98-%ec%98%a4%ec%9a%a9/</link>
		<comments>http://miya.pe.kr/2007/08/22/%ec%86%8c%ec%9c%84-%ed%9e%88%eb%93%a0%ed%8f%bc%ec%9d%b4%eb%9d%bc-%eb%b6%88%eb%a6%ac%eb%8a%94-html%ec%9d%98-%ec%98%a4%ec%9a%a9/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 05:30:00 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[히든폼]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/44</guid>
		<description><![CDATA[페이징 기능을 포함한 게시물 리스트 화면이나 Breadcrumb 구조 등 다수의 공통적인 파라미터를 가지고 다녀야 하는 경우가 있다. 이 경우에 쓰이는 방법이 여러가지가 있는데 일반적으로 서버 사이드 스크립트를 통해 공통적인 파라미터를 묶어서 여러 개의 관련 링크에서 일관적으로 적용하도록 하는 방법이다. 그런데 다음과 같은 HTML 코드를 만들어내는 경우가 있다. (common1~3을 공통적인 파라미터라고 가정한 게시물 보기 화면) Breadcrumb [...]]]></description>
			<content:encoded><![CDATA[<p>페이징 기능을 포함한 게시물 리스트 화면이나 <a href="http://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EC%9D%B4%EB%8F%99_%EA%B2%BD%EB%A1%9C" class="external" title="사이트 이동 경로">Breadcrumb</a> 구조 등 다수의 공통적인 파라미터를 가지고 다녀야 하는 경우가 있다. 이 경우에 쓰이는 방법이 여러가지가 있는데 일반적으로 <a href="http://en.wikipedia.org/wiki/Server-side_scripting" title="Server-side Scripting">서버 사이드 스크립트</a>를 통해 공통적인 파라미터를 묶어서 여러 개의 관련 링크에서 일관적으로 적용하도록 하는 방법이다. 그런데 다음과 같은 <abbr title="HyperText Markup Language">HTML</abbr> 코드를 만들어내는 경우가 있다. (common1~3을 공통적인 파라미터라고 가정한 게시물 보기 화면) <a href="http://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EC%9D%B4%EB%8F%99_%EA%B2%BD%EB%A1%9C" title="사이트 이동 경로">Breadcrumb</a> 구조 등 다수의 공통적인 파라미터를 가지고 다녀야 하는 경우가 있다. 이 경우에 쓰이는 방법이 여러가지가 있는데 일반적으로 <a href="http://en.wikipedia.org/wiki/Server-side_scripting" title="Server-side Scripting">서버 사이드 스크립트</a>를 통해 공통적인 파라미터를 묶어서 여러 개의 관련 링크에서 일관적으로 적용하도록 하는 방법이다. 그런데 다음과 같은 HTML 코드를 만들어내는 경우가 있다. (common1~3을 공통적인 파라미터라고 가정한 게시물 보기 화면)</p>
<pre><code class="html">&lt;script type=&quot;text/javascript&quot;&gt;
function goDelete(id) {
    var form = document.forms[&quot;blahform&quot;];
    form.id.value = id;
    form.action = &quot;delete&quot;;
    form.submit();
}
function goUpdate(id) {
    var form = document.forms[&quot;blahform&quot;];
    form.id.value = id;
    form.action = &quot;updateForm&quot;;
    form.submit();
}
function goList() {
    var form = document.forms[&quot;blahform&quot;];
    form.action = &quot;list&quot;;
    form.submit();
}
&lt;/script&gt;

&lt;a href=&quot;javascript:goDelete(1)&quot;&gt;삭제&lt;/a&gt;
&lt;a href=&quot;javascript:goUpdate(1)&quot;&gt;수정&lt;/a&gt;
&lt;a href=&quot;javascript:goList()&quot;&gt;리스트&lt;/a&gt;

&lt;form name=&quot;blahform&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;common1&quot; value=&quot;1&quot; /&gt;
&lt;input type=&quot;hidden&quot; name=&quot;common2&quot; value=&quot;2&quot; /&gt;
&lt;input type=&quot;hidden&quot; name=&quot;common3&quot; value=&quot;3&quot; /&gt;
&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&quot; /&gt;
&lt;/form&gt;</code></pre>
<p>프로그램 적으로 생각하자면 공통 파라미터의 일관성을 유지할 수 있는 한가지 방법이라고 할 수 있겠지만, 결과적으로 HTML 태그가 의미에 맞지 않고 자바스크립트 의존적인 코드가 되었다. 기본적으로 form 태그는 사용자 입력 양식을 뜻하는데 위에 쓰인 form 태그는 프로그램 내부적인 용도 그 이상의 의미를 지니지 않는다.</p>
<p>앞서 언급한 것과 같이 공통 파라미터를 한 변수에 할당하는 방법으로도 일관성을 충분히 얻을 수 있고 그 이외에도 <a href="http://en.wikipedia.org/wiki/Server-side_scripting" title="Server-side Scripting">서버 사이드 스크립트</a> 단에서 위의 코드에서 얻으려고 했던 이득을 놓치지 않을 수 있는 방법이 많이 있다. 이와 같은 오류를 범하지 않으려면 HTML의 구조화를 해치지 않고 자바스크립트 의존적인 페이지를 피하는 자세가 필요하다.</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2007/08/22/%ec%86%8c%ec%9c%84-%ed%9e%88%eb%93%a0%ed%8f%bc%ec%9d%b4%eb%9d%bc-%eb%b6%88%eb%a6%ac%eb%8a%94-html%ec%9d%98-%ec%98%a4%ec%9a%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1k DHTML API</title>
		<link>http://miya.pe.kr/2005/02/28/1k-dhtml-api/</link>
		<comments>http://miya.pe.kr/2005/02/28/1k-dhtml-api/#comments</comments>
		<pubDate>Mon, 28 Feb 2005 01:51:05 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/55</guid>
		<description><![CDATA[1k DHTML API &#8211; document를 handling하는 여러가지 경우에 수에 대한 API를 제공한다. 종류로는&#8230; element 얻기 &#8211; gE element 보이고 숨기기(table 기반 레이아웃에는 적합하지 않다..) &#8211; sE, hE z-index style 지정 &#8211; sZ element의 left position set &#8211; sX element의 top position set &#8211; sY element의 가로길이 set &#8211; sW element의 세로길이position set &#8211; sH clip [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dithered.chadlindstrom.ca/javascript/1kdhtml/">1k DHTML API</a> &#8211; document를 handling하는 여러가지 경우에 수에 대한 <abbr title="Application Programing Interface">API</abbr>를 제공한다.</p>
<p>종류로는&#8230;</p>
<ul>
<li>element 얻기 &#8211; gE</li>
<li>element 보이고 숨기기(table 기반 레이아웃에는 적합하지 않다..) &#8211; sE, hE</li>
<li>z-index style 지정 &#8211; sZ</li>
<li>element의 left position set &#8211; sX</li>
<li>element의 top position set &#8211; sY</li>
<li>element의 가로길이 set &#8211; sW</li>
<li>element의 세로길이position set &#8211; sH</li>
<li>clip set &#8211; sC</li>
<li>write HTML &#8211; wH</li>
</ul>
<p>등이 있다.</p>
<p>제목처럼 1k로 용량도 작은데다가, 개발자가 element handling에 있어 시간을 들여 cross browsing을 크게 신경쓰지 않아도 되니 여러모로 좋을 것 같다. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2005/02/28/1k-dhtml-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript/DOM 사용의 비기!..2</title>
		<link>http://miya.pe.kr/2005/02/25/javascriptdom-%ec%82%ac%ec%9a%a9%ec%9d%98-%eb%b9%84%ea%b8%b02/</link>
		<comments>http://miya.pe.kr/2005/02/25/javascriptdom-%ec%82%ac%ec%9a%a9%ec%9d%98-%eb%b9%84%ea%b8%b02/#comments</comments>
		<pubDate>Fri, 25 Feb 2005 02:41:22 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/54</guid>
		<description><![CDATA[우리는 흔히 &#60;script type=&#34;text/javascript&#34;&#62; 안의 내용을 다 자바스크립트(이하 JS)라고 생각한다. Document Object Model(이하 DOM)이라는 말 자체가 생소하게 느껴진다는 것이다. 어떤게 JS고 DOM인게 무슨 소용인가? 아니다. 활성화된 커뮤니티에서 문제를 해결할 수도 있겠지만, 그렇지 못할 때에는 매뉴얼을 보아야한다. 에러가 난 부분이 JS인지 DOM인지 알아야 매뉴얼을 찾아볼 수 있지 않겠는가? 분류는 쉽다! html element를 가리키면 DOM이고 아니면 JS다. [...]]]></description>
			<content:encoded><![CDATA[<p>우리는 흔히 &lt;script type=&quot;text/javascript&quot;&gt; 안의 내용을 다 자바스크립트(이하 JS)라고 생각한다. Document Object Model(이하 DOM)이라는 말 자체가 생소하게 느껴진다는 것이다.</p>
<p>어떤게 JS고 DOM인게 무슨 소용인가? 아니다. 활성화된 커뮤니티에서 문제를 해결할 수도 있겠지만, 그렇지 못할 때에는 매뉴얼을 보아야한다. 에러가 난 부분이 JS인지 DOM인지 알아야 매뉴얼을 찾아볼 수 있지 않겠는가?</p>
<p>분류는 쉽다! html element를 가리키면 DOM이고 아니면 JS다. frame등을 가리키는 것도 DOM이다.</p>
<p>이제 DOM인지 JS인지 알았다면, 매뉴얼을 잘 찾아보는 일만 남았다.</p>
<p>DOM은 <a href="http://www.w3.org/DOM/DOMTR">W3C DOM Technical Reports</a> (HTML 접근 부분은 <a href="http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html">DOM Level2 HTML</a>)에서 볼 수 있다.</p>
<p>JS는 <a href="http://synchro.net/docs/js/ref/">Syncro.net의 Core JavaScript Reference</a> (devedge.netscape.com이 좋은 reference 사이트였으나 없어졌다. ㅠㅠ)를 보면 되겠다.</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2005/02/25/javascriptdom-%ec%82%ac%ec%9a%a9%ec%9d%98-%eb%b9%84%ea%b8%b02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript/DOM 사용의 비기!..1</title>
		<link>http://miya.pe.kr/2005/02/24/javascriptdom-%ec%82%ac%ec%9a%a9%ec%9d%98-%eb%b9%84%ea%b8%b01/</link>
		<comments>http://miya.pe.kr/2005/02/24/javascriptdom-%ec%82%ac%ec%9a%a9%ec%9d%98-%eb%b9%84%ea%b8%b01/#comments</comments>
		<pubDate>Thu, 24 Feb 2005 05:41:38 +0000</pubDate>
		<dc:creator>김군우</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://www.miya.pe.kr/archives/53</guid>
		<description><![CDATA[JavaScript/DOM은 웹이라는 녀석에 기본적으로 포함되는 것이 아니다. 이 말인즉슨, 포함이 안될 경우도 있다는 것이다. 따라서, JavaScript/DOM 사용에 있어서, 포함이 안될 경우에는 어떻게 될것인가에 대한 고찰이 필요하다. 이렇게 얘기해서는 너무 복잡하게 생각될 수도 있겠다. 예를 한번 들어보자. 버튼을 누르면 폼을 서브밋하고 싶다.. 는 예를 들어보겠다. 편의상 일부 필수 태그는 누락시킨 점.. 이해해주시길.. :) &#60;html&#62; &#60;head&#62; &#60;script [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript/<abbr title="Document Object Model">DOM</abbr>은 웹이라는 녀석에 기본적으로 포함되는 것이 아니다. 이 말인즉슨, 포함이 안될 경우도 있다는 것이다. 따라서, JavaScript/DOM 사용에 있어서, 포함이 안될 경우에는 어떻게 될것인가에 대한 고찰이 필요하다. 이렇게 얘기해서는 너무 복잡하게 생각될 수도 있겠다. 예를 한번 들어보자. 버튼을 누르면 폼을 서브밋하고 싶다.. 는 예를 들어보겠다. 편의상 일부 필수 태그는 누락시킨 점.. 이해해주시길.. :)</p>
<pre><code class="html">&lt;html&gt;
&lt;head&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function checkForm(form) {
    if (form.elements[&quot;title&quot;].value == &quot;&quot;) {
        alert(&quot;제목을 입력해주세요&quot;);
        return;
    }
    form.submit();
};
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action=&quot;someaction&quot;&gt;
    &lt;p&gt;
        제목 &lt;input type=&quot;text&quot; name=&quot;title&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;전송&quot; /&gt;
        &lt;a href=&quot;javascript:checkForm(document.forms['someaction'])&quot;&gt;전송&lt;/a&gt;
    &lt;/p&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<pre><code class="code">&lt;html&gt;
&lt;head&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function checkForm(form) {
    if (form.elements[&quot;title&quot;].value == &quot;&quot;) {
        alert(&quot;제목을 입력해주세요&quot;);
        return false;
    }
    return true;
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action=&quot;someaction&quot; onsubmit=&quot;return checkForm(this)&quot;&gt;
    &lt;p&gt;
        제목 &lt;input type=&quot;text&quot; name=&quot;title&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;전송&quot; /&gt;
    &lt;/p&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>위는 나쁜 녀석이고, 아래는 좋은 녀석이다. -_-;;</p>
<p>위의 코드가 무엇이 나쁜고 하니.. JavaScript가 인식되지 않는 브라우저에서는 &quot;javascript:checkForm()&quot; 식의 링크가 어떤 지시를 내리는지 알 수가 없다. &quot;checkForm()&quot; 자체가 JavaScript니까&#8230; 따라서 폼 체크를 할 수 없고 서브밋은 꿈도 못꾸게 된다.</p>
<p>반대로 아래의 코드는 기본적으로 HTML에서 폼 서브밋에 사용되는 submit button이 있어 서브밋에 지장이 없다. 폼 체크의 경우에는 JavaScript엔진이 있으면 onsubmit 메소드가 호출되어 checkForm function을 탈 것이고 없다면 onsubmit 메소드가 무시되어 아무런 에러없이 서브밋이 될 것이다.</p>
<p>form 값을 받은 action page에서 해당 값들을 체크하는 <strong>센스</strong>는 당연히 가지고 있을 것으로 생각한다. :)</p>
<p>아! 근데 이런식이라면 text로 폼 전송을 못하지 않는가? 그렇다. -_-; 안타깝게도 HTML만으로는 단순한 text가 폼 전송의 역할을 할 수 없다.</p>
<p>우리나라 웹시장의 웹디자인 마인드로는 심각한 일이지만, 웹이라는 녀석의 기본 목적 상 큰 문제가 될 것이 없다는 것으로 결론을 내린다! 무책임하다고 하신다면 죄송할 따름.. ㅠㅠ</p>
<p>다음 시간에 계속 쓰겠습니다.. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://miya.pe.kr/2005/02/24/javascriptdom-%ec%82%ac%ec%9a%a9%ec%9d%98-%eb%b9%84%ea%b8%b01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
