<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/style/rss/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0">
	<channel>
		<title>Rhio.Kim&#039;s Blog - drawing Laputa Web -</title>
		<link>http://rhio.tistory.com/</link>
		<description>- for Laputa Web -
javascript Architecture</description>
		<language>ko</language>
		<pubDate>Wed, 20 Aug 2008 16:03:53 +0900</pubDate>
		<generator>Tistory 1.1</generator>
		<image>
		<title>Rhio.Kim&#039;s Blog - drawing Laputa Web -</title>
		<url><![CDATA[http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzQwMTE1QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMC5qcGc=]]></url>
		<link>http://rhio.tistory.com/</link>
		<description>- for Laputa Web -
javascript Architecture</description>
		</image>
		<item>
			<title>Ajax/Rich UI 개발 방법론 - CRUD Pattern</title>
			<link>http://rhio.tistory.com/257</link>
			<description>&lt;span style=&quot;font-weight: bold;&quot;&gt;CRUD(create read update delete) Pattern정의&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs8.tistory.com/original/31/tistory/2008/08/19/22/40/48aacd34c71d2&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/31/tistory/2008/08/19/22/40/48aacd34c71d2&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;50&quot; width=&quot;50&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;이번 패턴을 정리하면서 어떤 이름을 지어볼까 매우 고민 스러웠습니다.&lt;br /&gt;마땅한 이름도 생각이 나질 않고...&lt;br /&gt;&lt;br /&gt;CRUD pattern 이라고 명명 했지만 처음 이름은 XHR pattern 이였는데..&lt;br /&gt;문서의 흐름과 맞지 않는 것 같기도 하고...(혼자만의 가비지...)&lt;br /&gt;&lt;br /&gt;자세한 사항은 첨부 파일을 예제소스는 example.js 파일을..&lt;br /&gt;prototype.js 를 자주 활용하다보니 예제 또한...&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;모티브 : &lt;br /&gt;웹 페이지에서 일어나는 사용자의 단일 액션에 대응하는 일련의 프로세스를 하나의 클래스에서 구현한다.&amp;nbsp; 일련의 프로세스는 사용자가 서버에 요청을 하기 위해서 클릭을 한다거나 입력을 하고 요청을 하고 그에 따른 서버 측에서 처리가 이루어지고 처리 결과를 다시 사용자의 브라우저에 통보를 하고 브라우저는 결과를 통해 사용자에게 결과를 인식 시키는 일련의 작업을 말합니다. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;목적 및 장점 : &lt;br /&gt;1. &amp;nbsp; &amp;nbsp;CRUD(Create, Read, Update, Delete) 인터랙션에 대한 처리와 시스템 장애에 대한 빠른 문제 파악과 대응&lt;br /&gt;&lt;br /&gt;조건 : &lt;br /&gt;1. &amp;nbsp; &amp;nbsp;XHR Wrapped클래스가 존재하여야 한다. (prototype.js, dojo, jQuery, etc)&lt;br /&gt;2. &amp;nbsp; &amp;nbsp;XHR 오브젝트를 이용한 데이터 처리가 있어야 한다. &lt;br /&gt;3. &amp;nbsp; &amp;nbsp;요청을 위한 단계와 응답에 대한 처리 단계가 간단하고 명료해야 한다.&lt;br /&gt;&lt;br /&gt;제약 : &lt;br /&gt;1. &amp;nbsp; &amp;nbsp;복잡한 UI 처리 및 CRUD이외의 처리가 다소 병행되어 진다면 클래스 혹은 객체가 무거워질 수 있다.&lt;br /&gt;&lt;br /&gt;단점 :&lt;br /&gt;1. &amp;nbsp; &amp;nbsp;특정한 인터랙션 위한 패턴으로 확장(extend) 및 소스 재사용 면에서 용이하지 못함&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/jk150000000000.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; CRUD_pattern.pdf&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/ik150000000000.js&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; example.js&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;중략...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;요약&lt;br /&gt;&lt;br /&gt;Ajax을 통한 개발에 있어서 사용자의 경험(user experience)은 매우 중요해졌습니다.&amp;nbsp; 그만큼 사용자의 액션도 다양해졌고 매우 고급스럽게 바뀌어 가고 있습니다.&amp;nbsp; 간단하게 인디케이터만 봐도 그렇습니다.&amp;nbsp; 예전 Web1.0 방식에서는 웹 서버의 부하로 페이지가 열리지 않을 때 사용자는 단지 White Background 즉 아무것도 없는 하얀 백지 상태의 화면만 주시하고 있었어야 했습니다. &lt;br /&gt;&lt;br /&gt;하지만 현재에는 인디케이터를 통해 사용자의 요청에 대한 진행 상황을 유연하게 표현함으로써 사용자의 경험을 존중해 줍니다.&lt;br /&gt;&lt;br /&gt;이렇게 복잡해진 부분도 있지만 사용자 요청에 대한 대부분은 서버로부터 데이터를 요청하거나 입력, 갱신, 삭제에 대한 경우입니다.&amp;nbsp; &lt;span style=&quot;font-weight: bold;&quot;&gt;요청에 대한 응답에 있어서 그 처리가 간단하고 명료한 시스템&lt;/span&gt;이라면 CRUD 패턴을 이용해서 하나의 요청과 하나의 응답에 대한 처리를 하나의 클래스에서 처리한다면 시스템의 장애가 발생 시 어떤 부분 즉 어떤 사용자 액션에서 발생했는지 쉽게 파악하고 대응할 수 있게 됩니다.&lt;br /&gt;&lt;br /&gt;하지만 설계 면에 있어서 향후 시스템의 확장이 있을 경우나 사용자의 액션에 대한 처리가 복잡해지게 되면 대응하더라도 설계 구조 자체를 뒤바꿔 할 여지가 다분해 보입니다.&lt;br /&gt;&lt;br /&gt;실제로 저는 BBS나 콘텐트의 댓글 시스템에 이전에 포스팅 한 &lt;a href=&quot;http://rhio.tistory.com/251&quot; target=&quot;_blank&quot;&gt;Design by Design Pattern&lt;/a&gt; 과 함께 CRUD Pattern을 이용하여 개발을 했습니다.&amp;nbsp; 유지 보수가 발생하지 않아서 효율 및 실무에 적용할 만한 패턴인지 증명되지는 않았습니다.&lt;br /&gt;&lt;br /&gt;이 내용은Ajax/Rich UI의 특정한 개발을 위한 방법론에 가깝다고 봐도 무방합니다.&amp;nbsp; 또한 개인적인 경험에 의한 정리이며 일반적인 시스템 설계에서 말하는 패턴의 정의와는 상이하거나 다른 의미를 갖을 수 있습니다.&lt;br /&gt;&lt;br /&gt;</description>
			<category>Ajax</category>
			<category>Ajax</category>
			<category>Ajax 개발 방법론</category>
			<category>CRUD</category>
			<category>JavaScript</category>
			<category>Pattern</category>
			<category>Rhio JTDD</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/257</guid>
			<comments>http://rhio.tistory.com/257#entry257comment</comments>
			<pubDate>Tue, 19 Aug 2008 22:36:39 +0900</pubDate>
		</item>
		<item>
			<title>Ajax 개발 시  HTML Design</title>
			<link>http://rhio.tistory.com/256</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/19/tistory/2008/08/18/16/04/48a91f0ae959c&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/19/tistory/2008/08/18/16/04/48a91f0ae959c&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;369&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&amp;lt;&amp;lt; 일반적인 디자인 패턴 &amp;gt;&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;이 그림을 보고 과연 어떤 팁일까? &lt;br /&gt;이해하지 못하시는 분들도 이해하시더라도 보잘것 없어 보일 수도 있겠습니다.&lt;br /&gt;하지만 좀더 깊게 생각해보면 다양한 이점이 숨어있습니다.&lt;br /&gt;&lt;br /&gt;위의 그림을 구현하는 것은 매우 간단해 보입니다.&lt;br /&gt;하나의 영역에 로그인 화면과 로그아웃 화면에 함께 표출 되도록 디자인을 하고 display 값을 통해서 로그인 상태, 로그아웃 상태를 볼 수 있음을 의미합니다.&lt;br /&gt;&lt;br /&gt;만약 서버 사이드 개발자라면 이런 경우 if문을 통해서 사용자가 로그인한 경우라면 로그인 된 상태의 HTML 소스를 표시하고 그렇지 않는 경우 로그인 할 수 있는 화면 소스를 표시할 것입니다.&lt;br /&gt;&lt;br /&gt;그리고 디자이너라면 로그인 된 HTML 파일, 로그인 되지 않는 HTML 파일로 각각 디자인을 처리하는 경우가 많을 것입니다. (꼭 그렇지 않는 경우도 있습니다.)&lt;br /&gt;&lt;br /&gt;이런 방식은 Web1.0 방식의 전형적인 방식으로 Ajax 개발 시에는 좀더 웹 표준을 준수하고 사용자의 경험을 존중해줄 수 있는 HTML Design 설계를 해야할 것입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그에 있어 위의 그림은 기본적인 화면 설계 방법중에 하나일 것입니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;요약해보면 크게 아래와 같은 이점이 있습니다.&lt;br /&gt;
&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;&lt;br /&gt;첫째 &lt;/span&gt;디자이너와 개발자 모두 하나의 페이지에서 다양한 액션을 프로토타입핑 손쉽게 해볼 수 있습니다.&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-weight: bold; color: rgb(212, 26, 1);&quot;&gt;&lt;br /&gt;둘째 &lt;/span&gt;하나의 페이지에서 일어나는 액션과 사용자 경험에 대한 것을 모두 담고 있기 때문에 관리할 페이지가 줄어듭니다.&amp;nbsp; (예를 들어 여러 페이지에 적용되어있던 css가 변경되어질 경우가 불 필요한 작업량이 줄어든다.)&lt;/span&gt;&lt;br style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-weight: bold; color: rgb(155, 24, 193);&quot;&gt;&lt;br /&gt;셋째&lt;/span&gt; Ajax/Rich UI 개발자들에게는 엘리먼트의 CSS class name 통해서 원하는 처리를 손쉽게 할 수 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;즉 &lt;span style=&quot;text-decoration: underline; font-weight: bold;&quot;&gt;디자이너에게도 Ajax/Rich UI 개발을 위한 기술적인 이해와 사용자 경험(User Experience)에 대한 요구 사항을 디자인 단계에서 부터 적용&lt;/span&gt;시켜야 한다는 것입니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs8.tistory.com/original/33/tistory/2008/08/19/18/27/48aa921005819&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/33/tistory/2008/08/19/18/27/48aa921005819&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;279&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&amp;lt;&amp;lt; 사용자 경험과 Ajax/Rich UI를 위한 디자인 패턴 &amp;gt;&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;로그인 UI에 관한 부분을 위에서 설명한 부분을 추가해 다시 한번 그려 보았습니다.&lt;br /&gt;&lt;br /&gt;네모단 박스는 모두 div이고 로그인 실패 알림 영역과 인디케이터 부분까지 표시를 한다는 것&lt;br /&gt;기획자와 디자이너, 퍼블리셔, 디벨로퍼까지 모든 부분에서 사용자 경험(user experience)에 대한 부분에 관심을 갖고 기획하고 디자인을 하고 퍼블리싱을 하고 개발을 해야하지 않을까 생각해봅니다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;각 분야에서 자기만의 업무 분야도 중요하지만... 하나의 본질은 웹 서비스를 사용하는 사용자에게 장애없이 원한할한 서비스로서 만족감을 느끼게 하기 위함이니 늘 서로가 고민해야할 부분인것 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>
			<category>Ajax</category>
			<category>CSS</category>
			<category>DESIGN</category>
			<category>Display</category>
			<category>experience</category>
			<category>HTML</category>
			<category>디자인</category>
			<category>사용자 경험</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/256</guid>
			<comments>http://rhio.tistory.com/256#entry256comment</comments>
			<pubDate>Mon, 18 Aug 2008 15:59:15 +0900</pubDate>
		</item>
		<item>
			<title>리앙쿠르 암초(Liancourt Rocks) 독도는 일본땅!? 그렇담 일본은 한국섬</title>
			<link>http://rhio.tistory.com/253</link>
			<description>네이트온 긴급 속보가 띄길레 찾아본 독도에 대한 정보들을 모아봤습니다.&lt;br /&gt;독도 과연 누구의 땅일까? &lt;br /&gt;&lt;br /&gt;17세기의 역사때부터 한국의 땅임을 증명해주고 있는 자료들이 많은데&lt;br /&gt;또 다시 2차 세계대전에 패배한 일본인들은 독도가 일본의 땅이다라고 명시되지도 않는 국제법을 &lt;br /&gt;언급하면서 독도는 일본의 땅이라고 교과서에까지 실는다니..&lt;br /&gt;&lt;br /&gt;과연 누구의 땅일까?&amp;nbsp; 누구의 땅인가요?&lt;br /&gt;라고 물을때 일본인들은 대부분이 샌프란시스코 조약에 대한 이야기를 언급할 것이고 한국인들은 반대로&lt;br /&gt;대부분이 당연히 울릉도의 행정구역으로 되어있기 때문에 혹은 동요에 나오니까!!&lt;br /&gt;&lt;br /&gt;어떤 막연한 대답밖에 못할 것이다. 하지만 일본인들은 확실히 다르다.&amp;nbsp; 국제법을 두둔하며 다케시마는 니뽄 땅이다라는 설득력있는 주장을 펼칠것이다. 이에 대응할만한 자료를 모으려&amp;nbsp; 생각나는 참에 공부도 할겸 구글맵에 &quot;Korea Dokdo&quot; 라고 검색했더니&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/7/tistory/2008/07/14/15/39/487af49db3f79&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/7/tistory/2008/07/14/15/39/487af49db3f79&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;386&quot; width=&quot;499&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;아무튼 대한민국이라고 뜨긴 하는데..&lt;br /&gt;&lt;br /&gt;그 다음에 위키에 실린 글을 보면 역시 국내 자료 매우 자세히 독도에 대해서 설명해 주고 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/29/tistory/2008/07/14/15/59/487af9661ea68&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/29/tistory/2008/07/14/15/59/487af9661ea68&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;310&quot; width=&quot;620&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;초기에 프랑스의 포경선 리앙쿠르 호가 독도를 발견하고 리앙쿠르 암초(Liancourt Rocks)라는 이름을&lt;br /&gt;붙인 이레 늘 한국 땅이라고만 여겼는데..&lt;br /&gt;&lt;br /&gt;일본은 역사를 되집어 가며 잃어버린(?) 자기네 땅이라 호소하고 있다.&lt;br /&gt;&lt;br /&gt;위키 참조 내용&lt;br /&gt;----------------&lt;br /&gt;그중 하나인 1946년 1월 29일 2차 세계대전에서 패배한 일본을 통치하던 연합군 최고 사령부는 일본에게&lt;br /&gt;약간의 주변지역을 정치상, 행정상 일본으로부터 분리하는 것에 관한 각서를 다음과 같이 지정하고 있다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &#039;Gulim&#039;,&#039;Sans-serif&#039;;&quot;&gt;For the purpose of this directive, Japan is defined to include the
four main islands of Japan (Hokkaido, Honshu, Kyushu and Shikoku) and
the approximately 1,000 smaller adjacent islands, including the
Tsushima Islands and the Ryukyu (Nansei) Islands north of 30° North
Latitude (excluding Kuchinoshima Island); and &lt;/span&gt;&lt;b style=&quot;background-color: rgb(255, 153, 0); font-family: &#039;Gulim&#039;,&#039;Sans-serif&#039;;&quot;&gt;excluding&lt;/b&gt;&lt;span style=&quot;background-color: rgb(255, 153, 0); font-family: &#039;Gulim&#039;,&#039;Sans-serif&#039;;&quot;&gt; (a) Utsuryo (Ullung) Island, &lt;/span&gt;&lt;b style=&quot;background-color: rgb(255, 153, 0); font-family: &#039;Gulim&#039;,&#039;Sans-serif&#039;;&quot;&gt;Liancourt Rocks (Take Island)&lt;/b&gt;&lt;span style=&quot;background-color: rgb(255, 153, 0); font-family: &#039;Gulim&#039;,&#039;Sans-serif&#039;;&quot;&gt;
and Kuelpart (saishu or Cheju) Island&lt;/span&gt;&lt;span style=&quot;font-family: &#039;Gulim&#039;,&#039;Sans-serif&#039;;&quot;&gt;, (b) the Ryukyu (nansei) Islands
south of 30° North Latitude (including Kuchinoshima Island), the Izu,
Kanpo, Sonin (Ogasawara) and Volcano (Kazan or Iwo) Island Groups, and
all other outlying Pacific Islands including the Daito (Ohigashi or
Gagari) Islands Group, and Parace Vela (Okino-tori), Kercus
(Kinami-tori) and Canges (Nakano-tori) Islands, and (c) the Kurile
(Ohishima) Islands, the Habomai (Hapomazo) Islands Group (including
Suisho, Yuri, ?ki-yuri, ?hibotsu and Taraku Islands) and ?oikotan
Island.&lt;/span&gt;&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;좀더 자세한 사항은 위키를 참고하길 바랍니다.&lt;br /&gt;------------------&lt;br /&gt;&lt;br /&gt;좀더 결론적으로 다가가 보자..&lt;br /&gt;&lt;br /&gt;1454년(세종 36년)에 편찬된 세종실록 지리지의 50쪽 셋째줄에는 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;무릉과 우산의 두섬이 언급되어 있고&lt;/span&gt; 1530년에 조선에 펴낸 팔도총도에는 우산도가 지금의 독도 위치와 반대인 서쪽에 그려져 있고 또한 이 지도에 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;대마도는 조선땅으로 표기되어 있다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs8.tistory.com/original/21/tistory/2008/07/14/16/10/487afbcfa48bb&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/21/tistory/2008/07/14/16/10/487afbcfa48bb&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;392&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;아래의 기사에서 좀더 섬세한 문제점 분석과 해결점을 제시해줄 수 있으리라 판단됩니다.&lt;br /&gt;더 많은 기사들이 있겠지만 아래의 글을 보고 나면 좀더 현재의 독도 문제의 해결점을 빨리 찾을 수 있을 것&lt;br /&gt;같다는 생각을 해봅니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;위키(독도)&lt;/span&gt;&lt;br /&gt;http://ko.wikipedia.org/wiki/%EB%8F%85%EB%8F%84&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;샌프란 시스코 조약 원문&lt;/span&gt;&lt;br /&gt;http://www.taiwandocuments.org/sanfrancisco01.htm&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;미국은 독도문제 해결에 성의를 보여라!&lt;/span&gt;&lt;br /&gt;http://www.pressian.com/scripts/section/article.asp?article_num=40050228094952&amp;amp;s_menu=%EC%84%B8%EA%B3%84&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;독도를 뒷거래한 美-日 샌프란시스코 조약 &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;http://blog.empas.com/chltnrhkd/read.html?a=20104360&lt;br /&gt;&lt;br /&gt;</description>
			<category>생활</category>
			<category>독도</category>
			<category>독도는 우리땅</category>
			<category>리앙쿠르</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/253</guid>
			<comments>http://rhio.tistory.com/253#entry253comment</comments>
			<pubDate>Mon, 14 Jul 2008 16:05:55 +0900</pubDate>
		</item>
		<item>
			<title>Ajax/Rich UI 개발 방법론 - Design by Design Pattern</title>
			<link>http://rhio.tistory.com/251</link>
			<description>&lt;br /&gt;&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Design by Design Pattern정의&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/jk1.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Design_by_design_pattern.pdf&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;모티브 : &lt;/span&gt;&lt;br /&gt;HTML 디자인을 개발자에 의해서 동적으로 생성되도록 처리하려면 개발자에 의해서 디자인을 javascript의 정해진 변수에 넣고 프로세서에 맞춰 필요한 디자인을 Document에 렌더링을 해야합니다.&amp;nbsp; 유지보수 시 디자인적인 추가 요소가 발생할 경우 개발자가 디자인을 수정하거나 편집해야 하는 일이 발생한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;목적 및 장점 : &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;1. &amp;nbsp; &amp;nbsp;HTML로 구성되어진 레이아웃을 ( HTML 파일 자체를) 개발자에 의해서 추가되거나 수정되지 않는데 목적을 둡니다.&amp;nbsp; 즉 디자인과 개발의 완벽한 분리를 꾀하는데 목적을 둠&lt;br /&gt;2. &amp;nbsp; &amp;nbsp;유지보수에 있어 디자인과 개발의 업무량을 최소화 하기 위함&lt;br /&gt;3. &amp;nbsp; &amp;nbsp;초기 접속 시 불필요한 동적 렌더링을 피할 수 있다.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;조건 : &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;1. &amp;nbsp; &amp;nbsp;디자인 시 거의 모든 부분이 Div 구조로 디자인 되어야 한다.&amp;nbsp; Table과 같이 다른 특성을 가지고 있는 영역끼리 하나의 Layout으로 연관되어 질 경우 개발자에 의해서 처리되는 로직이 매우 복잡해진다.&lt;br /&gt;2. &amp;nbsp; &amp;nbsp;디자인 시 특징이 다른 Div Element에는 유니크 한 ID를 부여할 수 있어야 한다.&lt;br /&gt;3. &amp;nbsp; &amp;nbsp;개발자가 ID를 부여할 경우에 개발 설계에 의한 최소한의 ID만 부여해야 한다.&lt;br /&gt;4. &amp;nbsp; &amp;nbsp;부분적으로 Table 을 사용해야 할 경우 개발자의 협의가 필요할 수도 있다.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;제약 : &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;1. &amp;nbsp; &amp;nbsp;개발자뿐만 아니라 디자이너도 DOM 에 대한 기술적 이해가 필요하다.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;단점 :&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-left: 40px;&quot;&gt;1. &amp;nbsp; &amp;nbsp;HTML의 구조가 변경되면 구조에 맞게 javascript개발 부분도 변경되어야 한다.&lt;br /&gt;즉 HTML 버전관리와 Javascript 버전관리가 함께 이뤄져야 합니다.&lt;br /&gt;2. &amp;nbsp; &amp;nbsp;페이지 접속 시 디자인 레이아웃의 흐트러짐 현상이 있을 수 있다.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;좀더 자세한 패턴에 대한 설명은 PDF 문서에 담았습니다.&lt;br /&gt;&lt;br /&gt;이 내용은Ajax/Rich UI의 특정한 개발을 위한 방법론에 가깝다고 봐도 무방합니다.&amp;nbsp; 또한 개인적인 경험에 의한 정리이며 일반적인 시스템 설계에서 말하는 패턴의 정의와는 상이하거나 다른 의미를 갖을 수 있습니다.&lt;br /&gt;</description>
			<category>Tech</category>
			<category>Ajax</category>
			<category>Design by design</category>
			<category>JavaScript</category>
			<category>자바스크립트</category>
			<category>패턴</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/251</guid>
			<comments>http://rhio.tistory.com/251#entry251comment</comments>
			<pubDate>Tue,  1 Jul 2008 14:27:26 +0900</pubDate>
		</item>
		<item>
			<title>적어도 현재보다는 약 1% 이상 국가의 폭력적 성향은 증가할꺼라 본다.</title>
			<link>http://rhio.tistory.com/250</link>
			<description>도대체 언제까지...&lt;br /&gt;왜 창과 방패를 들고 날뛰는 그들 앞에는 지위와 지시를 하는 리더는 없는 것일까?&lt;br /&gt;&lt;br /&gt;군이라는 집단은 &lt;span style=&quot;font-weight: bold;&quot;&gt;계급 체계로 선임과 후임으로 나눠&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;color: rgb(0, 128, 0);&quot;&gt;명령&lt;/span&gt;에 의해 행동하는 곳&lt;/span&gt;이라 알고 있건만&lt;br /&gt;도대체 저들은 어떠한 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;명령&lt;/span&gt;을 받았길레... 창과 방패를 휘두르며 그들의 &lt;span style=&quot;color: rgb(255, 0, 0); font-weight: bold;&quot;&gt;폭력성&lt;/span&gt;을 키워나가는지...&lt;br /&gt;&lt;br /&gt;그들이 날뛰는게 답답한게 아니라 아무런 생각없이 폭력성을 극대화 시켜 단지 &lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;혈&lt;/span&gt;을 보기 위한,&lt;br /&gt;분노로 가득찬 날뜀으로 밖에는 안봐지는 이유...&lt;br /&gt;&lt;br /&gt;그들이 사회에 나와 도대체 그런 경험을 토대로 사회생활에 얼마나 잘 적응할지..&lt;br /&gt;그리고 그들의 미래에 얼마나 작은 혹은 큰 영향을 주어질지...&lt;br /&gt;&lt;br /&gt;2MB 정권은 &lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 255);&quot;&gt;쇠고기 파동&lt;/span&gt;이라는 국난과 함께 향후 또 다른 큰 문제를 야기할 원인을 생산해 내고 &lt;br /&gt;있는지도 모르겠다.&lt;br /&gt;&lt;br /&gt;그들이 향후 2년후 모두 제대해서 작은 시비를 가누는 말다툼 앞에 과연 얼마나 폭력성을&lt;br /&gt;억누를 수 있을지 모르겠다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; text-decoration: underline;&quot;&gt;적어도 현재보다는 약 1% 이상 국가의 &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;폭력적 성향&lt;/span&gt;은 증가할꺼라 본다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;제발 미래의 내 동려와 친구와 혹은 제자가 될지 모르는 그들의 탓을 하고 싶지는 않다.&lt;br /&gt;&lt;br /&gt;제발 지금 저렇게 창과 방패를 감정에 의해 휘두르는 그들 앞에 리더가 나와 시위대에게 폭력을 써야한다면 &quot;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 255);&quot;&gt;폭력 진압 하라&lt;/span&gt;&quot; 라고 외쳐 주기를 바란다.&lt;br /&gt;그게 아니라면 그들의 &lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;폭력성&lt;/span&gt;을 진정시켜 국가의 안위를 위한 진압을 해주길 부탁한다.&lt;br /&gt;&lt;br /&gt;시위대가 보이지 않는 폭력진압 현장의 가장 뒷선에서 뒷짐을 지고 명령하는 그런 모습은 제발&lt;br /&gt;보이지 말았으면 한다.&lt;br /&gt;&lt;br /&gt;&lt;object width=&quot;400&quot; height=&quot;345&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0&quot; id=&quot;V000210864&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://play.tagstory.com/player/TS00@V000210864@S000000200&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;embed src=&quot;http://play.tagstory.com/player/TS00@V000210864@S000000200&quot; width=&quot;400&quot; height=&quot;345&quot; name=&quot;V000210864&quot; allowScriptAccess=&quot;always&quot; allowFullScreen=&quot;true&quot; quality=&quot;high&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;당하는 시위대&lt;br /&gt;&lt;br /&gt;
&lt;object width=&quot;400&quot; height=&quot;345&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0&quot; id=&quot;V000210858&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://play.tagstory.com/player/TS00@V000210858&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;embed src=&quot;http://play.tagstory.com/player/TS00@V000210858&quot; width=&quot;400&quot; height=&quot;345&quot; name=&quot;V000210858&quot; allowScriptAccess=&quot;always&quot; allowFullScreen=&quot;true&quot; quality=&quot;high&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;당하는 전/의경&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic; color: rgb(153, 153, 102);&quot;&gt;아침부터 그리고 블로그 성격에 맞지 않는 정치적 사회적 글을 기재하지 않고 싶었지만 답답한 마음이 가시질 않는다.&lt;/span&gt;&lt;br /&gt;</description>
			<category>생활</category>
			<category>시위대</category>
			<category>촛불집회</category>
			<category>폭력진압</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/250</guid>
			<comments>http://rhio.tistory.com/250#entry250comment</comments>
			<pubDate>Tue,  1 Jul 2008 09:20:31 +0900</pubDate>
		</item>
		<item>
			<title>객체지향 이야기 - JYP 엔터테인먼트 박진영 대표의 객체지향 음악?</title>
			<link>http://rhio.tistory.com/248</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;들으면 들을수록 중독되는 so Hot! &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs8.tistory.com/original/17/tistory/2008/06/26/18/20/48635f5c6a8b7&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/17/tistory/2008/06/26/18/20/48635f5c6a8b7&quot; alt=&quot;원더걸스&quot; height=&quot;359&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 이미지 출처 : &lt;a href=&quot;http://gonews.freechal.com/common/result.asp?sFrstCode=012&amp;amp;sScndCode=006&amp;amp;sThrdCode=000&amp;amp;sCode=20080626102404040&quot; target=&quot;_blank&quot;&gt;고뉴스&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;과연 음악이 어떻게 만들어 졌을까요?&amp;nbsp; 이런 곡에서도 어떤 객체지향이라는 느낌을 받게 하네요.&lt;br /&gt;실 세계의 사물을 단순화해 놓은 객체들의 유기적인 조합은 so Hot이라는 음악과 같이 한 시대를 풍미하는 좋은 문화로 자리 남고 IT세계에서는 서비스나 좋은 소프트웨어로 남을 수 있다라는 생각을 해봅니다.&amp;nbsp; 또한 후배들에게 물려줄 좋은 자산이 되리라 생각해봅니다.&lt;br /&gt;&lt;br /&gt;박진영 대표는 객체지향 음악을 설계하는 패턴과 제작과정에 대한 상세한 설명을 알려주었습니다.&lt;br /&gt;&lt;br /&gt;원더걸스의 이전 앨범의 텔미는&amp;nbsp; 반주를 오브젝트를 먼저 만들고 거기에 멜로디라는 오브젝트는 붙인 경우이고 이번 앨범의 so Hot 은 멜로디를 먼저 만들고 반주를 붙이는 패턴을 적용하였다고 합니다.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;1. &amp;nbsp;&amp;nbsp; Kick (loop)구성 - drum&lt;br /&gt;2. &amp;nbsp;&amp;nbsp; Clap 구성&lt;br /&gt;&lt;br /&gt;3. &amp;nbsp;&amp;nbsp; Hihat 구성&lt;br /&gt;4. &amp;nbsp;&amp;nbsp; Percussion 구성&lt;br /&gt;&lt;br /&gt;5. &amp;nbsp;&amp;nbsp; Main synth – 기본 테마&lt;br /&gt;6. &amp;nbsp;&amp;nbsp; Base 구성&lt;br /&gt;&lt;br /&gt;7. &amp;nbsp;&amp;nbsp; Lead 구성&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;이렇게 7가지의 단계를 통하여 so Hot이라는 곡이 탄생하게 되었네요.&amp;nbsp; 거기에 비쥬얼한 원더걸스라는 UI가 씌워졌고 테스트와 연습을 거쳐 최고의 음악으로 음악 방송을 통해 많은 팬들에게 서비스하게 되었습니다.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0&quot; width=&quot;448&quot; height=&quot;385&quot; id=&quot;movie&quot; align=&quot;middle&quot;&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://flvr.pandora.tv/flv2pan/flvmovie.dll?userid=daniel32&amp;amp;url=20080625144300420yto21no84ta39&amp;amp;prgid=32152469&amp;amp;lang=ko&quot;&gt;&lt;/param&gt;&lt;param name=&quot;wmode&quot; value=&quot;window&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://flvr.pandora.tv/flv2pan/flvmovie.dll?userid=daniel32&amp;amp;url=20080625144300420yto21no84ta39&amp;amp;prgid=32152469&amp;amp;lang=ko&quot; type=&quot;application/x-shockwave-flash&quot;  wmode=&quot;window&quot;  allowScriptAccess=&quot;always&quot; allowFullScreen=&quot;true&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; width=&quot;448&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;</description>
			<category>Tech</category>
			<category>JYP</category>
			<category>OOP</category>
			<category>so hot</category>
			<category>객체지향</category>
			<category>박진영</category>
			<category>원더걸스</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/248</guid>
			<comments>http://rhio.tistory.com/248#entry248comment</comments>
			<pubDate>Thu, 26 Jun 2008 18:16:04 +0900</pubDate>
		</item>
		<item>
			<title>미얀마에 따뜻한 마음을 전달해요.</title>
			<link>http://rhio.tistory.com/247</link>
			<description>&lt;a href=&quot;http://blog.pulmuone.com/116&quot; target=&quot;_blank&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/36/tistory/2008/06/21/00/39/485bcf2b2f8a3&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/36/tistory/2008/06/21/00/39/485bcf2b2f8a3&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;267&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.pulmuone.com/116&quot; target=&quot;_blank&quot;&gt;풀무원&lt;/a&gt;에서 좋은 일을 시작했네요.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/24/tistory/2008/06/21/00/48/485bd1551bb8b&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/24/tistory/2008/06/21/00/48/485bd1551bb8b&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;41&quot; width=&quot;41&quot;/&gt;&lt;/a&gt;&lt;/div&gt;이런 좋은 일은 &lt;a href=&quot;http://okjungsoo.tistory.com/&quot; target=&quot;_blank&quot;&gt;옷장수님 블로그&lt;/a&gt;에서 맨날 퍼온답니다. ^-^&lt;br /&gt;그런데 옷장수님도 늘 다른 블로그에서 얻는거 같아요. &lt;br /&gt;촛불도 그랬드라구요. &lt;br /&gt;&lt;br /&gt;블로그에 배너를 하나 달면 풀무원에서 2,000원씩 적립하여 &lt;span style=&quot;font-weight: bold;&quot;&gt;500만원&lt;/span&gt;을 모아서 &lt;a href=&quot;http://www.kfhi.or.kr&quot; target=&quot;_blank&quot;&gt;한국국제기아대책기구&lt;/a&gt;에 &lt;br /&gt;전달한다고 합니다. &lt;br /&gt;&lt;br /&gt;우리에겐 단돈 2,000원이 스타벅스 커피 한잔 값도 안되지만 미얀마 친구들에게는 매우 큰 사랑입니다.&lt;br /&gt;&lt;br /&gt;작은 정성이지만 블로거 분들이 많이 도와주시면 좋겠네요. &lt;br /&gt;&lt;a href=&quot;http://blog.pulmuone.com/116&quot; target=&quot;_blank&quot;&gt;http://blog.pulmuone.com/116&lt;/a&gt; 에 가시면 다양한 베너를 퍼갈 수 있도록 되어있어요.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;

</description>
			<category>blog Tip</category>
			<category>국제기아</category>
			<category>미얀마</category>
			<category>풀무원</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/247</guid>
			<comments>http://rhio.tistory.com/247#entry247comment</comments>
			<pubDate>Sat, 21 Jun 2008 00:33:51 +0900</pubDate>
		</item>
		<item>
			<title>Javascript Optional pattern(pre-configured Pattern) 옵셔널 패턴</title>
			<link>http://rhio.tistory.com/246</link>
			<description>&lt;font style=&quot;font-family: verdana,arial,helvetica,sans-serif;&quot; size=&quot;4&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Javascript Optional pattern&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;디자인 패턴에 이미 있나? 패턴에 대한 심도 있는 연구를 해본 적이 없지만 javascript 개발을 하다 보니 자주 사용하게 되는 패턴이라 정리해봅니다.&amp;nbsp; &lt;span style=&quot;color: rgb(51, 51, 51);&quot;&gt;(이미 GoF 나 POSA 에 일부분에 적용되어져 있을 수도 있습니다.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;간단하면서 이미 많은 개발자들이 이런 방식으로 개발하고 있을지 모른다고 생각한다.&amp;nbsp; 외국 라이브러리 역시 이런 방식으로 개발된 라이브러리가 꾀나 있다. 거론하자니 생각이 나지 않네요. Javascript Lib 카테고리 가면 몇몇 링크가 있는데 그들 중에도 있었다.&lt;br /&gt;&lt;br /&gt;의도 : &lt;br /&gt;&amp;nbsp; 하나의 클래스를 통하여 다양한 표현할 수 있다.&lt;br /&gt;&lt;br /&gt;동기 : &lt;br /&gt;&amp;nbsp; 컴포넌트, 위젯 형태의 개발에 좀더 사용자 설정을 강화하여 다양한 형태의 결과를 표현하고 싶을 때, 이로 개발된 산물은 pre-config 에 대한 이해를 통해 디자이너도 쉽게 접근할 수 있도록 해보자.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-family: verdana,arial,helvetica,sans-serif;&quot;&gt;sample code&lt;/span&gt;&lt;br /&gt;
&lt;textarea name=&quot;codes&quot; class=&quot;js&quot;&gt;//Prototype Object.extend like
function extend(dest, sous) {
	for (var property in sous) dest[property] = sous[property];
	return dest;
}

function foo(options) {
	/* private
	 * pre-config object for this class
	 */
	var options = extend({
		target: &#039;&#039;,
		x: 100,
		y: 200,
		width: 300,
		height: 300,
		title: &#039;Optional Pattern&#039;,
		hook: [&#039;click&#039;, &#039;mouseover&#039;]
	}, options || {});
	
	return {
		/* public
		 * get pre-config object of class
		 * @param	{string}	key	config property name
		 * @return	{All}		value
		 */
		getOption: function(key) {
			return (typeof key == &#039;string&#039;) ? options[key] : options;
		},
		
		/* public
		 * get pre-config X,Y position value
		 * @return	{Array}		value
		 */
		getXY: function() {
			return [options[&#039;x&#039;], options[&#039;y&#039;]];
		}
	};
}

var Foo1 = new foo();
    Foo1.getXY(); 
    //[100, 200]
var Foo2 = new foo({ target:&#039;rhio&#039;, x:300, y:300});
    Foo2.getXY(); 
    //[300, 300]
&lt;/textarea&gt;
&lt;br /&gt;&lt;br /&gt;위 소스에서도 알 수 있듯이 사용자는 Hash형 Object 타입으로서 pre-config를 설정하여 해당 클래스가 new 키워드로 인스턴스화 되어질 때 해당 객체의 초기 설정값에 의해 동작한거나 config의 설정된 Option을 참고하여 객체가 동작되게 됩니다.&lt;br /&gt;&lt;br /&gt;foo 클래스는 new 키워드에 의해 인스턴스화 될때 options 이라는 파라미터를 받아서 내부의 설정값으로 동작하게 됩니다.&amp;nbsp; 컴포넌트의 Positioning, Sizing, Target Element 등을 생성할때 마다 다른 형태의 결과물을 볼 수 있습니다. &lt;br /&gt;&lt;br /&gt;간단하게 생성한 객체들의 getXY 메서드를 수행했을 때 다른 결과 즉&lt;br /&gt;Foo1 의 x, y 포지션은 생성시 아무런 파라미터도 주지 않았기 때문에 [100, 200]이 출력되었고 &lt;br /&gt;Foo2 의 x, y 포지션은 생성시 Hash 형태의 Object에 { x:300, y:300 } 을 넘겼기 때문에 생성시 넘겼던 옵션값을 그대로 취하게 됩니다.&lt;br /&gt;&lt;br /&gt;이는 위젯 방식의 컴포넌트 개발 시에 매우 유용하며 javascript를 이용한 Rich UI, Application 개발 시 기획에 의도를 다양하게(?) 받아들일 수 있다. &lt;br /&gt;&lt;br /&gt;또한 디자이너나 개발자들도 pre-config에 대한 이해만 있다면 값의 설정을 통해서 쉽게 원하는 결과물을 얻을 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
			<category>Javascript</category>
			<category>JavaScript</category>
			<category>OOP</category>
			<category>Pattern</category>
			<category>자바스크립트</category>
			<category>패턴</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/246</guid>
			<comments>http://rhio.tistory.com/246#entry246comment</comments>
			<pubDate>Fri, 20 Jun 2008 20:52:08 +0900</pubDate>
		</item>
		<item>
			<title>레거시 코드 이야기와 javascript 개발(Rich UI)의 현재?</title>
			<link>http://rhio.tistory.com/245</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;개발자들끼리 통하는 한가지!.&lt;br /&gt;소스 코드로서 시스템을 설명하고 이해할 수 있다라는 것이 아닐까 싶다.&lt;br /&gt;&lt;br /&gt;2003년 학교를 졸업하고 들어가게된 직장에서 나는 이전 개발자의 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;철학&lt;/span&gt;과 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;프로그래밍 스킬&lt;/span&gt;의 정도 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;회사에 대한 충성심&lt;/span&gt;을 느낄 수 있었다.&lt;br /&gt;&lt;br /&gt;그 개발자의 의해서 생산(?)된 코드의 일부를 생각나는데로 기재해본다.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;델파이 소스 중 일부입니다.&amp;nbsp; 변수명에서 느껴지는 회사에 대한 충성심?&lt;br /&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; i : integer;&lt;br /&gt;&amp;nbsp; &lt;span style=&quot;font-weight: bold;&quot;&gt;cipal, zot &lt;/span&gt;: integer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; //do something&lt;br /&gt;end; &lt;/blockquote&gt;&lt;blockquote&gt;변수명에서 느껴지는 프로그래밍 스킬(전역 변수를 위해 Label Component를 사용)&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
&amp;nbsp; i : integer;&lt;br /&gt;
begin&lt;br /&gt;
 &amp;nbsp; result := 1 + 2;&lt;br /&gt;
 &amp;nbsp; TLabel1.caption := i;&lt;br /&gt;
&amp;nbsp; //do something&lt;br /&gt;
end;&lt;br /&gt;&lt;br /&gt;
procedure TForm1.Button2Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
&amp;nbsp; i : integer;&lt;br /&gt;
begin&lt;br /&gt;
 &amp;nbsp; ShowMessage(TLabel1.caption);&lt;br /&gt;
&amp;nbsp; //do something&lt;br /&gt;
end;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;이 개발자의 본성이 그대로 들어나는 레거시한 코드 델파이라 와닿지 않을 수 있지만 저런 코드가 다량의 unit 파일에 내제되 있었고 그의 철학을 느끼며 재개발에 들어갔었다.&lt;br /&gt;&lt;br /&gt;과연 저 개발자는 어떤 생각을 가지고 변수에 cipal 과 zot를 남발하였을까? ^-^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;한가지의 사물을 보고 단순화 하는 작업에 있어서 개발자마다의 특징이 있고 오브젝트화 하는 작업이 제 각각 틀릴 것이다.&amp;nbsp; 이렇게 다양한 스타일의 레거시한 코드 덕분에 개발자들은 좀더 나은 코드를 위해, 좀더 좋은 서비스/소프트웨어를 개발하기 위해 노력할 수 있는 시간이 줄어든다.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/22/tistory/2008/06/19/00/38/48592bf7d8d96&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/22/tistory/2008/06/19/00/38/48592bf7d8d96&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;50&quot; width=&quot;50&quot;/&gt;&lt;/a&gt;&lt;/div&gt;오늘도 레거시한 코드를 살펴보며 이런 저런 고민끝에 역시 재 개발&lt;br /&gt;이미 내가 생각하는 객체화의 영역에서 심하게(?) 벗었났다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-weight: bold;&quot;&gt;레거시 코드를 관리하는 내 능력의 한계일까 레거시 코드의 문제일까?&lt;/blockquote&gt;&lt;br /&gt;라는 질문을 던져보며 또 한가지의 다른 걱정 한번 해봤다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;오지랖인가 싶지만...&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/29/tistory/2008/06/19/00/16/485926bd0a39c&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/29/tistory/2008/06/19/00/16/485926bd0a39c&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;254&quot; width=&quot;355&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;javascript 를 이용한 Rich UI, Ajax UI 개발이 조금씩 자리를 만들어 가면서 기존 ASP, PHP, JSP 로 만들때 보다. 개발에 필요한 요소가 더 복잡해졌다라고 하겠다.&lt;br /&gt;&lt;br /&gt;디자이너가 해주던 HTML에 서버사이드 언어와 DB Query만 알면 왠만한 사이트 개발은 해치울 수 있다.&lt;br /&gt;(이것도 그다지 간단한 일은 아니지만...)&lt;br /&gt;&lt;br /&gt;하지만 javascript를 이용한 Rich UI, Ajax UI 개발시에는 알아야 할 표준만도 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;DOM, CSS, HTML, JSON, XML, ECMAS 2-262, Cross-Browsing&lt;/span&gt; 정도는 기술적 Base로 알아야 한다.&amp;nbsp; 이미 Rich UI, Ajax UI 개발자라면 언급한 7가지의 접근법은 다양하고 많은 경험을 했을 것이라 본다.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfs7.tistory.com/original/16/tistory/2008/06/19/00/39/48592c3ca6f32&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/16/tistory/2008/06/19/00/39/48592c3ca6f32&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;19&quot; width=&quot;19&quot;/&gt;&lt;/a&gt;&lt;/div&gt;(아직도 국내에서는 자바스크립트는 프로그래밍 언어로 보지 않는 개발자들이 아직도 많이 있다는 것)&lt;br /&gt;&lt;br /&gt;하지만 국내의 Rich UI 개발자들의 실상은 그다지...&lt;br /&gt;이미 생산성에 맞춘 RIA 개발에 포커싱되어있지 않을까?&lt;br /&gt;이러한 실정을 토대로 이 분야를 선도하는 포털 사이트와 거대 사이트 들에서 자리잡혀 버린다면 최근 강조되고 있는 웹 표준에 대응하면서 생기는 다양한 문제점 보다 더욱 큰 문제를 또 한번 겪게 될지도 모른다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;또한 한가지 절대적으로 Rich UI, Ajax UI Tech guru로 활동하는 개발자들도 그리 많지 않다라는 것이다.&lt;br /&gt;(&lt;span style=&quot;font-weight: bold; color: rgb(51, 51, 51);&quot;&gt;숨어있는 고수님들의 노하우 좀 공유 부탁드려요. ^-^&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;국외 다양한 자바스크립트 프레임웍을 보고 있자면 그들에게는 위에서 언급한 기술적 Base에 대한 발전된 모습을 느낄 수 있다.&amp;nbsp; 그런 기술을 빠르게 습득하는 것도 우리 개발자들의 문제이겠지만 국내의 기술적인 모티브를 제공하고 외국의 프레임웍처럼 기술적 표본을 잘 정립해야하지 않을까 라는 걱정을 해봅니다.&lt;br /&gt;&lt;br /&gt;과연 javascript에서 var foo = { }; 라는 코드가 어떻게 동작하고 각 자바스크립트의 엔진마다 메모리는 얼만큼 사용하고 어떤 차이가 있는지 그로 하여금 각 브라우저에서 구동될 Application에는 어떠한 영향을 미치는지?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;1 + 1 = 2 라는 증명은 매우 간단해 보이지만 러셀의 1 + 1 = 2 에 대한 증명을 보면 그렇지 않다.&lt;br /&gt;참고 : &lt;a href=&quot;http://k.daum.net/qna/view.html?qid=3Sp2R&quot; target=&quot;_blank&quot;&gt;http://k.daum.net/qna/view.html?qid=3Sp2R&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;내가 짠 코드가 남에게 도움이 될 수 있다면....&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;이하 영상은 레거시 코드 관리에 대한 영상 및 자료입니다.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://ecs.gseshop.co.kr/blog/359&quot; target=&quot;_blank&quot;&gt;출처 : http://ecs.gseshop.co.kr/blog/359&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;object type=&#039;application/x-shockwave-flash&#039; width=&quot;502&quot; height=&quot;399&quot; align=&#039;middle&#039; classid=&#039;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&#039; codebase=&#039;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&#039;&gt;&lt;param name=&#039;movie&#039; value=&#039;http://flvs.daum.net/flvPlayer.swf?vid=PsEDbnEJC_s$&#039; /&gt;&lt;param name=&#039;allowScriptAccess&#039; value=&#039;always&#039; /&gt;&lt;param name=&#039;allowFullScreen&#039; value=&#039;true&#039; /&gt;&lt;param name=&#039;bgcolor&#039; value=&#039;#000000&#039; /&gt;&lt;embed src=&#039;http://flvs.daum.net/flvPlayer.swf?vid=PsEDbnEJC_s$&#039; width=&quot;502&quot; height=&quot;399&quot; allowScriptAccess=&#039;always&#039; type=&#039;application/x-shockwave-flash&#039; allowFullScreen=&#039;true&#039; bgcolor=&#039;#000000&#039; &gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/ik0.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; WorkingEffectivelyWithLegacyCode.pdf&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description>
			<category>Tech</category>
			<category>Legacy</category>
			<category>레거시 코드</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/245</guid>
			<comments>http://rhio.tistory.com/245#entry245comment</comments>
			<pubDate>Thu, 19 Jun 2008 00:57:24 +0900</pubDate>
		</item>
		<item>
			<title>ExtJS Component Inheritance(ExtJS 컴포넌트 상속)</title>
			<link>http://rhio.tistory.com/243</link>
			<description>ExtJS 의 구조적 이해를 하고자 정리해 봅니다.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs9.tistory.com/original/1/tistory/2008/05/22/02/58/483462bfea25a&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/image/1/tistory/2008/05/22/02/58/483462bfea25a&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;591&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/hk0.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; component 상속관계 in ExtJS.pdf&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</description>
			<category>Ext JS</category>
			<category>Ext.Component</category>
			<category>Extjs</category>
			<category>inheritance</category>
			<category>JavaScript</category>
			<category>상속</category>
			<category>컴포넌트</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/243</guid>
			<comments>http://rhio.tistory.com/243#entry243comment</comments>
			<pubDate>Thu, 22 May 2008 02:55:18 +0900</pubDate>
		</item>
		<item>
			<title>ExtJS 기본 이해하기 - I</title>
			<link>http://rhio.tistory.com/240</link>
			<description>ExtJS의 기본 이해하기 ( Component Class의 inheritance 구현 및 계층 구조의 이해 )&lt;br /&gt;&lt;br /&gt;&lt;textarea class=&quot;js&quot; name=&quot;codes&quot;&gt;Ext.data.Connection = function(config){
    Ext.apply(this, config);
    this.addEvents(
        &quot;beforerequest&quot;,
        &quot;requestcomplete&quot;,
        &quot;requestexception&quot;
    );
    Ext.data.Connection.superclass.constructor.call(this);
};
&lt;/textarea&gt; &lt;br /&gt;&lt;br /&gt;Ext.data.Connection 는 ExtJS의 Rmote server에 XHR Request를 위한 class이자 namespace 입니다. &lt;br /&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfs5.tistory.com/original/10/tistory/2008/05/06/23/00/48206482eb080&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs5.tistory.com/image/10/tistory/2008/05/06/23/00/48206482eb080&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;52&quot; width=&quot;132&quot;/&gt;&lt;/a&gt;&lt;/div&gt;ExtJS의 모든 Class는 Ext의 하위 패키지 그 안의 서브 클래스들로 구성되어 집니다.&amp;nbsp; 이때 위 처럼 클래스들이 생성되어서 동작하기 위해서 기본적으로 하는 처리가 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;위의 소스를 간단하게 보겠습니다.&lt;br /&gt;Ext.data.Connection 는 function 을 갖습니다. 첫번째 인자료 config 라는 Hash 형태의 오브젝트를 갖습니다.&lt;br /&gt;&lt;br /&gt;
&lt;blockquote&gt;Hash 형태의 오브젝트란?&amp;nbsp; &lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;{ key : value }&lt;/span&gt;의 형태를 말하고 이해를 돕기 위해 Hash형 오브젝트라 칭합니다.&lt;br /&gt;Hash형 오브젝트 타입은 value에는 다양한 type의 값이 올 수 있습니다.&lt;/blockquote&gt;&lt;br /&gt;이는 사용 시 &lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 255);&quot;&gt;new &lt;/span&gt;연산자를 이용하여 인스턴스화 되게 됩니다.&lt;br /&gt;즉 Ext.data.Connection은 function으로의 기능이 아닌 instance 화 되어 사용되게 됩니다.&lt;br /&gt;&lt;br /&gt;그러면 인스턴스가 생성될 때 수행되는 컨텍스트를 봅니다.&lt;br /&gt;&lt;br /&gt;Ext.&lt;span style=&quot;font-weight: bold; color: rgb(23, 127, 205);&quot;&gt;apply&lt;/span&gt;(&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 255);&quot;&gt;this&lt;/span&gt;, config); 는 아래의 Ext의 맴버로서 수행되어집니다.&lt;br /&gt;&lt;br /&gt;&lt;textarea class=&quot;js&quot; name=&quot;codes&quot;&gt;/**
 * Copies all the properties of config to obj.
 * @param {Object} obj The receiver of the properties
 * @param {Object} config The source of the properties
 * @param {Object} defaults A different object that will also be applied for default values
 * @return {Object} returns obj
 * @member Ext apply
 */
Ext.apply = function(o, c, defaults){
    if(defaults){
        // no &quot;this&quot; reference for friendly out of scope calls
        Ext.apply(o, defaults);
    }
    if(o &amp;amp;&amp;amp; c &amp;amp;&amp;amp; typeof c == &#039;object&#039;){
        for(var p in c){
            o[p] = c[p];
        }
    }
    return o;
};

&lt;/textarea&gt; &lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;위의&lt;span lang=&quot;EN-US&quot;&gt; apply&lt;/span&gt;에 의해서&lt;span lang=&quot;EN-US&quot;&gt; this&lt;/span&gt;에&lt;span lang=&quot;EN-US&quot;&gt; config&lt;/span&gt;로 넘겨준 값이 모두&lt;span lang=&quot;EN-US&quot;&gt; overwrite &lt;/span&gt;되게 됩니다&lt;span lang=&quot;EN-US&quot;&gt;. this&lt;/span&gt;가 가지고 있던 속성 및 메서드까지 모두&lt;span lang=&quot;EN-US&quot;&gt; config&lt;/span&gt;가 가지고 있던 값으로 치환되어집니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;이때&lt;span lang=&quot;EN-US&quot;&gt; apply &lt;/span&gt;에 첫번째 인자로 주는&lt;span lang=&quot;EN-US&quot;&gt; config &lt;/span&gt;는&lt;span lang=&quot;EN-US&quot;&gt; ExtJS&lt;/span&gt;에서는 해당 클래스가 갖는 속성의 의미와도 같습니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;좀더 쉽게 풀이해서 쓴다면&lt;span lang=&quot;EN-US&quot;&gt; ExtJS&lt;/span&gt;의 하나의 클래스가 인스턴스화 되어질 때 기본적으로 갖게 되는 속성 그리고 상속구조가 형성되면서&lt;span lang=&quot;EN-US&quot;&gt; override &lt;/span&gt;되는 속성과 메서드들의 기본 설정을 합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;좀더 쉬운 예를 들어보면 하나의&lt;span lang=&quot;EN-US&quot;&gt; widget&lt;/span&gt;이 생성되어 브라우저에 띄울 때 그&lt;span lang=&quot;EN-US&quot;&gt; widget&lt;/span&gt;의 기본 사이즈&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;드래그 앤 드랍 등을 할 수 있는 설정을 이&lt;span lang=&quot;EN-US&quot;&gt; config&lt;/span&gt;에&lt;span lang=&quot;EN-US&quot;&gt; Hash &lt;/span&gt;오브젝트로 넘겨주는 초기 설정값과도 같습니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;textarea class=&quot;js&quot; name=&quot;codes&quot;&gt;this.addEvents(
        &quot;beforerequest&quot;,
        &quot;requestcomplete&quot;,
        &quot;requestexception&quot;
    );

&lt;/textarea&gt; &lt;br /&gt;&lt;br /&gt;이 코드는 이벤트 리스너를 설정하게 됩니다.&amp;nbsp; 최근에 릴리즈한 자바스크립트 프레임웍에는 Custom Event가 모두 지원하고 있습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;ExtJS에서도 이를 지원하는데요. 이는 Observable class에 있습니다.&amp;nbsp; &lt;br /&gt;위의 코드는 이 Ext.data.Connection 이 인스턴스화 될 때 사용하게 될 기본적인 이벤트 리스너에 해당하는 것들입니다.&lt;br /&gt;&lt;br /&gt;위에 잠깐 예시를 들었던 widget 에서는 기본적으로 widget을 움직일 수 있고 최소화 시킬 수 있는 기능을 기본적으로 갖게 됩니다.&amp;nbsp; 경우에 따라서는 숨길 수 있는 기능이나 최대화 기능도 부여할 수 있습니다.&amp;nbsp; 이처럼 this.addEvent를 통해서 Ext.data.Connection 이 갖는 기본적인 이벤트 리스너를 등록하게 됩니다.&lt;br /&gt;&lt;br /&gt;XMLHttpRequest 를 통해서 서버측 데이터를 받아올 때 혹은 받을때 받고나서 등등 다양한 상황에 맞는 이벤트 리스너를 사용하기에 앞서 Connection 클래스가 기본적으로 갖게되는 이벤트 리스너를 설정해 주게 됩니다.&amp;nbsp; 위의 경우&lt;span style=&quot;color: rgb(0, 128, 0);&quot;&gt; ‘beforerequest’, ‘requestcomplete’, ‘requestexception’&lt;/span&gt; 3가지의 리스너를 설정하게 됩니다.&lt;br /&gt;&lt;br /&gt;이렇게 설정된 리스너는 fireEvent 메서드 즉 핸들러를 수행하게 됩니다.&lt;br /&gt;&lt;br /&gt;마지막 구문&lt;br /&gt;&lt;br /&gt;Ext.data.Connection.superclass.constructor.call(&lt;span style=&quot;font-weight: bold;&quot;&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;상당히 길게 나열된 구조입니다. ExtJS의 가장 중요한 부분이라고 해도 과언이 아닙니다. 어떻게 해서 저렇게 긴 메서드가 생성되었을까요 간단하게 풀이해서 보도록 합니다.&lt;br /&gt;Ext.data.Connection 이것은 굳이 Ext.data.Connection 이라고 하지 않고 this라고 해도 무방했을텐데 왜 그랬는지 살짝 궁금해집니다.&lt;br /&gt;&lt;br /&gt;this를 쓰지 않았던(?) 못했던(?) 이유... 2008.05.18 추가&lt;br /&gt;&lt;p id=&quot;more240_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;240_0&#039;,&#039; more.. &#039;,&#039; less.. &#039;); return false;&quot;&gt; more.. &lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content240_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;ExtJS에서 지원하는 extend 즉 Component 상속 구현에서는 Component를 초기화하는 initComponent 메소드들이 존재합니다. 즉 extend가 되면서 상위 Component의 초기화 메소드를 호출 하므로써 각 Component들의 초기 설정을 하게 됩니다.&lt;br /&gt;&lt;br /&gt;Ext.Panel 을 사용하기 위해서는 Ext.Panel.initComponent -&amp;gt; Ext.Container.initComponent -&amp;gt; Ext.BoxComponent.initComponent 를 수행합니다.&amp;nbsp; 하지만 &lt;span style=&quot;font-weight: bold;&quot;&gt;initComponent는 Ext.extend에 의해서 Overwrite가 되어버립니다. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;그래서 this.initComponent를 수행하면 안되고 Static 메서드를 호출합니다.&lt;br /&gt;즉 이와 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 255); font-weight: bold;&quot;&gt;Ext.Panel(자기 자신).superclass(상위 객체 레퍼런스).initComponent&lt;/span&gt;.call(this)을 하게 됩니다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 255);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Static Method&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;그리고 좀더 구체적으로 설명하자면 Ext.Window의 경우에도 Component Class 부터 Panel 까지 상속받아서 사용됩니다.&amp;nbsp; 이때 new Ext.Window(config) 를 하게 되면 initComponent를 호출하면서 config를 참조해서 Ext Window Component의 기본적인 설정을 하게 됩니다. &lt;br /&gt;&lt;br /&gt;하지만 Window는 상속받았다 할지라도 상위 Component 즉 Panel Component의 유일한 속성이나 Window에서는 사용할 수 없는 것 혹은 Panel Component가 WIndow에 상속되어지면서 변경되어야 할 속성들의 값을 설정하게 됩니다.&lt;br /&gt;&lt;br /&gt;Window 초기화 -&amp;gt; Panel 초기화 -&amp;gt; Container 초기화 -&amp;gt; BoxComponet 초기화 -&amp;gt; Component 초기화 순으로 초기화가 이루어집니다.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;그 다음에 오는 superclass 는 단연 계층 구조에 있어서 최상위 클래스, 부모 클래스를 나타낼 텐데요.&amp;nbsp; superclass.constructor 입니다.&amp;nbsp; 즉 superclass 가 아닌 superclass의 constructor를 나타냅니다.&amp;nbsp; 이는 인스턴스화 되지 않는 부모 클래스의 생성자를 참조하고 있습니다. &lt;br /&gt;&lt;br /&gt;그런데 과연 superclass 라는 것은 원래 있는 것인지? 아니면 ExtJS에서 기본적으로 제공하는 것인지 의문이 듭니다. 이는 Ext.extend 맴버에 의해서 Ext.data.Connection 에 부여됩니다.&lt;br /&gt;&lt;br /&gt;Ext.&lt;span style=&quot;font-weight: bold; color: rgb(23, 127, 205);&quot;&gt;extend&lt;/span&gt;(Ext.data.Connection, Ext.util.Observable, { … });&lt;br /&gt;&lt;br /&gt;잠시 extend 메서드에 대한 설명을 간단하게 하고 넘어갑니다.&lt;br /&gt;extend 메서드는 YUI의 구조와 동일합니다. 첫번째 인자로 넘어간 오브젝트에 superclass 속성을 부여하여 두번째 인자의 prototype을 superclass 가 레퍼런스하도록 합니다.&lt;br /&gt;&lt;br /&gt;즉 Ext.data.Connection.superclass는 Ext.util.Observable.prototype을 레퍼런스하게 됩니다. 곧 Ext.util.Observable 의 constructor를 call 메서드를 통하여 호출하게 됩니다. 메서드를 Ext.data.Connection Scope에서 수행하게 됩니다.&lt;br /&gt;&lt;br /&gt;이는 생성되면서 addEvent 를 통해서 생성된 이벤트 리스너의 동작을 켭니다. 이 말은 addEvent를 통해서 추가된 리스너들은 단지 ExtJS의 이벤트 class에 이벤트 이름만 등록하고 실제로 Ext.data.Connection 이 인스턴스화 될 때 비로소 리스너가 작동이 가능하게 됩니다.&lt;br /&gt;&lt;br /&gt;언제나 그렇듯 말로만 보면 쉽게 이런 구조가 이해되지 않아서 간략하게 나마 그림으로 표현해 봅니다.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs6.tistory.com/original/8/tistory/2008/05/06/22/59/48206449f06ee&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs6.tistory.com/image/8/tistory/2008/05/06/22/59/48206449f06ee&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;360&quot; width=&quot;441&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;어차피 그림 조차도 설명이네요&lt;span lang=&quot;EN-US&quot;&gt;. ^^;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
			<category>Ext JS</category>
			<category>Ajax</category>
			<category>Ext.data.Connection</category>
			<category>Extjs</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/240</guid>
			<comments>http://rhio.tistory.com/240#entry240comment</comments>
			<pubDate>Wed,  7 May 2008 10:35:36 +0900</pubDate>
		</item>
		<item>
			<title>Prorotype in javascript (ECMAS 262-2 spec)</title>
			<link>http://rhio.tistory.com/236</link>
			<description>&lt;font size=&quot;3&quot;&gt;부제 : &lt;span style=&quot;font-weight: bold;&quot;&gt;Javascript&lt;/span&gt;의&lt;span style=&quot;font-weight: bold;&quot;&gt; prototype&lt;/span&gt;은 어떤 의미를 갖는가?&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;MDC defined&lt;/span&gt;&lt;br /&gt;Prototype is a property of various Javascript Objects&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Prototype은 다양한 자바스크립트 오브젝트의 프로퍼티이다.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;그럼 오브젝트는 무엇일까요?&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot; lang=&quot;EN-US&quot;&gt;object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;An &lt;b style=&quot;&quot;&gt;&lt;i style=&quot;&quot;&gt;object&lt;/i&gt;&lt;/b&gt; is a member of the type &lt;b style=&quot;&quot;&gt;Object&lt;/b&gt;. It is an unordered collection
of properties each of which contains a primitive value, object, or function. A
function stored in a property of an object is called a method.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;i style=&quot;font-weight: bold;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Object&lt;/span&gt;&lt;/i&gt;는&lt;span lang=&quot;EN-US&quot;&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;Object&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;의 타입&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;type&lt;/span&gt;&lt;/sup&gt;의 &lt;span style=&quot;font-weight: bold;&quot;&gt;맴버&lt;/span&gt;입니다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp; &lt;/span&gt;그것은 기본적인 &lt;span style=&quot;font-weight: bold;&quot;&gt;값&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;value&lt;/span&gt;&lt;/sup&gt;이나 &lt;span style=&quot;font-weight: bold;&quot;&gt;오브젝트&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;object&lt;/span&gt;&lt;/sup&gt;나&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;함수&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;function&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;각각 &lt;span style=&quot;font-weight: bold;&quot;&gt;프로퍼티의 무질서한 컬렉션&lt;/span&gt;입니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;오브젝트의 속성에 지정된 함수는 메서드&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;method&lt;/span&gt;&lt;/sup&gt;라
불린다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;

&lt;br /&gt;다시 MDC 에서 정의한 프로토타입에 대한 설명입니다.&lt;br /&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(250, 255, 169);&quot;&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;프로토타입&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;은&lt;span lang=&quot;EN-US&quot;&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;ECMAScript&lt;/span&gt;&lt;/span&gt;에서 &lt;span style=&quot;font-weight: bold; text-decoration: underline;&quot;&gt;구조&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;structure&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-weight: bold; text-decoration: underline;&quot;&gt;상태&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;status&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;font-weight: bold; text-decoration: underline;&quot;&gt;습성&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;behavior&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;를 &lt;span style=&quot;font-weight: bold;&quot;&gt;구현하기 위해 사용하는 오브젝트&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;object&lt;/span&gt;&lt;/sup&gt;입니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;생성자&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;constructor&lt;/span&gt;&lt;/sup&gt;는 오브젝트를 생성할
때 그 오브젝트에 프로퍼티 레퍼런스를 가리킬 목적으로 생성자&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;constructor&lt;/span&gt;&lt;/sup&gt;의
연관된 프로토타입&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;을
참조하게 됩니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;생성자&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;constructor&lt;/span&gt;&lt;/sup&gt;와 연관된 프로토타입&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;은 &lt;span lang=&quot;EN-US&quot;&gt;constructor.prototype&lt;/span&gt;과
같이 프로그램&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;program&lt;/span&gt;&lt;/sup&gt;적인 표현&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;expression&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;으로 참조 될 수 있고&lt;span lang=&quot;EN-US&quot;&gt; native Object&lt;/span&gt;의 프로토타입&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;에 추가되어진 프로퍼티&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;properties&lt;/span&gt;&lt;/sup&gt;가
공유&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;shared&lt;/span&gt;&lt;/sup&gt;되어 집니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot; lang=&quot;EN-US&quot;&gt;Constructor&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;

&lt;/p&gt;&lt;div style=&quot;padding: 10px; background-color: rgb(201, 237, 255);&quot;&gt;생성자&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;constructor&lt;/span&gt;&lt;/sup&gt;는
&lt;span style=&quot;font-weight: bold;&quot;&gt;생성&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;create&lt;/span&gt;&lt;/sup&gt;하고 &lt;span style=&quot;font-weight: bold;&quot;&gt;초기화&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;initialize&lt;/span&gt;&lt;/sup&gt;하는
&lt;span style=&quot;font-weight: bold;&quot;&gt;함수 오브젝트&lt;/span&gt;입니다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp; &lt;/span&gt;각각의 생성자는 &lt;span style=&quot;font-weight: bold;&quot;&gt;상속구현과 공유 프로퍼티&lt;/span&gt; 사용을 위해 연관된 &lt;span style=&quot;font-weight: bold;&quot;&gt;프로토타입&lt;/span&gt;&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; lang=&quot;EN-US&quot;&gt;오브젝트를 갖습니다.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://cfs6.tistory.com/original/8/tistory/2008/04/28/23/10/4815daf2a7481&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs6.tistory.com/image/8/tistory/2008/04/28/23/10/4815daf2a7481&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;50&quot; width=&quot;50&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;prototype 이라는 것은 &lt;br /&gt;javascript의 표준인 ECMAScript의 오브젝트 중 하나입니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;이렇게 정의를 하고 계속해서 좀더 상세히 알아보도록 합니다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ECMAScript는 C++, Smalltalk, Java 처럼 클래스의 개념이 존재하지 않지만 오히려 오브젝트를 위해 스토리지를 할당하고 그들의 프로퍼티에 초기값 할당을 통해 그것들의 일부 혹은 모든것을 초기화하는 실행 코드로 오브젝트를 만드는 생성자를 제공합니다.&lt;br /&gt;&lt;br /&gt;

&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;생성자를 포함하는 모든 함수들은 오브젝트이지만 모든 오브젝트가 생성자가 되는 것은 아닙니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;&quot;&gt;&lt;span style=&quot;&quot;&gt;각각의 생성자&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;constructor&lt;/span&gt;&lt;/sup&gt;는 프로토타입 기반&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype-based&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;상속&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;inheritance&lt;/span&gt;&lt;/sup&gt;과 공유&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;shared&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;프로퍼티&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;properties&lt;/span&gt;&lt;/sup&gt;를 구현하기 위하여 프로토타입 프로퍼티 갖습니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;오브젝트는 &lt;b style=&quot;&quot;&gt;&lt;span style=&quot;color: blue;&quot; lang=&quot;EN-US&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;연산자에 생성자를 사용하여
생성되어짐&lt;span lang=&quot;EN-US&quot;&gt; : &lt;/span&gt;예를 들어 &lt;b style=&quot;&quot;&gt;&lt;span style=&quot;color: blue;&quot; lang=&quot;EN-US&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt; String(“A String”)&lt;/span&gt;는
새로운&lt;span lang=&quot;EN-US&quot;&gt; string &lt;/span&gt;오브젝트를 생성합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;b style=&quot;&quot;&gt;&lt;span style=&quot;color: blue;&quot; lang=&quot;EN-US&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;&quot;&gt;를 사용하지 않고 생성자를 적용하는 것은 생성자에 따른 결과를 갖습니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;예를 들어&lt;span lang=&quot;EN-US&quot;&gt; String(“A String”) &lt;/span&gt;는 초기 문자열이
만들어집니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;하지만 오브젝트는 아닙니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot; lang=&quot;EN-US&quot;&gt;ECMAScript&lt;/span&gt;&lt;span style=&quot;&quot;&gt;는 프로토타입 기반&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype-based&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;상속&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;inheritance&lt;/span&gt;&lt;/sup&gt;을 지원합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;모든 생성자는 연관된 프로토타입을 가집니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;그리고 생성자에
의해 생성되어진 모든 오브젝트는 생성자와 연관된 프로토타입&lt;span lang=&quot;EN-US&quot;&gt;(Object’s prototype &lt;/span&gt;이라 불리우는&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;에 절대적인 레퍼런스를 갖습니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs4.tistory.com/original/4/tistory/2008/04/29/00/59/4815f47cc5c1a&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs4.tistory.com/image/4/tistory/2008/04/29/00/59/4815f47cc5c1a&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;327&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;&quot;&gt;더욱이 &lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;프로토타입&lt;/span&gt;&lt;sup style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;은 null이 아닌 원형&lt;/span&gt;&lt;sup style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;에 절대적인
레퍼런스를 갖습니다&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-weight: bold; color: rgb(255, 0, 0);&quot;&gt;.&lt;/span&gt; &lt;/span&gt;그래서 이것을 프로토타입 체인&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype
chain&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;이라고 부릅니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left; font-weight: bold; color: rgb(255, 0, 0); text-decoration: underline;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;오브젝트에서 레퍼런스&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;reference&lt;/span&gt;&lt;/sup&gt;가 프로퍼티&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;property&lt;/span&gt;&lt;/sup&gt;에 만들어 질 때 저 이름의 프로퍼티를 포함하는 프로토타입 체인&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;chain&lt;/span&gt;&lt;/sup&gt;의 첫번째 오브젝트에 저 이름으로 프로퍼티를 갖는다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs6.tistory.com/original/8/tistory/2008/04/29/00/58/4815f439c0b39&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs6.tistory.com/image/8/tistory/2008/04/29/00/58/4815f439c0b39&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;359&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;바꿔 말하면&lt;span lang=&quot;EN-US&quot;&gt;, &amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;첫번째는 오브젝트가 직접 언급했던 프로퍼티가 있는지
없는지 조사&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;검토&lt;span lang=&quot;EN-US&quot;&gt;)&lt;/span&gt;하는 것입니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span style=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;만약 오브젝트가 정해진 프로퍼티를 포함한다면
그 레퍼런스가 참조하는 프로퍼티입니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;span style=&quot;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;만약
그렇지 않다면 오브젝트는 찾기 위해서 다음 프로토타입&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;으로 넘어간다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;blockquote&gt;즉 위의 예제 소스를 예로 설명하자면 마지막에&amp;nbsp; childObject.name.toString(); 를 호출했습니다.&lt;br /&gt;최초 childObject가 가지고 있는 name을 참조합니다. childObject에는 name 프로퍼티를 가지고 있기 때문에&amp;nbsp; toString()을 수행하게 됩니다. 만약 name 프로퍼티가 존재하지 않는다면 fatherObject -&amp;gt; grandFather -&amp;gt; Object 까지 찾아가게 되겠죠.&lt;br /&gt;&lt;br /&gt;아무튼 name 프로퍼티가 존재하므로 childObject에는 toString()이라는 메서드를 수행하게 됩니다. 하지만 childObject 에는 toString() 이라는 메서드가 존재하지 않기 때문에 Object.prototype.toString()을 수행하게 됩니다. 만약 Object.prototype.toString 메서드가 존재하지 않는다면 당연히 (fireBug)toString is not a function 이라는 메세지를 보게되겠죠.&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;그래서 클래스 기반&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;class-based&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;객체 지향 언어는 일반적으로 인스턴스&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;instance&lt;/span&gt;&lt;/sup&gt;에 의해 이동된 상태&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;클래스에 의해서 이동된
메서드 그리고 상속은 구조와 습성의 유일함이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot; lang=&quot;EN-US&quot;&gt;ECMAScript&lt;/span&gt;&lt;span style=&quot;&quot;&gt;에서 상태와 메서드들은 오브젝트에 의해서 이동되어 집니다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp; &lt;/span&gt;그리고
구조&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;습성&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;상태는 모두 상속되어 집니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;직접 그것들의 프로토타입&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;이
포함하는 특별한 프로퍼티&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;property&lt;/span&gt;&lt;/sup&gt;를 포함하지 않는 모든 오브젝트들은 저 프로퍼티와
그 값&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;value&lt;/span&gt;&lt;/sup&gt;을 공유한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;&quot;&gt;아래 다이어그램을 참조&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs4.tistory.com/original/1/tistory/2008/04/28/23/33/4815e01d53f25&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs4.tistory.com/image/1/tistory/2008/04/28/23/33/4815e01d53f25&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;308&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot; lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot; lang=&quot;EN-US&quot;&gt;CF&lt;/span&gt;&lt;span style=&quot;&quot;&gt;는 생성자 입니다&lt;span lang=&quot;EN-US&quot;&gt;(&lt;/span&gt;그리고 또한 오브젝트 입니다&lt;span lang=&quot;EN-US&quot;&gt;.). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;다섯개의 오브젝트는 &lt;b style=&quot;&quot;&gt;&lt;span style=&quot;color: blue;&quot; lang=&quot;EN-US&quot;&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;연산자를 통해 생성&lt;span lang=&quot;EN-US&quot;&gt; : CF1, CF2, CF3, CF4, CF5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;각각의 오브젝트는&lt;span lang=&quot;EN-US&quot;&gt; q1, q2&lt;/span&gt;의 프로퍼티를 포함합니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;점선 라인은 절대적인&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;implicit&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;프로토타입&lt;sup&gt;&lt;span lang=&quot;EN-US&quot;&gt;prototype&lt;/span&gt;&lt;/sup&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;관계&lt;span lang=&quot;EN-US&quot;&gt;; &lt;/span&gt;예를 들어&lt;span lang=&quot;EN-US&quot;&gt; CF3&lt;/span&gt;의
프로토타입은&lt;span lang=&quot;EN-US&quot;&gt; CFp&lt;/span&gt;입니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;

&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;&lt;br /&gt;그 생성자&lt;span lang=&quot;EN-US&quot;&gt; CF&lt;/span&gt;는 자체적으로&lt;span lang=&quot;EN-US&quot;&gt;
CFp, CF1, CF2, CF3, CF4, CF5&lt;/span&gt;에 보이지 않는&lt;span lang=&quot;EN-US&quot;&gt; 2&lt;/span&gt;개의 프로퍼티를 갖습니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot; lang=&quot;EN-US&quot;&gt;CFp &lt;/span&gt;&lt;span style=&quot;&quot;&gt;안에&lt;span lang=&quot;EN-US&quot;&gt; CFp1 &lt;/span&gt;프로퍼티는 &lt;span lang=&quot;EN-US&quot;&gt;q1,
q2 &lt;/span&gt;혹은&lt;span lang=&quot;EN-US&quot;&gt; CFp1&lt;/span&gt;라 지정되지 않는&lt;span lang=&quot;EN-US&quot;&gt; CFp&lt;/span&gt;의
절대적인 프로토타입 체인에서 발견되어지는 어떤 프로퍼티들 처럼&lt;span lang=&quot;EN-US&quot;&gt; CF1, CF2, CF3, CF4, CF5&lt;/span&gt;에
의해서 공유되어 집니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot; lang=&quot;EN-US&quot;&gt;CFp&lt;/span&gt;&lt;span style=&quot;&quot;&gt;와&lt;span lang=&quot;EN-US&quot;&gt; CF &lt;/span&gt;사이에 절대적인 프로토타입 링크가 없다는 것을 알아야
합니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;클래스 기반 언어들과는 달라 프로퍼티들은 값을 할당하는 것으로 오브젝트에 동적으로 추가될 수 있습니다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;즉 생성자는 생성되어진 오브젝트의 프로퍼티 일부분 혹은 전체에 이름과 값의 할당하는 것을 요구하지 않습니다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;&quot;&gt;위의 다이어그램에서&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;한가지&lt;span lang=&quot;EN-US&quot;&gt;
CFp&lt;/span&gt;에 프로퍼티에 새로운 값을 할당하는 것에 의해&lt;span lang=&quot;EN-US&quot;&gt; CF1, CF2, CF3, CF4, CF5&lt;/span&gt;를
위한 새로운 공유된 프로퍼티를 추가할 수 있다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;span style=&quot;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;

모두 ECMAScript 262-2 Spec 자료입니다.&lt;br /&gt;중간에 번역의 이해를 돕고자 이미지화 하였습니다.&amp;nbsp; 혹 이미지화 한 것이 혼동을 잃으킬 수도 있습니다. ^-^;&lt;br /&gt;오역이 있을 수 있지만 최대한 번역에 대한 점검을 하였습니다. (외국에 살다온 직장 동료에게 검증을 받았습니다. ^^;;)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;</description>
			<category>Javascript</category>
			<category>constructor</category>
			<category>JavaScript</category>
			<category>object</category>
			<category>Prototype</category>
			<category>자바스크립트</category>
			<category>프로토타입</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/236</guid>
			<comments>http://rhio.tistory.com/236#entry236comment</comments>
			<pubDate>Tue, 29 Apr 2008 01:02:31 +0900</pubDate>
		</item>
		<item>
			<title>Ari Balogh - Web 2.0 Expo Keynote</title>
			<link>http://rhio.tistory.com/237</link>
			<description>&lt;div style=&quot;text-align: center;&quot;&gt;YAHOO 의 CTO Ari Balogh 의 강연입니다.&lt;br /&gt;- Open Social Networking -&lt;br /&gt;&lt;embed src=http://cosmos.bcst.yahoo.com/up/fop/embedflv/swf/fop_wrapper.swf?sv=0&amp;amp;id=7546019&amp;amp;autoStart=0&amp;amp;infoEnable=1&amp;amp;shareEnable=1&amp;amp;prepanelEnable=1&amp;amp;carouselEnable=0&amp;amp;postpanelEnable=1 width=&quot;400&quot; height=&quot;300&quot; type=application/x-shockwave-flash&gt;&lt;/embed&gt;&lt;br /&gt;원본(YDN영화관) : &lt;a href=&quot;http://developer.yahoo.net/blogs/theater/&quot; target=&quot;_blank&quot;&gt;http://developer.yahoo.net/blogs/theater/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;누간 먼저 시작하려나?&lt;br /&gt;준비 시작!&lt;br /&gt;&lt;/div&gt;</description>
			<category>IT room</category>
			<category>Ari Balogh</category>
			<category>Open Social</category>
			<category>social</category>
			<category>web2.0 Expo</category>
			<category>Yahoo</category>
			<category>소셜네트워크</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/237</guid>
			<comments>http://rhio.tistory.com/237#entry237comment</comments>
			<pubDate>Tue, 29 Apr 2008 00:06:57 +0900</pubDate>
		</item>
		<item>
			<title>Adobe AIR 와 Google Gears에 대한 기술 요약</title>
			<link>http://rhio.tistory.com/234</link>
			<description>Adobe 사의 Ryan Stewart 씨와 Ajaxian의 java 커뮤니티 담당자인 Dion Almaer는 아래와 같은 슬라이드를 공유했네요.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Ajax Application 개발에 관심이 있다면 꼭 AIR에 대한 기술도 연마하시기를 권장합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adobe의 AIR와 Google의 Gears 의 발전 방향은 서로 비슷합니다. &lt;br /&gt;온라인의 기능을 오프라인의 데스크탑 어플리케이션으로 만들 수 있는 방법을 제시하고 있습니다.&lt;br /&gt;&lt;br /&gt;아래의 슬라이드 자료는 Ryan Stewart 씨의 AIR에 대한 개요를 제시하였고 이에 맞서 Dion Almaer씨가&lt;br /&gt;Google의 Gears에 대한 개요를 제시하였습니다. &lt;br /&gt;&lt;br /&gt;두 사람은 웹의 발전에 흥분하는 이유를 논의했고 또한 AIR과 Gears의 상호 보완할 수 있는 것들 또한&lt;br /&gt;찾을 수 있었습니다. &lt;br /&gt;&lt;br /&gt;처음 슬라이드를 볼때와는 달리 대화가 끝나고 슬라이드를 봤을때는 어려움이 없었다. &lt;br /&gt;재미있는 연습을 통해 아래의 슬라이드 자료를 본다면 많은 도움이 될것 같습니다.&lt;br /&gt;
&lt;div style=&quot;width: 425px; text-align: left;&quot; id=&quot;__ss_369823&quot;&gt;&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;/cite&gt;&lt;object style=&quot;margin:0px&quot; height=&quot;355&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=web20exporiaofflinedesktop-1208983190959964-8&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=web20exporiaofflinedesktop-1208983190959964-8&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/?src=embed&quot;&gt;&lt;img src=&quot;http://static.slideshare.net/swf/logo_embd.png&quot; style=&quot;border: 0px none ; margin-bottom: -5px;&quot; alt=&quot;SlideShare&quot;&gt;&lt;/a&gt; | &lt;a href=&quot;undefined&quot; title=&quot;View this slideshow on SlideShare&quot;&gt;View&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/upload&quot;&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img style=&quot;visibility: hidden; width: 0px; height: 0px;&quot; src=&quot;http://counters.gigya.com/wildfire/CIMP/Jmx*PTEyMDkxMzUxNjczMTImcHQ9MTIwOTEzNTE3MTcwMyZwPTEwMTkxJmQ9Jm49.jpg&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot;&gt;&lt;br /&gt;</description>
			<category>Tech</category>
			<category>Adobe</category>
			<category>AIR</category>
			<category>Gears</category>
			<category>Google</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/234</guid>
			<comments>http://rhio.tistory.com/234#entry234comment</comments>
			<pubDate>Sat, 26 Apr 2008 00:33:49 +0900</pubDate>
		</item>
		<item>
			<title>Ajax 개발 시 자주 발생하는 순환참조 메모리 테스트 결과</title>
			<link>http://rhio.tistory.com/222</link>
			<description>&lt;br /&gt;몇 일전 &lt;a href=&quot;http://blog.ecmas4.com/216&quot;&gt;가비지 컬랙션&lt;/a&gt;에 대해서 포스팅할때 함께 기재할 메모리 테스트 부분에 대한 결과입니다.&lt;br /&gt;이미지 첨부할게 너무 많아 PDF로 만들어서 첨부합니다.&lt;br /&gt;&lt;br /&gt;도움이 될련지는 모르겠습니다.&lt;br /&gt;&lt;br /&gt;테스트 코드 역시 첨부합니다.&lt;br /&gt;테스트 코드는 IE 8의 순환참조에 대한 메모리 누수 마이그레이션 팁에 대한 내용을 실제로 구현 테스트 해 본것입니다.&amp;nbsp; 실제로 테스트 코드와 같은 패턴의 사용은 메모리 IE에서 메모리 누수의 심각성을 보여줍니다.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;IE Circular-Memory-leak Magration&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/ek090000000003.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Circular-Memory-Leak Mitigation.pdf&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;메모리 누수 테스트 결과&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/ek090000000004.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; 메모리누스 그래프.pdf&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;테스트 코드&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://rhio.tistory.com/attachment/ek090000000005.zip&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; TLeak.zip&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;도움이 얼마나 될른지는 모르겠습니다. ^^&lt;br /&gt;순환참조에 대한 경각심 정도는 불러 일으킬 수 있지 않을까 싶기도 하네요.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
			<category>Javascript</category>
			<category>Circular</category>
			<category>JavaScript</category>
			<category>reference</category>
			<category>메모리누수</category>
			<category>순환참조</category>
			<category>자바스크립트</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/222</guid>
			<comments>http://rhio.tistory.com/222#entry222comment</comments>
			<pubDate>Tue, 15 Apr 2008 01:19:20 +0900</pubDate>
		</item>
		<item>
			<title>javascript 책 소개</title>
			<link>http://rhio.tistory.com/221</link>
			<description>			&lt;div id=&quot;daum_book&quot; style=&quot;border: 1px solid rgb(238, 238, 238); margin: 5px 0px 0px; padding: 10px; width: 94%; clear: both;&quot;&gt;
				&lt;a id=&quot;p_coverlink&quot; href=&quot;http://book.daum.net/bookdetail/book.do?bookid=ENG9781590597279&quot; target=&quot;_blank&quot;&gt;
					&lt;img id=&quot;p_cover&quot; src=&quot;http://photo-book.daum-img.net/images/book/commons/Noimage_s.gif&quot; style=&quot;border: 0px solid rgb(221, 221, 221); float: left; margin-right: 10px; height: 99px;&quot;&gt;
				&lt;/a&gt;
				&lt;a target=&quot;_blank&quot; href=&quot;http://book.daum.net/bookdetail/book.do?bookid=ENG9781590597279&quot; id=&quot;p_title&quot; style=&quot;font-size: 12px; font-weight: bold;&quot;&gt;Pro Javascript Techniques&lt;/a&gt;
				&lt;a target=&quot;_blank&quot; href=&quot;http://book.daum.net/bookdetail/book.do?bookid=ENG9781590597279&quot; id=&quot;p_link&quot; style=&quot;background: transparent url(http://cfs.tistory.com/blog/plugins/DaumBookInfo/images/icon_arrow.gif) no-repeat scroll right 3px; font-family: 돋움; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; letter-spacing: -1px; color: rgb(153, 153, 153); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; padding-right: 5px; text-decoration: underline; display: inline;&quot;&gt;상세보기&lt;/a&gt;
				&lt;div id=&quot;p_author_area&quot; style=&quot;margin-bottom: 8px;&quot;&gt;
					&lt;span id=&quot;p_author&quot;&gt;Resig, John&lt;/span&gt; 지음 |
					&lt;span id=&quot;p_publish&quot;&gt;Springer&lt;/span&gt; 펴냄
				&lt;/div&gt;
				&lt;div style=&quot;overflow: hidden; height: 52px;&quot;&gt;
				&lt;span id=&quot;p_description&quot; style=&quot;margin: 2px; font-family: Dotum,Sans-Serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: 1.5; font-size-adjust: none; font-stretch: normal;&quot;&gt;Provides information on using JavaScript to develop Web sites.&lt;/span&gt;
				&lt;/div&gt;				
			&lt;/div&gt;
	    &lt;br /&gt;Apress 에서 간만에(?) 좋은 책을 출간한듯 합니다.&lt;br /&gt;조금 되긴했지만요.. ^^&lt;br /&gt;&lt;br /&gt;
요즘 출퇴근 시간에 어디 오갈때 보고 있는 책입니다.&amp;nbsp; &lt;br /&gt;
사실 구매는 하지 않았고 &lt;a href=&quot;http://nanchostyle.tistory.com&quot; target=&quot;_blank&quot;&gt;에디나양&lt;/a&gt;이 재본을 해줘서 잘 보고 있습니다.&lt;br /&gt;
&lt;br /&gt;
javascript에 대한 기술적인 소개와 DOM 과의 연동에 있어서 이슈가 될만한 사항들&lt;br /&gt;
jQuery 창시자이니 만큼 그에 관련된 기술적인 노하우도 조금씩 섞여있는 듯 합니다.&lt;br /&gt;
&lt;br /&gt;
또한 내용들은 Ajax 어플리케이션 개발에 많은 도움을 주는 듯합니다.&lt;br /&gt;
또한 Framework에 대한 이해도도 좀더 빨라지지 않을까 라는 생각을 해봅니다.&lt;br /&gt;
&lt;br /&gt;
아직 읽기 시작한지 얼마 되지 않았지만 상당히 좋은 내용이 많았습니다.&lt;br /&gt;
Javascript를 통한 DOM 처리 부분, Javascript의 특징, OOP가 가능하게되는 것들 다양한 기술적으로&lt;br /&gt;
접하지 못하는 부분들까지 조목조목 잘 집어주는 듯 합니다.&lt;br /&gt;
&lt;br /&gt;
또한 국내에서는 그다지 javascript에 대한 프로그래밍 언어로서의 교재는 턱없이 부족한데 이 책의&lt;br /&gt;
번역서가 나온다면 참 좋은 레퍼런스가 되지 않을까 생각해봅니다.&lt;br /&gt;&lt;br /&gt;
			&lt;div id=&quot;daum_book&quot; style=&quot;border: 1px solid rgb(238, 238, 238); margin: 5px 0px 0px; padding: 10px; width: 94%; clear: both;&quot;&gt;
				&lt;a id=&quot;p_coverlink&quot; href=&quot;http://book.daum.net/bookdetail/book.do?bookid=ENG9781590599082&quot; target=&quot;_blank&quot;&gt;
					&lt;img id=&quot;p_cover&quot; src=&quot;http://photo-book.daum-img.net/images/book/commons/Noimage_s.gif&quot; style=&quot;border: 0px solid rgb(221, 221, 221); float: left; margin-right: 10px; height: 99px;&quot;&gt;
				&lt;/a&gt;
				&lt;a target=&quot;_blank&quot; href=&quot;http://book.daum.net/bookdetail/book.do?bookid=ENG9781590599082&quot; id=&quot;p_title&quot; style=&quot;font-size: 12px; font-weight: bold;&quot;&gt;Pro JavaScript Design Patterns&lt;/a&gt;
				&lt;a target=&quot;_blank&quot; href=&quot;http://book.daum.net/bookdetail/book.do?bookid=ENG9781590599082&quot; id=&quot;p_link&quot; style=&quot;background: transparent url(http://cfs.tistory.com/blog/plugins/DaumBookInfo/images/icon_arrow.gif) no-repeat scroll right 3px; font-family: 돋움; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; line-height: normal; font-size-adjust: none; font-stretch: normal; letter-spacing: -1px; color: rgb(153, 153, 153); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; padding-right: 5px; text-decoration: underline; display: inline;&quot;&gt;상세보기&lt;/a&gt;
				&lt;div id=&quot;p_author_area&quot; style=&quot;margin-bottom: 8px;&quot;&gt;
					&lt;span id=&quot;p_author&quot;&gt;Harmes, Ross/ Diaz, Dustin&lt;/span&gt; 지음 |
					&lt;span id=&quot;p_publish&quot;&gt;Springer&lt;/span&gt; 펴냄
				&lt;/div&gt;
				&lt;div style=&quot;overflow: hidden; height: 52px;&quot;&gt;
				
				&lt;/div&gt;				
			&lt;/div&gt;
	    &lt;br /&gt;Pro javascript technical 에 더불어 Design patterns 책인데요.&amp;nbsp; 다른 디자인 패턴 책들과 내용은 유사합니다. &lt;br /&gt;다만 Javascript의 디자인 패턴이라는 것!!&lt;br /&gt;&lt;br /&gt;기회가 된다면 이 책도 함께 읽어보면 좋을 것같습니다. &lt;br /&gt;Java나 다른 객체지향을 했던 분들이 javascript의 패턴 책을 본다면 몹시도 혼돈스럽지 않을까도 생각이 듭니다. 그 흐름은 같지만 예제가 그다지 와닫지 않을 수 있다라는 생각을 했었습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs5.tistory.com/original/3/tistory/2008/04/14/23/43/48036da0e8a81&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs5.tistory.com/image/3/tistory/2008/04/14/23/43/48036da0e8a81&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;50&quot; width=&quot;50&quot;/&gt;&lt;/a&gt;&lt;/div&gt;사실 제가 요즘 부쩍 판도라에 대한 포스팅을 자주 하는데요.&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;블로그 성격 이탈 현상을 보이지 않았나 생각해봅니다.&lt;br /&gt;&lt;br /&gt;하지만 아직 몇가지 더 해야합니다.&amp;nbsp; &lt;span style=&quot;font-weight: bold; text-decoration: underline; color: rgb(255, 0, 0);&quot;&gt;핵심&lt;/span&gt;이 남아있기 때문입니다.&lt;br /&gt;판도라 티비의 서비스의 &lt;span style=&quot;font-weight: bold;&quot;&gt;Ajax 구현 Work Flow에 대해서 포스팅 할 계획&lt;/span&gt;입니다.&lt;br /&gt;또한 &lt;span style=&quot;font-weight: bold; color: rgb(0, 128, 0);&quot;&gt;멀티 랭귀지 지원&lt;/span&gt;과 &lt;span style=&quot;font-weight: bold; color: rgb(204, 153, 0);&quot;&gt;Full Ajax 구현&lt;/span&gt;, &lt;span style=&quot;color: rgb(212, 26, 1); font-weight: bold;&quot;&gt;Ajax 보안&lt;/span&gt;, &lt;span style=&quot;color: rgb(255, 51, 153); font-weight: bold;&quot;&gt;글로벌 서비스를 위한 Ajax의 선택&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 102, 153);&quot;&gt;Ajax Framework의 선택&lt;/span&gt;, &lt;span style=&quot;font-weight: bold; color: rgb(155, 24, 193);&quot;&gt;Full Ajax의 문제점&lt;/span&gt; 등 &lt;br /&gt;&lt;br /&gt;Full Ajax Application 을 개발하면서 발생할 수 있는 이슈에 대한 전반적인&lt;br /&gt;사항을 볼 계획입니다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description>
			<category>booknmagaz</category>
			<category>Diaz</category>
			<category>Harmes</category>
			<category>JavaScript</category>
			<category>pro javascript</category>
			<category>Resig</category>
			<category>디자인 패턴</category>
			<category>자바스크립트</category>
			<author>Rhio.kim</author>
			<guid>http://rhio.tistory.com/221</guid>
			<comments>http://rhio.tistory.com/221#entry221comment</comments>
			<pubDate>Mon, 14 Apr 2008 23:51:34 +0900</pubDate>
		</item>
		<item>
			<title>판도라 글로벌 서비스의 플래시 플레이어 - 두번째 리뷰</title>
			<link>http://rhio.tistory.com/220</link>
			<description>&lt;a href=&quot;213&quot; onclick=&quot;document.getElementById(&#039;list-form&#039;).action=&#039;/owner/entry/edit/213&#039;; document.getElementById(&#039;list-form&#039;).submit(); return false;&quot;&gt;판도라 글로벌 서비스의 서막 - 첫번째 리뷰&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;214&quot; onclick=&quot;document.getElementById(&#039;list-form&#039;).action=&#039;/owner/entry/edit/214&#039;; document.getElementById(&#039;list-form&#039;).submit(); return false;&quot;&gt;판도라 티비 졸라 짱나 왜? 글로벌인데도 똑같아!?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs5.tistory.com/original/17/tistory/2008/04/13/20/39/4801f0f891773&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs5.tistory.com/image/17/tistory/2008/04/13/20/39/4801f0f891773&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;422&quot; width=&quot;448&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;글로벌 판도라티비의 새로운 &lt;strong&gt;&lt;u&gt;이름 없는 플레이어&lt;/u&gt;&lt;/strong&gt;이다.&amp;nbsp; 어떻게 보면 판도라 티비는 이것 하나로 먹고 산다고 해도 과언이 아니다.&amp;nbsp; 판도라티비 뿐만 아니라 이런 플레이어로 먹고 살고 있는 사이트는 국내에도 국외에도 수도 없이 많이 있다.&lt;br /&gt;&lt;br /&gt;판도라티비는 이제 전 세계적으로 플래시 플레이어를 이용해 먹고 살려고 하고 있다.&amp;nbsp; 너무 과장되고 비하적인 소개일까?&amp;nbsp; &lt;br /&gt;&lt;br /&gt;저게 없다면 판도라티비는 존재하지 않을 정도로 중요하고 기술의 핵심이 숨어있다고 해도 과언이 아닐 것이다.&amp;nbsp; &amp;nbsp;수 많은 광고 수익을 가능케하고, 임베디드 환경을 제공함으로써 영상 컨텐츠의 확산을 최대화 하고 이슈화 할 수 있으며, 통신사 3사와 업무제휴를 통한 문자서비스, 마지막으로 가장 중요한 세계의 많은 유저들을 한자리에 모이게 하는 영상 컨텐츠를 원할히 제공하는 주된 기능을 갖고 있다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;과연 이 플래시 플레이어는 단지 플래시 플레이어라는 명칭으로 끝나야 할까? &lt;br /&gt;심지어 HD 서비스를 하기 위해서 Video Streamer와 연동되어 전세계 유저들에게 HD 서비스를 제공하는 인터페이스를 제공하고 있는데 보이지도 않는 Video Streamer 는 멋드러진 이름이 있는데 판도라티비의 핵심인 플래시 플레이어를 너무 천대 하는게 아닐까?&lt;br /&gt;&lt;br /&gt;이젠 기억조차 나지 않는 국내 서비스의 플래시 플레이어는 몹시 엉성한 디자인부터 쓰레기 같은 광고 정책으로 서비스 자체에 신뢰도를 바닥으로 끌어 내리는 주된 요인이 되었다.&amp;nbsp; 이처럼 고객과 판도라티비의 서비스의 사이에서 긴밀한 역할을 하는 플래시 플레이어의 새로운 변화.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;바로 이 플레이어가 세계로 나가는 판도라의 중추적인 역할을 하고 있다는 것을 알리고 또한 &lt;strong&gt;&lt;font color=&quot;#9b18c1&quot;&gt;기존 유저들이 알지 못했던 새로운 기능과 변화에 대한 정보 전달을 목적으로 합니다.&lt;/font&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;일반 플레이어&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs6.tistory.com/original/18/tistory/2008/04/13/20/40/4801f12464bbb&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs6.tistory.com/image/18/tistory/2008/04/13/20/40/4801f12464bbb&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;474&quot; width=&quot;570&quot;/&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;일반 플레이어 사이즈&lt;span lang=&quot;EN-US&quot;&gt;(Size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;가로 사이즈&lt;span lang=&quot;EN-US&quot;&gt;(width) : 448px&lt;br /&gt;&lt;/span&gt;세로 사이즈&lt;span lang=&quot;EN-US&quot;&gt;(height) : 385px (&lt;/span&gt;네비게이션 사이즈&lt;span lang=&quot;EN-US&quot;&gt; + &lt;/span&gt;플레이영역 사이즈&lt;span lang=&quot;EN-US&quot;&gt;)&lt;br /&gt;&lt;/span&gt;실제 영상 플레이 영역 사이즈&lt;span lang=&quot;EN-US&quot;&gt; : &lt;b&gt;448px&lt;/b&gt;(width) * &lt;b&gt;335px&lt;/b&gt;(height)&lt;span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;전형적인&lt;span lang=&quot;EN-US&quot;&gt; 4 : 3 &lt;/span&gt;사이즈로 기존 국내 서비스의 사이즈에 비해서는 다소 커진듯한 모습을 보인다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs4.tistory.com/original/8/tistory/2008/04/13/20/40/4801f13c95a98&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs4.tistory.com/image/8/tistory/2008/04/13/20/40/4801f13c95a98&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;335&quot; width=&quot;448&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot; lang=&quot;EN-US&quot;&gt;HD &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;플레이어&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs6.tistory.com/original/11/tistory/2008/04/13/20/41/4801f151ec95d&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs6.tistory.com/image/11/tistory/2008/04/13/20/41/4801f151ec95d&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;374&quot; width=&quot;569&quot;/&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot; lang=&quot;EN-US&quot;&gt;HD &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;플레이어 사이즈&lt;span lang=&quot;EN-US&quot;&gt;(Size)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;가로 사이즈&lt;span lang=&quot;EN-US&quot;&gt;(width) : 807px&lt;br /&gt;&lt;/span&gt;세로 사이즈&lt;span lang=&quot;EN-US&quot;&gt;(height) : 503px (&lt;/span&gt;네비게이션 사이즈&lt;span lang=&quot;EN-US&quot;&gt; + &lt;/span&gt;플레이영역 사이즈&lt;span lang=&quot;EN-US&quot;&gt;)&lt;br /&gt;&lt;/span&gt;실제 영상 플레이 영역 사이즈&lt;span lang=&quot;EN-US&quot;&gt; : &lt;b&gt;807px&lt;/b&gt;(width) * &lt;b&gt;453px&lt;/b&gt;(height)&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs5.tistory.com/original/19/tistory/2008/04/13/20/41/4801f16b54c4e&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs5.tistory.com/image/19/tistory/2008/04/13/20/41/4801f16b54c4e&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;318&quot; width=&quot;569&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;유저 인터페이스&lt;span lang=&quot;EN-US&quot;&gt;(User Interface)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;색상&lt;span lang=&quot;EN-US&quot;&gt; : &lt;/span&gt;대부분의 국내 티비는 블랙 계열의 색상을 선호한다&lt;span lang=&quot;EN-US&quot;&gt;.&amp;nbsp; &lt;/span&gt;이에 블랙을 기본색으로 국내 정서에 가장 알맞은 색상을 선택한 것이 아닌가 싶다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; 또한 블랙은 영상을 보는 유저들에게 피로감을 최소화 하고 영상에 집중할 수 있도는 색상이다.&amp;nbsp; &lt;br /&gt;&lt;/span&gt;화려하게 영상 재생을 위해서 다양한 기능을 제공하기보다 최소한의 심플함으로 영상을 제공받는 유저들에게 편의성을 제공하려는 모습이 곳곳에 숨어있는 것 같다.&lt;br /&gt;&lt;br /&gt;불필요한 기능의 거품은 거의 없고 필요한 기능만 최소한으로 넣은 듯해 보이지만 수정해야할 부분은 구석구석 존재한것 같습니다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;네비게이션&lt;span lang=&quot;EN-US&quot;&gt;(Navigation)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs6.tistory.com/original/10/tistory/2008/04/13/20/43/4801f1e60b69d&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs6.tistory.com/image/10/tistory/2008/04/13/20/43/4801f1e60b69d&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;166&quot; width=&quot;552&quot;/&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#008000&quot;&gt;레이아웃&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt; : &lt;/span&gt;입체적인 분위기는 실제&lt;span lang=&quot;EN-US&quot;&gt; TV&lt;/span&gt;와 유사한 느낌을 주도록 디자인 되어있고 기능별 버튼이 기존 서비스에 비해 커진듯 하다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;font color=&quot;#d41a01&quot;&gt;&lt;strong&gt;타임라인&lt;/strong&gt;&lt;/font&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;font color=&quot;#d41a01&quot;&gt;&lt;strong&gt;(timeline)&lt;/strong&gt;&lt;/font&gt; : &lt;/span&gt;여전히 클릭하기 애매하게 만들어 놓았다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;몹시 얇은 타임라인을 클릭해 스킵기능 활용할 때 신경이 조금씩 쓰인다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;font color=&quot;#ff3399&quot;&gt;런타임&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#ff3399&quot;&gt;(runtime)&lt;/font&gt;&lt;/strong&gt; : &lt;/span&gt;불필요한&lt;span lang=&quot;EN-US&quot;&gt; 00:00:00 &lt;/span&gt;외국은 시&lt;span lang=&quot;EN-US&quot;&gt;:&lt;/span&gt;분&lt;span lang=&quot;EN-US&quot;&gt;:&lt;/span&gt;초 라고 안 쓰는걸 아는지 모르는지&lt;span lang=&quot;EN-US&quot;&gt;? &lt;/span&gt;좀더 글로벌로 가는 기획과 생각이 필요하리라 보여진다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;또한 유저들이 영상을 보는 순간에 이 영상의 런타임과 재생된 시간을 신경 쓰면서 볼까&lt;span lang=&quot;EN-US&quot;&gt;?&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;시선의 포커스의 플로우&lt;span lang=&quot;EN-US&quot;&gt;(flow)&lt;/span&gt;를 파악하는 분석도 조금 해봤으면 한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;font color=&quot;#177fcd&quot;&gt;볼륨조절&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#177fcd&quot;&gt;(volum controller)&lt;/font&gt;&lt;/strong&gt; : &lt;/span&gt;제발 부탁이다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;자주 사용하는 것은 표준을 사용하자&lt;span lang=&quot;EN-US&quot;&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;font color=&quot;#993366&quot;&gt;음소거&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#993366&quot;&gt;(volum off)&lt;/font&gt;&lt;/strong&gt; : &lt;/span&gt;왜 만들어 놓았을까&lt;span lang=&quot;EN-US&quot;&gt;? 작어서 클릭하기도 어려운 기능인데 좀더 볼륨조절 기능 통합하여 좀더 개선할 수 있도록 했으면 좋겠다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;font color=&quot;#009966&quot;&gt;기능버튼&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#009966&quot;&gt;(play,stop)&lt;/font&gt;&lt;/strong&gt; : &lt;/span&gt;플레이&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;일시정지&lt;span lang=&quot;EN-US&quot;&gt;, &lt;/span&gt;정지&lt;span lang=&quot;EN-US&quot;&gt; 3&lt;/span&gt;가지의 기능을 제공하고 있다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;이 부분은 제발 개선되었으면 더욱 좋을 것 같다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;재생과 일시정지는 하나의 버튼에서 이루어져야 한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;그리고 그 재생과 일시정지 버튼은 더욱 크게 만들어야 한다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;영상을 제어하는 스킵 기능 다음으로 많이 사용할 수 있는 기능이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;대부분의 판도라티비 서비스에서는 영상 썸네일을 클릭하고 들어오게 되면 해당영상이 자동 재생되기 때문에 재생 버튼은 사실 불필요할 수 있다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;그렇지만 일시정지를 하는 유저들이 있기 때문에 필요는 하다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;strong&gt;&lt;font color=&quot;#ff9900&quot;&gt;전체화면&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#ff9900&quot;&gt;(full screen)&lt;/font&gt;&lt;/strong&gt; : &lt;/span&gt;이 기능도 눈에 잘 들어오지 않는데 키워달라 요청하고 싶다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;/span&gt;타임라인 밑에 저 많은 공간은 설마 광고로 활용할 것은 아닌지&lt;span lang=&quot;EN-US&quot;&gt;?&lt;span&gt;&amp;nbsp; &lt;/span&gt;HD &lt;/span&gt;서비스를 한다면 예전보다 더 많은 유저가 풀화면 기능을 사용할 것인데 그 기능을 다른 기능과 유사하게 만들어 놨으니 자세히 보기 전에는 어떤 기능일지 판단하기 어렵다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;font color=&quot;#999966&quot;&gt;임베디드&lt;/font&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#999966&quot;&gt;(embed)&lt;/font&gt;&lt;/strong&gt; : &lt;/span&gt;기존보다 좀더 심플하게 변한 것 같다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;근데&lt;span lang=&quot;EN-US&quot;&gt; IE&lt;/span&gt;에서만 되나&lt;span lang=&quot;EN-US&quot;&gt;?&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfs5.tistory.com/original/19/tistory/2008/04/13/20/44/4801f21b87c0b&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfs5.tistory.com/image/19/tistory/2008/04/13/20/44/4801f21b87c0b&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;106&quot; width=&quot;454&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;요약 하자면 &lt;strong&gt;&lt;u&gt;&lt;font color=&quot;#d41a01&quot;&gt;글로벌 서비스인 만큼 표준을 준수하자&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;strong&gt;&lt;u&gt;&lt;font color=&quot;#d41a01&quot;&gt;.&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt; &lt;/span&gt;뜬금없는 표준이란 소리&lt;span lang=&quot;EN-US&quot;&gt;!&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot; align=&quot;left&quot;&gt;전 세계에 판매하는 모든 제품들이 표준 규격에 얼마나 예민한지 알지 모를 것이다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;무슨 전자 제품도 파는 것도 아닌데&lt;span lang=&quot;EN-US&quot;&gt;? &lt;/span&gt;라는 생각 좋지 않다&lt;span lang=&quot;EN-US&quot;&gt;. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;유저들은 자주 쓰는 기능에 대한 것은 표준처럼 만들어 놓는게 필요하다&lt;span lang=&quot;EN-US&quot;&gt;.&lt;span&gt;&amp;nbsp; &lt;/spa