<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>Beyond Web</title>
	<link>http://beyondweb.egloos.com</link>
	<description>미래의 인터넷 세상</description>
	<language>ko</language>
	<pubDate>Tue, 02 Sep 2008 13:54:48 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>Beyond Web</title>
		<url>http://pds8.egloos.com/logo/200803/29/39/c0042839.jpg</url>
		<link>http://beyondweb.egloos.com</link>
		<width>80</width>
		<height>62</height>
		<description>미래의 인터넷 세상</description>
	</image>
  	<item>
		<title><![CDATA[ 위피 의무 탑재 폐지 or 완화라... ]]> </title>
		<link>http://beyondweb.egloos.com/4590132</link>
		<guid>http://beyondweb.egloos.com/4590132</guid>
		<description>
			<![CDATA[ 
  의무 탑재 완화가 되었을 때를 걱정한다는 건 결국 위피가 아직&nbsp;국제적인 경쟁력을 갖추지 못했다는 것이고... 경쟁력을 갖추지 못한 표준을 의무화 함으로써 소비자의 이득을 가로막고 있다는 것이 그 논거인데... 이를 근거로 의무 탑재를 폐지해야 한다는 것은... 글쎄...&nbsp; 뭐 결국 포니 같은거다. 일종의 보호 무역을 통해 내국 업체를 우대하는 것이 장기적으로 이득을 가져올 수 있는 건지... <br><br>자동차를 잘 못만들던 현대가 경쟁력이 부족한 포니를 만들었지만 외국 업체와의 경쟁을 제한한 정책 덕으로 성장해서 우리나라 경제에&nbsp;기여 했는지... 그때문에 더 좋은 외제차를 못탄 그 당시의 소비자들은 피해를 봤는지... <br><br>위피 의무 탑재라는 정책이 국내 모바일 솔루션, 콘텐트 업체들을 성장 시켜 새로운 성장동력으로 동작할지... 그 반대 급부로 아이폰 같은 것을 쓰고 싶어하는 소비자들에게 피해를 주는지...<br><br>			 ]]> 
		</description>
		<category>모바일</category>

		<comments>http://beyondweb.egloos.com/4590132#comments</comments>
		<pubDate>Tue, 02 Sep 2008 13:54:48 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Proposed ECMAScript 4th Edition – Language Overview (2) ]]> </title>
		<link>http://beyondweb.egloos.com/4341186</link>
		<guid>http://beyondweb.egloos.com/4341186</guid>
		<description>
			<![CDATA[ 
  이 문서는 <a href="http://www.ecmascript.org/es4/spec/overview.pdf">Proposed ECMAScript 4th Edition – Language Overview</a>의 번역본 입니다. 절 별로 나누어서 올릴 예정입니다.<br />
<br />
URL: <a href="http://www.ecmascript.org/es4/spec/overview.pdf">http://www.ecmascript.org/es4/spec/overview.pdf</a><br />
---<br />
<p><span style="FONT-SIZE: 130%"><strong>2. 주요 기능 (Freatures at a Glance)</strong></span></p><br />
<p><strong>OOP</strong></p><br />
<p>객체지향 프로그래밍은 Java와 같은 언어에서 존재하는 class와 interface를 통해 지원된다. (이 두 가지는 nominal type으로 알려져 있다.) 클래스 기반 프로그램밍은 프로그램을 만들고 재사용 가능한 라이브러리를 만드는데 있어 잘 알려진 방법이며 널리 가르쳐져 왔다. 게다가 웹 환경에서의 ECMAScript의 환경인 브라우저의 Document Object Model (DOM)은 class와 interface로 이우러져있다. ECMAScript를 확장 언어로 사용하는 다른 환경 역시 주로 클래스 기반 구조체에 의해 가장 잘 실현되는 객체 모델을 노출한다.</p><br />
<p>ES3에서 사용되던 Delegation 형식의 프로그래밍은 여전히 ES4에서 지원되며, 실제로도 클래스 기반 프로그래밍과 잘 융합된다.</p><br />
<p>마지막으로 ES4는 Multimethod 메커니즘을 이용해 Common Lisp, Dylan, Cecil 등에서 사용되는 프로그래밍 스타일을 지원한다. (이들 언어에서는 메서드의 정의는 메서드가 적용되는 타입의 정의와 결합되지 않는다.) Multimethod는 ES4가 연산자 오버로딩을 지원하기 쉽도록 한다.</p><br />
<p><strong>Privacy</strong></p><br />
<p>Modularity, name hiding, 라이브러리 구축은 packages와 namespace에 의해 지원되는데, 이것은 서로 분리되어 있는 모듈간에 견고한 API를 제공하고 type system과 함께 이름에 대한 접근 권한을 제어하는 기능을 제공한다.</p><br />
<p><strong>타입(Types)</strong></p><br />
<p>크고 일반적으로 검증가능하고 고성능의 프로그래밍은 풍부한 타입 시스템에 의해 지원된다. nomial type은 class와 interface에 의해 구현되며 ES3 프로그램에서 일반적인 ad hoc 데이터를 지원하기위한 구조적 타입에 의해 보충된다.</p><br />
<p>변수는 타입 제약을 가질 수 있으며 이때 구현은 타입 검사와 early binding을 수행한다. 타입이 있는 코드와 없는 코드가 예측가능한 방법으로 공존할수 있으며 완전히 타입이 있는 코드, 타입이 있는 라이브러리와 그렇지 않은 클라이언트 코드, 타입이 있는 API (package, class 또는 function 레벨에서)와 그렇지 않은 구현 코드 또는 임의로 타입을 사용하는 것 등 다양한 스타일을 지원한다. </p><br />
<p>타입이 없는 코드가 필요에 따라 점진적으로 타입을 지정할 수 있는 것 처럼, ad hoc 데이터 역시 필요에 따라 구조적 또는 명시적 타입을 지정할 수 있다. 타입이 없는 데이터는 로컬 데이터로 사용하고 노출되는 데이터 구조는 구조적 타입을 적용하고, 성능, 보안 또는 프로그램 구조상 필요가 있을 경우 명시적 타입으로 변환하여 지정할 수 있다.</p><br />
<p><strong>검증(Verification)</strong></p><br />
<p>프로그램 컴포넌트는 strict mode에서 컴파일 되도록 요청할 수 있으며, 이는 해당 컴포넌트가 실행되기 이전에 검증되도록 한다. 검증 단계는 정적 타입 검사(static type checking)을 수행하며 다른 정적인 검사들을 수행한다. 주로 참조된 모든 이름이 알려져 있는지, 참조된 객체의 속성의 타입이 알려져 있는지, 상수에 대한 쓰기는 없지는지, 다른 타입 간의 비교는 없는지 등과 같은 것들이다.</p><br />
<p>ES4의 검증은 static checker와 다른 언어 특히 Action Script의 Verifier에 있는 "lint" 기능을 모델로 삼았다. 검증 기능의 규범적 정의는 이러한 정의가 없을때 보다 ECMAScript 구현간 호환성을 촉진시킬 것이다. (ECMAScript 구현은 strict mode를 구현하는 대신 모든 프로그램을 표준 모드에서 동작시킬 수 있다.)</p><br />
<p><strong>속도와 공간 최적화(Speed and space optimization)</strong></p><br />
<p>타입 지정 기능은 호출될 메서드를 미리 바인딩함으로써 잠재적으로 ES3에 비해 메서드 호출 비용을 낮출 수 있다. 타입 지정은 또한 run-time 타입 검사를 컴파일러가 생략할 수 있도록 한다. int, uint, double과 같은 데이터 타입은 현대의 하드웨어에서 직접적으로 매핑되며 몇몇 타입에 대한 타입 특정적인 연산자를 통해 고성능 연산을 수행할 수 있도록 한다. 성능을 주요 목표로 설계된 Vector와 같은 데이터 타입은 매우 범용적인 Array와 같은 데이터 타입의 오버헤드를 범용성을 약간 희생하면서 없어지도록 한다.</p><br />
<p><strong>더 적게 프로그램하기(Programming in the small)</strong></p><br />
<p>타입이 전송되는 exception handling, block scoping, 문법적 속기(shorthand) 그리고 바인딩과 대입연산자의 destructuring은 코드를 더욱 간단하고 적은 노력으로 짤 수 있도록 해준다.</p><br />
<p><strong>제어구문(Control)</strong></p><br />
<p>표준 iteration과 itemization 프로토콜은 객체가 iteration 인터페이스를 노출 할 수 있도록 한다. for-in과 for-each-in 구문이 이 프로토콜을 활용한다.</p><br />
<p>Generator는 함수의 동작을 중단하고 caller에게 값을 리턴 한 뒤 나중에 caller가 연산을 재개할 수 있도록 한다.</p><br />
<p>Proper tail call은 재귀적 또는 상호 재귀적인 함수가 반복적인 형태로 표현될 수 있도록 한다. Tail call은 스택 공간의 부족에 대한 걱정 없이 절자척인 추상화를 사용할 수 있도록 한다.</p><br />
<p><strong>데이타(Data)</strong></p><br />
<p>ES4는 파라메터 있는 class, getter와 setter가 있는 클래스, 타입 있는 객체와 배열 구문, meta-level hook, reflection, destructuring, 프로그래머가 정의한 객체를 predefined 객체와 같이 사용할 수 있도록 하는 타입 시스템과 같은 기능을 제공한다.</p><br />
<p><strong>Self-hosting</strong></p><br />
<p>ES3는 이러한 사실을 언급하지 않았지만 ES3의 Object, Array와 같은 predefined data type은 class와 interface와 같은 nominal type으로 가장 잘 실현된다. 결과적으로 ES4에 있는 Object부터 Map까지의 모든 predefined 타입은 표준에서 언어 자체를 이용하여 정의되었다. 그래서 3rd edition에서 Array는 설명문과 Pseudocode로 정의된 메서드와 속성의 집합으로 표현되었으나, ES4에서는 클래스로 표현된며 ES4 code를 활용한 설명은 메서드의 의미를 필연적으로 설명문에 의한 것 보다 정확이 정의하고 data type의 완전한 의미를 포함한다.</p><br />
<p>Self-hosting은 언어 설계 과정에서 명확한 목표였다. Self-hosting은 두 가지 긍정적인 효과가 있다. 하나는 언어의 정의에 있어서 임의로 언어에서 정의되는 부분의 필요성을 줄여주고, 언어 자체에서 제공하는 기능과 동일한 강력한 기능을 사용자에게 제공한다. 이로인해 ES4를 위한 라이브러리와 스크립트의 강건한 체계를 만들 수 있도록 한다.</p><br />
<p><strong>Portability</strong></p><br />
<p>ES3와 마찬가지로 ES4 역시 다양한 기계에서 동작되기를 기대한다.</p><br />
<p>완전한 ES3 구현을 가진 현대적인 웹 브라우저들은 상대적으로 느린 하드웨어와 수 메가 바이트의 메모리에서도 성공적으로 동작한다. 프로그램은 소스 텍스트 형태로 전달되며 모든 컴파일은 기기에서 이루어지지만 짧은 반응시간과 상호동작성이 중요하다. 완전한 언어 구현은 매우 중요하다. - 웹은 3rd edition compact profile과 같은 서브셋 구현과 친하지 못하다. 결과적으로 ES4는 작은 디바이스에서도 구현 가능하지만 비용이 든다. 정교한 컴파일 타임 분석이 필요한 기능은 작은 기기 뿐만 아니라 일반적으로 제외할 수 있도록 되어있다. (예를 들면 구현은 strict mode를 반드시 구현해야 하는 것은 아니다.)</p><br />
<p>마찬가지로 몇몇 ES4 구현은 JVM이나 .NET과 같은 "hosted" 환경에서 존재할 것으로 보인다. 이러한 환경은 first-class continuation이나 stack mark와 같은 강력한 기능을 제공하지 않을 수도 있으며, 따라서 ES4는 이러한 기능을 최소화 하였다.</p><br />
<p><strong>Formalism</strong></p><br />
<p>무엇보다 좋은 표준은 모호하지 않고 완전하며 정확해야 한다. 3rd edition 표준은 테스트 불가능하고 지정되지 않았은 low level pseudocode를 이용하여 정의하였기 때문에 의미적인 부분의 정의가 힘들었고 이로 인해 나머지는 설명문에 의해 정의되었다. 실제적으로는 충분히 정확할 수 있을런지는 모르나, pseudocode는 읽고 쓰기가 어렵다 - 많은 오류가 발견되었으며 몇몇은 비공식 정오표에 나타나있다. 가끔 설명문은 설명해야 하는 내용을 모두 설명하지 못하지만 이러한 부적절한 설명은 해당 표준을 구현하기 전까지 이를 알아 내기 어렵다.</p><br />
<p>ES4가 ES3에 비해 상당히 커질 것은 분명했다. TG1 멤버들은 문서의 내용을 디버깅하기가 너무 어려울 것이기 때문에 ES3에서 사용하던 formalism 방법을 계속 사용하고 싶지 않았다. 더 나은 formalism 방법이 요청되었으며 E4X는 구조화된 pseudocode를 사용했으나 테스트 불가능하기는 마찬가지였다. 2003년 중간 보고서는 ES3나 E4X보다 formal한 Algol과 비슷한 pseudocode를 사용했으며 이를 위한 실행 엔진도 만들어 졌다. ES4를 위한 최근의 작업에서 TG1 멤버들은 Stratego를 포함한 term rewriting 언어를 사용하는 것을 검토하였다. 하지만 결국 TG1은 ES4와 이의 모든 predefined 클래스의 완전한 참조 구현(Reference Implementation)을 만들기로 결정하였으며 4th edition 부분을 RI에서 직접 참조하기로 했다. 게다가 RI는 TG1 멤버와 커뮤니티의 사용자들이  디자인 되고 있는 언어에 대한 실험을 수행할 수 있도록 하였다.</p><br />
<p>RI의 언어 처리기 부분은 Standard ML로 구현되었고, predefined 클래스는 ECMAScript를 이용해 구현되었다. RI는 TG1 멤버들이 ES3로 쓰여진 프로그램에 대한 호환성을 가지도록 만들어진 test suite를 활용해 테스트되었다.</p><br />
			 ]]> 
		</description>

		<comments>http://beyondweb.egloos.com/4341186#comments</comments>
		<pubDate>Tue, 06 May 2008 17:08:38 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Proposed ECMAScript 4th Edition – Language Overview (1) ]]> </title>
		<link>http://beyondweb.egloos.com/4340684</link>
		<guid>http://beyondweb.egloos.com/4340684</guid>
		<description>
			<![CDATA[ 
  <p>이 문서는 <a href="http://www.ecmascript.org/es4/spec/overview.pdf">Proposed ECMAScript 4th Edition – Language Overview</a>의 번역본 입니다. 절 별로 나누어서 올릴 예정입니다.<br />
<br />
URL: <a href="http://www.ecmascript.org/es4/spec/overview.pdf">http://www.ecmascript.org/es4/spec/overview.pdf</a><br />
---<br />
<p><strong><span style="FONT-SIZE: 130%">1. 소개(Introduction)</span></strong></p><br />
<p><strong>역사(History)</strong></p><br />
<p>ECMAScript 4th Edition (ES4)은 1995년부터 Netscape Communications社에 의해 개발된 Javascript를 근간으로하는 3rd edition (ES3)으로부터 진화한 multi-paradigm 언어이다.</p><br />
<p>ES4 작업은 1999년 3rd edition의 제정과 함께 시작되었다. 2003년 중간 보고서가 보고되었으며, 이후 작업은 중단되었다. 중간 보고서에 정의된 언어의 부분집합이 Adobe Systems의 ActionScript와 Microsoft의 JScript.NET에 의해 구현되었다.</p><br />
<p>현재 Ecma Technical Committee 39의 Task Group 1 (Ecma TC39-TG15, 이후 TG1)은 ES3, ES4의 중간 보고, 그리고 Adobe와 Microsoft의 구현에 관한 경험을 토대로 2005년 가을부터 작업을 시작했다. TG1은 2008년 가을 완성된 4th Edition 표준을 제정할 예정이다.</p><br />
<p>이 문서는 대다수의 Ecma TC39-TG1 멤버의 의견을 나타낸다. TG1의 일부는 이 문서에서 정의된 언어가 ES4가 되는 것에 동의하지 않는다. 하지만 ECMA와 ISO는 표준 제정에 만장일치를 요구하지 않으며, TG1에 다른 대안이 제시되지도 않았다. 따라서 이 문서에서 정의한 언어가 계속 ES4로 제안될 것이다.</p><br />
<p><strong>ES3</strong></p><br />
<p>ES3는 간단하고, 고도로 동적이며, 객체에 기반을 둔 언어로 Self와 Scheme으로 부터 주요한 특징들을 차용했다. 프로그래밍 스타일은 객체 기반과 함수형 프로그래밍을 섞어 놓았다. ES3의 주된 추상화 매커니즘은 lexically scoped higher-order functions과 delegation 매커니즘을 통해 접근가능한 메서드들을 가지는 prototype 객체를 가지는 mutable 객체이다. ES3는 C++와 Java와 유사한 문법을 가지고 있으며 loop와 exception 같은 제어 구조를 제공한다. 또한 array, string, number, date, regular expression과 같은 다양한 데이터 타입을 지원한다.</p><br />
<p>ES3는 독립적으로 여러번 구현되었으며 웹을 위한 언어 및 데스크탑과 어플리케이션을 위한 확장 언어로 널리 사용되고 있다.</p><br />
<p><strong>ES4</strong></p><br />
<p>ES3의 추상화 기능이 비록 유연하고 강력하지만, 가끔 큰 소프트웨어의 개발에는 적합하지 않은 경우가 있다. ECMAScript 프로그램들은 웹에서의 AJAX 프로그래밍과 어플리케이션에서 확장 또는 스크립트 언어로서의 사용이 증가함에 따라 점점더 크고 복잡해져 가고있다. 큰 프로그램의 개발은 static type checking, name hiding, early binding 그리고 객체 지향 프로그램의 직접 지원같은 기능으로부터 혜택을 받을 수 있는데 이러한 기능은 ES3에는 존재하지 않는다.</p><br />
<p><strong>Goals</strong></p><br />
<p>TG1의 목표는 ES4를 ES3와 호환가능하면서도 큰 소프트웨어 시스템 개발에 더욱 적합하게 만드는데 있다. 재사용 가능한 ES4 라이브러리의 제작을 촉진하고, 2003년 중간 보고 이후 독립적으로 구현된 기능들을 병합하고 다양한 단점을 보완하면서도 ECMAScript를 여전히 스크립트와 작은 프로그램을 짜기 쉬운 언어로 유지하는데 있다.</p>			 ]]> 
		</description>

		<comments>http://beyondweb.egloos.com/4340684#comments</comments>
		<pubDate>Tue, 06 May 2008 14:02:36 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ XMLHttpRequest 번역본 2 ]]> </title>
		<link>http://beyondweb.egloos.com/4306437</link>
		<guid>http://beyondweb.egloos.com/4306437</guid>
		<description>
			<![CDATA[ 
  <a title="http://www.eruhkim.net/" href="http://www.eruhkim.net/"><strong>eruhkim</strong></a>님 께서 호스팅 해주셔서 CSS 제대로 된 원본 링크 합니다. eruhkim님께 감사드립니다.<br />
<a title="http://www.likejazz.com/" href="http://www.likejazz.com/"><strong>likejazz</strong></a>님 께서도 Daum DNA를 통해서 호스팅 해주셨습니다. 감사합니다.<br />
<br />
<a href="http://www.eruhkim.net/TR/XMLHttpRequest/">http://www.eruhkim.net/TR/XMLHttpRequest/</a><br />
<a href="http://dna.daum.net/TR/XMLHttpRequest/">http://dna.daum.net/TR/XMLHttpRequest/</a>			 ]]> 
		</description>

		<comments>http://beyondweb.egloos.com/4306437#comments</comments>
		<pubDate>Mon, 21 Apr 2008 03:49:48 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ XMLHttpRequest 객체 (번역본) ]]> </title>
		<link>http://beyondweb.egloos.com/4304755</link>
		<guid>http://beyondweb.egloos.com/4304755</guid>
		<description>
			<![CDATA[ 
  <div class="head"><p><a href="http://www.w3.org/"><img alt="W3C" src="http://www.w3.org/Icons/w3c_home" width="72" height="48"></a></p><h1 id="the-xmlhttprequest" class="head"><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> 객체</h1><h2 id="w3c-doctype" class="no-num no-toc">W3C Working Draft 26 October 2007</h2><dl><dt>이 버전: <!--<dd><a href="http://dev.w3.org/2006/webapi/XMLHttpRequest/">http://dev.w3.org/2006/webapi/XMLHttpRequest/</a></dd>--><dd><a href="http://www.w3.org/TR/2007/WD-XMLHttpRequest-20071026/"><span style="COLOR: #660099">http://www.w3.org/TR/2007/WD-XMLHttpRequest-20071026/</span></a> <dt>최신 버전: <dd><a href="http://www.w3.org/TR/XMLHttpRequest/"><span style="COLOR: #660099">http://www.w3.org/TR/XMLHttpRequest/</span></a> <dt>이전 버전들: <dd><a href="http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070618/"><span style="COLOR: #0000cc">http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070618/</span></a> <dd><a href="http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070227/"><span style="COLOR: #0000cc">http://www.w3.org/TR/2007/WD-XMLHttpRequest-20070227/</span></a> <dd><a href="http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060927/"><span style="COLOR: #0000cc">http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060927/</span></a> <dd><a href="http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060619/"><span style="COLOR: #0000cc">http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060619/</span></a> <dd><a href="http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/"><span style="COLOR: #0000cc">http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/</span></a> <dt>작성자: <dd><a href="http://annevankesteren.nl/"><span style="COLOR: #0000cc">Anne van Kesteren</span></a> (<a href="http://www.opera.com/"><span style="COLOR: #0000cc">Opera Software ASA</span></a>) &lt;<a href="mailto:annevk@opera.com"><span style="COLOR: #0000cc">annevk@opera.com</span></a>&gt; <dt>번역자: <dd><a href="http://beyondweb.egloos.com/"><span style="COLOR: #660099">이해석</span></a> (<a href="http://www.infraware.co.kr/"><span style="COLOR: #0000cc">Infraware</span></a>) &lt;<a href="mailto:97079258@infraware.co.kr"><span style="COLOR: #0000cc">97079258@infraware.co.kr</span></a>&gt; </dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"><span style="COLOR: #0000cc">Copyright</span></a> © 2007 <a href="http://www.w3.org/"><acronym title="World Wide Web&#13;&#10;    Consortium"><span style="COLOR: #660099">W3C</span></acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute&#13;&#10;    of Technology"><span style="COLOR: #0000cc">MIT</span></acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium&#13;&#10;    for Informatics and Mathematics"><span style="COLOR: #0000cc">ERCIM</span></acronym></a>, <a href="http://www.keio.ac.jp/"><span style="COLOR: #0000cc">Keio</span></a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer"><span style="COLOR: #0000cc">liability</span></a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks"><span style="COLOR: #0000cc">trademark</span></a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents"><span style="COLOR: #0000cc">document use</span></a> rules apply.</p></div><hr><h2 id="specabstract" class="no-num no-toc">요약</h2><p>The <code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> Object 규격은 서버와 클라이언트간 데이터를 전달하기 위한 스크립트화된 클라이언트 기능을 제공하는 <abbr title="Application Programming Interface">API</abbr>를 정의한다. <h2 id="sotd" class="no-num no-toc">이 문서의 상태</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><span style="COLOR: #0000cc">W3C technical reports index</span></a> at http://www.w3.org/TR/.</em></p><!-- change back to Last Call --><p>This is the 26 October 2007 Working Draft of The <code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> Object specification. Please send comments to <a href="mailto:public-webapi@w3.org"><span style="COLOR: #0000cc">public-webapi@w3.org</span></a> (<a href="http://lists.w3.org/Archives/Public/public-webapi/"><span style="COLOR: #0000cc">archived</span></a>) with either <samp>[XHR]</samp> or <samp title="">[XMLHttpRequest]</samp> at the start of the subject line<!-- by 2 April 2007-->. <p>This document is produced by the <a href="http://www.w3.org/2006/webapi/"><span style="COLOR: #660099">Web API Working Group</span></a>, part of the <a href="http://www.w3.org/2006/rwc/Activity"><span style="COLOR: #0000cc">Rich Web Clients Activity</span></a> in the W3C <a href="http://www.w3.org/Interaction/"><span style="COLOR: #0000cc">Interaction Domain</span></a>. Changes made to this document can be found in the <a href="http://dev.w3.org/cvsweb/2006/webapi/XMLHttpRequest/Overview.html"><span style="COLOR: #0000cc">W3C public CVS server</span></a>. <p>Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress. <p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/"><span style="COLOR: #0000cc">5 February 2004 W3C Patent Policy</span></a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/38482/status" rel="disclosure"><span style="COLOR: #0000cc">public list of any patent disclosures</span></a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential"><span style="COLOR: #0000cc">Essential Claim(s)</span></a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure"><span style="COLOR: #0000cc">section 6 of the W3C Patent Policy</span></a>. <h2 id="toc" class="no-num no-toc">목차</h2><!--begin-toc--><ul class="toc"><li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#introduction"><span style="COLOR: #0000cc"><span class="secno">1. </span>소개</span></a> <ul class="toc"><li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#examples"><span style="COLOR: #0000cc"><span class="secno">1.1. </span>사용예</span></a> <li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#conformance"><span style="COLOR: #0000cc"><span class="secno">1.2. </span>준수</span></a> <ul class="toc"><li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#dependencies"><span style="COLOR: #0000cc"><span class="secno">1.2.1. </span>의존성</span></a> <li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#terminology"><span style="COLOR: #0000cc"><span class="secno">1.2.2. </span>용어</span></a> <li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#extensibility"><span style="COLOR: #0000cc"><span class="secno">1.2.3. </span>확장</span></a> </li></ul></li></ul><li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest"><span class="secno"><span style="COLOR: #0000cc">2. </span></span><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code><span style="COLOR: #0000cc">객체</span></a> <ul class="toc"><li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#events"><span class="secno"><span style="COLOR: #0000cc">2.1. </span></span><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code><span style="COLOR: #0000cc">의 이벤트</span></a> <li><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#exceptions"><span class="secno"><span style="COLOR: #0000cc">2.2. </span></span><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code><span style="COLOR: #0000cc">의 예외</span></a> </li></ul><li class="no-num"><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#notcovered"><span style="COLOR: #0000cc">본 규격에 정의되지 않은 것들</span></a> <li class="no-num"><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#bibref"><span style="COLOR: #0000cc">참조</span></a> <li class="no-num"><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#acknowledgments"><span style="COLOR: #0000cc">감사의 말</span></a> </li></ul><!--end-toc--><h2 id="introduction"><span class="secno">1. </span>소개</h2><p><em>이 절은 비규범적이다.</em> <p><code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> object는 HTTP 클라이언트 인터페이스를 구현한다. 이 인터페이스는 스크립트 엔진을 통해 노출되며 폼 데이터를 보내거나 서버로부터 데이터를 받아오는 기능을 수행한다. <p><code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code>라는 이름은 웹의 호환성을 위해 지어졌지만 이름의 각 부분은 잠재적으로 오해를 일으킬 수 있다. 첫째, XMLHttpRequest는 XML을 포함한 텍스트 기반의 어떠한 포맷도 지원한다. 둘째, XMLHttpRequest는 HTTP와 HTTPS 프로토콜 모두 사용할 수 있다. (몇몇 구현은 HTTP와 HTTPS 이외의 프로토콜을 지원하기도 하지만 그러한 기능은 본 규격에서는 다루지 않는다.). 마지막으로 XMLHttpRequest의 "request"는 HTTP에 정의된 용어에 비해 광의적으로 사용된다. 즉, HTTP method들을 위한 HTTP request와 response를 수행하기 위한 행위들을 포함한다. <h3 id="examples"><span class="secno">1.1. </span>사용예</h3><p><em>이 절은 비규범적이다.</em> <p>몇몇 [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-ecmascript"><span style="COLOR: #0000cc">ECMAScript</span></a></cite>] 예제들은 본 규격에 열거되었다. 추가로 아래 코드를 참고할 수 있다. <div class="example"><p>네트워크를 통해 전달된 XML 문서를 가지고 무엇인가를 하는 간단한 코드:</p><pre><code><span style="COLOR: #ff4500">function test(data) { // taking care of data}function handler() { if(this.readyState == 4 &amp;&amp; this.status == 200) { // so far so good if(this.responseXML != null &amp;&amp; this.responseXML.getElementById('test').firstChild.data) // success! test(this.responseXML.getElementById('test').firstChild.data); else test(null); } else if (this.readyState == 4 &amp;&amp; this.status != 200) { // fetched the wrong page or network error... test(null); }}var client = new XMLHttpRequest();client.onreadystatechange = handler;client.open("GET", "test.xml");client.send();</span></code></pre><p>만약 서버에게 로그 메시지를 전달하고 싶다면:</p><pre><code><span style="COLOR: #ff4500">function log(message) { var client = new XMLHttpRequest(); client.open("POST", "/log"); client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); client.send(message);}</span></code></pre><p>만약 서버에 있는 문서의 상태를 확인하고 싶다면:</p><pre><code><span style="COLOR: #ff4500">function fetchStatus(address) { var client = new XMLHttpRequest(); client.onreadystatechange = function() { // in case of network errors this might not give reliable results if(this.readyState == 4) returnStatus(this.status); } client.open("HEAD", address); client.send();}</span></code></pre></div><h3 id="conformance"><span class="secno">1.2. </span>준수(Conformance)</h3><p>다이어그램, 예제, 노트 그리고 비규범적이라고 명시된 절을 제외한 본 문서의 모든 부분은 규범적이다. <p>이 문서에서 사용된 must, must not, should 와 may 이라는 용어는 RFC 2119 [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2119"><span style="COLOR: #0000cc">RFC2119</span></a></cite>]에 따라 해석된다. <p>본 규격은 다음과 같은 종류의 산출물을 정의한다.: <dl><dt><dfn id="conforming-user-agent">준수하는 유저 에이전트</dfn> <dd><p>유저 에이전트는 본 규격에 준수하기 위해 반드시(must) 이 규격에 정의된 대로 동작해야 한다.</p><p>만약 유저에이전트가 XML 유저에이전트에 준수하지 않는다면 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xml-response-entity-body"><span style="COLOR: #0000cc">XML response entity body</span></a>는 반드시(must) 항상 <code><span style="COLOR: #ff4500">null</span></code>이어야 한다.</p><p>유저 에이전트는 본 규격에 정의된 알고리즘으로 얻을 수 있는 결과물과 구별 불가능한 결과물을 얻는 알고리즘을 구현할 수 있다. (may)</p><p class="note">본 규격에서 사용하는 "준수하는 유저 에이전트(들)"와 "유저 에이전트(들)"는 이 종류의 산출물은 가르킨다.</p><dt><dfn id="conforming-xml-user-agent">준수하는 XML 유저 에이전트</dfn> <dd><p><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#conforming-user-agent"><span style="COLOR: #0000cc">준수하는 유저 에이전트</span></a>이면서 동시에 namespace well-formed를 보고하는 준수하는 XML처리기인 유저 에이전트를 말한다.[<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-xml"><span style="COLOR: #0000cc">XML</span></a></cite>] [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-xmlns"><span style="COLOR: #0000cc">XMLNS</span></a></cite>] </p></dd></dl><h4 id="dependencies"><span class="secno">1.2.1. </span>의존성</h4><p>본 규격은 몇몇 기초 규격에 기반을 두고 있다. <dl><dt>DOM <dd><p><a title="conforming user&#13;&#10;     agent" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#conforming-user-agent"><span style="COLOR: #0000cc">준수하는 유저에이전트</span></a>는 반드시(must) DOM Core와 DOM Events에 정의된 기능의 부분 집합을 지원해야한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-dom3events"><span style="COLOR: #0000cc">DOM3Events</span></a></cite>] [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-dom3core"><span style="COLOR: #0000cc">DOM3Core</span></a></cite>]</p><p>이 규격이 의존하고 있는 반드시(must) Window Objects 1.0 규격에 정의된 기능의 부분 집합을 지원해야 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-window"><span style="COLOR: #0000cc">Window </span></a></cite>]</p><dt>HTTP <dd><p><a title="conforming user&#13;&#10;     agent" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#conforming-user-agent"><span style="COLOR: #0000cc">준수하는 유저에이전트</span></a>는 반드시(must) 특정버전의 HTTP를 지원해야 한다. 꼭(should) <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#method"><code><span style="COLOR: #ff4500">Method</span></code><span style="COLOR: #0000cc">형식</span></a>에 맞는 HTTP method를 제공해야 하며, 반드시(must) 최소한 아래의 method들을 지원해야 한다.:</p><ul><li><code><span style="COLOR: #ff4500">GET</span></code> <li><code><span style="COLOR: #ff4500">POST</span></code> <li><code><span style="COLOR: #ff4500">HEAD</span></code> <li><code><span style="COLOR: #ff4500">PUT</span></code> <li><code><span style="COLOR: #ff4500">DELETE</span></code> <li><code><span style="COLOR: #ff4500">OPTIONS</span></code> </li></ul><p>HTTP에 관한 다른 요구사항은 다음 문서에 정의되어 있다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>]</p></dd></dl><h4 id="terminology"><span class="secno">1.2.2. </span>용어</h4><p><var>s1</var> 과 <var>s2</var> 문자열의 <dfn id="case-insensitive-match"><strong>case-insensitive match</strong></dfn>는 두 문자열을 모두 대문자로 만들고 나서 (a-z를 A-Z로 매핑함으로써) 두 문자열이 동일함을 의미한다. <p>두 개의 URI는 RFC 3987에 정의된 sceheme-based normalization을 수행한 후에 scheme, ihost, port가 모두 동일 할 경우 <dfn id="same-origin"><strong>same-origin</strong></dfn> 이라고 정의된다. 만약 URI가 두 URI 모두 ihost를 가지고 있지 않을 경우 반드시(must not) same-origin으로 간주되지 말아야 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc3987"><span style="COLOR: #0000cc">RFC3987</span></a></cite>] <h4 id="extensibility"><span class="secno">1.2.3. </span>확장</h4><p>본 규격에 정의된 API의 확장은 <em>강력히 추천되지 않는다.</em> 유저 에이전트들, 워킹 그룹, 그 밖에 관심있는 단체들은 반드시 이러한 확장을 <a href="mailto:public-webapi@w3.org"><span style="COLOR: #0000cc">public-webapi@w3.org </span></a>와 같은 공개적인 방법으로 논의 해야한다. <h2 id="xmlhttprequest"><span class="secno">2. </span><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> 객체</h2><p><code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 객체는 스크립트에 의해 프로그램적으로 originating server에 접속할 수 있다. <p><code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 인터페이스를 구현하는 객체는 반드시(must) <code><span style="COLOR: #ff4500">EventTarget</span></code> 인터페이스를 구현해야 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-dom3events"><span style="COLOR: #0000cc">DOM3Events</span></a></cite>] <p><code title=""><span style="COLOR: #ff4500">Window</span></code> 인터페이스를 구현하는 객체는 반드시(must) <code title=""><span style="COLOR: #ff4500">XMLHttpRequest()</span></code> 생성자를 제공해야한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-window"><span style="COLOR: #0000cc">Window</span></a></cite>] <div class="example"><p>ECMAScript에서는 다음과 같이 쓰일 수 있다:</p><pre><code><span style="COLOR: #ff4500">var client = new XMLHttpRequest();</span></code></pre></div><p><code title=""><span style="COLOR: #ff4500">XMLHttpRequest()</span></code> 생성자가 호출될 경우 연관된 <code title=""><span style="COLOR: #ff4500">Window</span></code> 객체에 대한 영속적인 포인터가 반드시(must) 새로 생성된 객체에 저장되어야 한다. 이것은 <dfn id="window-pointer" title="Window pointer"><strong><code><span style="COLOR: #ff4500">Window</span></code> 포인터</strong></dfn>이다. 연관된 <code title=""><span style="COLOR: #ff4500">Window</span></code> 객체는 <code title=""><span style="COLOR: #ff4500">XMLHttpRequest()</span></code> 생성자가 호출된 것 중 하나이다. 이 <a title="Window pointer" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#window-pointer"><span style="COLOR: #0000cc">포인터</span></a>는 반드시(must) 해당 윈도우가 속해있는 브라우징 콘텍스트가 파괴된 경우에도 유지되어야 한다. (예를들면 부모 콘텍스트로 부터 제거하는 것과 같이). <p>브라우징 콘텍스트라는 용어는 <cite>Window Object 1.0</cite> 규격에 의해 정의된다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-window"><span style="COLOR: #0000cc">Window</span></a></cite>]</p><!-- XXX if the document object changes in the browsing context you get an  exception in some implementations. --><div class="example"><p>만약 <var><code><span style="COLOR: #ff4500">win</span></code></var>이 <code title=""><span style="COLOR: #ff4500">Window</span></code> 객체라면, <var><code><span style="COLOR: #ff4500">client</span></code></var> 는 아래 예제에서 <var><code><span style="COLOR: #ff4500">win</span></code></var> 에 대한 포인터를 가질 것이다: <pre><code><span style="COLOR: #ff4500">var client = new win.XMLHttpRequest()</span></code></pre></div><pre class="idl">interface <dfn id="xmlhttprequest-object"><strong>XMLHttpRequest</strong></dfn> {  // event handler           attribute EventListener <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#onreadystatechange"><span style="COLOR: #0000cc">onreadystatechange</span></a>;  // state  const unsigned short <a title="UNSENT state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#unsent-state"><span style="COLOR: #0000cc">UNSENT</span></a> = 0;  const unsigned short <a title="OPENED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED</span></a> = 1;  const unsigned short <a title="HEADERS_RECEIVED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#headers-received-state"><span style="COLOR: #0000cc">HEADERS_RECEIVED</span></a> = 2;  const unsigned short <a title="LOADING state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#loading-state"><span style="COLOR: #0000cc">LOADING</span></a> = 3;  const unsigned short <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a> = 4;  readonly attribute unsigned short <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystate"><span style="COLOR: #0000cc">readyState</span></a>;  // request  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#open"><span style="COLOR: #0000cc">open</span></a>(in DOMString <var>method</var>, in DOMString <var>url</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#open"><span style="COLOR: #0000cc">open</span></a>(in DOMString <var>method</var>, in DOMString <var>url</var>, in boolean <var>async</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#open"><span style="COLOR: #0000cc">open</span></a>(in DOMString <var>method</var>, in DOMString <var>url</var>, in boolean <var>async</var>, in DOMString <var>user</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#open"><span style="COLOR: #0000cc">open</span></a>(in DOMString <var>method</var>, in DOMString <var>url</var>, in boolean <var>async</var>, in DOMString <var>user</var>, in DOMString <var>password</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#setrequestheader"><span style="COLOR: #0000cc">setRequestHeader</span></a>(in DOMString <var>header</var>, in DOMString <var>value</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send</span></a>();  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send</span></a>(in DOMString <var>data</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send</span></a>(in Document <var>data</var>);  void <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#abort"><span style="COLOR: #0000cc">abort</span></a>();  // response  DOMString <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#getallresponseheaders"><span style="COLOR: #0000cc">getAllResponseHeaders</span></a>();  DOMString <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#getresponseheader"><span style="COLOR: #0000cc">getResponseHeader</span></a>(in DOMString <var>header</var>);  readonly attribute DOMString <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#responsetext"><span style="COLOR: #0000cc">responseText</span></a>;  readonly attribute Document <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#responsexml"><span style="COLOR: #0000cc">responseXML</span></a>;  readonly attribute unsigned short <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#status"><span style="COLOR: #0000cc">status</span></a>;  readonly attribute DOMString <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#statustext"><span style="COLOR: #0000cc">statusText</span></a>;};</pre><p><code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 객체는 다섯 가지 상태를 가질 수 있다: <a title="UNSENT&#13;&#10;   state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#unsent-state"><span style="COLOR: #0000cc">UNSENT</span></a>, <a title="OPENED&#13;&#10;   state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED</span></a>, <a title="HEADERS_RECEIVED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#headers-received-state"><span style="COLOR: #0000cc">HEADERS_RECEIVED</span></a>, <a title="LOADING state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#loading-state"><span style="COLOR: #0000cc">LOADING</span></a> 그리고 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>. 현재 상태는 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystate"><span style="COLOR: #0000cc">readyState</span></a></code> 속성에 의해 노출된다. 아래 정의된 방법이 언제 상태 전이가 일어나는지를 정의한다. <p>생성되었을 때, <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a><span style="COLOR: #ff4500"></span></code>객체는 반드시(must) UNSENT 상태여야 한다. 이 상태는 값이 <code><span style="COLOR: #ff4500">0</span></code>인 <dfn id="unsent-state" title="UNSENT state"><code><strong><span style="COLOR: #ff4500">UNSENT </span></strong></code></dfn>상수에 의해 표현된다. <p>OPENED 상태는 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#open"><span style="COLOR: #0000cc">open()</span></a></code> 메서드가 성공적으로 불렸을 때의 객체의 상태이다. 이 상태에서는 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#setrequestheader"><span style="COLOR: #0000cc">setRequestHeader()</span></a></code>를 이용해 request 헤더를 설정할 수 있으며, <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send()</span></a></code>를 통해 request를 할 수 있다. 이 상태는 값이 <code><span style="COLOR: #ff4500">1</span></code>인 <dfn id="opened-state" title="OPENED state"><code><strong><span style="COLOR: #ff4500">OPENED </span></strong></code></dfn>상수에 의해 표현된다. <p>OPENED 상태는 연관된 <dfn id="send-flag"><strong><code><span style="COLOR: #ff4500">send()</span></code> 플래그</strong></dfn>를 가지는데, "true" 또는 "false"의 값을 가진다. <code title=""><span style="COLOR: #ff4500">send()</span></code> 플래그의 초기값은 "false"이다. <p>HEADERS_RECEIVED 상태는 모든 response 헤더가 받아진 객체의 상태이다. 이 상태는 값이 <code><span style="COLOR: #ff4500">2</span></code>인 <dfn id="headers-received-state" title="HEADERS_RECEIVED state"><code><strong><span style="COLOR: #ff4500">HEADERS_RECEIVED</span></strong></code></dfn> 상수에 의해 표현된다. <p>LOADING 상태는 response entity body가 받아지고 있는 중의 객체의 상태이다. 이 상태는 값이 <code><span style="COLOR: #ff4500">3</span></code>인 <dfn id="loading-state" title="LOADING state"><code><strong><span style="COLOR: #ff4500">LOADING</span></strong></code></dfn> 상수에 의해 표현된다. <p>DONE 상태는 데이터의 전송이 끝나거나 전송 중 무한 리다이렉션 같은 오류가 발생한 객체의 상태이다. 이 상태는 값이 <code><span style="COLOR: #ff4500">4</span></code>인 <dfn id="done-state" title="DONE state"><code><strong><span style="COLOR: #ff4500">DONE</span></strong></code></dfn> 상수에 의해 표현된다. <p>DONE는 연관된 <dfn id="error-flag"><strong>error 플래그</strong></dfn>를 가지며 그 값은 "true" 또는 "false"이다. error 플래그의 초기값은 "false"이다. <p><dfn id="response-entity-body"><strong>response entity body</strong></dfn>는 현재까지 수신된 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#entity-body"><span style="COLOR: #0000cc">entity body</span></a>의 일부이거나 (LOADING 상태), 완전한 entity body 이다. (DONE 상태). 만약 entity body가 없다면 response entity body 는 "null"이다. <p><dfn id="text-response-entity-body"><strong>text response entity body</strong></dfn>는 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 나타내는 <code><span style="COLOR: #ff4500">DOMString</span></code>이거나 <code><span style="COLOR: #ff4500">null</span></code>이다. Text response entity body는 다음과 같은 알고리즘의 리턴값이다: <ol><li><p>만약 response entity body가 "null"이면, <code><span style="COLOR: #ff4500">null</span></code>을 리턴하고 종료한다. </p><li><p><var>charset</var>을 "null"로 하자. </p><li><p>만약 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더가 없거나 MIME type이 <code><span style="COLOR: #ff4500">text/xml </span></code>, <code><span style="COLOR: #ff4500">application/xml</span></code>이거나 <code title=""><span style="COLOR: #ff4500">+xml</span></code>로 끝나는 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더를 가졌다면 (파라메터는 무시한다), character encoding을 판별하기 위해 XML 규격에 설명되어 있는 방법을 사용한다. <var>charset</var>을 판별된 character encoding 값으로 한다. </p><li><p>만약 MIME type이 <code><span style="COLOR: #ff4500">text/html</span></code>인 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더를 가졌다면, character encoding을 판별하기 위해 HTML&nbsp;5 규격에 설명되어 있는 방법을 사용한다. <var>charset</var>을 판별된 character encoding 값으로 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-html5"><span style="COLOR: #0000cc">HTML5</span></a></cite>] </p><li><p>만약 <code><span style="COLOR: #ff4500">Content-Type</span></code>헤더에 지정된 MIME type이 파라메터를 가지고 있고, <var>charset</var>이 "null" 이라면 <var>charset</var>이 그 파라메터의 값으로 한다. <p class="note">XML과 HTML 규격에 정의된 알고리즘은 이미 <code><span style="COLOR: #ff4500">Content-Type </span></code>값을 참고한다.</p><li><!-- This stuff is copied from HTML5. Thanks Hixie! --><p>만약 <var>charset</var>이 "null"이면, 아래 테이블의 각 행을 첫 줄부터 시작해서 대조하여 처음으로 첫번째 열과 일치하는 행의 두번째 컬럼 값을 <var>charset</var>의 값으로 한다. 만약 일치 하는 행이 없다면 <var>charset</var> 는 "null"로 남는다.</p><table><thead><tr><th>16진수 바이트열 <th>설명 </tr></tr></tr></tr></tr></tr></tr></tr></tr><tbody><tr><td>00 00 FE FF <td>UTF-32BE BOM <tr><td>FF FE 00 00 <td>UTF-32LE BOM <tr><td>FE FF <td>UTF-16BE BOM <tr><td>FF FE <td>UTF-16LE BOM <tr><td>EF BB BF <td>UTF-8 BOM<!-- nobody uses this      <tr>       <td>DD 73 66 73       <td>UTF-EBCDIC--> </td></tr></tbody></table><li><p>만약 <var>charset</var> 이 "null"이면 <var>charset</var>를 UTF-8로 한다. </p><li><p>Response entity body를 <var>charset</var>를 이용해 디코딩 한 값을 리턴한다. 만약 실패한다면 <code><span style="COLOR: #ff4500">null</span></code>을 리턴한다. </p></li></ol><p><dfn id="xml-response-entity-body"><strong>XML response entity body</strong></dfn>는 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 나타내는 <code><span style="COLOR: #ff4500">Document</span></code>이거나 <code><span style="COLOR: #ff4500">null</span></code>이다. XML response entity body 는 다음과 같은 알고리즘의 리턴값이다: <ol><li><p>만약 response entity body가 "null"이면, <code><span style="COLOR: #ff4500">null</span></code>을 리턴하고 종료한다. </p><li><p>만약 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더가 존재하고 MIME type이 <code><span style="COLOR: #ff4500">text/xml </span></code>, <code><span style="COLOR: #ff4500">application/xml</span></code>이거나 <code title=""><span style="COLOR: #ff4500">+xml</span></code>로 끝나는 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더를 가지지 않았다면 (파라메터는 무시한다), <code><span style="COLOR: #ff4500">null</span></code>을 리턴하고 종료한다. (만약 <code><span style="COLOR: #ff4500">Content-Type </span></code>가 전혀 없다면 종료하지 않는다.) </p><li><p>Response entity body를 XML 규격에 정의된 방법을 따라서 document tree로 파싱한다. <var>parsed document</var>의 값을 그 결과값으로 한다. 만약 지원되지 않는 character encoding이거나 namespace well-formedness 에러 등에 의해 실패한다면 <code><span style="COLOR: #ff4500">null</span></code>을 리턴하고 종료한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-xml"><span style="COLOR: #0000cc">XML</span></a></cite>] [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-xmlns"><span style="COLOR: #0000cc">XMLNS</span></a> </cite>]</p><p class="note">Document tree에 있는 스크립트는 실행되지 않으며, 여기서 참조된 리소스들도 로딩되지 않는다. 또한 연관된 XSLT도 적용되지 않는다.</p><li><p><var>parsed document</var>값을 가지는 <code><span style="COLOR: #ff4500">Document</span></code> 인터페이스를 구현한 객체를 리턴한다. </p></li></ol><dl><dt><dfn id="onreadystatechange"><code><span style="COLOR: #ff4500">onreadystatechange</span></code></dfn> of type <code><span style="COLOR: #ff4500">EventListener</span></code> <!-- XXX define it in terms of HTML5 event handler attributes? --><dd><p>bubbling phase 동안<code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange </span></a></code>이벤트가 전달될 경우 이 객체에 등록된 다른 적절한 이벤트 핸들러와 함께 반드시(must) 호출되어야 하는 <code><span style="COLOR: #ff4500">EventListener</span></code>를 값을 취하는 속성이다. 초기값은 반드시 (must) <code><span style="COLOR: #ff4500">null</span></code>이다. </p><dt><dfn id="readystate"><code><span style="COLOR: #ff4500">readyState</span></code></dfn> of type <code><span style="COLOR: #ff4500">unsigned short</span></code>, readonly <dd><p>이 속성을 읽을 경우 반드시(must) 해당 객체의 현재 상태 값을 리턴해야 한다. </p><dt><dfn id="open" title="open"><code><span style="COLOR: #ff4500">open(<var>method</var>, <var>url</var>, <var>async</var>, <var>user</var>, <var>password</var>)</span></code></dfn>, method <dd><p>호출될 경우 유저 에이전트는 반드시(must) 다음 단계를 따라야 한다. (다른 방식으로 지시되지 않는 한):</p><ol><li><p>만약 <var>method</var>인자가 RFC 2616의 5.1.1절에 정의된 <dfn id="method"><strong><code><span style="COLOR: #ff4500">Method</span></code> 형식</strong></dfn>에 맞지 않은 경우 <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생하고 종료한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>] </p><li><p>만약 주어진 <var>method</var> 인자가 보안상의 이유로 지원되지 않을경우 유저 에이전트는 꼭(should) <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#security-err"><span style="COLOR: #0000cc">SECURITY_ERR</span></a></code> 예외를 발생하고 종료해야 한다. </p><li><p><var>저장된 method</var>값을 <var>method</var>로 한다. </p><li><p>만약 <var>method</var>가 <code><span style="COLOR: #ff4500">GET</span></code>, <code><span style="COLOR: #ff4500">POST</span></code>, <code><span style="COLOR: #ff4500">HEAD</span></code>, <code><span style="COLOR: #ff4500">PUT</span></code>, <code><span style="COLOR: #ff4500">DELETE</span></code> 또는 <code><span style="COLOR: #ff4500">OPTIONS </span></code>와 <a title="case-insensitive match" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#case-insensitive-match"><span style="COLOR: #0000cc">case-insensitively match</span></a>하다면 <var>stored method</var>에 이를 a-z를 A-Z로 매핑함으로써 대문자로 변환한 값을 저장한다. <!-- WebKit (and supposedly Firefox) also uppercase: CONNECT, COPY,     INDEX, LOCK, M-POST, MKCOL, MOVE, PROPFIND, PROPPATCH, TRACE and UNLOCK.     Not sure if TRACE and CONNECT are worth it though. They raise a     SECURITY_ERR exception anyway... --></p><li><p><var>url</var>에 Fragment identifier가 있다면 이를 제외한 부분을 <var>저장된 url</var>값에 저장한다. </p><li><p>만약 <var>저장된 url</var>이 상대적 경로라면, <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#window-pointer"><code><span style="COLOR: #ff4500">Window</span></code><span style="COLOR: #0000cc">포인터</span></a>에 연관된 <code><span style="COLOR: #ff4500">Document</span></code> 객체의 현재 <code><span style="COLOR: #ff4500">baseURI</span></code> 속성을 이용해 해결한다. 만약 이것이 실패한다면 <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <var>저장된 url</var>이 지원되지 않는 scheme을 가졌을 경우, <code><span style="COLOR: #ff4500">NOT_SUPPORTED_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <code><span style="COLOR: #ff4500">"user:password"</span></code> 형식의 <code><span style="COLOR: #ff4500">userinfo</span></code> 값이 해당 scheme에서 지원되지 않고, <var>저장된 url</var>값에 이 형식이 존재한다면, <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생시키고 종료한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc3986"><span style="COLOR: #0000cc">RFC3986</span></a></cite>] </p><li><p>만약 <var>저장된 url</var> 값이 <code><span style="COLOR: #ff4500">"user:password"</span></code> 형식을 가진다면 <var>저장된 user</var> 가 user 부분, <var>저장된 password</var> 가 password 부분이 되도록한다. </p><li><p>만약 <var>저장된 url</var> 이 <code><span style="COLOR: #ff4500">"user"</span></code> 형식만 가진다면, <var>저장된 user</var>값이 user 부분이 되도록 한다. </p><li><p>만약 <var>저장된 url</var>이 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#window-pointer"><code><span style="COLOR: #ff4500">Window </span></code><span style="COLOR: #0000cc">포인터</span></a>에 연관된 <code><span style="COLOR: #ff4500">Document</span></code> 객체와 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#same-origin"><span style="COLOR: #0000cc">same-origin</span></a>이 아니라면, 유저 에이전트는 꼭(should) <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#security-err"><span style="COLOR: #0000cc">SECURITY_ERR</span></a><span style="COLOR: #ff4500"></span></code>예외를 발생시키고 종료해야 한다. 용어 origin은 HTML&nbsp;5 규격에 의해 정의된다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-html5"><span style="COLOR: #0000cc">HTML5</span></a></cite>] </p><li><p><var>async</var> 값을 <var>async</var> 인자의 값이 주어졌을 경우에는 그 값으로, 생략되었을 경우에는 true로 한다. </p><li><p>만약 <var>user</var> 인자가 주어졌고, 그 형식이 해당 인증 scheme에 적합하지 않은 경우, <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <var>user</var> 인자가 주어졌고 <code><span style="COLOR: #ff4500">null</span></code>이 아니라면 <var>저장된 user</var> 값을 해당 인증 scheme에 지정된 방법으로 인코딩한 값으로 한다. 만약 scheme에서 encoding이 지정되지 않은 경우에는 UTF-8로 인코딩 한 값으로 한다. <p class="note">이 단계는 <var>url</var> 인자에 의해 지정된 user 값보다 우선 순위를 가진다.</p><li><p>만약 <var>user</var> 인자가 생략되지 않았고 <code><span style="COLOR: #ff4500">null</span></code>이라면 <var>저장된 user</var> 값을 지운다. </p><li><p>만약 <var>password</var> 인자가 주어졌고, 그 형식이 해당 인증 scheme에 적합하지 않은 경우, <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <var>password</var> 인자가 주어졌고 <code><span style="COLOR: #ff4500">null</span></code>이 아니라면 <var>저장된 user</var> 값을 해당 인증 scheme에 지정된 방법으로 인코딩한 값으로 한다. 만약 scheme에서 encoding이 지정되지 않은 경우에는 UTF-8로 인코딩 한 값으로 한다. </p><li><p>만약 <var>password</var> 인자가 생략되지 않았고 <code><span style="COLOR: #ff4500">null</span></code>이라면 <var>저장된 password</var> 값을 지운다. </p><li><p><a title="abort send()" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#abort-send-algorithm"><code><span style="COLOR: #ff4500">send() </span></code><span style="COLOR: #0000cc">알고리즘을 취소하고</span></a>, <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 "null"로 하고, request header의 목록들을 리셋한다. <p></p><li><p>유저 에이전트는 꼭(should) 해당 객체가 수행하는 모든 네트워크 활동을 취소해야 한다. <!-- we can hardly require it... --></p><li><p>객체의 상태를 <a title="OPENED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED</span></a> 상태로 세팅하고, <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send-flag"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">플래그</span></a> 값을 "false"로 새팅한다. 그리고 동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 해당 객체에 보내고, 메서드 호출을 리턴한다. </p></li></ol><p class="note">본 규격의 향후 버전 또는 확장은 cross-site request에 대한 방법을 정의할 가능성이 높다.</p><dt><dfn id="setrequestheader" title="setrequestheader"><code><span style="COLOR: #ff4500">setRequestHeader(<var>header</var>, <var>value</var>)</span></code></dfn>, method <dd><p>각각의 request는 연관된 값을 지닌 request header 목록을 가진다. 이 메서드는 그 값을 조작하거나 새로운 request header를 지정하는데 사용할 수 있다.</p><p>호출 될 경우, 유저 에이전트는 반드시(must) 다음 단계를 따라야한다. (다른 방법으로 지시되지 않았을 경우):</p><ol><li><p>만약 객체의 상태가 <a title="OPENED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED </span></a>가 아닐 경우 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생하고 종료한다. </p><li><p>만약 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send-flag"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">플래그</span></a>가 "true"라면, <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생하고 종료한다. </p><li><p>만약 <var>header</var> 인자가 RFC 2616의 4.2절에 정의된 <dfn id="field-name"><strong><code><span style="COLOR: #ff4500">field-name</span></code> 형식</strong></dfn>과 맞지 않거나 <code><span style="COLOR: #ff4500">null </span></code>일 경우 <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생하고 종료한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>] </p><li><p>만약 <var>value</var> 인자가 <code><span style="COLOR: #ff4500">null</span></code> 이라면 종료한다. (예외를 발생시키지 않는다.) <!-- undefined is to be treated as null here... --></p><li><p>만약 <var>value</var> 인자가 RFC 2616의 4.2절에 정의된 <dfn id="field-value"><strong><code><span style="COLOR: #ff4500">field-value</span></code> 형식</strong></dfn>에 맞지 않는다면 <code><span style="COLOR: #ff4500">SYNTAX_ERR</span></code> 예외를 발생시키고 종료한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>] </p><li><p>만약 <var>header</var> 인자가 아래의 값 중 하나와 <a title="case-insensitive match" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#case-insensitive-match"><span style="COLOR: #0000cc">case-insensitively match</span></a>한다면 꼭(should) 보안상의 이유로 종료되어야 한다:</p><ul><li><code><span style="COLOR: #ff4500">Accept-Charset</span></code> <li><code><span style="COLOR: #ff4500">Accept-Encoding</span></code> <li><code><span style="COLOR: #ff4500">Connection</span></code> <li><code><span style="COLOR: #ff4500">Content-Length</span></code> <li><code><span style="COLOR: #ff4500">Content-Transfer-Encoding</span></code> <li><code><span style="COLOR: #ff4500">Date</span></code> <li><code><span style="COLOR: #ff4500">Expect</span></code> <li><code><span style="COLOR: #ff4500">Host</span></code> <li><code><span style="COLOR: #ff4500">Keep-Alive</span></code> <li><code><span style="COLOR: #ff4500">Referer</span></code> <li><code><span style="COLOR: #ff4500">TE</span></code> <li><code><span style="COLOR: #ff4500">Trailer</span></code> <li><code><span style="COLOR: #ff4500">Transfer-Encoding</span></code> <li><code><span style="COLOR: #ff4500">Upgrade</span></code> <li><code><span style="COLOR: #ff4500">Via</span></code> </li></ul><li><p>역시 보안상의 이유로 만약 <var>header</var> 인자의 첫 여섯글자가 <code><span style="COLOR: #ff4500">Proxy-</span></code>와 <a title="case-insensitive match" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#case-insensitive-match"><span style="COLOR: #0000cc">case-insensitively match</span></a> 한다면 종료해야 한다. </p><li><p>만약 <var>header</var> 인자가 request header 목록에 없다면 연관된 <var>value</var>를 목록에 추가하고 종료한다. </p><li><p>만약 <var>header</var> 인자가 request header 목록에 있다면, 복수의 header를 사용하거나 값을 합치거나 그 두 개의 조합을 사용한다. (RFC 2616 4.2절) [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>] <!-- XXX it seems UAs always combine the values --></p></li></ol><p class="note">유저 에이전트가 캐싱, 인증, 프록시, 쿠키와 관련해서 header를 어떻게 다루는지 보려면 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send()</span></a></code> 메서드를 참조하다.</p><div class="example"><pre><code><span style="COLOR: #ff4500">// 다음의 스크립트는:var client = new XMLHttpRequest();client.open('GET', 'demo.cgi');client.setRequestHeader('X-Test', 'one');client.setRequestHeader('X-Test', 'two');client.send();// ...아래와 같은 request header를 보내게 된다:...X-Test: one, two...</span></code></pre></div><dt><dfn id="send" title="send"><code><span style="COLOR: #ff4500">send(<var>data</var>)</span></code></dfn>, method <dd><p><code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send()</span></a></code> 메서드는 요청을 시작하며, 이의 선택적 인자는 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#entity-body"><span style="COLOR: #0000cc">entity body</span></a>를 제공한다. 저작자들은 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send()</span></a></code>를 <code><span style="COLOR: #ff4500">null</span></code>이 아닌 <var>data</var> 인자와 함께 호출하기 전에 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#setrequestheader"><span style="COLOR: #0000cc">setRequestHeader()</span></a></code>로 <code><span style="COLOR: #ff4500">Content-Type</span></code> header를 지정 했는지 확인 하도록 강력히 권장된다. <p>호출될 경우 유저 에이전트는 반드시(must) 다음의 단계를 따라야 한다. (다른 방식으로 지정되지 않았을 경우). 이 알고라즘은 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#open"><span style="COLOR: #0000cc">open()</span></a></code> 또는 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#abort"><span style="COLOR: #0000cc">abort()</span></a><span style="COLOR: #ff4500"></span></code>메서드가 호출됨으로써 취소될 수 있다. <dfn id="abort-send-algorithm" title="abort send()"><strong><code><span style="COLOR: #ff4500">send()</span></code> 알고리즘이 중단될 경우</strong></dfn>에 유저 에이전트는 반드시(must) 현재 진행 중인 단계를 끝내고 종료해야 한다. <p class="note">아래 알고리즘은 <var>async</var>가 <code><span style="COLOR: #ff4500">false</span></code>일 경우, 스크립트를 통해 중단될 수 없다. 오직 <var>async</var>가 <code><span style="COLOR: #ff4500">true</span></code> 이고 해당 메서드가 리턴한 이후에만 중단될 수 있다.</p><ol><li><p>만약 객체의 상태가 <a title="OPENED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED </span></a>가 아니라면 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생 시키고 종료한다. </p><li><p>만약 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send-flag"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">플래그</span></a>가 "true"라면 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <var>async</var>가 <code><span style="COLOR: #ff4500">true</span></code>라면 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send-flag"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">플래그</span></a>를 "true"로 한다. </p><li><p>만약 <var>data</var> 인자가 생략되지 않았고, <code><span style="COLOR: #ff4500">null</span></code>이 아니라면 이 값을 RFC 2616의 7.2절에 정의된 대로 <dfn id="entity-body"><strong>entity body</strong></dfn> 값으로 사용하되 다음의 규칙을 따른다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>]</p><dl class="switch"><dt><var>data</var>가 <code><span style="COLOR: #ff4500">DOMString</span></code>이다. <dd><p>전송을 위해 <var>data</var>를 UTF-8로 인코딩한다. </p><dt><var>data</var>가 <code><span style="COLOR: #ff4500">Document</span></code>이다. <dd><p><var>data</var>를 namespace well-formed한 XML document로 직렬화(serialize)하고 <code><span style="COLOR: #ff4500"><var>data</var>.xmlEncoding</span></code>에서 주어진 값으로 인코딩한다. 만약 주어지지 않았을 경우 UTF-8로 인코딩한다. 만약 <code><span style="COLOR: #ff4500">Document</span></code>가 직렬화(serialize) 되지 못해서 실패한다면, <var>data</var>가 <code><span style="COLOR: #ff4500">null</span></code>인 것 처럼 동작한다.</p><p>만약 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더가 request header 목록에 존재하지 않는다면, request header 목록에 <code><span style="COLOR: #ff4500">application/xml</span></code>를 값으로 <code><span style="COLOR: #ff4500">Content-Type</span></code> 헤더를 추가한다. <p class="note"><code><span style="COLOR: #ff4500">Document</span></code>에 대한 이후의 변경은 전송되는 값에 영향을 미치지 않는다.</p><dt><var>data</var>가 <code><span style="COLOR: #ff4500">DOMString</span></code>도 아니고, <code><span style="COLOR: #ff4500">Document</span></code>도 아니다. <dd><p><var>data</var>의 호스트 언어에서 지정된 문자열화(stringification) 방법을 사용하고, <var>data</var>가 <code><span style="COLOR: #ff4500">DOMString</span></code>인 것처럼 동작한다. 만약 실패할 경우 <var>data</var>가 <code><span style="COLOR: #ff4500">null</span></code>인 것처럼 동작한다. </p></dd></dl><p>만약 <var>data</var> 인자가 생략되었거나, <code><span style="COLOR: #ff4500">null</span></code>이라면 이 요청에서 entity body가 사용되지 않는다.</p><li><p>이 단계 직후에 <var>stored url</var>에 <var>stored method</var>의 HTTP method, <var>stored user</var>의 user (만약 있다면), <var>stored password</var>의 password (만약 있다면), entity body와 request header 목록을 이용해 요청을 한다. </p><li><p>동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다.</p><p class="note">객체의 상태는 변경되지 않는다. 이 이벤트는 역사적인 이유로 보내지는 것이다.</p><li><p>만약 <var>async</var> 가 <code><span style="COLOR: #ff4500">true</span></code> 라면 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send"><span style="COLOR: #0000cc">send()</span></a></code> 메서드 호출을 리턴한다. (하지만 이 알고리즘을 종료하지는 않는다.) </p><li><p>리소스가 다운로드 되는 동안 아래의 규칙이 적용된다.</p><dl class="switch"><dt>만약 response가 HTTP redirect라면 <dd><p>만약 redirect가 보안상의 문제 점이 없고, (예를 들면 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#same-origin"><span style="COLOR: #0000cc">same-origin</span></a>이라면) 무한 루프에 빠질 위험이 없다면 그 scheme은 투명하게(transparently) 지원되며, redirect를 따라간 후 이 단계 맨 처음으로 돌아한다.</p><p class="note">HTTP는 유저에이턴트가 redirect 하는 동안 request method와 entity body를 유지하도록 요구한다. 또한 이러한 자동 redirection이 사용자에게 알려지도록 요구한다.</p><!-- Arguably HTTP should be fixed for the latter case. No browser        follows that as far as I know. --><p>그렇지 않다면 다음의 단계를 따른다:</p><ol><li><p><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 "null"로 세팅하고 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#error-flag"><span style="COLOR: #0000cc">error flag</span></a>를 "true"로 하고 request header 목록을 리셋한다. </p><li><p>동기적으로 객체의 상태를 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>으로 전환한다. </p><li><p>만약 <var>async</var> 가 <code><span style="COLOR: #ff4500">false</span></code> 라면 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#network-err"><span style="COLOR: #0000cc">NETWORK_ERR</span></a></code> 예외를 발생시키고 전체 알고리즘을 종료한다. </p><li><p>동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다. </p><li><p>전체 알고리즘을 종료한다. </p></li></ol><p class="note">향후 버전의 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 객체는 여기에서도 <code><span style="COLOR: #ff4500">error</span></code> 이벤트를 보내게 될 가능성이 높다.</p><dt>만약 사용자가 다운로드를 취소한다면 <dd><p>다음 단계를 수행한다:</p><ol><li><p><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 "null"로 세팅하고 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#error-flag"><span style="COLOR: #0000cc">error flag</span></a>를 "true"로 하고 request header 목록을 리셋한다. </p><li><p>동기적으로 객체의 상태를 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>으로 전환한다. </p><li><p>만약 <var>async</var> 가 <code><span style="COLOR: #ff4500">false</span></code> 라면 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#abort-err"><span style="COLOR: #0000cc">ABORT_ERR</span></a></code> 예외를 발생시키고 전체 알고리즘을 종료한다. </p><li><p>동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다. </p><li><p>전체 알고리즘을 종료한다. </p></li></ol><p class="note">향후 버전의 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 객체는 여기에서도 <code title=""><span style="COLOR: #ff4500">abort</span></code> 이벤트를 보내게 될 가능성이 높다.</p><dt>네트워크 에러가 발생한 경우라면 <dd><p>DNS 에러 또는 다른 종류의 네트워크 에러의 경우 다음의 단계를 수행한다. <span class="note"><strong><em><span style="COLOR: #008000">여기에는 HTTP status code 410과 같은 어떤 종류의 에러를 나타내는 HTTP response를 포함하지 않는다.</span></em></strong></span></p><ol><li><p><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 "null"로 세팅하고 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#error-flag"><span style="COLOR: #0000cc">error flag</span></a>를 "true"로 하고 request header 목록을 리셋한다. </p><li><p>동기적으로 객체의 상태를 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>으로 전환한다. </p><li><p>만약 <var>async</var> 가 <code><span style="COLOR: #ff4500">false</span></code> 라면 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#network-err"><span style="COLOR: #0000cc">NETWORK_ERR</span></a></code> 예외를 발생시키고 전체 알고리즘을 종료한다. </p><li><p>동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다. </p><li><p>전체 알고리즘을 종료한다. </p></li></ol><p class="note">향후 버전의 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 객체는 여기에서도 <code><span style="COLOR: #ff4500">error</span></code> 이벤트를 보내게 될 가능성이 높다.</p><dt>만약 모든 HTTP 헤더들을 수신했다면 <dd><p>message body(있다면)를 수신하기 전에 만약 모든 HTTP header들을 수신했다면 다음 단계를 따른다:</p><ol><li><p>동기적으로 객체의 상태를 <a title="HEADERS_RECEIVED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#headers-received-state"><span style="COLOR: #0000cc">HEADERS_RECEIVED</span></a>으로 전환한다. </p><li><p>동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다.</p></li></ol><dt>만약 response entity body의 첫 바이트 (또는 더 많은 바이트)를 수신했다면 <dt>만약 response entity body가 없다면 <dd><p>만약 response entity body의 첫 바이트 (또는 더 많은 바이트)를 수신했거나 response entity body가 없다면 다음의 단계를 따른다:</p><ol><li><p>동기적으로 객체의 상태를 <a title="LOADING state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#loading-state"><span style="COLOR: #0000cc">LOADING</span></a>으로 전환한다. </p><li><p>동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다. </p></li></ol></dd></dl><p>마지막으로, 리소스의 다운로드가 완료되면 다음 단계로 이동한다.</p><li><p>해당 요청이 로딩을 성공적으로 끝내면, 동기적으로 상태를 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>로 전환하고, 동기적으로 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 객체에 보낸다. 만약 <var>async</var>가 <code><span style="COLOR: #ff4500">false</span></code>라면 이 메서드를 리턴한다. </p></li></ol><p>만약 유저 에이전트가 사용자가 프록시를 설정할 수 있도록 허용한다면 꼭(should) 적절히 요청을 수정해야 한다; <abbr title="in&#13;&#10;     other words">즉</abbr>, origin server 대신 proxy host에 접속하고, <code><span style="COLOR: #ff4500">Request-Line</span></code>을 수정하며 <code><span style="COLOR: #ff4500">Proxy-Authorization</span></code> 헤더를 지정된 대로 보내야 한다.</p><p>만약 유저 에이전트가 HTTP 인증을 지원한다면 꼭(should) 이 객체로부터 발생한 request에 대해 보호된 영역으로 간주해야 한다. 즉, accessed URI를 포함하고 <code><span style="COLOR: #ff4500">Authorization</span></code> 헤더를 보내며 <code><span style="COLOR: #ff4500">401 Unauthorized</span></code> 요청을 적절히 처리해야한다. 만약 인증이 실패할 경우, 유저 에이전트는 꼭(should) 사용자에게 자격(credentials)에 대해 물어야 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2617"><span style="COLOR: #0000cc">RFC2617</span></a></cite>]</p><p>만약 유저 에이전트가 HTTP State Management를 지원한다면 꼭(should) 적절히 쿠키를 저장하고, 제거하고, 보내야 한다. (<code><span style="COLOR: #ff4500">Set-Cookie</span></code>와 <code><span style="COLOR: #ff4500">Set-Cookie2</span></code> response 헤더에 의해 받아지고, <code><span style="COLOR: #ff4500">Cookie</span></code>헤더에 의해 보내진다.) [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2965"><span style="COLOR: #0000cc">RFC2965</span></a></cite>]</p><p>만약 유저 에이전트가 HTTP cache를 구현한다면 꼭(should) <code><span style="COLOR: #ff4500">Cache-Control</span></code> request 헤러들 준수해야 한다. (<abbr title="for example">예</abbr>, <code><span style="COLOR: #ff4500">Cache-Control: no-cache</span></code>는 cache를 사용하지 않는다.) 유저 에이전트는 사용자에 의해 명시적으로 요청된 경우가 아니라면 <code><span style="COLOR: #ff4500">Cache-Control</span></code>이나 <code><span style="COLOR: #ff4500">Pragma</span></code>헤더를 자동으로 보내서는 안된다(must not). (<abbr>예</abbr>, (강제로-)페이지를 Reloading할 경우). 유저 에이전트의 조건 요청에 따른 <code><span style="COLOR: #ff4500">304 Not Modified</span></code> response는 반드시(must) 적절한 콘텐트로 <code><span style="COLOR: #ff4500">200 OK</span></code> response처럼 보여져야 한다. 유저 에이전트는 <code><span style="COLOR: #ff4500">304 Not Modified</span></code>가 반드시(must) 전달되어야 할때 반드시(must) <code><span style="COLOR: #ff4500">If-None-Match</span></code>, <code><span style="COLOR: #ff4500">If-Modified-Since</span></code>와 같은 request header를 설정함으로써 자동 캐시 검증 방법보다 높은 우선 순위의 검증 방법을 제공할 수 있어야한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>]</p><p>만약 유저 에이전트가 서버 기반 content-nogotiation을 구현한다면 꼭(should) <code><span style="COLOR: #ff4500">Accept-Language</span></code>, <code><span style="COLOR: #ff4500">Accept-Encoding</span></code>와 <code><span style="COLOR: #ff4500">Accept-Charset</span></code> 헤더를 적절히 세팅해야한다; 자동으로 <code><span style="COLOR: #ff4500">Accept</span></code> 헤더를 세팅해서는 안된다(must not). 이러한 request에 대한 response에는 자동으로 디코딩된 content-encoding 들이 반드시must있어야 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-rfc2616"><span style="COLOR: #0000cc">RFC2616</span></a></cite>]</p><dt><dfn id="abort"><code><span style="COLOR: #ff4500">abort()</span></code></dfn>, method <dd><p>호출될 경우 유저 에이전트는 반드시(must) 다음의 단계를 수행해야한다. (다른 방법으로 지시되지 않을 경우):</p><ol><li><p><a title="abort send()" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#abort-send-algorithm"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">알고리즘을 취소</span></a>하고, <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#response-entity-body"><span style="COLOR: #0000cc">response entity body</span></a>를 "null"로 세팅하고, <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#error-flag"><span style="COLOR: #0000cc">error flag</span></a>를 "true"로 한 뒤 등록된 모든 request header들을 제거한다. </p><li><p>유저 에이전트는 꼭(should) 해당 객체가 수행하는 모든 네트워크 활동을 취소해야 한다. </p><li><p>만약 상태가 <a title="UNSENT&#13;&#10;       state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#unsent-state"><span style="COLOR: #0000cc">UNSENT</span></a> 또는 <a title="OPENED&#13;&#10;       state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED</span></a> 이고 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send-flag"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">플래그</span></a> 가 "false"이거나, 상태가 <a title="DONE&#13;&#10;       state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a> 히면 다음 단계로 간다.</p><p>그렇지 않을 경우 상태를 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>으로 바꾸고, <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#send-flag"><code><span style="COLOR: #ff4500">send()</span></code><span style="COLOR: #0000cc">플래그를</span></a> "false"로 한 뒤, 동기적으로 객체에게 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 보낸다.</p><li><p>객체 상태를 <a title="UNSENT state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#unsent-state"><span style="COLOR: #0000cc">UNSENT</span></a>로 바꾼다. (<code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#readystatechange"><span style="COLOR: #0000cc">readystatechange</span></a></code> 이벤트를 발생시키지는 않는다.)</p><p class="note">향후 버전의 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 객체는 여기에서도 <code title=""><span style="COLOR: #ff4500">abort</span></code> 이벤트를 발생시킬 가능성이 높다.</p></li></ol><dt><dfn id="getallresponseheaders"><code><span style="COLOR: #ff4500">getAllResponseHeaders()</span></code></dfn>, method <dd><p>호출될 경우 유저 에이전트는 반드시(must) 다음의 단계를 수행해야한다:</p><ol><li><p>만약 상태가 <a title="UNSENT state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#unsent-state"><span style="COLOR: #0000cc">UNSENT</span></a> 또는<a title="OPENED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED</span></a>라면 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#error-flag"><span style="COLOR: #0000cc">error flag</span></a> 가 "true" 라면, <code><span style="COLOR: #ff4500">null</span></code>을 리턴하고 종료한다. </p><li><p>모든 HTTP 헤더를 리턴한다. 이는 단일 문자열로 이루어지며 각각의 헤더 라인은 상태 라인을 제외하고는 U+000D CR U+000A LF 짝으로 분리된다. </p></li></ol><div class="example"><pre><code><span style="COLOR: #ff4500">// 아래의 스크립트는:var client = new XMLHttpRequest();client.open("GET", "test.txt", true);client.send();client.onreadystatechange = function() { if(this.readyState == 3) { print(this.getAllResponseHeaders()); }}// ...다음과 유사한 텍스트를 출력해야 한다:Date: Sun, 24 Oct 2004 04:58:38 GMTServer: Apache/1.3.31 (Unix)Keep-Alive: timeout=15, max=99Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/plain; charset=utf-8</span></code></pre></div><dt><dfn id="getresponseheader" title="getresponseheader"><code><span style="COLOR: #ff4500">getResponseHeader(<var>header</var>)</span></code></dfn>, method <dd><p>호출될 경우 유저 에이전트는 반드시(must) 다음의 단계를 수행해야한다:</p><ol><li><p>만약 상태가 <a title="UNSENT state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#unsent-state"><span style="COLOR: #0000cc">UNSENT</span></a> 또는 <a title="OPENED state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#opened-state"><span style="COLOR: #0000cc">OPENED</span></a>라면 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p>만약 <var>header</var> 인자가 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#field-name"><code><span style="COLOR: #ff4500">field-name</span></code><span style="COLOR: #0000cc">형식</span></a>에 맞지 않는 다면 빈 문자열을 리턴하고 종료한다. </p><li><p>만약 <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#error-flag"><span style="COLOR: #0000cc">error 플래그</span></a> 가 "true"라면 <code><span style="COLOR: #ff4500">null</span></code>을 리턴하고 종료한다. </p><li><p>만약 <var>header</var> 인자가 마지막으로 보낸 request의 헤더들 중 여러 개와 <a title="case-insensitive match" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#case-insensitive-match"><span style="COLOR: #0000cc">case-insensitively match</span></a> 한다면, 이 헤더들의 값을 U+002C COMMA와 그 뒤에 U+0020 SPACE로 구별되는 한 개의 문자열로 합쳐서 리턴하고 종료한다. </p><li><p>만약 <var>header</var> 인자가 마지막으로 보낸 request의 헤더들 중 한 개와 <a title="case-insensitive match" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#case-insensitive-match"><span style="COLOR: #0000cc">case-insensitively match</span></a> 한다면, 이 헤더의 값 리턴하고 종료한다. </p><li><p><code><span style="COLOR: #ff4500">null</span></code>을 리턴한다. </p></li></ol><div class="example"><pre><code><span style="COLOR: #ff4500">// 아래의 스크립트는:var client = new XMLHttpRequest();client.open("GET", "test.txt", true);client.send();client.onreadystatechange = function() { if(this.readyState == 3) { print(client.getResponseHeader("Content-Type")); }}// ...다음과 같은 문자열을 출력해야 한다:Content-Type: text/plain; charset=utf-8</span></code></pre></div><dt><dfn id="responsetext"><code><span style="COLOR: #ff4500">responseText</span></code></dfn> of type <code><span style="COLOR: #ff4500">DOMString</span></code>, readonly <dd><p>얻을때, 유저 에이전트는 반드시(must) 다음과 같은 단계를 수행해야 한다:</p><ol><li><p>만약 상태가 <a title="LOADING state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#loading-state"><span style="COLOR: #0000cc">LOADING</span></a> 또는 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>이 아니라면 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#text-response-entity-body"><span style="COLOR: #0000cc">text response entity body</span></a>를 리턴한다. </p></li></ol><dt><dfn id="responsexml"><code><span style="COLOR: #ff4500">responseXML</span></code></dfn> of type <code><span style="COLOR: #ff4500">Document</span></code>, readonly <dd><p>얻을때, 유저 에이전트는 반드시(must) 다음과 같은 단계를 수행해야 한다:</p><ol><li><p>만약 상태가 <a title="DONE state" href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#done-state"><span style="COLOR: #0000cc">DONE</span></a>이 아니라면 <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시키고 종료한다. </p><li><p><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xml-response-entity-body"><span style="COLOR: #0000cc">XML response entity body</span></a>를 리턴한다. </p></li></ol><dt><dfn id="status"><code><span style="COLOR: #ff4500">status</span></code></dfn> of type <code><span style="COLOR: #ff4500">unsigned short</span></code>, readonly <dd><p>얻을때, 존재한다면 이는 반드시(must) 서버에서 보내진 HTTP status code를 리턴해야 한다. (보통 성공적인 요청에 대해서는 <code><span style="COLOR: #ff4500">200</span></code> 이다). 존재하지 않는 다면 유저 에이전트는 반드시(must) <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시켜야 한다. </p><dt><dfn id="statustext"><code><span style="COLOR: #ff4500">statusText</span></code></dfn> of type <code><span style="COLOR: #ff4500">DOMString</span></code>, readonly <dd><p>얻을때, 존재한다면 이는 반드시(must) 서버에서 보내진 HTTP status text를 리턴해야 한다. (status code 바로 뒤에 있다). 존재하지 않는다면 유저 에이전트는 반드시(must) <code><span style="COLOR: #ff4500">INVALID_STATE_ERR</span></code> 예외를 발생시켜야 한다.</p></dd></dl><h3 id="events"><span class="secno">2.1. </span><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> 객체의 이벤트</h3><p>이 절은 <code><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#xmlhttprequest-object"><span style="COLOR: #0000cc">XMLHttpRequest</span></a></code> 인터페이스를 구현한 객체가 보내는 다양한 이벤트에 대해 설명한다. 이 버전의 규격에서는 한 개의 이벤트만 정의되어 있다. <dl><dt><dfn id="readystatechange"><code><span style="COLOR: #ff4500">readystatechange</span></code></dfn> <dd>유저 에이전트가 <code title=""><span style="COLOR: #ff4500">readystatechange</span></code> 이벤트를 발생시킬 경우에는 (위에서 지시된바와 같이) bubble 하지 말아야 하며(must not), cancelable 하지 않아야 하고(must not), 반드시(must) <code><span style="COLOR: #ff4500">Event</span></code> 인터페이스를 구현해야한다. 이의 <code><span style="COLOR: #ff4500">namespaceURI</span></code> 속성은 반드시(must) <code><span style="COLOR: #ff4500">null</span></code>이어야 한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-dom3events"><span style="COLOR: #0000cc">DOM3Events</span></a></cite>] </dd></dl><h3 id="exceptions"><span class="secno">2.2. </span><code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> 객체의 예외</h3><p>이 규격에서 정의된 몇몇 알고리즘은 예외를 발생시킬 수 있다. 이 예외들은 모두 DOM Level 3 Core에서 정의된 <code><span style="COLOR: #ff4500">ExceptionCode</span></code>의 일부이며 <code><span style="COLOR: #ff4500">DOMException</span></code> 객체를 사용한다. 여기에 더해 본 규격에서는 <code><span style="COLOR: #ff4500">ExceptionCode</span></code> 에 아래와 같은 새로운 상수들을 정의한다. [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-dom3core"><span style="COLOR: #0000cc">DOM3Core</span></a></cite>] <pre class="idl">const unsigned short <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#security-err"><span style="COLOR: #0000cc">SECURITY_ERR</span></a> = 18;const unsigned short <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#network-err"><span style="COLOR: #0000cc">NETWORK_ERR</span></a> = 101;const unsigned short <a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#abort-err"><span style="COLOR: #0000cc">ABORT_ERR</span></a> = 102;</pre><p><dfn id="security-err"><code><strong><span style="COLOR: #ff4500">SECURITY_ERR</span></strong></code></dfn> 예외는 유저 에이전트의 보안 정책에 위배되거나 보안상의 위험이 있는 방식으로 동작을 수행하거나 데이터에 접근할 경우 발생한다.</p><!-- http://lists.w3.org/Archives/Public/public-webapi/2006May/0027.html --><p class="note"><code title=""><span style="COLOR: #ff4500">SECURITY_ERR</span></code> 예외는 궁극적으로 DOM Level 3 Core 규격의 향후 버전에 동일한 정의와 상수값으로 포함되어야 한다. 그 때까지 구현자에 대한 가이드로서 여기에 정의된다. (이것은 다른 예외들과 다른 상수값을 가지는 이유이기도 하다.) <p><dfn id="network-err"><code><strong><span style="COLOR: #ff4500">NETWORK_ERR</span></strong></code></dfn> 예외는 동기적인 요청에서 네트워크 에러가 생겼을때 발생한다. <p><dfn id="abort-err"><code><strong><span style="COLOR: #ff4500">ABORT_ERR</span></strong></code></dfn> 예외는 동기적인 요청에서 사용자가 요청을 취소했을 때 발생한다. <h2 id="notcovered" class="no-num">본 규격에 정의되지 않은 것들</h2><p><em>이 절은 비규범적이다.</em> <p>본 규격은 향후 버전의 규격에서 고려되고 있는 다음과 같은 기능들을 포함하지 않는다: <ul><li><code><span style="COLOR: #ff4500">load</span></code> 이벤트와 <code><span style="COLOR: #ff4500">onload</span></code> 속성; <li><code><span style="COLOR: #ff4500">error</span></code> 이벤트와 <code><span style="COLOR: #ff4500">onerror</span></code> 속성; <li><code><span style="COLOR: #ff4500">progress</span></code> 이벤트와 <code><span style="COLOR: #ff4500">onprogress</span></code> 속성; <li><code title=""><span style="COLOR: #ff4500">abort</span></code> 이벤트와 <code><span style="COLOR: #ff4500">onabort</span></code> 속성; <li>타이머가 제안되었으며, <code><span style="COLOR: #ff4500">ontimeout</span></code> 속성이 고려 중; <li>redirect를 막는 속성; <li><code><span style="COLOR: #ff4500">text/html</span></code> 문서에 대한 <code title=""><span style="COLOR: #ff4500">responseXML</span></code>; <li>Cross-site <code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code>; <li>바이트 스트립을 다루기위한 <code><span style="COLOR: #ff4500">responseBody</span></code>; <li>MIME 타입을 수정하기 위한 <code><span style="COLOR: #ff4500">overrideMimeType</span></code>; <li><code><span style="COLOR: #ff4500">getRequestHeader()</span></code>와 <code><span style="COLOR: #ff4500">removeRequestHeader()</span></code>. </li></ul><h2 id="bibref" class="no-num">참조</h2><dl><dt>[<dfn id="ref-dom3core">DOM3Core</dfn>] <dd><cite><a href="http://www.w3.org/TR/DOM-Level-3-Core"><span style="COLOR: #0000cc">Document Object Model (DOM) Level 3 Core Specification</span></a></cite>, A. Le Hors, P. Le Hégaret, L. Wood, G. Nicol, J. Robie, M. Champion, S. Byrne, editors. W3C, April 2004. <dt>[<dfn id="ref-dom3events">DOM3Events</dfn>] <dd><cite><a href="http://www.w3.org/TR/DOM-Level-3-Events/"><span style="COLOR: #0000cc">Document Object Model (DOM) Level 3 Events Specification</span></a></cite> (work in progress), Björn Höhrmann, editor. W3C, April 2006. <dt>[<dfn id="ref-ecmascript">ECMAScript</dfn>] <dd><cite><a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm"><span style="COLOR: #0000cc">ECMAScript Language Specification</span></a></cite>, Third Edition. ECMA, December 1999. <dt>[<dfn id="ref-html5">HTML5</dfn>] <dd><cite><a href="http://www.whatwg.org/specs/web-apps/current-work/"><span style="COLOR: #0000cc">HTML&nbsp;5</span></a></cite> (work in progress), Ian Hickson, editor. WHATWG, 2007. <dt>[<dfn id="ref-rfc2119">RFC2119</dfn>] <dd><cite><a href="http://ietf.org/rfc/rfc2119"><span style="COLOR: #0000cc">Key words for use in RFCs to Indicate Requirement Levels</span></a></cite>, S. Bradner. IETF, March 1997. <dt>[<dfn id="ref-rfc2616">RFC2616</dfn>] <dd><cite><a href="http://ietf.org/rfc/rfc2616"><span style="COLOR: #660099">Hypertext Transfer Protocol -- HTTP/1.1</span></a></cite>, R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, editors. IETF, June 1999. <dt>[<dfn id="ref-rfc2617">RFC2617</dfn>] <dd><cite><a href="http://ietf.org/rfc/rfc2617"><span style="COLOR: #0000cc">HTTP Authentication: Basic and Digest Access Authentication</span></a></cite>, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen, L. Stewart, editors. IETF, June 1999. <dt>[<dfn id="ref-rfc2965">RFC2965</dfn>] <dd><cite><a href="http://ietf.org/rfc/rfc2965"><span style="COLOR: #0000cc">HTTP State Management Mechanism</span></a></cite>, D. Kristol, L. Montulli, editors. IETF, October 2000. <dt>[<dfn id="ref-rfc3986">RFC3986</dfn>] <dd><cite><a href="http://ietf.org/rfc/rfc3986"><span style="COLOR: #0000cc">Uniform Resource Identifier (URI): Generic Syntax</span></a></cite>, T. Berners-Lee, R. Fielding, L. Masinter, editors. IETF, January 2005. <dt>[<dfn id="ref-rfc3987">RFC3987</dfn>] <dd><cite><a href="http://ietf.org/rfc/rfc3987"><span style="COLOR: #0000cc">Internationalized Resource Identifiers (IRIs)</span></a></cite>, M. Duerst, M. Suignard, editors. IETF, January 2005. <dt>[<dfn id="ref-window">Window</dfn>] <dd><cite><a href="http://www.w3.org/TR/Window/"><span style="COLOR: #0000cc">Window Object 1.0</span></a></cite> (work in progress), I. Davis, M. Stachowiak, editors. W3C, April 2006. <dt>[<dfn id="ref-xml">XML</dfn>] <dd><cite><a href="http://www.w3.org/TR/xml/"><span style="COLOR: #0000cc">Extensible Markup Language (XML) 1.0 (Fourth Edition)</span></a></cite>, T. Bray, J. Paoli, C. Sperberg-McQueen, E. Maler, F. Yergeau, editors. W3C, September 2006. <dt>[<dfn id="ref-xmlns">XMLNS</dfn>] <dd><cite><a href="http://www.w3.org/TR/xml-names/"><span style="COLOR: #0000cc">Namespaces in XML (Second Edition)</span></a></cite>, T. Bray, D. Hollander, A. Layman, R. Tobin, editors. W3C, August 2006. </dd></dl><h2 id="acknowledgments" class="no-num">감사의 말</h2><p><em>이 절은 비규범적이다.</em> <p>The editor would like to thank to the following people who have contributed to this specification (ordered by first name): <ul><li>Ahmed Kamel <li>Alex Hopmann <li>Alex Vincent <li>Alexey Proskuryakov <li>Asbjørn Ulsberg <li>Boris Zbarsky <li>Björn Höhrmann <li>Cameron McCormack <li>Christophe Jolif <li>Charles McCathieNevile <li>Dan Winship <li>David Håsäther <li>Dean Jackson <li>Denis Sureau <li>Doug Schepers <li>Douglas Livingstone <li>Elliotte Harold <li>Eric Lawrence <li>Gideon Cohn <li>Gorm Haug Eriksen <li>Hallvord R. M. Steen <li>Håkon Wium Lie <li>Ian Davis <li>Ian Hickson <li>Ivan Herman <li>Jeff Walden <li>Jens Lindström <li>Jim Deegan <li>Jim Ley <li>Joe Farro <li>Jonas Sicking <li>Julian Reschke <li>Karl Dubost <li>Maciej Stachowiak <li>Magnus Kristiansen <li>Marc Hadley <li>Marcos Caceres <li>Mark Baker <li>Mark Nottingham <li>Mohamed Zergaoui <li>Pawel Glowacki <li>Robin Berjon <li>Ruud Steltenpool <li>Simon Pieters <li>Stewart Brodie <li>Sunava Dutta <li>Zhenbin Xu </li></ul><p>Special thanks to the Microsoft employees who first implemented the <code title=""><span style="COLOR: #ff4500">XMLHttpRequest</span></code> interface, which was first widely deployed by the Windows Internet Explorer browser. <p>Special thanks also to the WHATWG for drafting an initial version of this specification in their Web Applications 1.0 document (now renamed to HTML&nbsp;5). [<cite><a href="file:///C:/Documents%20and%20Settings/97079258/My%20Documents/업무문서/XMLHttpRequest/XMLHttpRequest_ko.html#ref-html5"><span style="COLOR: #0000cc">HTML5</span></a></cite>] <p>Thanks also to all those who have helped to improve this specification by sending suggestions and corrections. (Please, keep bugging us with your issues!) </p>			 ]]> 
		</description>
		<category>web 2.0</category>

		<comments>http://beyondweb.egloos.com/4304755#comments</comments>
		<pubDate>Sun, 20 Apr 2008 10:25:51 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 450D 구매 ]]> </title>
		<link>http://beyondweb.egloos.com/4287637</link>
		<guid>http://beyondweb.egloos.com/4287637</guid>
		<description>
			<![CDATA[ 
  <div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200804/12/39/c0042839_4800c58a38a7f.jpg" width="289" height="234" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200804/12/39/c0042839_4800c58a38a7f.jpg');" /></div>오늘 남대문 나가서 450D를 구매했습니다. 450D + 18-55 IS 렌즈 + 4G 고속 SD 메모리 + 켄코 MCUV 필터 + 가방 + 청소도구 + LCD 액정필름의 구성이고, 현금으로 1,020,000원을 줬습니다. 인터넷 찾아보니 대충 가격은 비슷하게 산 것 같습니다. (조금 차이난다 치더라도 배송 시키고 기다리고 하는 것이 좀 귀찮아서 ^^;;) SLR은 처음이라 한동안 공부 좀 해야겠네요.<br><br>PS: 그나저나 사자 마자 인터넷 찾아보니 왠지 렌즈를 더 질러야만 할 것 같은... 처음 찍어보는데도 이런데 이거 좀 찍다보면 장난 아닐 듯...			 ]]> 
		</description>
		<category>잡다</category>

		<comments>http://beyondweb.egloos.com/4287637#comments</comments>
		<pubDate>Sat, 12 Apr 2008 14:57:45 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ IPTV에서의 웹 2.0 서비스 ]]> </title>
		<link>http://beyondweb.egloos.com/4269365</link>
		<guid>http://beyondweb.egloos.com/4269365</guid>
		<description>
			<![CDATA[ 
  <p>얼마전 "월간통신시장"에 기고한 "IPTV에서의 웹 2.0 서비스"에 관한 글입니다. (워드에서 Copy&amp;Paste를 했더니 깨끗하지가 않네요. 시간 날때 HTML 직접 손 좀 보겠습니다.)<br><br><a href="http://www.digieco.co.kr/KTFront/IssueReport/Market08View.aspx?Marketid=13&amp;SubMarketid=24">http://www.digieco.co.kr/KTFront/IssueReport/Market08View.aspx?Marketid=13&amp;SubMarketid=24</a><br><br>--<br></p><h1 style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="FONT-FAMILY: Arial"><div style="TEXT-ALIGN: center"><span lang="EN-US"><span style="FONT-FAMILY: Arial">IPTV</span></span><span style="FONT-FAMILY: HY헤드라인M; mso-ascii-font-family: Arial">와</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: HY헤드라인M; mso-ascii-font-family: Arial">웹</span><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.0 </span></span><span style="FONT-FAMILY: HY헤드라인M; mso-ascii-font-family: Arial">서비스</span></div></span></span><span style="FONT-FAMILY: HY헤드라인M; mso-ascii-font-family: Arial"><div style="TEXT-ALIGN: center"><span style="FONT-SIZE: 170%"></span></div></span></h1><p style="MARGIN: 0cm 0cm 0pt" class="a"><span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><span style="FONT-SIZE: 170%; FONT-FAMILY: 바탕"><strong>&nbsp;</strong></span></o:p></span></p><span style="FONT-SIZE: 170%"><strong><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕"><div style="TEXT-ALIGN: right"><p style="MARGIN: 0cm 0cm 0pt" class="a"><span style="FONT-SIZE: 170%"><strong><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">이해석</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">팀장</span></strong></span></p><p style="MARGIN: 0cm 0cm 0pt" class="a"><strong><span style="FONT-SIZE: 100%"><span style="COLOR: blue; FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕"><br>인프라웨어</span><span style="COLOR: blue"><span style="FONT-FAMILY: 바탕"></span></span><span style="COLOR: blue; FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">컨버전스사업본부</span></span></strong></p></div></span></strong></span><p style="MARGIN: 0cm 0cm 0pt" class="a"><span lang="EN-US"><o:p><span style="FONT-SIZE: 170%; FONT-FAMILY: 바탕"><strong>&nbsp;</strong></span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="a"><span lang="EN-US"><o:p><span style="FONT-SIZE: 170%; FONT-FAMILY: 바탕"><strong>&nbsp;</strong></span></o:p></span></p><div align="center"><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" class="MsoNormalTable" border="1" cellspacing="0" cellpadding="0"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 281.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="375"><span style="mso-hansi-font-family: 바탕; mso-bidi-font-family: 바탕; mso-fareast-font-family: 바탕; mso-bidi-font-weight: bold" lang="EN-US"><span style="mso-list: Ignore"><strong><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕"><div style="TEXT-ALIGN: left"><p style="MARGIN: 0cm 0cm 0pt 17.25pt; TEXT-INDENT: -17.25pt; mso-list: l0 level1 lfo1; tab-stops: list 17.25pt" class="a1"><span style="mso-hansi-font-family: 바탕; mso-bidi-font-family: 바탕; mso-fareast-font-family: 바탕; mso-bidi-font-weight: bold" lang="EN-US"><span style="mso-list: Ignore"><strong><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">1.</span></strong><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-SIZE: 100%"><strong><span dir="ltr"><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">웹</span><span lang="EN-US"><span style="FONT-FAMILY: 바탕">2.0</span></span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">의</span><span lang="EN-US"><span style="FONT-FAMILY: 바탕">8</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">가지</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">디자인</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">패턴</span></strong></span></p><p style="MARGIN: 0cm 0cm 0pt 17.25pt; TEXT-INDENT: -17.25pt; mso-list: l0 level1 lfo1; tab-stops: list 17.25pt" class="a1"><span style="mso-hansi-font-family: 바탕; mso-bidi-font-family: 바탕; mso-fareast-font-family: 바탕; mso-bidi-font-weight: bold" lang="EN-US"><span style="mso-list: Ignore"><strong><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">2.</span></strong><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="FONT-SIZE: 100%"><strong><span dir="ltr"><span lang="EN-US"><span style="FONT-FAMILY: 바탕">Web 2.0</span></span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">관점에서</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">본</span><span style="FONT-FAMILY: 바탕"><span lang="EN-US">IPTV </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">사업방향</span></strong></span></p><p style="MARGIN: 0cm 0cm 0pt 17.25pt; TEXT-INDENT: -17.25pt; mso-list: l0 level1 lfo1; tab-stops: list 17.25pt" class="a1"><span style="mso-hansi-font-family: 바탕; mso-bidi-font-family: 바탕; mso-fareast-font-family: 바탕; mso-bidi-font-weight: bold" lang="EN-US"><span style="mso-list: Ignore"><strong><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">3.</span></strong><span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span dir="ltr"><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕"><strong><span style="FONT-SIZE: 100%">결론</span></strong></span></span></span></strong></span></span></p></div></td></tr></tbody></table></div><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">&nbsp;</span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">&nbsp;</span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">&nbsp;</span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">&nbsp;</span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">&nbsp;</span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%"><span lang="EN-US">2008</span>년<span lang="EN-US"> 1</span>월<span lang="EN-US"> Pre-IPTV</span>를 포함한 국내<span lang="EN-US"> IPTV </span>서비스 가입자가<span lang="EN-US"> 100</span>만을 넘었다<span lang="EN-US">. </span>이로서<span lang="EN-US"> IPTV</span>는 기술 개발을 위한 프로토타입이나 얼리어답터의 전유물이 아닌 대중적인 서비스로서 첫발을 내디뎠다고 볼 수 있다<span lang="EN-US">. </span>그러나 현재까지의<span lang="EN-US"> IPTV </span>서비스는<span lang="EN-US"> VOD </span>서비스를 위주로 기존의 유료방송을<span lang="EN-US"> IP </span>망으로 옮겨놓은 수준에서 크게 벗어나지 못하고 있다<span lang="EN-US">. </span>현재 시점은 <span lang="EN-US">IPTV</span>가 기존 유료 방송과 차별화된 가치를 제공하고 장기적으로 영속되는 서비스로 자리 매김 할 수 있는지 여부에 대해 도마 위에 올랐다고 볼 수 있다<span lang="EN-US">. </span>본 고에서는 통신망을 활용한 양방향 서비스 미디어로서<span lang="EN-US"> IPTV</span>의 차별화 포인트를 인터넷에서 개방<span lang="EN-US">, </span>참여<span lang="EN-US">, </span>공유 등을 기치로 한 웹<span lang="EN-US"> 2.0</span>을 매개로 풀어보고자 한다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h2 style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="FONT-FAMILY: Arial">1. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">웹</span><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.0</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">의</span><span lang="EN-US"><span style="FONT-FAMILY: Arial">8</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">가지</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">디자인</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">패턴</span></h2><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">웹<span lang="EN-US"> 2.0</span>은<span lang="EN-US"> O</span>’<span lang="EN-US">Reilly Media </span>대표인<span lang="EN-US"> Tim O</span>’<span lang="EN-US">Reilly</span>가 닷컴 버블 시절 만들어진 다양한 서비스를 제공하던 벤처들의 붕괴 이후 실제로 수익을 내면서 살아남은 서비스 들의 공통된 특징을 ‘웹<span lang="EN-US"> 2.0</span>’이라고 부르자고 한데서 유래한다<span lang="EN-US">.<a style="mso-footnote-id: ftn1" title="" href="http://www.egloos.com/egloo/content/content.html#_ftn1" name="_ftnref1"><span class="MsoFootnoteReference"><span style="mso-special-character: footnote"><span class="MsoFootnoteReference"><span style="FONT-SIZE: 12pt; FONT-FAMILY: 바탕; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA" lang="EN-US">[1]</span></span></span></span></a> </span>닷컴 버블 시절 인터넷은 무한한 가능성을 제공할 신시장으로 생각되었고<span lang="EN-US">, </span>많은 창업자들은 기존 오프라인에서 운영되는 공급자 중심의 폐쇄적인 사업 모델을 인터넷으로 올리기만 하면 큰 성공을 거둘 것으로 생각했다<span lang="EN-US">. </span>시장도 닷컴업체에게 그러한 기대를 걸었고<span lang="EN-US">, </span>수익 한 푼 내지 못하는 벤처 기업들은 벤처 캐피탈과 주식시장을 통해 어마어마한 자금을 끌어 모았다<span lang="EN-US">. </span>하지만 이러한 기업들은 결국 수익을 내지 못하고 엄청난 적자에 시달리다가 파산하면서 결국 버블의 붕괴라는 최후를 맡는다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-SIZE: 100%; FONT-FAMILY: '굴림','Gulim'">비록 많은 기업이 실패했지만 인터넷은 실제로 사용자들에게 많은 가치를 제공했고<span lang="EN-US">, </span>이러한 가치를 제공한 기업들은 버블의 붕괴에도 불구하고 살아남았다<span lang="EN-US">. </span>그리고 현재 이들 기업은 실제 적은 수익을 기반으로 승승장구 중이다<span lang="EN-US">. Tim O</span>’<span lang="EN-US">Reilly</span>는 이러한 기업들의 사례를 분석하여 성공적인 웹<span lang="EN-US"> 2.0 </span>서비스를 만들기 위한 디자인 패턴</span><a style="mso-footnote-id: ftn2" title="" href="http://www.egloos.com/egloo/content/content.html#_ftn2" name="_ftnref2"><span class="MsoFootnoteReference"><span lang="EN-US"><span style="mso-special-character: footnote"><span class="MsoFootnoteReference"><span style="FONT-SIZE: 12pt; FONT-FAMILY: 바탕; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA" lang="EN-US"><span style="FONT-SIZE: 100%; FONT-FAMILY: '굴림','Gulim'">[2]</span></span></span></span></span></span></a><span style="FONT-FAMILY: 바탕"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">으로 다음과 같은<span lang="EN-US"> 8</span>가지를 꼽았다<span lang="EN-US">.</span></span></span></span><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕"><strong>&nbsp;</strong></span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="a2"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕"><strong>&nbsp;</strong></span></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt" class="a2"><strong><span style="FONT-SIZE: 100%"><span lang="EN-US"><span style="FONT-FAMILY: 바탕">&lt;</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">표</span><span lang="EN-US"><span style="FONT-FAMILY: 바탕">1&gt; </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">성공적인</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">웹</span><span lang="EN-US"><span style="FONT-FAMILY: 바탕">2.0 </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">서비스를</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">위한</span><span lang="EN-US"><span style="FONT-FAMILY: 바탕">8</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">가지</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">디자인</span><span style="FONT-FAMILY: 바탕"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">패턴</span></span></strong></p><p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid #999999 .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid #999999; mso-border-insidev: .5pt solid #999999" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"><tbody><tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #999999 1pt solid; BACKGROUND: silver; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; mso-border-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'"><strong>특징<span lang="EN-US"><o:p></o:p></span></strong></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #999999 1pt solid; BACKGROUND: silver; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'"><strong>설명<span lang="EN-US"><o:p></o:p></span></strong></span></span></span></p></td></tr><tr style="mso-yfti-irow: 1"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">롱 테일 법칙<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(The Long Tail)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US">20%</span><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움">의 상품이<span lang="EN-US"> 80%</span>의 매출을 차지한다는 오프라인 상점의<span lang="EN-US"> <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:date hour="14" minute="8" w:st="on" o:ls="trans">2:8</st1:date> </span>법칙은 온라인에서는 통하지 않는다<span lang="EN-US">. </span>무한한 상품 또는 서비스 리스트를 가지고 잘 팔리는 상품뿐만 아니라 찾기 힘든 상품 및 서비스까지 제공해야 한다<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 2"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">데이터는 차세대 인텔 인사이드<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(Data is the Next Intel Inside)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">남이 흉내 내서 만들기 힘든 데이터를 소유하고<span lang="EN-US">, </span>이를 내외부의 다양한 서비스에서 활용하게 하는 플랫폼을 구축해야 한다<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 3"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">사용자에 의한 부가가치 창조<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(Users Add Value)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">가치는 공급자가 만들고<span lang="EN-US">, </span>그 가치를 사용자가 소비한다는 개념이 아닌 사용자가 곧 가치 창조의 원천이다<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 4"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">네트워크 효과를 재촉하는 초기설정<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(Network Effects by Default)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">적극적인 콘텐트 생성과 같은 사용자의 기여뿐만 아니라<span lang="EN-US">, </span>조회<span lang="EN-US">, </span>추천 등 기본적인 유저의 데이터도 활용해야 한다<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 5"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">일부 권리 보유<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(Some Rights Reserved)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">다수의 사용자와 네트워크 효과에 의해 가치가 발생하는 인터넷의 특성상 까다로운 저작권은 오히려 방해가 된다<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 6"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%; FONT-FAMILY: '굴림','Gulim'">영구 베타판</span><span lang="EN-US"><br><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(The Perpetual Beta)<o:p></o:p></span></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">제품 개발 후 판매라는 구조는 통하지 않는다<span lang="EN-US">. </span>지속적으로 사용자의 피드백을 받아 조금씩 서비스를 개선해야 한다<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 7"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">컨트롤이 아닌 협력<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(Cooperate, Don't Control)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">서비스의 이용을 자사 서비스에 제한하여 컨트롤하는 폐쇄적인 모델 보다는<span lang="EN-US"> Open API</span>를 통해 서비스의 확산을 통한 다른 서비스와의 연계를 노려라<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr><tr style="mso-yfti-irow: 8; mso-yfti-lastrow: yes"><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #999999 1pt solid; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">단일 디바이스를 넘는 소프트웨어<span lang="EN-US"><o:p></o:p></span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">(Software Above the Level of a Single Device)<o:p></o:p></span></span></span></p></td><td style="BORDER-RIGHT: #999999 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-TOP: #ebe9ed; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ebe9ed; WIDTH: 217.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #999999 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #999999 .5pt; mso-border-left-alt: solid #999999 .5pt; mso-border-top-alt: solid #999999 .5pt" valign="top" width="290"><p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움" lang="EN-US">PC</span><span style="FONT-SIZE: 11pt; FONT-FAMILY: 돋움">이외의 디바이스에서도 서비스를 사용할 수 있도록 하라<span lang="EN-US">.<o:p></o:p></span></span></span></span></p></td></tr></tbody></table></p><p style="MARGIN: 0cm 0cm 0pt" class="a3"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 바탕">자료원</span><span lang="EN-US"><span style="FONT-FAMILY: 바탕">: O'Reilly Network</span></span></span></p><h2 style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-FAMILY: Arial">&nbsp;</span></o:p></span></h2><h2 style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2. Web 2.0</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">관점에서</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">본</span><span lang="EN-US"><span style="FONT-FAMILY: Arial">IPTV</span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">사업</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">방향</span></h2><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">닷컴 기업의 붕괴와 웹<span lang="EN-US"> 2.0</span>이라는 개념의 등장은<span lang="EN-US"> IPTV</span>에게 시사하는 점이 많다<span lang="EN-US">. </span>마치 초기 닷컴 기업들이 오프라인 서비스 모델을 온라인에 그대로 옮기면 성공할 것이라고 생각했던 것처럼<span lang="EN-US">, IPTV </span>사업자들도 유료 방송 모델을 그대로 인터넷 망으로 올리면 성공할 수 있을 것이라고 보는 듯하다<span lang="EN-US">. </span>현재<span lang="EN-US"> IPTV </span>서비스를 서비스 중인<span lang="EN-US"> KT, </span>하나로텔레콤<span lang="EN-US">, LG</span>데이콤 모두 현재는<span lang="EN-US"> IPTV </span>법안 이슈로 <span lang="EN-US">Pre-IPTV </span>서비스를 제공하고 있다<span lang="EN-US">. Pre-IPTV</span>는<span lang="EN-US"> VOD </span>위주의 서비스를 기반으로 월정액 또는<span lang="EN-US"> PPV (Pay Per View, </span>건당 과금 방식<span lang="EN-US">) </span>모델의 과금 방식을 채택하고 있다<span lang="EN-US">. </span>하지만<span lang="EN-US"> IPTV </span>사업자들은 사업 초기 사용자 확보를 위하여<span lang="EN-US"> 3</span>개월 또는 그 이상 무료 체험 기간을 제공하고 있어<span lang="EN-US">, PPV </span>콘텐트의 이용과 <span lang="EN-US">ARPU</span>의 증가는 부진한 편이다<span lang="EN-US">. </span>이는 초기의 닷컴 기업들이 수익을 내기 위한 계획 없이 사용자를 확보하는 데만 주력하던 인터넷의 무료 서비스나 인터넷 공간에서 과금에 대한 저항으로 인해 사용자 확보에 실패한 유료 서비스를 닮았다<span lang="EN-US">. </span>지금은 서비스 개시<span lang="EN-US"> 1~2</span>년 만에<span lang="EN-US"> 100</span>만 가입자를 모으는 등 승승장구하고 있지만 수익 모델 확보에 실패한다면 빛 좋은 개살구로 전락하고 말 것이다<span lang="EN-US">. </span>이러한 상황에서<span lang="EN-US"> IPTV</span>가 지속적으로 사용자를 유인하기 위해서는 웹<span lang="EN-US"> 2.0 </span>기업들이 채택했던 방법들을 주목할 필요가 있다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.1. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">롱</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">테일</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">법칙</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 바탕">현재<span lang="EN-US"> Pre-IPTV </span>서비스의 주된 서비스는<span lang="EN-US"> VOD</span>이다<span lang="EN-US">. </span>특히 월 정액 금액으로 제공되던 지상파 방송 다시보기 서비스는 사용자가 가장 많은 서비스이다<span lang="EN-US">. </span>인터넷 방송사 홈페이지에서 다시보기 서비스를 이용하거나 불법적인 경로로 다운로드 받아서 사용할 수 있음에도 누구나 손쉽게<span lang="EN-US"> TV</span>에서 지나간 지상파 방송을 골라서 볼 수 있다는 점은 많은 사용자에게 어필했다<span lang="EN-US">. </span>하지만<span lang="EN-US"> IPTV </span>뿐만 아니라 위성<span lang="EN-US">/</span>케이블 등 유선 방송<span lang="EN-US">, DMB, </span>인터넷 등 다양한 매체가 생겨나면서 지상파 콘텐트에 대한 경쟁을 부추겼고 결국 지상파 콘텐트의 가격은 천정부지로 높아지고 있다<span lang="EN-US">. </span>지상파 콘텐트뿐만 아니라 유명 영화나 해외 드라마 역시 이러한 가격 상승을 나타내고 있고<span lang="EN-US">, </span>급기야 최근에는 지상파 콘텐트의 경우 방송 후<span lang="EN-US"> 7</span>일 이내 유료화라는 결정마저 내려지고 만다<span lang="EN-US">. </span>이 같은 사실은<span lang="EN-US"> VOD </span>위주의 현재 서비스뿐만 아니라 향후 채널 기반의 서비스가 도입되더라도 마찬가지 일 것이다<span lang="EN-US">. </span>결국 현재와 같은 구조에서 고가의 </span><span style="FONT-FAMILY: 'Times New Roman'; mso-ascii-font-family: 바탕" lang="EN-US">“</span><span style="FONT-FAMILY: 바탕">인기 콘텐트</span><span style="FONT-FAMILY: 'Times New Roman'; mso-ascii-font-family: 바탕" lang="EN-US">”</span><span style="FONT-FAMILY: 바탕"><span lang="EN-US"></span>위주 서비스가 초기 가입자수를 늘리는 데에는 효과가 있을지 몰라도 이를 가지고 수익을 올리기는 쉽지 않음을 보여준다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-layout-grid-align: none" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">롱 테일 법칙은 사용자가 많은 킬러 콘텐트 보다는 콘텐트의 다양성을 활용해 사용자를 확보해야 함을 보여준다<span lang="EN-US">. </span>생활 수준의 향상으로 사용자들의 콘텐트에 대한 욕구는 다양해졌다<span lang="EN-US">. </span>한국의 드라마나 할리우드의 외화를 제외하고도 미국의 드라마나 일본의 애니메이션 같은 경우는 이미 대중적인 인기를 얻은 수준이며 다양한 마니아 계층은 각자 그들이 선호하는 콘텐트가 존재한다<span lang="EN-US">. </span>기존 방송 매체는 단방향성 특성으로 인해 이러한 욕구를 충족시켜줄 수 없었지만 인터넷 망을 기반으로 무한한 양의 콘텐트를 서비스 할 수 있는<span lang="EN-US"> IPTV</span>는 상황이 다르다고 볼 수 있다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-layout-grid-align: none" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">다른 곳에서 구하기 어려운 콘텐트일수록 사용자들의 가격에 대한 저항감은 떨어질 것이고<span lang="EN-US">, </span>반대로 세분화된 콘텐트를 시청하는 사용자에 대한 광고는 노출 대비 효과가 높아질 것이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-layout-grid-align: none" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.2. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">데이터는</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">차세대</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">인텔</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">인사이드</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%"><span lang="EN-US">CPU</span>는 컴퓨터 내부에 들어가 있어서 사용자에게 보여지지 않기 때문에 일부 컴퓨터 전문가를 제외하고는 인지하기 쉽지 않은 제품이다<span lang="EN-US">. </span>인텔에게 있어서 이러한 사실은 표준화 되어가는<span lang="EN-US"> x86 </span>아키텍처에서<span lang="EN-US"> AMD </span>등 다른 경쟁사와 차별화 하기가 힘들다는 것을 의미한다<span lang="EN-US">. </span>인텔은 이에 대응하여<span lang="EN-US"> HP, </span>델<span lang="EN-US">, </span>컴팩<span lang="EN-US">, </span>삼성뿐만 아니라 각국의 수많은 중소 기업들까지 다양한 제조사에서 생산되는<span lang="EN-US"> PC</span>를 인텔 인사이드라는 브랜드로 묶어놓았다<span lang="EN-US">. </span>인텔은 인텔 인사이드 전략을 통해 자신의 핵심역량인<span lang="EN-US"> CPU, </span>반도체에 집중해서 경쟁력 있는 제품을 만드는 한편 소비자의 인지도를 확보할 수 있었다<span lang="EN-US">. </span>그래서 소비자들은<span lang="EN-US"> CPU</span>에 대해서 잘 모르지만 인텔 인사이드 마크가 들어가 있으면 믿을 수 있게 되었고<span lang="EN-US">, </span>제조사들은 이러한 인지도가 있는 인텔의<span lang="EN-US"> CPU</span>를 적극 채택하였다<span lang="EN-US">. </span>만약 인텔이 이러한 전략 대신 직접<span lang="EN-US"> PC</span>까지 생산하는 전략을 가져갔다면 어떻게 되었을까<span lang="EN-US">? </span>인텔은<span lang="EN-US"> CPU</span>를 파는 대신<span lang="EN-US"> PC </span>제조사들과 경쟁을 해야 했을 것이고<span lang="EN-US">, </span>핵심역량에 투자해야 할 역량을 이러한 데 쏟아 부으면서 결국 자멸했을 것이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">웹이나<span lang="EN-US"> IPTV</span>에서도 이러한 전략은 똑같이 유효하다<span lang="EN-US">. IPTV </span>사업자나 대형 포탈들이 굳이<span lang="EN-US"> IPTV</span>의 수직적인 구축을 모두 맡는 것은 비용대비 효과나 서비스의 다양성 면에서 효과적이지 못하다<span lang="EN-US">. </span>구글이 지도 서비스를<span lang="EN-US"> Open API</span>를 통해 제공하자 부동산 중개 업자들은 이를 활용한 중개 서비스를 내놓고<span lang="EN-US">, SNS </span>사업자들은 이를 활용한 친구 찾기 서비스를 내놓았듯이 지도<span lang="EN-US">, </span>음원 등 남들이 구축하기 힘든 데이터베이스를 구축하고 이를 활용토록 한다면 직접 모든 것을 구축하고 서비스할 때에 비해 핵심역량인 데이터베이스 구축에 집중하면서도 다양한 서비스를 내놓을 수 있을 것이다<span lang="EN-US">. IPTV</span>에서는 프로그램 메타데이터<span lang="EN-US">, </span>사용자의 프로그램 평가 및 선호 데이터<span lang="EN-US">, </span>시청 행태 등 방송 시청 관련 데이터가 물론 가장 중요한 데이터 중 하나가 될 것이고<span lang="EN-US">, </span>여기에 더해 지도<span lang="EN-US">, </span>음원 등 부가 서비스를 위한 다양하고 방대한 데이터를 먼저 구축하고 퍼트릴 수 있는 기업이 중요한 위치로 등극할 것이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.3. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">사용자에</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">의한</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">부가가치</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">창조</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-FAMILY: 바탕"><span lang="EN-US">2006</span>년 우리를 열광하게 했던 월드 베이스볼 클래식을 기억할 것이다<span lang="EN-US">. </span>연승행진으로<span lang="EN-US"> 4</span>강까지 올랐던 우리는 안타깝게도 일본에게 패배하여 국민들의 마음을 아프게 하였다<span lang="EN-US">. </span>이때 방송계에서는 사용자들의 방송 시청 형태를 송두리째 바꿀만한 엄청난 변화가 있었는데<span lang="EN-US">, </span>그것은 인터넷 매체의 시청자 수가 텔레비전 방송의 시청자 수를 누른 것이다<span lang="EN-US">.<a style="mso-footnote-id: ftn3" title="" href="http://www.egloos.com/egloo/content/content.html#_ftn3" name="_ftnref3"><span class="MsoFootnoteReference"><span style="mso-special-character: footnote"><span class="MsoFootnoteReference"><span style="FONT-SIZE: 12pt; FONT-FAMILY: 바탕; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA" lang="EN-US">[3]</span></span></span></span></a> </span>물론 방송 시간이 주로 낮 시간으로 직장인들이 집에서 텔레비전으로 보기 힘든 시간이라는 점이 작용했겠지만<span lang="EN-US">, </span></span><span style="FONT-FAMILY: 'Times New Roman'; mso-ascii-font-family: 바탕" lang="EN-US">‘</span><span style="FONT-FAMILY: 바탕">방송<span lang="EN-US"> = </span>텔레비전</span><span style="FONT-FAMILY: 'Times New Roman'; mso-ascii-font-family: 바탕" lang="EN-US">’</span><span style="FONT-FAMILY: 바탕"><span lang="EN-US"></span>이라는 공식을 바꿀만한 획기적인 사건이었다<span lang="EN-US">. </span>이러한 인터넷 시청률 증가에는 위치적 제약 없이 인터넷만 있으면 어디서나 볼 수 있다는 점과 함께<span lang="EN-US"> TV</span>와는 달리 인터넷이 댓글 등을 통해서 다른 사용자와 교감할 수 있다는 점이 가장 큰 원인으로 꼽혔다<span lang="EN-US">. </span>인터넷 시청자의 상당수가<span lang="EN-US"> TV</span>와 인터넷을 동시에 시청했다는 점에서 이러한 시청률 증가가 위치적 제약 때문만이 아님을 보여준다<span lang="EN-US">. </span>즉<span lang="EN-US">, </span>사용자는 단순히 방송 화면이 아니라 방송 화면과 이를 주변 사람과 공유하는 것을 포함한 전체적인 방송 경험을 중요시 여겼고<span lang="EN-US">, </span>화질이라던지 많은 사용자 수에 의한 끊김 현상 등에 있어서<span lang="EN-US"> TV</span>에 비해 훨씬 열악한 방송 화면에도 불구하고 다른 사용자와의 소통이 가능한 인터넷 매체를 선택한 것이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'">양방향 매체인<span lang="EN-US"> IPTV</span>는 방송화면의 공급자가 방송에 대한 모든 가치를 제공한다는 패러다임을 벗어나서 공급자와 시청자가 함께 전체적인 방송 경험을 만들어 간다는 사실을 깨달을 필요가 있다<span lang="EN-US">. </span>위에서 예를 든 실시간으로 댓글 등을 주고 받으며 대화할 수 있는 기능뿐만 아니라 프로그램에 관련된 커뮤니티나 관련 정보들을 주고 받을 수 있는 대화의 창을 제공하고 이를 통해 사용자 간 커뮤니케이션을 통해 방송의 부가가치가 높아지는 점을 활용해야 할 것이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.4. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">네트워크</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">효과를</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">재촉하는</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">초기설정</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">최근의 블로그나<span lang="EN-US"> UCC </span>열풍은 마치 모든 사용자들이 콘텐트 저작자로 등극하고 있는 착각을 불러일으킬 만하다<span lang="EN-US">. </span>물론 인터넷의 발전이 콘텐트 저작자로서의 진입장벽을 낮춘 점은 인정이 되지만<span lang="EN-US">, </span>여전히 적극적인 콘텐트 생산자는 소비자에 비해서 상당히 적은 것이 사실이다<span lang="EN-US">. </span>하지만 성공적인 웹<span lang="EN-US"> 2.0 </span>서비스들은 이러한 사용자들도 부가가치를 창조하도록 하는 시스템을 갖추고 있다<span lang="EN-US">. </span>적은 부담으로 콘텐트에 기여하는 한줄댓글 같은 기능이라던지<span lang="EN-US">, </span>아니면 조회<span lang="EN-US">, </span>추천<span lang="EN-US">, </span>태깅 등 콘텐트를 소비하기 위해 무의식적으로 행하는 일들을 기록하여 제공하는 추천시스템 등이 바로 그것이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">이른바 린백<span lang="EN-US">(Lean-back) </span>미디어<span lang="EN-US">, </span>즉 소파에 기대어 최소한의 개입으로 수동적으로 시청하는<span lang="EN-US"> TV </span>시청자의 특성상 이러한 시스템의 개발은 필수적이다<span lang="EN-US">. TV </span>서비스에서 가장 중요한 것으로 뽑히는 전자 프로그램 가이드<span lang="EN-US">(EPG) </span>서비스를 예를 들어 보자<span lang="EN-US">. </span>지상파 방송이나 케이블 또는 위성 같은 유료 방송에서 제공되는 채널 수는 적게는<span lang="EN-US"> 4~5</span>개<span lang="EN-US">, </span>많아야<span lang="EN-US"> 100</span>여 개 정도에 불과하였다<span lang="EN-US">. </span>하지만 사용자 방송 등의 개념까지 포함하면 사실상 무한개의 채널을 제공하는<span lang="EN-US"> IPTV</span>에서 <span lang="EN-US">Grid </span>형식 또는 <span lang="EN-US">Mosaic </span>형식으로 화면에서 원하는 서비스를 선택하는 방식은 더 이상 유효하지 못하다<span lang="EN-US">. </span>여러 사람들이 보았거나 추천하는 콘텐트를 보여 준다던지<span lang="EN-US">, </span>기존 시청자가 보았던 프로그램과 유사한 프로그램을 보여준다던 지 하는 다양한 시스템이 도입되어야 한다<span lang="EN-US">. </span>실제로 사업자들이 수만 편의<span lang="EN-US"> VOD</span>를 제공하면서도 사용자가 재미있다고 느낄만한 콘텐트를 찾지 못하는 현상은 이러한 시스템의 도입이 필수적이란 사실을 말해준다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.5. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">일부</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">권리</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">보유</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">방송과 저작권은 무척 밀접하게 연결된 문제이다<span lang="EN-US">. </span>인터넷의 발전으로 음반 산업과 영화 산업이 위기에 처한 현실은 저작권이 얼마나 중요한 문제인지를 보여준다<span lang="EN-US">. </span>하지만 엄격한 저작권이 곧 수입 증대로 이어질 것이라는 기대는 금물이다<span lang="EN-US">. </span>음반 시장을 보아도 일반적인 유통 경로를 통했다면 음반 가격이 비싸서 아무도 사지 않고 묻혀버렸을 신인가수가 불법 복제 테이프의 유포로 유명해지거나 자신의 곡들을 인터넷에 올려놓아 유명해져 돈을 번 가수들도 있다<span lang="EN-US">. UCC </span>열풍이 불고 있는 웹 공간에서는 이러한 현상이 더욱 두드러져서 무료로 마음껏 볼 수 있는 블로그 공간에 글을 올리면서도 한달에 수 백만원 이상의 수입을 올리는 스타 블로거들이 늘고 있다<span lang="EN-US">. </span>물론 여기서 저작권 폐지론 등을 얘기하고자 하는 것은 아니다<span lang="EN-US">. </span>다만 저작권자들이 정말 자신이 지켜야 할 권리가 무엇이고<span lang="EN-US">, </span>어떻게 사용자들을 만족시켜서 그러한 권리에 응당한 대가를 받아 낼 것이냐가 중요하다<span lang="EN-US">. </span>사용자들은 이제 더 이상 단순한 음악<span lang="EN-US">/</span>영화 감상에 돈을 쓰려하지 않는다<span lang="EN-US">. </span>반면에 음악<span lang="EN-US">/</span>영화 감상을 포함한 즐거운 시청 경험에는 돈을 아끼지 않는다<span lang="EN-US">. </span>인터넷 상에서<span lang="EN-US"> 500</span>원<span lang="EN-US">~1000</span>원 하는 영화 감상에는 돈을 쓰지 않으면서<span lang="EN-US">, </span>멀티플랙스 영화관에서 친구와 영화를 보는데는<span lang="EN-US"> 1~2</span>만원도 아끼지 않는 것을 보면 알 수 있다<span lang="EN-US">. IPTV</span>에서도 물론 제공되는 콘텐트에 대한 저작권이 보호되고 유통되어야 하겠지만 사용자의 시청 경험에 반하는 엄격한 제약은 피해야 한다<span lang="EN-US">. </span>일부 저작권자들이 요구하는 것처럼 영화나 음반을 개작한<span lang="EN-US"> 2</span>차<span lang="EN-US"> UCC </span>산출물의 저작에 대한 제약 등이 그렇다<span lang="EN-US">. </span>마치<span lang="EN-US"> YouTube </span>같은 서비스가 콘텐트를 판매하는 것이 아니라 콘텐트를 보는 사용자들의 관심을 광고주들에게 파는 것처럼 새로운 비즈니스 모델을 구축하고 이 모델에 반하지 않는 이상 저작권의 제약을 최소화 할 필요가 있다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.6. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">영구</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">베타판</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">기존<span lang="EN-US"> TV </span>라는 매체에서 플랫폼 자체의 업그레이드는 사실상 거의 없었다<span lang="EN-US">. </span>흑백<span lang="EN-US"> TV</span>에서 컬러 <span lang="EN-US">TV</span>로 넘어온 것과 아날로그<span lang="EN-US"> TV</span>에서 디지털<span lang="EN-US"> TV</span>로 변한 것이 전부이다<span lang="EN-US">. </span>물론 브라운관<span lang="EN-US">, </span>프로젝션<span lang="EN-US">, LCD, PDP </span>등 하드웨어의 발달을 꼽을 수도 있겠지만 사용자에게 보이는 서비스가 본질적으로 변한 것은 아니었다<span lang="EN-US">. </span>따라서 사용자들은<span lang="EN-US"> 10</span>년 전에 산 컬러 <span lang="EN-US">TV</span>를 가지고 여전히 문제 없이<span lang="EN-US"> TV</span>를 볼 수 있는 대신<span lang="EN-US"> 10</span>년 전이나 지금이나<span lang="EN-US"> TV</span>에서 나오는 내용은 달라졌을는지 몰라도<span lang="EN-US"> TV</span>라는 서비스 자체는 완전히 정체되어 있다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 바탕">하지만<span lang="EN-US"> IPTV</span>는 이와는 다르다<span lang="EN-US">. </span>가깝게 국내 사업자들의 예를 들어봐도 <span lang="EN-US">KT</span>의 메가<span lang="EN-US">TV</span>와 하나로텔레콤의 하나<span lang="EN-US">TV</span>의 경우<span lang="EN-US">, </span>하루가 멀게 메뉴 구성을 업데이트 하다가 최근엔 대대적인 서비스 업그레이드를 단행하였다<span lang="EN-US">. </span>단순히<span lang="EN-US"> TV</span>를 가능하면 깨끗하게 시청할 수 있게 해주는 기능만 수행하면 되었던 기존의<span lang="EN-US"> TV</span>와는 달리<span lang="EN-US"> IPTV</span>는 양방향을 비롯한 다양한 서비스를 제공하는 매체로서 시시각각 변하는 사용자들의 욕구를 만족시켜야 한다<span lang="EN-US">. </span>이를 위해서는 사용자를 만족 시킬 수 있는 최소한의 서비스로 시작하고 피드백을 통해 발전해 나가는 것이 최선의 전략일 것이다<span lang="EN-US">. </span>한번에 모든 플랫폼을 구축하고 그 위에서 콘텐트만 추가해나가면 될 것이라는 생각으로는 변화하는 사용자의 욕구를 충족시킬 수 없다<span lang="EN-US">. IPTV</span>가 무한한 주기를 가지는 소프트웨어 개발 과정<span lang="EN-US">, </span>즉 </span><span style="FONT-FAMILY: 'Times New Roman'; mso-ascii-font-family: 바탕" lang="EN-US">‘</span><span style="FONT-FAMILY: 바탕">영구 베타판</span><span style="FONT-FAMILY: 'Times New Roman'; mso-ascii-font-family: 바탕" lang="EN-US">’</span><span style="FONT-FAMILY: 바탕"><span lang="EN-US"></span>상태임을 잊어서는 안된다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.7. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">컨트롤이</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">아닌</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">협력</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">웹에서 가장 성공적인 서비스로 꼽히는 구글이나 네이버와 같은 검색 서비스는 인터넷 공간에 존재하는 다양한 정보 중에서 원하는 정보를 찾아주는 서비스이다<span lang="EN-US">. </span>물론 여기서 정보란 구글이나 네이버가 직접 구축한 것이 아닌 다양한 콘텐트 저작자들이 인터넷에 공개한 것이다<span lang="EN-US">. </span>만약 이들이 없다면 구글이나 네이버가 존재하지 못함은 자명하다<span lang="EN-US">. </span>만약 구글이나 네이버가 이러한 정보들을 자체 구축하려 한다면 천문학적인 비용이 들 뿐만 아니라 지금과 같은 다양성을 확보한다는 것은 불가능할 것이다<span lang="EN-US">. </span>검색 서비스가 성공적인 서비스로 자리매김 할 수 있었던 데에는 콘텐트 저작자들이 자율적으로 콘텐트를 생성하고 만들 수 있었다는 점과 구글이나 네이버가 다양한 광고 프로그램 등을 통해 이들이 수익을 얻을 수 있도록 한 점이 작용했다<span lang="EN-US">. </span>반면 방송시장은 전통적으로 방송사가 자체 제작 또는 프로덕션으로부터 프로그램을 구매하여 방송하는 중앙 집중적인 모델을 가지고 있었다<span lang="EN-US">. </span>전파수 등의 자원이 유한한 상황에서 가능한 많은 사용자에게 유용한 정보 위주로 방송을 해야 할 필요가 있었기 때문이다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%"><span lang="EN-US">IPTV</span>는 무한한 채널 자원을 가지고 있다는 점에서 인터넷 환경과 닮았다<span lang="EN-US">. 2.1</span>절에서 언급한 롱 테일 전략을 펼치기 위해서는 다양한 이해관계자들과의 협력이 필수적이다<span lang="EN-US">. </span>기존 방송 매체와 동일한 접근 방식으로는 사용자들이 원하는 수준의 다양성 확보가 불가능할 것이다<span lang="EN-US">. </span>비록 서비스 초기에는 일정 수준의 콘텐트를 빠르게 확보하기 위해<span lang="EN-US"> IPTV </span>사업자가 콘텐트를 직접 제작 또는 외주하는 방식을 취한다고 할지라도 향후 많은 콘텐트 사업자들이 다양한 서비스를 할 수 있는 기반을 닦는 것이 매우 중요하다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h3 style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="COLOR: #0000ff"><span lang="EN-US"><span style="FONT-FAMILY: Arial">2.8. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">단일</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">디바이스를</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">넘는</span><span style="FONT-FAMILY: Arial"></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">소프트웨어</span></span></font></h3><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-FAMILY: '굴림','Gulim'"><span style="FONT-SIZE: 100%">컨버전스와 디버전스라는 단어는 최근 디지털 기기 시장의 화두다<span lang="EN-US">. </span>전화는 기본이고 라디오<span lang="EN-US">/</span>음악 감상<span lang="EN-US">, </span>인터넷<span lang="EN-US">, </span>게임 심지어<span lang="EN-US"> TV </span>시청까지 가능한 휴대폰의 등장은 상상할 수 있는 거의 모든 디지털 서비스가 가능한 것처럼 보인다<span lang="EN-US">. </span>그렇다면 이러한 휴대폰의 등장으로 사람들이 쓰는 디지털 기기의 숫자가 줄었을까<span lang="EN-US">? </span>그렇지 않다<span lang="EN-US">. </span>여전히 사람들은 집에서는 방송을 보기 위해서는<span lang="EN-US"> TV</span>를<span lang="EN-US">, </span>인터넷을 하기 위해서는<span lang="EN-US"> PC</span>를 사용한다<span lang="EN-US">. </span>매니아들은 게임을 위한 게임기와 음악 감상을 위한 오디오를 추가적으로 갖추기도 한다<span lang="EN-US">. </span>휴대용 기기에서도 마찬가지여서 휴대폰에서 음악 감상이 가능하지만 여전히 아이팟과 같은<span lang="EN-US"> MP3</span>나<span lang="EN-US"> PMP</span>를 가지고 다니는 사람 역시 많다<span lang="EN-US">. </span>다양한 서비스가 가능한 기기가 있음에도 더욱 많은 기기를 사용하게 되는 이유는 음질이나 화질<span lang="EN-US">, </span>이동성<span lang="EN-US">, </span>즐길 수 있는 게임의 종류 등이 각각의 기기마다 차이가 나고 상황에 따라 가장 적합한 기기가 다르기 때문이다<span lang="EN-US">. </span>소득 수준이 높아질수록 비용이 조금 더 들더라도 더 나은 서비스를 받고 싶어하기 때문에 사람들은 각각의 상황에 맞는 기기들을 더 많이 구매하게 된다<span lang="EN-US">. </span>하나의 기기에서 점점 더 다양한 서비스를 즐길 수 있게 되는 컨버전스 현상과 하나의 서비스를 점점 더 다양한 기기에서 즐길 수 있게 되는 디버전스 현상이 동시에 일어나고 있는 것이다<span lang="EN-US">. IPTV </span>역시 하나의 서비스로 보자면 같은 서비스 또는 연계된 서비스를 다양한 기기에서 즐기고자 하는 욕구는 충분하다<span lang="EN-US">. </span>예를 들어 거실에서<span lang="EN-US"> STB</span>를 통해 보던 영화를 외출하면서 휴대용 기기를 통해 계속 보고 싶어하는 욕구 같은 것들 말이다<span lang="EN-US">. IPTV </span>서비스 역시 단순히 인터넷으로 연결된<span lang="EN-US"> STB</span>나<span lang="EN-US"> TV</span>에서 방송을 보는 서비스로 자리매김 하기보다는 보다 다양한 기기 및 상황에서 사용할 수 있는 총괄적인 서비스로 자리 메김 해야 한다<span lang="EN-US">.</span></span></span></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><h2 style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><span style="FONT-FAMILY: Arial">3. </span></span><span style="FONT-FAMILY: 돋움; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial">결론</span></h2><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0" class="a0"><span lang="EN-US"><o:p><font size="3" face="바탕">&nbsp;</font></o:p></span></p><p style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt" class="a0"><span style="FONT-FAMILY: 바탕"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: '굴림','Gulim'"><span lang="EN-US">IPTV </span>법제화<span lang="EN-US">, SKT</span>의 하나로텔레콤 인수 등<span lang="EN-US"> IPTV</span>를 둘러싼 최근 방송<span lang="EN-US">/</span>통신 시장이 무척이나 시끄럽다<span lang="EN-US">. </span>이러한 변화의 반대편에 선 사람들은 이러한 변화가 다양한 사업자간의 공정한 경쟁을 촉진하기 보다는 규제산업으로 보호받으며 성장해온 거대 통신 기업 위주로 시장에게 방송시장을 내줌으로써 결국 소비자의 편익을 감소시킬 것이라는 논리를 펴고 있다<span lang="EN-US">. </span>만약<span lang="EN-US"> IPTV </span>서비스가 기존 유료 방송을 그대로 인터넷 망에 올려놓는 수준에 머무르고 시장이 거대 기업의 자금력에 의한 과당 경쟁으로 치닫는다면 이들의 걱정은 현실화 될 것이다<span lang="EN-US">. </span>기존 매체의 복사본이라는 평을 들으면서 재벌 기업들에게 방송을 허용하는 수단이라는 소리를 듣지 않으려면<span lang="EN-US"> IPTV</span>가 기존 매체가 주지 못하던 가치를 제공하는 것이 중요하다<span lang="EN-US">. </span>이러한 가치를 제공하기 위해 개방<span lang="EN-US">, </span>참여<span lang="EN-US">, </span>공유라는 기치를 내건 웹 <span lang="EN-US">2.0</span>이<span lang="EN-US"> IPTV</span>에 시사하는 바는 크다고 볼 수 있다<span lang="EN-US">. </span>마치 인터넷의 등장으로 사람들의 삶을 획기적으로 바꾸고 삶의 질을 증가시킨 것과 같은 변화가<span lang="EN-US"> IPTV</span>에서도 일어나기를 기대한다<span lang="EN-US">. </span>여기에 더해 말로만 인터넷 강국이지 알고 보면<span lang="EN-US"> PC</span>방만 많았지 결국 전부 외국의 기술과 장비를 거금을 주고 구축한 것뿐이었다는 위기의식을 느끼고 있는 인터넷의 전철을 밟지 않아야 한다<span lang="EN-US">. </span>그렇기 위해서는 정부와 사업자들이 단순히 가입자 수치뿐만 아니라 앞선 기술 및 서비스를 개발하고<span lang="EN-US">, </span>국제 시장을 선점하려는 노력이 필요하다<span lang="EN-US">.</span></span></span></span></p><div style="mso-element: footnote-list"><br clear="all"><font size="3" face="바탕"><hr align="left" size="1" width="33%"></font><div style="mso-element: footnote" id="ftn1"><p style="MARGIN: 0cm 0cm 0pt" class="MsoFootnoteText"><a style="mso-footnote-id: ftn1" title="" href="http://www.egloos.com/egloo/content/content.html#_ftnref1" name="_ftn1"><span class="MsoFootnoteReference"><span lang="EN-US"><span style="mso-special-character: footnote"><span class="MsoFootnoteReference"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 바탕; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA" lang="EN-US">[1]</span></span></span></span></span></a><span lang="EN-US"><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">What Is Web 2.0? Design Patterns and Business Models for the Next Generation of Software (</span><a href="http://www.oreilly.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html"><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">http://www.oreilly.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html</span></a><span style="FONT-SIZE: 100%; FONT-FAMILY: 바탕">)</span></span></p></div><div style="mso-element: footnote" id="ftn2"><p style="MARGIN: 0cm 0cm 0pt" class="MsoFootnoteText"><a style="mso-footnote-id: ftn2" title="" href="http://www.egloos.com/egloo/content/content.html#_ftnref2" name="_ftn2"><span class="MsoFootnoteReference"><span lang="EN-US"><span style="mso-special-character: footnote"><span class="MsoFootnoteReference"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 바탕; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA" lang="EN-US">[2]</span></span></span></span></span></a><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 바탕"><span lang="EN-US"></span><span class="Char0"><span style="mso-hansi-font-family: 'Times New Roman'">건축가 <span lang="EN-US">Christopher Alexander</span>가 제안한 것으로<span lang="EN-US">, </span>비슷한 문제에 대한 형식화된 해결책을 문서화 하여 반복적으로 적용하는 방법이다<span lang="EN-US">. </span>현재 건축뿐만 아니라 소프트웨어 개발 등 다양한 분야에 활용되고 있다<span lang="EN-US">.</span></span></span></span></span></p></div><div style="mso-element: footnote" id="ftn3"><p style="MARGIN: 0cm 0cm 0pt" class="MsoFootnoteText"><a style="mso-footnote-id: ftn3" title="" href="http://www.egloos.com/egloo/content/content.html#_ftnref3" name="_ftn3"><span class="MsoFootnoteReference"><span lang="EN-US"><span style="mso-special-character: footnote"><span class="MsoFootnoteReference"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 바탕; mso-bidi-font-size: 12.0pt; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: KO; mso-bidi-language: AR-SA" lang="EN-US">[3]</span></span></span></span></span></a><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 바탕"><span lang="EN-US"></span>매일경제<span lang="EN-US">, </span>월드컵 중계전쟁서 뉴미디어<span lang="EN-US"> '</span>약진<span lang="EN-US">' (<a href="http://news.mk.co.kr/newsRead.php?year=2006&amp;no=236015">http://news.mk.co.kr/newsRead.php?year=2006&amp;no=236015</a>)</span></span></span><br></p></div></div>			 ]]> 
		</description>
		<category>web 2.0</category>

		<comments>http://beyondweb.egloos.com/4269365#comments</comments>
		<pubDate>Fri, 04 Apr 2008 07:42:01 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ It's a new style! ]]> </title>
		<link>http://beyondweb.egloos.com/4258664</link>
		<guid>http://beyondweb.egloos.com/4258664</guid>
		<description>
			<![CDATA[ 
  새로운 방식으로 삶을 살아보는 것, 젊었을때가 아니면 해보기 힘든일이다.&nbsp;"<a href="http://beyondweb.egloos.com/4254575" title="회사를 벗어나서 돈 벌어보기..." name="4254575"><span style="COLOR: #3c6191">회사를 벗어나서 돈 벌어보기...</span></a>"에서 말했듯, "<a href="http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=2856753&amp;CategoryNumber=001001025001004" title="4시간"><span style="COLOR: #3c6191">4시간</span></a>"에서 영감을 받은 방식이지만 충분히 해볼만한 도전이 아닌가 싶다.<br />
<ol><br />
<li><strong>해외생활</strong><br />
세상에는 200~300만원으로 둘이서 충분히 생활할 수 있는 곳이 많다. 필리핀은 50만원이면 가정부가 딸린 집을 렌트 할 수 있고,&nbsp;중국, 태국 등 자세히 알아보진 않았지만 좀 더 찾아보면 지금과 같이 도심이 아닌 자연과 더불어 살만한 곳이 있을 것 같다. 다만 도심은 아니어도 인터넷은 어느정도 잘 되는 곳으로 알아볼 것! (한국 처럼 빠른 것을 바라진 않는다.&nbsp;웹 서핑하고 이메일쓰고 블로그 관리할 정도?)</li><br />
<li><strong>비용</strong><br />
1년에 3,000~4,000만원하는 비행기값+생활비가 결국 제일 문제. 그동안의 저축 그리고 한 1년정도&nbsp;더 일을한다고&nbsp;생각하면 1년치 비용 정도는 어찌 마련해볼 수 있지 싶다. 지금 사는 집은 월세를 주면 생활비 일부 해결 가능.</li><br />
<li><strong>이동</strong><br />
한 도시/위치에서 3~6개월, 한 국가에서 1년~1년반 생활을 하면 다른 곳으로 옮기는 것이 원칙! 항상 새로운 느낌을 갖고 싶다.</li><br />
<li><strong>언어</strong><br />
가능하면 새로운 언어를 배울 수 있는 곳이면 금상첨화! 따라서 스페인어를 쓰는 남미 쪽이나 기타 비영어권 국가도 괜찮은 선택! 최근 좀 알아보고 있는데, 물가도 싸고 스페인어를 배울 수 있는 아르헨티나도 괜찮은 선택!</li><br />
<li><strong>운동</strong><br />
한국에서는 늘 바쁘다는 핑계로 운동을 못하는데, 새로운 삶에서 운동과 언어 배우기는 생활의 중심! 스킨스쿠버, 춤, 격투기 등 한국서 배우기 힘든 종목 한 가지씩 배우기!</li><br />
<li><strong>프로그래밍</strong><br />
특히 그동안 관심은 많았지만 실제로 건드려보지 못하던 인공지능, 컴파일러, 인지과학 등의 주제와 연결된 프로젝트라면 OK! 오픈 소스 프로젝트에 참여하는 것이 아주 좋을 듯! 물론 해당 프로젝트에서 날 받아준다는 보장은 없지만, 뭐 노력하다 보면 어찌 되겠지. 하여튼 돈과 상관 없이 정말 해보고 싶었던 주제의 프로그래밍을 하는 것이 목표! (웹&nbsp;쪽도 좋긴 하지만 회사에서 했던 것이니 이쪽으로 하기는 조금...)</li><br />
<li><strong>돈벌기</strong><br />
이게 관건인데, 오픈 소스 개발을 하면서 관련된 책쓰기, 번역 등으로 원격에서 돈을 벌 수 있다면 최고. 아니면&nbsp;원격으로 할 수 있는&nbsp;프로그래밍 플젝 등도&nbsp;해볼 것. 일단 눈높이는 한달에 100~150만원만 벌기. 생활비가 충족되는 수준이면 그 이상&nbsp;너무 오래 일하고 싶은 생각은 없다.</li><br />
<li><strong>일과</strong><br />
하루 4시간 운동 &amp; 여행 &amp; 놀기, 4시간 언어 배우기, 4시간 프로그래밍 및 일하기, 주말에는 완전 놀기! 생각만 해도 행복하다.</li><br />
<li><strong>최악의 결과</strong><br />
돈벌기는 완전 실패, 따라서 1년후 3,000~4,000만원은 완전 소진후 한국 귀환. 다시 적당한 회사를 찾아서 취직(1년 놀았다고 취직이 안되려나 ㅋㅋ). 그래도 1년간의 해외 생활 경험은 남음. 최소한 열심히 했다면 1개국어를 추가적으로 사용할 수 있게되고, 지금보다는 훨씬 건강한 몸과 마음을 가짐. (사고나 천재 지변 같은 경우는 제외한 최악의 결과, 이건 한국에 있어도 날 수 있는 거니까)</li><br />
<li><strong>최상의 결과</strong><br />
원격 근무로 생활비 충족 가능. 저축의 일부는 소진하지만 지속적으로 새로운 나라를 경험하며 살 수 있음. 오픈소스 플젝과 관련 책등이 인정받아 조그만 필드라도 나름 전문가로 인정받음. 3년 뒤면 1~2개국어를 추가로 하고, 다양한 외국인과 친구가 됨. 그 이후 외국에서 바로 취업 또는 한국으로 돌아와서 취업.</li><br />
</ol><br />
--------------------<br />
정말 이룰 수 있을련지는 모르겠지만 가끔은 새로운 생활을 꿈꿔 보는 것 만으로도 생활의 활력이 되기도 한다. 뭐 아직 젊은데다가, 최악의 결과를 생각해봤지만 그렇게 크게 잘못될게 없다.<br />
<br />
- 참고<br />
<br />
<a title="" href="http://blog.naver.com/melanie1205"><span style="COLOR: #3c6191">2년간 남미를 여행 중이신 멋지신 분</span></a>			 ]]> 
		</description>
		<category>잡다</category>

		<comments>http://beyondweb.egloos.com/4258664#comments</comments>
		<pubDate>Sun, 30 Mar 2008 19:05:15 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 회사를 벗어나서 돈 벌어보기... ]]> </title>
		<link>http://beyondweb.egloos.com/4254575</link>
		<guid>http://beyondweb.egloos.com/4254575</guid>
		<description>
			<![CDATA[ 
  애자일 이야기 블로그에서 "<a href="http://agile.egloos.com/3584363">주당 16시간 일하기</a>"라는 글을 읽고 바로산 책 "<a href="http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=2856753&amp;CategoryNumber=001001025001004">4시간</a>"을 읽었다. 최소한의 시간 투자로 꼭 필요한 일만 수행하고서도 돈을 버는 방법, 그리고 더 중요한 가족과 삶에 충실히 사는 이야기, 읽는 내내 무척 부러운 삶이었다. 과연 내가 이런 삶을 살기 위해서는 어떻게 해야할까?<br><br>회사를 다니다보면 다른 사람들의 예를 보나, 우리 회사의 예를 보나 주당 4시간이나 16시간은 커녕, 사실 정시출퇴근도 하기 힘든 것이 일반적이다.&nbsp;심지어 평일은 거의 야근이 기본에 주말 근무도 밥먹듯이 하는 경우도 많다. 사람들이 모두 이를 올바르지 않은 것이라고 생각하지만&nbsp;책에서 나온것처럼 회사와 협상을 하던, 회사를 뛰쳐나가서 일을 하는 경우는 흔하지 않다.<br><br>가장 큰 원인은 두려움. 사실 하루 16시간 일하는 사람치고 그 16시간이 모두 효율적/효과적으로 일하는 사람은 매우 드물다. 과연 나는 단순히 열심히 일에 몰중해 있는 것 뿐만 아니라 그 일이 실제로 회사던, 돈을 버는 것이던 간에 도움이 되는 것에 신경을 쓰고 살고 있을까? 단지 회사가 시켰기 때문에 그 일을 주구장창&nbsp;하고 있는 것은 아닐까? 어쨌든 중단기적으로는 일을 한 것이 진짜 효과가 있었냐 보다는 단지 1달이 지났다고 월급을 주는 것에 만족해서 열심히 일하는 모습을 보이기위해 16시간을 앉아 있는 것을 아닐까?<br><br>과연 내가 회사라는 울타리가 없어도 내가 가진 기술, 지식 등을 가지고 실제 다른 사람에게 도움을 주고 그 대가로 돈을 벌 수 있을까? 과연 내가 그런것을 해본적은 있나?&nbsp;그 대가가 회사가 나에게 지불하는 것보다 클까? 내가 정말 그럴 수 있다면 굳이 회사에 나가 하루 16시간씩 일하는 것보다는 내가 필요한 금액이 될때까지, 그것이 주당 4시간이면 더욱 좋고, 일하고 나머지 시간은 삶을 즐길 수 있지 않을까? 물론 그 가치가 너무 낮다면 그 가치를 높일때 까지는 어쩌면 회사에 있는 것 보다 더 오래 일하고, 더 많은 마음 고생을 해야겠지...<br><br>한번 생각해봐야겠다. 내가 회사를 벗어나서 내 스스로 돈을 벌어본적이 언제 있는지... 또 만약 앞으로 그런다면 어떤일을&nbsp;할&nbsp;수 있는지... 일한 시간이 아니라 만들어낸 가치에 집중할 것!			 ]]> 
		</description>

		<comments>http://beyondweb.egloos.com/4254575#comments</comments>
		<pubDate>Sat, 29 Mar 2008 02:04:31 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
	<item>
		<title><![CDATA[ TV, 새로운 웹의 창이되다. ]]> </title>
		<link>http://beyondweb.egloos.com/4253497</link>
		<guid>http://beyondweb.egloos.com/4253497</guid>
		<description>
			<![CDATA[ 
  <p>앞의 글에서도 잠깐 얘기했지만 그동안 새로운 필드에서 일하느라 블로깅이 뜸했 아니 완전 멎어있었습니다. 물론 여전히 웹을 사용할 수 있는 환경을 늘리는 일을 하고 있었습니다. 바로 TV에서 웹을 사용할 수 있도록 하는 일입니다.<br />
<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200803/28/39/c0042839_47ece90039cc9.png" width="500" height="325.1953125" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200803/28/39/c0042839_47ece90039cc9.png');" /></div><strong></p><div style="TEXT-ALIGN: center"><strong>TV 신문 서비스<br />
</strong></div><p></strong><br />
<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200803/28/39/c0042839_47ecea1677666.png" width="432" height="314" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200803/28/39/c0042839_47ecea1677666.png');" /></div><strong></p><div style="TEXT-ALIGN: center"><strong>TV 홈쇼핑 서비스</strong></div><p></strong><br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200803/28/39/c0042839_47ecea6e4b4f6.png" width="499" height="280" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200803/28/39/c0042839_47ecea6e4b4f6.png');" /></div><strong></p><div style="TEXT-ALIGN: center"><strong>TV 네이버 서비스<br />
</strong></div><p></strong><br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200803/28/39/c0042839_47eceac352fbe.png" width="500" height="331.337325349" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200803/28/39/c0042839_47eceac352fbe.png');" /></div><strong></p><div style="TEXT-ALIGN: center"><strong>TV 노래방 서비스<br />
</strong></div><p></strong><br />
물론 아직은 공개된 웹이라기 보다는 TV 환경에 맞춘 Closed Portal 형식이지만, 다양한 웹 표준을 지원하는 만큼 향후에는 다양한 인터넷 서비스가 가능해질 것으로 생각합니다. TV 네이버 같은 경우에도 인터넷 상의 서비스와 연계한 검색/블로그/UCC 등의 기능을 제공하고 있습니다. 앞으로 IPTV 외에도 케이블이나 지상파와 같은 TV 환경, 그리고 더 나아가 좀 더 다양한 디바이스에 웹을 적용하고 언제 어디서나 원하는 정보/서비스를 찾을 수 있는 환경을 만들어가겠습니다.</p><br />
<br />
- 관련해서 읽어볼만한 글(추가)<br />
<br />
<ul><li><a title="HDTV에서 인터넷을?" href="http://joone.net/blog/?p=248">HDTV에서 인터넷을?</a></li></ul>			 ]]> 
		</description>

		<comments>http://beyondweb.egloos.com/4253497#comments</comments>
		<pubDate>Fri, 28 Mar 2008 13:00:34 GMT</pubDate>
		<dc:creator>달삼</dc:creator>
	</item>
</channel>
</rss>
