<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>root@Twelo.com</title>
		<link>http://www.twelo.com/</link>
		<description>늑대를 가장한 어린양 -</description>
		<language>ko</language>
		<pubDate>Tue, 18 Aug 2009 22:16:18 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<image>
		<title>root@Twelo.com</title>
		<url><![CDATA[http://cfs12.tistory.com/upload_control/download.blog?fhandle=YmxvZzU1MTEyQGZzMTIudGlzdG9yeS5jb206L2F0dGFjaC8wLzEuanBn]]></url>
		<link>http://www.twelo.com/</link>
		<description>늑대를 가장한 어린양 -</description>
		</image>
		<item>
			<title>故 김대중 前대통령님을 애도합니다.</title>
			<link>http://www.twelo.com/109</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/122624114A8AA481B3DB0D&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;noti_img.jpg&quot; height=&quot;270&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;br /&gt;

&lt;P align=center&gt;한국현대사의 산 증인이시자&amp;nbsp;&lt;/P&gt;
&lt;P align=center&gt;한국민주화의 큰 상징이셨던&lt;/P&gt;
&lt;P align=center&gt;故 김대중 前대통령님을 애도합니다.&lt;/P&gt;
&lt;P align=center&gt;대통령님의 명복을 빕니다&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-109-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-109-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Twelo</category>
			<category>김대중</category>
			<category>대통령서거</category>
			<category>애도</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/109</guid>
			<comments>http://www.twelo.com/109#entry109comment</comments>
			<pubDate>Tue, 18 Aug 2009 21:55:52 +0900</pubDate>
		</item>
		<item>
			<title>Bing !? - MS Bing 검색엔진</title>
			<link>http://www.twelo.com/108</link>
			<description>&lt;br /&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.bing.com&quot; target=&quot;_blank&quot; title=&quot;[http://www.bing.com]로 이동합니다.&quot;&gt;www.bing.com&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
MS에서 새롭게 공개한 &#039;빙&#039; 이라는 검색 엔진이다&lt;/div&gt;
&lt;div&gt;
현재는 Beta 버젼으로 검색을 해본결과, 사용자가 검색한 조건에 맞는 웹페이지 또는 사이트, 국내사이트(한국 또는 국가 설정으로 자신의 국가에 등록된 사이트)를 검색 할 수 있다&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
메타 검색 을 포함해, 검색단어에 맞는 사용자가 원하는 답을 주기위해 Instant Answer 라는 MS에 목표에 맞게 검색단에에&amp;nbsp;관련된 검색을 표시해 주고 있지만. 구글에서 사용할수 있는 파일타입 검색 방법은 지원이 되지 않고있다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
또한 첫페이지 및 UI는 심플하다, 하지만 나라별로 대표해주는 사진을 제공해주었다면 좀더 호감형이 되지 않았나... 생각한다 (물론 호감/비호감은 개인적이다)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/122837134A265C2473E086&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;Untitled-1.jpg&quot; height=&quot;384&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
기존 MS를 대표해주던 LIVE SEARCH(라이브서치) 역시 Bing 으로 통합 되었다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
Bing의 검색 기능중에 &lt;a href=&quot;http://www.bing.com/xrank/?FORM=ZDLE4&quot; target=&quot;_blank&quot; title=&quot;[http://www.bing.com/xrank/?FORM=ZDLE4]로 이동합니다.&quot;&gt;XRank&lt;/a&gt; 라는 기능이 있다&lt;/div&gt;
&lt;div&gt;
가장 많이 검색된 인물과 항목을 볼 수 있다, 이는 사용자에 의해 검색이된 횟수를 카운터해 검색의 답을&amp;nbsp;준다.&lt;/div&gt;
&lt;div&gt;
국내의 네이버와 다음을 벤치마킹 했는지는 알수 없지만, 검색 순위의 변동까지 표시한다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
국내 &#039;빙&#039; 과 달리 미국판 &#039;빙&#039;은 조금더 낳은 기능을 제공한다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile3.uf.tistory.com/image/153194284A265E0626D5DE&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;Untitled-12.jpg&quot; height=&quot;348&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
쇼핑과, 비디오, 맵 그리고 여행에 대한 정보를 제공한다.&lt;/div&gt;
&lt;div&gt;
특히 여행에 관한 정보는 아주 상세한 검색이 제공되며..&lt;/div&gt;
&lt;div&gt;
이는&amp;nbsp;마치 검색엔진(검색사이트) 라기보다는 광고와, 주요기사가 없는&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
포털 사이트에 가까운 느낌이다, 또한 MS의 기술인 Silveright(실버라이트)를 이용하여&lt;/div&gt;
&lt;div&gt;이미지를 제공 한다는게 좀더 MS답고 독특한 느낌이다&lt;/div&gt;
&lt;div&gt;
심플한 네이버! 심플한 다음! .. igoogle 에비해서 심플함에서는&amp;nbsp;는 조금 앞서는 느낌이다&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
정식오픈까지 국내 &#039;빙&#039; 에도 많은 카테고리와, 상세검색을 위한 기능등이 추가된다면 좋은 느낌의 검색 엔진이 될꺼같다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
아래는 Twelo.com을 검색해본 결과이다. 마치 알타비스타 처럼 표시된다&lt;/div&gt;
&lt;div&gt;
twel.com의 링클 걸고있는 pmguda.com 까지 검색된다(뭐 당연한건가..)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile5.uf.tistory.com/image/174455284A265F8105F96E&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;Untitled-11.jpg&quot; height=&quot;384&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
여튼 새로운 검색엔진, 검색사이트 등이 개발되고 경쟁되고있다.&lt;/div&gt;
&lt;div&gt;
국내에서는 네이버라는 지식in 서비스를 제공해주는&amp;nbsp;포털사이트가 부동의 1위를 지킬터지만&lt;/div&gt;
&lt;div&gt;
IT에 관심이 많은 입장에서 아주 재밌는 게임이 될꺼같다&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
구글은 MS를 견제하기 위해 &#039;크롬&#039;을 내놓았고&lt;/div&gt;
&lt;div&gt;
MS는 구글을 견제하기 위해 &#039;빙&#039;을 내놓았다&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-108-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-108-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Blah Blah</category>
			<category>Bing</category>
			<category>bing.com</category>
			<category>Google</category>
			<category>MS빙</category>
			<category>검색엔진</category>
			<category>빙</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/108</guid>
			<comments>http://www.twelo.com/108#entry108comment</comments>
			<pubDate>Wed, 03 Jun 2009 20:36:36 +0900</pubDate>
		</item>
		<item>
			<title>JAVA - JAVA 스윙에서의 Drag &amp; Drop 구현, DnD Source</title>
			<link>http://www.twelo.com/107</link>
			<description>&lt;FONT size=2&gt;&amp;nbsp;&lt;br /&gt;
&lt;/FONT&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Drag &amp;amp; Drop의 구현&lt;/H2&gt;
&lt;P style=&quot;BORDER-RIGHT: #5d6a12 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #5d6a12 1px solid; PADDING-LEFT: 5px; BACKGROUND: #e9967a; PADDING-BOTTOM: 5px; BORDER-LEFT: #5d6a12 1px solid; COLOR: black; PADDING-TOP: 5px; BORDER-BOTTOM: #5d6a12 1px solid&quot;&gt;스윙에서의 Drag &amp;amp; Drop 을 구현해 보자. 과정이 꽤 복잡하고 기능상에 약간의 제약은 있으나 한번 구현해 볼 만한 예제라고 생각을 한다. 소스코드는 자바소프트에서 발췌했음을 알아두길 바란다. 중간중간에 풍선도움말을 두겠으니 단풍잎에 마우스를 갖다대면 도움말이 뜨니 참고하길 바란다. &lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=two&gt;&lt;IMG height=12 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/bullet.gif&quot; width=12 border=0&gt; Drag &amp;amp; Drop step &lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=one&gt;Drag &amp;amp; Drop 을 구현하는 것은 비교적 쉽다. 그렇지만 가장 난해한 것은 모든 과정에 대해서 이해하는 것이다. 다음의 순서를 먼저 익혀두길 바란다. &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/dnd.zip&quot;&gt;[ DnD Source Download]&lt;/A&gt;&lt;br /&gt;
&lt;br /&gt;&lt;SPAN&gt;1. Drag source 에 대한 참조를 가진다. - DragSource.getDefaultSource() 나 new DragSource() 를 통해서.&lt;br /&gt;
2. Drag gesture recognizer 를 생성한다. - DragSource.createDafaultGestureRecognizer()&lt;br /&gt;
3. Drop target 를 생성한다. - 하나의 컴포넌트와 Drop target listener 를 명세한다.&lt;br /&gt;
4. Transferable 로 옮겨질 수 있는 데이타를 wrap 한다.&lt;br /&gt;
5. Drag 를 초기화한다. - DragSource.startDrag()&lt;br /&gt;
6. DropTargetLisenter, DragSource 인터페이스를 구현함으로써 Drop 를 핸들링한다. &lt;br /&gt;
&lt;br /&gt;&lt;/SPAN&gt;Drag &amp;amp; Drop (이하 D&amp;amp;D) 는 하나의 datasource 와 여러개의 droptarget 에 - 흔히 콤포넌트와 연관되어져 있다 - 와 연관되어 이뤄진다. 다음에 나열된 클래스와 인터페이스는 D&amp;amp;D 에서 사용되는 것을 정리한 것이다. 대부분의 것들은 java.awt.dnd 패키지에 있고, 오직 하나 Transferable 은 java.awt.datatransfer 패키지에 있다.&lt;br /&gt;

&lt;P style=&quot;BORDER-RIGHT: #5d6a12 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #5d6a12 1px solid; PADDING-LEFT: 5px; BACKGROUND: #fafad2; PADDING-BOTTOM: 5px; BORDER-LEFT: #5d6a12 1px solid; COLOR: #777777; PADDING-TOP: 5px; BORDER-BOTTOM: #5d6a12 1px solid&quot;&gt;DragGestureRecognizer : 컴포넌트에서 drag 를 수행할려고 할때 이벤트를 발사한다.&lt;br /&gt;
DragSource : Drag 와 DragGestureRecognizer 를 초기화한다.&lt;br /&gt;
DropTarget : 연관된 컴포넌트 상에서 Drop 이 일어난다. &lt;br /&gt;
Transferable ; D&amp;amp;D 를 통해서 전송되어지는 데이타를 위한 Wrapper 이다.&lt;br /&gt;
DragGestureListener : DragGestureRecognizer 에 의해 통보를 받고 drag 를 초기화한다.&lt;br /&gt;
DragSourceListener : DragSource 이벤트에 반응한다.&lt;br /&gt;
DropTargetListener : Drop 포함한 target 이벤트를 핸들링한다.&lt;br /&gt;
&lt;/P&gt;D&amp;amp;D 는 하나의 기미(Gesture) 즉, 마우스를 내려서 드래깅을 시도할때 초기화된다. 그러면 DragGestureRecognizer 는 이런 기미를 포착하고 이벤트를 발생하는 것이다.&lt;br /&gt;
&lt;SPAN&gt;DragSource 는 startDrag() 메소드로 초기화작업을 수행하고, createDragGestureRecognizer() 나 createDafaultDragGestureRecognizer() 를 이용하여 DragGestureRecognizer 를 생성하게 되는 것이다.&lt;/SPAN&gt; &lt;br /&gt;
DropTarget 은 하나의 컴포넌트와 Listener 객체와 연관되어 있어서 drop target event 가 발생할때 listener 객체가 통보를 받게 된다.&lt;br /&gt;
DragGestureListener 는 recognizer 에 의해 drag gesture 를 통보받는데 전형적인 반응예는 DragSource.startDrag() 메소들르 호출하게 되었을 경우이다.&lt;br /&gt;
DragSourceListener 는 drag 가 초기화된 후 dragsource 에서 일어나게 된다.&lt;br /&gt;
&lt;br /&gt;다소 나열적인 설명이었지만 어느 정도 감을 잡기 위해서 중복 설명했다. D&amp;amp;D 하는 과정과 메소드호출, 클래스와 인터페이스의 API 를 꼼꼼하게 살펴보면 이해할 수 있으리라 생각한다. &lt;SPAN&gt;가장 기본적인 D&amp;amp;D 를 하기 위해서는 반드시 DragSource, DropTarget, DragGestureRecognizer, Transferable 이 반드시 생성이 되어야 하고, Listener 가 구현되어야 한다는 것을 명심하길 바란다.&lt;/SPAN&gt; 그러나 실제 구현은 몇가지 객체를 생성하고 데이타를 Wrapping 하고 핸들링하는 것을 빼면 나머지 동작은 프로그래머 재량에 상관없이 자체적으로 구현이 된다. &lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=two&gt;&lt;IMG height=12 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/bullet.gif&quot; width=12 border=0&gt; Adding D&amp;amp;D to Swing Component &lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=one&gt;여기서도 두가지 방법이 있을 수가 있는데 &lt;SPAN&gt;한가지 방법으로는 Swing Component 를 상속해 객체를 만들어 그것을 DragSource, DropTarget 으로 만들어 사용하는 방법과 제 3의 콤포넌트를 생성해 두가지를 수행하는 방법이 있다.&lt;/SPAN&gt;&lt;br /&gt;
첫번째 방법으로 수행을 하면 반드시 객체만이 D&amp;amp;D 특성을 가질수가 있고, 표준 Component 는 그런 특성을 공유할 수 없음을 명심하길 바란다. 가령 JList 를 상속한 ListDragSource 객체를 만들어서 D&amp;amp;D 를 추가해 사용한다면 ListDragSource 만이 그런 동작을 할 수 있다는 것을 의미한다. &lt;br /&gt;
&lt;br /&gt;아래에 있는 그림은 이 프로그램을 실행시켰을때 볼 수 있는 화면이다. 왼쪽은 DragSource 로 &lt;SPAN&gt;JTree&lt;/SPAN&gt; 를 이용해 구현했고, 오른쪽은 DropTarget 은 &lt;SPAN&gt;JTextPane&lt;/SPAN&gt; 을 이용해 구현했음을 보길 바란다. 이것은 .txt 와 .java 로만 한정되어 있기 때문에 다른 확장자를 가진 파일을 D&amp;amp;D 했을 경우에는 에러창을 발견하게 될 것이다. 그리고 .txt 와 .java 파일은 그 내용을 JTextPane 에서 볼 수 있을 것이다.&lt;br /&gt;
&lt;br /&gt;&lt;IMG height=185 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/dnd3.gif&quot; width=462&gt; &lt;br /&gt;
&lt;SPAN&gt;오른쪽의 파일을 D&amp;amp;D 수행할 수가 있다&lt;br /&gt;
&lt;br /&gt;&lt;IMG height=187 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/dnd4.gif&quot; width=460&gt; &lt;br /&gt;
확장자가 .txt 와 .java 가 아닐 경우에 볼 수 있는 경고창이다.&lt;/SPAN&gt;&lt;br /&gt;
&lt;br /&gt;위의 프로그램은 얼마든지 응용해서 확장할 수 있다고 생각한다. 다른 파일도 볼 수 있게끔 할 수 있고, image 도 가능하리라 생각한다.&lt;br /&gt;
다음 장에서는 소스코드 분석에 들어가도록 하겠다. 먼저 해당 API 를 꼼꼼히 살펴본 다음에 코드분석에 임하길 바란다.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;CENTER&gt;&lt;br /&gt;

&lt;HR color=#eeeeee noShade SIZE=2&gt;
&amp;nbsp; &lt;/CENTER&gt;
&lt;CENTER&gt;&amp;nbsp;&amp;nbsp; 
&lt;P style=&quot;BORDER-RIGHT: #5d6a12 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #5d6a12 1px solid; PADDING-LEFT: 5px; BACKGROUND: #e9967a; PADDING-BOTTOM: 5px; BORDER-LEFT: #5d6a12 1px solid; COLOR: black; PADDING-TOP: 5px; BORDER-BOTTOM: #5d6a12 1px solid&quot;&gt;이번 장에서는 소스분석과 함께 설명을 하겠다. 단풍잎 부분에 API 에 대한 설명을 첨가하겠다. &lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=two&gt;&lt;IMG height=12 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/bullet.gif&quot; width=12 border=0&gt; Source Analysis &lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=one&gt;DragTree.java 소스이다. 이전 장에서 본 JTree 부분의 DragSource 를 정의한 부분이다. &lt;PRE&gt;import java.awt.*;
&lt;SPAN&gt;import java.awt.datatransfer.*;
import java.awt.dnd.*;&lt;/SPAN&gt;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.io.*;

class DragTree extends JTree implements &lt;SPAN&gt;DragGestureListener, DragSourceListener&lt;/SPAN&gt; {

     public DragTree() {
       DragSource dragSource = DragSource.getDefaultDragSource();
         // static 메소드인 위 메소드로 DragSource 에 대한 참조를 얻는다.
            그리고, 위 참조객체를 이용해 DragGestureRecognizer 를 생성하게 되는 것이다.
  
       dragSource.&lt;SPAN&gt;createDefaultDragGestureRecognizer&lt;/SPAN&gt;(
	 this, // component where drag originates
	 DnDConstants.ACTION_COPY_OR_MOVE, // actions
	 this); // drag gesture recognizer  
&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign=top&gt;&lt;IMG height=20 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/maple.gif&quot; width=19&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style=&quot;BORDER-RIGHT: #5d6a12 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #5d6a12 1px solid; PADDING-LEFT: 3px; BACKGROUND: #fafad2; PADDING-BOTTOM: 3px; BORDER-LEFT: #5d6a12 1px solid; WIDTH: 420px; COLOR: black; PADDING-TOP: 3px; BORDER-BOTTOM: #5d6a12 1px solid&quot;&gt;  public DragGestureRecognizer createDefaultDragGestureRecognizer(
                      Component c, int actions, DragGestureListener dgl)

       c - The Component target for the recognizer
       actions - The permitted source actions
       dgl - The DragGestureListener to notify
&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
        setModel(createTreeModel());

       // Tree 에 관한 코딩부분으로 innerclass 로 구현돼 있다.
       
       addTreeExpansionListener(new TreeExpansionListener(){
	 public void treeCollapsed(TreeExpansionEvent e) {}
	 public void treeExpanded(TreeExpansionEvent e) {
	   TreePath path = e.getPath();
	   if(path != null) {
	    FileNode node = (FileNode) path.getLastPathComponent();

	     if( ! node.isExplored()) {
	      DefaultTreeModel model = (DefaultTreeModel)getModel();
	      node.explore();
	      model.nodeStructureChanged(node);
	     }
	   }
	 }
       });
       }
	
       &lt;SPAN&gt;DragGestureListener 인터페이스에서 구현해야 하는 메소드이다.&lt;/SPAN&gt;
 
        public void dragGestureRecognized(DragGestureEvent e) {
          String s = getFilename();
          
          // 확장자를 .txt 와 .TXT, .java 로 한정지은 부분이다.
             다른 파일까지 읽고 싶으면 이 부분을 수정하면 된다.

          if(s.endsWith(&quot;.txt&quot;) || s.endsWith(&quot;.TXT&quot;) || s.endsWith(&quot;.java&quot;)) {
            e.&lt;SPAN&gt;startDrag&lt;/SPAN&gt;(DragSource.DefaultCopyDrop,   // cursor
                        new StringSelection(s),     // transferable
&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign=top&gt;&lt;IMG height=20 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/maple.gif&quot; width=19&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style=&quot;BORDER-RIGHT: #5d6a12 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #5d6a12 1px solid; PADDING-LEFT: 3px; BACKGROUND: #fafad2; PADDING-BOTTOM: 3px; BORDER-LEFT: #5d6a12 1px solid; WIDTH: 420px; COLOR: black; PADDING-TOP: 3px; BORDER-BOTTOM: #5d6a12 1px solid&quot;&gt;           public void startDrag(Cursor dragCursor,
                      Transferable transferable,
                      DragSourceListener dsl)  throws InvalidDnDOperationException
           여기서는 Transferable 로 StringSelection 클래스가 사용되었다.
           이 클래스는 간단한 java String 을 text 포맷으로 수송하는데 필요한 기능을 
           구현하는 클래스이다.
&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
          // startDrag() 메소드로 Tree 는 drag 를 초기화하고, draggesture 에 반응하게 된다.

          }
          else {
          // invokeLater 호출에 대해서 생각해 봐야 한다.
             이 메소드는 application thread 가 GUI 를 갱신해야 될 필요가 있을때
             사용되어지며 당면해 있는 AWT 이벤트가 수행된 이후에 수행되게 한다.
             이 메소드의 사용으로 경고창이 뜨는 시간을 조절할 수가 있게 한다.

            SwingUtilities.invokeLater(new Runnable() {
             public void run() {
               JOptionPane.showMessageDialog(
                  SwingUtilities.getRootPane(DragTree.this),
                  &quot;Only \&quot;.txt\&quot; and \&quot;.java\&quot; files &quot; + &quot;can be dragged&quot;,
                  &quot;Not Draggable&quot;,
                  JOptionPane.ERROR_MESSAGE);
            }
           });
         }
       }
   
	// 이 부분은 DragSourceListener 메소드 구현부분이다.
	public void dragDropEnd(DragSourceDropEvent e) {}
	public void dragEnter(DragSourceDragEvent e) {}
	public void dragExit(DragSourceEvent e) {}
	public void dragOver(DragSourceDragEvent e) {}
	public void dropActionChanged(DragSourceDragEvent e) {}

	public String getFilename() {
		TreePath path = getLeadSelectionPath();
		FileNode node = (FileNode)path.getLastPathComponent();
		return ((File)node.getUserObject()).getAbsolutePath();
	}
	private DefaultTreeModel createTreeModel() {
		File root = new File(&quot;C:&quot; + File.separator);
		FileNode rootNode = new FileNode(root);

		rootNode.explore();
		return new DefaultTreeModel(rootNode);
	}
}

// 이 부분은 왼쪽 창의 JTree 인터페이스 설정부분으로 자세한 설명은 안하겠다.

class FileNode extends DefaultMutableTreeNode {
	private boolean explored = false;

	public FileNode(File file) 	{ 
	  setUserObject(file); 
	}
	public boolean getAllowsChildren() { return isDirectory(); }
	public boolean isLeaf() 	{ return !isDirectory(); }
	public File getFile()		{ return (File)getUserObject(); }

	public boolean isExplored() { return explored; }

	public boolean isDirectory() {
	  File file = getFile();
	  return file.isDirectory();
	}
	public String toString() {
	  File file = (File)getUserObject();
	  String filename = file.toString();
	  int index = filename.lastIndexOf(File.separator);
	  return (index != -1 &amp;amp;&amp;amp; index != filename.length()-1) ? filename.substring(index+1) : filename;
	}
	public void explore() {
	  if(!isDirectory())
	  return;

	  if(!isExplored()) {
	    File file = getFile();
	    File[] children = file.listFiles();
 
            for(int i=0; i &amp;lt; children.length; ++i) 
              add(new FileNode(children[i]));

            explored = true;
	  }
        }
}

&lt;/PRE&gt;이상으로 DragTree.java 소스를 살펴보았다. 설명이 조금 부족한 감이 있으니 자기나름대로 살펴보길 바란다. 다음에는 이 프로그램의 메인코드인 Test.java 에 대해서 살펴보겠다.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;CENTER&gt;&lt;br /&gt;

&lt;HR color=#eeeeee noShade SIZE=2&gt;
&amp;nbsp; &lt;/CENTER&gt;&lt;/CENTER&gt;
&lt;CENTER&gt;&amp;nbsp;&amp;nbsp; 
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=two&gt;&lt;IMG height=12 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/bullet.gif&quot; width=12 border=0&gt; Source Analysis &lt;/TD&gt;
&lt;TR&gt;
&lt;TD class=one&gt;Test.java 소스이다. main() 와 기본 인터페이스가 설정돼 있다. 아래의 코드를 살펴보면 알겠지만 Test 생성자는 drop target 을 생성해낸다. 즉 TextPane 을 drop target component 로 생성하는 것이다.&lt;br /&gt;
실제 drop 이 일어났을때 Test.drop() 메소드가 호출이 된다. drop 과 연관된 transferable 은 String 으로써 데이타를 제공해주며 drop 을 받아들인 후에 readFile() 메소드가 호출이 돼 file 의 내용을 TextPane 으로 로딩을 하게 된다. Drop 이 완료된 후 e.dropComplete(true) 가 호출이 돼 실제 drop 이 완료되게 된다. &lt;PRE&gt;import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;
&lt;SPAN&gt;import java.awt.datatransfer.*;
import java.awt.dnd.*;&lt;/SPAN&gt;
import java.io.*;

public class Test extends JFrame implements DropTargetListener {
	private JTextPane textPane = new JTextPane();

	public Test() {
                   super(&quot;Drag and Drop With Swing&quot;);
                   new DropTarget(textPane,DnDConstants.ACTION_COPY_OR_MOVE,this);
	   JSplitPane splitPane =
                      new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,createTreePanel(),createTextPanel());
	   splitPane.setDividerLocation(250);	
	   splitPane.setOneTouchExpandable(true);
	   getContentPane().add(splitPane, BorderLayout.CENTER);
	}
	public static void main(String args[]) {
	  Test test = new Test();
	  test.setBounds(300,300,850,350);
	  test.setVisible(true);
	  test.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	  test.addWindowListener(new WindowAdapter() {
	  public void windowClosed(WindowEvent e) {
                        System.exit(0);
	    }
	  });
	}
	private JPanel createTreePanel() {
	  JPanel treePanel = new JPanel();
	  DragTree tree = new DragTree();
	  treePanel.setLayout(new BorderLayout());
	  treePanel.add(new JScrollPane(tree), BorderLayout.CENTER); 
	  treePanel.setBorder(BorderFactory.createTitledBorder(
		&quot;Drag source for filenames&quot;));
        	return treePanel;
	}
	private JPanel createTextPanel() {
	  JPanel textPanel = new JPanel();
	  textPanel.setLayout(new BorderLayout());
	  textPanel.add(new JScrollPane(textPane),BorderLayout.CENTER);
	  textPanel.setMinimumSize(new Dimension(375,0));
	  textPanel.setBorder(BorderFactory.createTitledBorder(
	    &quot;Drop target for filenames&quot;));

	  return textPanel;
	}
	&lt;SPAN&gt;private void readFile(final String filename) {
	  EditorKit kit = textPane.getEditorKit();
	  Document document = textPane.getDocument();

          try {
	    document.remove(0,document.getLength());
	    kit.read(new FileReader(filename), document, 0); 
	  }
	  catch(Exception ex) {
	    ex.printStackTrace();
	  }
	}
        &lt;/SPAN&gt;
	public void drop(DropTargetDropEvent e) {
	  try {
	   DataFlavor stringFlavor = DataFlavor.stringFlavor;
	   Transferable tr = e.getTransferable();
&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign=top&gt;&lt;IMG height=20 src=&quot;http://www.javastudy.co.kr/docs/b612/swing/img/maple.gif&quot; width=19&gt;&lt;/TD&gt;&lt;TD&gt;&lt;PRE style=&quot;BORDER-RIGHT: #5d6a12 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #5d6a12 1px solid; PADDING-LEFT: 3px; BACKGROUND: #fafad2; PADDING-BOTTOM: 3px; BORDER-LEFT: #5d6a12 1px solid; WIDTH: 420px; COLOR: black; PADDING-TOP: 3px; BORDER-BOTTOM: #5d6a12 1px solid&quot;&gt; public class DataFlavor extends Object implements Externalizable, Cloneable
 
 이 클래스는 D&amp;amp;D 수행할 때 클립보드에 들어가는 데이타의 형태를 제공해주는 클래스이다.
 여기서 사용된 StringFlavor 는 java Unicode String class 을 나타낸다.
 MimeType = &quot;application/x-java-serialized-object&quot; 을 나타내게 된다.
&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
	if(e.isDataFlavorSupported(stringFlavor)) {
	  String filename = (String)tr.getTransferData(stringFlavor);
	  &lt;SPAN&gt;e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);&lt;/SPAN&gt;
          // 인자로 넘어온 액션으로 drop 을 받아들인다.
	  readFile(filename);
	  textPane.setCaretPosition(0);
          // Text 의 첫줄이 TextPane 의 첫줄에 오게끔 설정한다.
                  &lt;SPAN&gt;e.dropComplete(true);&lt;/SPAN&gt;
        }
	else {
	  e.rejectDrop();
          // Drop 을 거절한다.
	}
       }
	catch(IOException ioe) {
	  ioe.printStackTrace();
	}
	catch(UnsupportedFlavorException ufe) {
	  ufe.printStackTrace();
	}
       }

    // DropTargetListener 메소드를 구현한 부분이다.
    public void dragEnter(DropTargetDragEvent e) { }
    public void dragExit(DropTargetEvent e) { }
    public void dragOver(DropTargetDragEvent e) { }
    public void dropActionChanged(DropTargetDragEvent e) { }
}
&lt;/PRE&gt;&lt;PRE&gt;출처:http://www.javastudy.co.kr/docs/b612/swing/draganddrop.html&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;br /&gt;
&lt;/CENTER&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-107-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-107-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Java</category>
			<category>Java</category>
			<category>Swing</category>
			<category>스윙</category>
			<category>자바</category>
			<category>자바프로그래밍</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/107</guid>
			<comments>http://www.twelo.com/107#entry107comment</comments>
			<pubDate>Wed, 03 Jun 2009 00:05:34 +0900</pubDate>
		</item>
		<item>
			<title>謹弔</title>
			<link>http://www.twelo.com/106</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/191F1E134A1B883C943574&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;image_01.jpg&quot; height=&quot;292&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
삼가 고인의 명복을 빕니다.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
잊지 않겠습니다.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
가장 아름다운 서민의 모습으로&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
임한 대통령 뿐만 아니라, 마지막 모습까지&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
절대로 잊지 않겠습니다.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
무거운 짐 따위는 벗어버리시고 &lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
영원히 행복하시길 바라겠습니다.&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-106-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-106-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Twelo</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/106</guid>
			<comments>http://www.twelo.com/106#entry106comment</comments>
			<pubDate>Tue, 26 May 2009 15:16:13 +0900</pubDate>
		</item>
		<item>
			<title>JAVA - Java Decompiler , 이클립스(eclipse)에 설치</title>
			<link>http://www.twelo.com/105</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; TEXT-AUTOSPACE: ideograph-numeric; TEXT-ALIGN: left; mso-pagination: widow-orphan&quot; align=left&gt;&lt;SPAN lang=EN style=&quot;COLOR: black; FONT-FAMILY: &#039;바탕&#039;,&#039;serif&#039;; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;&lt;br /&gt;
&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;JAVA&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;를 이용하여 응용프로그램을 만들던 중 소스가 없을경우&lt;SPAN lang=EN&gt;, &lt;/SPAN&gt;혹 잃어버린경우&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;COLOR: black; FONT-FAMILY: &#039;바탕&#039;,&#039;serif&#039;; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;&lt;br /&gt;
&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;이전에 컴파일 해놓은&lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt; .class &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;파일을 역컴파일 해서 소스를 볼수있다&lt;SPAN lang=EN&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;COLOR: black; FONT-FAMILY: &#039;바탕&#039;,&#039;serif&#039;; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;&lt;br /&gt;
&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;Jad &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;라는&lt;SPAN lang=EN&gt; JAVA Decompiler &lt;/SPAN&gt;라는 툴이며&lt;SPAN lang=EN&gt;&amp;nbsp;&lt;/SPAN&gt;이클립스&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt; 사용자들은&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;COLOR: black; FONT-FAMILY: &#039;바탕&#039;,&#039;serif&#039;; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;&lt;br /&gt;
&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;플러그인 추가로&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;/SPAN&gt;이클립스&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;에서 볼수있는 방법이다&lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt&quot;&gt;.&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 12pt; COLOR: #333333; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style=&quot;FONT-SIZE: 11pt; COLOR: black; FONT-FAMILY: 굴림; mso-bidi-font-family: 굴림; mso-font-kerning: 0pt; mso-ansi-language: EN&quot;&gt;
&lt;P&gt;대표적인 자바 디컴파일러인 jad와 이클립스 플러그 jadclipse를 설치하자. &lt;/P&gt;
&lt;P&gt;당연하게도 활용방법은&lt;br /&gt;
1. 잃어버린 .java 소스파일을 .class 파일로부터 복원&lt;br /&gt;
2. API에 대한 소스레벨 탑색이다.&lt;/P&gt;
&lt;P&gt;특별한 설정은 필요치 않다.&lt;br /&gt;
두개의 압축파일을 다운받으면 된다. &lt;/P&gt;
&lt;P&gt;1. jad 다운&lt;br /&gt;
사이트 : &lt;A class=con_link href=&quot;http://www.kpdus.com/jad.html&quot; target=_blank&gt;&lt;FONT color=#de7008&gt;http://www.kpdus.com/jad.html&lt;/FONT&gt;&lt;/A&gt;&lt;br /&gt;
파일(window용 파일) : &lt;A class=con_link href=&quot;http://www.kpdus.com/jad/winnt/jadnt158.zip&quot; target=_blank&gt;&lt;FONT color=#de7008&gt;http://www.kpdus.com/jad/winnt/jadnt158.zip&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#de7008&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;2. jadclipse 다운&lt;br /&gt;
사이트 : &lt;A class=con_link href=&quot;http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download&quot; target=_blank&gt;&lt;FONT color=#de7008&gt;http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download&lt;/FONT&gt;&lt;/A&gt;&lt;br /&gt;
파일(eclipse3.2.0) : &lt;A class=con_link href=&quot;http://prdownloads.sourceforge.net/jadclipse/jadclipse_3.2.0.jar?download&quot; target=_blank&gt;&lt;FONT color=#de7008&gt;http://prdownloads.sourceforge.net/jadclipse/jadclipse_3.2.0.jar?download&lt;/FONT&gt;&lt;/A&gt;&lt;br /&gt;
파일(eclipse3.2.4) : &lt;A class=con_link href=&quot;http://prdownloads.sourceforge.net/jadclipse/net.sf.jadclipse_3.2.4.jar?download&quot; target=_blank&gt;&lt;FONT color=#de7008&gt;http://prdownloads.sourceforge.net/jadclipse/net.sf.jadclipse_3.2.4.jar?download&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#de7008&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;3. 설치방법&lt;br /&gt;
적당한 디렉토리에 압축을 푼다.&lt;br /&gt;
jad 파일을 eclipse 루트 디렉토리에 복사한다.&lt;br /&gt;
jadclipse 는 eclipse의 plugin 디렉토리에 통채로 복사한다. &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;4. 환경설정&lt;br /&gt;
이클립스 실행후&lt;br /&gt;
창/환경설정/일반/편집기/파일연관 으로 이동&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P align=left&gt;&lt;br /&gt;
JadClipse Class File Viewer를 선택하고 기본값을 클릭한다. &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;창/환경설정/Java/JadClipse 로 이동&lt;br /&gt;
Reuse code buffer 체크&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;창/환경설정/Java/JadClipse/Misc 로 이동&lt;br /&gt;
Convert Unicode string into ANSI strings 체크&lt;br /&gt;
=&amp;gt; 한글 깨짐 문제 해결&lt;br /&gt;
&lt;/P&gt;&lt;/SPAN&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-105-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-105-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Java</category>
			<category>.class</category>
			<category>jad</category>
			<category>Java</category>
			<category>JAVA Decompiler</category>
			<category>소스</category>
			<category>이클립스</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/105</guid>
			<comments>http://www.twelo.com/105#entry105comment</comments>
			<pubDate>Sun, 26 Apr 2009 18:55:24 +0900</pubDate>
		</item>
		<item>
			<title>Oracle -Oracle 9i의 Hierarchical query의 ORDER SIBLINGS BY CLAUSE</title>
			<link>http://www.twelo.com/104</link>
			<description>&lt;div class=&quot;view&quot; style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: 돋움&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; margin-left: 4em; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; margin-left: 4em; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; margin-left: 8em; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; margin-left: 12em; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; margin-left: 8em; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; margin-left: 4em; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;font-size: 9pt; font-family: 돋움; &quot;&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic;&quot;&gt;   이 문서는 Oracle 9i의 new feature인 ORDER SIBLINGS BY 절을 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;font&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic;&quot;&gt;   Hierarchical query에 사용하는 예를 통하여 특정 컬럼을 기준으로 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style: italic;&quot;&gt;   Ordering된 형태로 
display하는 방법을 보여준다. &lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;view&quot; style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: 돋움&quot;&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Explanation &amp;amp; 
Example&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;   Hierarchical query를 구현할 때 ORDER BY 절을 사용하는 것은 &lt;br /&gt;
   
Oracle 7.1 버젼부터 가능한 것이었다. &lt;br /&gt;
   그러나, 순서대로 ordering되지 않고 특정 컬럼(emp table의 
ename)을 &lt;br /&gt;
   기준으로 ordering하기를 원한다면 &amp;lt;Bulletin:10373&gt;처럼 procedure를 &lt;br /&gt;
   
작성하여야만 하였다. &lt;br /&gt;
   그러나, Oracle 9i 에서는 ORDER BY 절 대신에 ORDER SIBLINGS BY 절을 &lt;br /&gt;
   
사용할 수 있어 user-defined stored procedure를 만들 필요가 없게 되었다.  &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;1) Ordering 하기 전의 emp table의 Hierarchical 
query&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;SQL&gt; @a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;ename                      EMPNO    MGR 
JOB&lt;br /&gt;
------------------------- ------ ------ ---------------&lt;br /&gt;
     
KING                   7839        PRESIDENT&lt;br /&gt;
          JONES             
7566   7839 MANAGER&lt;br /&gt;
               SCOTT        7788   7566 
ANALYST&lt;br /&gt;
                    ADAMS   7876   7788 CLERK&lt;br /&gt;
               
FORD         7902   7566 ANALYST&lt;br /&gt;
                    SMITH   7369   7902 
CLERK&lt;br /&gt;
          BLAKE             7698   7839 MANAGER&lt;br /&gt;
               
ALLEN        7499   7698 SALESMAN&lt;br /&gt;
               WARD         7521   7698 
SALESMAN&lt;br /&gt;
               MARTIN       7654   7698 SALESMAN&lt;br /&gt;
               
TURNER       7844   7698 SALESMAN&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;ename                      EMPNO    MGR 
JOB&lt;br /&gt;
------------------------- ------ ------ ---------------&lt;br /&gt;
               
JAMES        7900   7698 CLERK&lt;br /&gt;
          CLARK             7782   7839 
MANAGER&lt;br /&gt;
               MILLER       7934   7782 CLERK&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;14 rows selected.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;Ordering 하기 전의 a.sql 은 다음과 같다. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;   col ename format a25&lt;br /&gt;
   col empno format 
99999&lt;br /&gt;
   col mgr format 99999&lt;br /&gt;
   col job format a15&lt;br /&gt;
   select rpad(&#039; &#039;, 
LEVEL*5) || ename &quot;ename&quot;, empno, mgr, job&lt;br /&gt;
   from emp&lt;br /&gt;
   start with 
job=&#039;PRESIDENT&#039;&lt;br /&gt;
   connect by prior empno=mgr;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;   /&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;2) 9i의 new feature인 Hierarchical query를 사용하여 
Ordering한 경우 &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;SQL&gt; @new_a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;ename                      EMPNO    MGR 
JOB&lt;br /&gt;
------------------------- ------ ------ ---------------&lt;br /&gt;
     
KING                   7839        PRESIDENT&lt;br /&gt;
          BLAKE             
7698   7839 MANAGER&lt;br /&gt;
               ALLEN        7499   7698 
SALESMAN&lt;br /&gt;
               JAMES        7900   7698 CLERK&lt;br /&gt;
               
MARTIN       7654   7698 SALESMAN&lt;br /&gt;
               TURNER       7844   7698 
SALESMAN&lt;br /&gt;
               WARD         7521   7698 SALESMAN&lt;br /&gt;
          
CLARK             7782   7839 MANAGER&lt;br /&gt;
               MILLER       7934   7782 
CLERK&lt;br /&gt;
          JONES             7566   7839 MANAGER&lt;br /&gt;
               
FORD         7902   7566 ANALYST&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;ename                      EMPNO    MGR 
JOB&lt;br /&gt;
------------------------- ------ ------ 
---------------&lt;br /&gt;
                    SMITH   7369   7902 
CLERK&lt;br /&gt;
               SCOTT        7788   7566 ANALYST&lt;br /&gt;
                    
ADAMS   7876   7788 CLERK&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;14 rows selected.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;Ordering하기 위해 사용한 new_a.sql 은 다음과 같다. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;   col ename format a25&lt;br /&gt;
   col empno format 
99999&lt;br /&gt;
   col mgr format 99999&lt;br /&gt;
   col job format a15&lt;br /&gt;
   select rpad(&#039; &#039;, 
LEVEL*5) || ename &quot;ename&quot;, empno, mgr, job&lt;br /&gt;
   from emp&lt;br /&gt;
   start with 
job=&#039;PRESIDENT&#039;&lt;br /&gt;
   connect by prior empno=mgr&lt;br /&gt;
   order siblings by 
ename;&lt;br /&gt;
   /&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font size=&quot;3&quot;&gt;&lt;strong&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 9pt; &quot;&gt;HIERARCHICAL QUERY DATA의 SORT와 
ORDERING&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;/font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;ORACLE 6에서의 HIERARCHICAL QUERY에서는 SORT를 하기 위한 ORDER BY 절을 
사용&lt;br /&gt;
할 수 없었다. 그러나, ORACLE 7.1이상 VERSION에서는 USER-DEFINED STORED&lt;br /&gt;
PROCEDURE를 
이용하여 HIERARCHY 순서로 출력되면서 ORDERING할 수 있게 되었다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;세계의 지역에 관한 자료를 예로 보자.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;      CREATE TABLE UNIVERSE &lt;br /&gt;
      ( PARENT 
VARCHAR2(30) REFERENCES UNIVERSE,  &lt;br /&gt;
      NAME  VARCHAR2(30) PRIMARY KEY ); 
&lt;br /&gt;
      &lt;br /&gt;
     REM SOME TEST DATA &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( 
NULL, &#039;WORLD&#039; ) ;  &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( &#039;WORLD&#039;, &#039;EUROPE&#039; ) ;  
&lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( &#039;EUROPE&#039;, &#039;ENGLAND&#039; ) ; &lt;br /&gt;
     INSERT 
INTO UNIVERSE VALUES ( &#039;EUROPE&#039;, &#039;THE NETHERLANDS&#039; ) ;  &lt;br /&gt;
     INSERT INTO 
UNIVERSE VALUES ( &#039;EUROPE&#039;, &#039;GERMANY&#039; ) ;  &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES 
( &#039;WORLD&#039;, &#039;ASIA&#039; ) ;  &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( &#039;ASIA&#039;, &#039;JAPAN&#039; ) 
;  &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( &#039;ASIA&#039;, &#039;CHINA&#039; ) ;  &lt;br /&gt;
     INSERT 
INTO UNIVERSE VALUES ( &#039;WORLD&#039;, &#039;AMERICA&#039; ) ; &lt;br /&gt;
     INSERT INTO UNIVERSE 
VALUES ( &#039;AMERICA&#039;, &#039;UNITED STATES&#039; ) ;  &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( 
&#039;AMERICA&#039;, &#039;MEXICO&#039; ) ; &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( &#039;WORLD&#039;, &#039;AFRICA&#039; 
) ;  &lt;br /&gt;
     INSERT INTO UNIVERSE VALUES ( &#039;AFRICA&#039;, &#039;EGYPT&#039; ) ;  &lt;br /&gt;
     
INSERT INTO UNIVERSE VALUES ( &#039;AFRICA&#039;, &#039;MOROCCO&#039; ) ; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;위의 자료를 다음과 같이 보고자 하는 경우&lt;br /&gt;
WORLD &lt;br /&gt;
        AFRICA 
&lt;br /&gt;
                EGYPT &lt;br /&gt;
                MOROCCO &lt;br /&gt;
        AMERICA 
&lt;br /&gt;
                MEXICO &lt;br /&gt;
                UNITED STATES &lt;br /&gt;
        ASIA 
&lt;br /&gt;
                CHINA &lt;br /&gt;
                JAPAN &lt;br /&gt;
        EUROPE 
&lt;br /&gt;
                ENGLAND &lt;br /&gt;
                GERMANY &lt;br /&gt;
                THE 
NETHERLANDS &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;만약,ORDER BY절이 없이 QUERY하면&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;
&lt;/span&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;
     SELECT RPAD( &#039; &#039;, LEVEL * 5 ) || NAME FROM UNIVERSE &lt;br /&gt;
     CONNECT 
BY PRIOR NAME = PARENT START WITH PARENT IS NULL; &lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/font&gt;&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;다음과 같은 결과를 얻게 된다.     &lt;br /&gt;
    WORLD &lt;br /&gt;
        EUROPE &lt;br /&gt;
                
ENGLAND &lt;br /&gt;
                GERMANY &lt;br /&gt;
                THE NETHERLANDS 
&lt;br /&gt;
        ASIA &lt;br /&gt;
                JAPAN &lt;br /&gt;
                CHINA &lt;br /&gt;
        
AMERICA &lt;br /&gt;
                UNITED STATES &lt;br /&gt;
                MEXICO &lt;br /&gt;
        
AFRICA &lt;br /&gt;
                EGYPT &lt;br /&gt;
                MOROCCO &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;만약, 위 문장에 ORDER BY 절을 사용하면&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;      SELECT RPAD( &#039; &#039;, LEVEL * 5 ) || NAME FROM UNIVERSE 
&lt;br /&gt;
      CONNECT BY PRIOR NAME = PARENT START WITH PARENT IS NULL  &lt;br /&gt;
      
ORDER BY NAME; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;다음과 같은 원치 않는 결과를 얻게 된다.     &lt;br /&gt;
        AFRICA 
&lt;br /&gt;
        AMERICA &lt;br /&gt;
        ASIA &lt;br /&gt;
                CHINA 
&lt;br /&gt;
                EGYPT &lt;br /&gt;
                ENGLAND &lt;br /&gt;
        EUROPE 
&lt;br /&gt;
                GERMANY &lt;br /&gt;
                JAPAN &lt;br /&gt;
                 
MEXICO &lt;br /&gt;
                MOROCCO &lt;br /&gt;
                THE NETHERLANDS 
&lt;br /&gt;
                UNITED STATES &lt;br /&gt;
     WORLD &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;7. 1이상 VERSION에서는 다음과 같이 USER DEFINED FUNCTION을  이용하여 
&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;원하는 자료를 얻을 수 있다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;font&gt;&lt;/font&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;#003366&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0);&quot;&gt;CREATE OR REPLACE FUNCTION UNIVERSESORTORDER( PKEY 
UNIVERSE.NAME%TYPE )  &lt;br /&gt;
     RETURN VARCHAR2 IS &lt;br /&gt;
        PATH 
VARCHAR2(2000); &lt;br /&gt;
     BEGIN &lt;br /&gt;
        PATH := PKEY; &lt;br /&gt;
        -- INSERT 
ALL PREVIOUS PARENT RECORDS LIKE A DIRECTORY STRUCTURE &lt;br /&gt;
        -- E.G. 
WORLD/EUROPE/... &lt;br /&gt;
        FOR CREC IN ( SELECT PARENT FROM UNIVERSE  
&lt;br /&gt;
                      CONNECT BY PRIOR PARENT = NAME 
&lt;br /&gt;
                      START WITH NAME = PKEY ) LOOP &lt;br /&gt;
           PATH := 
CREC.PARENT || &#039;/&#039; || PATH; &lt;br /&gt;
        END LOOP; &lt;br /&gt;
        RETURN PATH; 
&lt;br /&gt;
     END; &lt;br /&gt;
     / &lt;br /&gt;
      &lt;br /&gt;
SELECT SUBSTR( RPAD( &#039; &#039;, LEVEL * 5) || 
NAME, 1, 40) &quot;THE UNIVERSE&quot; &lt;br /&gt;
       FROM UNIVERSE &lt;br /&gt;
       CONNECT BY PRIOR 
NAME = PARENT &lt;br /&gt;
       START WITH PARENT IS NULL &lt;br /&gt;
       ORDER BY 
UNIVERSESORTORDER( NAME ) ;
&lt;/span&gt;&lt;div class=&quot;autosourcing-stub&quot;&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-104-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-104-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Blah Blah</category>
			<category>Database</category>
			<category>db</category>
			<category>oracle9i</category>
			<category>order</category>
			<category>데이타베이스</category>
			<category>오라클</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/104</guid>
			<comments>http://www.twelo.com/104#entry104comment</comments>
			<pubDate>Sat, 21 Mar 2009 17:40:29 +0900</pubDate>
		</item>
		<item>
			<title>Good idea?</title>
			<link>http://www.twelo.com/103</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile5.uf.tistory.com/image/14244D0A49B9302F74B266&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;storm79c_26578535.jpg&quot; height=&quot;1174&quot; width=&quot;500&quot;/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;포스팅 전에 참고로&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;이사진은 www.kongda.co.kr 에서 불펌으로 가져온 자료입니다^-^&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;사진 주인님 저작권 문제가 된다면 바로 삭제 하겠습니다.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;신고만 하지 말아주세요,,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;여튼, 요즘 브레인스토밍, 특이한 발상, &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Gooooooooooods IDEA (이건 굳 --b 이 아니라 상품이 될만한 제품 이라는 저많의 Think&#039; 입니다 ;;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;많은 관심을 가지고있는데요, &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;웹 서핑중에 아주 신나는 물건을 발견했습니다.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
참고로 말하자면 19금 이더군요, 아주 맛있을꺼 같은 &#039;콩다님이 친절하게 일러 까지 삽입해주신&#039; 왕가슴 푸딩 입니다,&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;단어들이 좀 야하죠?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;(&#039;아따 달콤~한 비밀의 디저트여 &#039; &#039;핥아 보고 싶으면 핥아봐도 되지롱&#039;)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;사투리가 심하죠 오사카&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
조금만 생각을 바꾸면 음란하지만, 아주 좋은 상품이 될수 있습니다.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;물론 시장가치는 생각을 해봐야겠죠?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;요즘 가끔은 엉뚱한 생각들이 들면, 기록을 해놓곤 합니다.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;다시봐도 아주 재밌는 제품이네요^-^&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;여러분도 한번 .. 사지는 못할테니 만들어 드셔보시길&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-103-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-103-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Twelo</category>
			<category>가슴</category>
			<category>가슴 푸딩</category>
			<category>변태</category>
			<category>섹시</category>
			<category>오사카푸딩</category>
			<category>헨타이</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/103</guid>
			<comments>http://www.twelo.com/103#entry103comment</comments>
			<pubDate>Fri, 13 Mar 2009 01:05:03 +0900</pubDate>
		</item>
		<item>
			<title>Java - Java Error : java.lang.OutOfMemoryError: Java heap space</title>
			<link>http://www.twelo.com/102</link>
			<description>&lt;DIV&gt;&lt;br /&gt;
&lt;/DIV&gt;java.lang.OutOfMemoryError: Java heap space&amp;nbsp; 
&lt;DIV&gt;에러내용은 자바의힙 메모리 공간이 부족해서 생기는 에러로써 이를 &amp;nbsp;해결하기 위해서는&amp;nbsp; &lt;/DIV&gt;
&lt;DIV&gt;힙 사용 메모리 공간을 변경(확보)시켜 주어야 한다.&lt;/DIV&gt;
&lt;DIV&gt;&lt;br /&gt;
&lt;/DIV&gt;
&lt;DIV&gt;이클립스를 사용하고 있다면&lt;/DIV&gt;
&lt;DIV&gt;아래와 같이 해결할 수 있다, 빈번히 생기는 에러는 아니지만 간혹 힙 메모리의 오류가 발생하니 참고하도록 하자&lt;/DIV&gt;
&lt;DIV&gt;&lt;br /&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Properties&amp;nbsp;- Run/Debug Settings - Arguments tab - VM arguments&lt;/FONT&gt;&lt;FONT size=+0&gt;&lt;SPAN class=Apple-style-span style=&quot;COLOR: rgb(60,63,69)&quot;&gt;&amp;nbsp;로 이동하여 아래의 그림과 같이 설정한다 .&lt;SPAN class=Apple-style-span style=&quot;FONT-WEIGHT: normal; COLOR: rgb(51,51,51)&quot;&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=+0&gt;&lt;SPAN class=Apple-style-span style=&quot;COLOR: rgb(60,63,69)&quot;&gt;&lt;SPAN class=Apple-style-span style=&quot;FONT-WEIGHT: normal; COLOR: rgb(51,51,51)&quot;&gt;&amp;nbsp;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/1329BF0D49A54ACA5E9C31&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;error.jpg&quot; height=&quot;480&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=Apple-style-span style=&quot;COLOR: rgb(255,0,0)&quot;&gt;[-Xms256m, -Xmx1024m] 로&amp;nbsp;&lt;SPAN class=Apple-style-span style=&quot;COLOR: rgb(51,51,51)&quot;&gt;-Xms 는 최소, -Xmx 는 최대로 메모리로, 사용자의 편의에 맞게 적당히 지정한다&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;추가사항 (02/March/2009): 간혹 온라인 게임 프리서버를 돌리기 위해서 나타나는&amp;nbsp;java sql&amp;nbsp;heap 스페이스 방법에는 사용되지 않습니다, 혹시&amp;nbsp;class 파일을 변경한다면 될지 모르겟네요.&lt;br /&gt;
위에 표기된&amp;nbsp;해결 방법은&amp;nbsp;이클립스에서 실행하는 어플에 적용된다고 알려드리고 싶습니다&lt;/STRONG&gt;..&lt;br /&gt;
&lt;/P&gt;&lt;/DIV&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-102-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-102-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Java</category>
			<category>error</category>
			<category>java heap space</category>
			<category>outofmemory</category>
			<category>에러</category>
			<category>자바</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/102</guid>
			<comments>http://www.twelo.com/102#entry102comment</comments>
			<pubDate>Wed, 25 Feb 2009 22:43:20 +0900</pubDate>
		</item>
		<item>
			<title>루비 - MissingSourceFile in AppController 에러 관련</title>
			<link>http://www.twelo.com/101</link>
			<description>&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div&gt;
루비 온 레일즈 붉은색 서적 &quot;Biginning Ruby on Rails 라는 책에 첫 튜토리얼중 Yes it&#039;s Working 을 Local 로 html로 올리는 부분에 오류가 납니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
그래서 무시하고 다른부분부터 보기 시작했는데 마음에 걸려 삽질을 해본결과 책에 전혀 기술되지 않은 오류 정보더군요 ㅠㅠ&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;에러내용중&quot; MissingSourceFile in AppController#greeting&quot; 결국 sqlite3 라는DB 를 설치 하지 않아서 ...라더군요&lt;/div&gt;
&lt;div class=&quot;autosourcing-stub&quot;&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs12.tistory.com/image/24/tistory/2009/02/24/18/57/49a3c48db48a3&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;ddd.jpg&quot; height=&quot;438&quot; width=&quot;600&quot;/&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 굴림;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 굴림;&quot;&gt;sqlite를 일단 설치했습니다..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 굴림;&quot;&gt;설치 방법은 루비가 설치된 콘솔 창에 &quot;gem install sqlite3-ruby&quot; 으로 설치하시면 됩니다.                         .&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 굴림;&quot;&gt;hello.app 를 실행합니다. 그결과 또다른 에러가 발생합니다..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: 굴림;&quot;&gt;에러내용은 sqlite3.dll 이 없다고 나오네요 &lt;span style=&quot;FONT-SIZE: x-small; COLOR: #0000ff&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;&lt;a class=&quot;con_link&quot; href=&quot;http://sqlite.org/download.html&quot; target=&quot;_blank&quot;&gt;http://sqlite.org/download.htm&lt;/a&gt;&lt;/span&gt;&lt;a class=&quot;con_link&quot; href=&quot;http://sqlite.org/download.html&quot; target=&quot;_blank&quot;&gt;l &lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;&lt;a class=&quot;con_link&quot; href=&quot;http://sqlite.org/download.html&quot; target=&quot;_blank&quot;&gt;에 가셔서 dll 파일을 받아 Windows\system32 아래 넣어주시면 모든 에러가 해결됩니다.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(0, 0, 255); font-family: 굴림;&quot;&gt;정말 기본 비기닝 책이 이렇게 힘들줄은 몰랐습니다 ㅠ 이오류는 sqllite 라는 DB에 관한 오류지만 책에서는 Mysql 을 다룹니다 ㅠㅠ 흐악 과연 또다른 문제가 어떻게 발생할지 모르겠군요...&lt;/span&gt;&lt;/p&gt;
&lt;span style=&quot;FONT-SIZE: x-small&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;div class=&quot;autosourcing-stub&quot;&gt;
&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;p style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 11px 0px 7px; PADDING-TOP: 0px; FONT-STYLE: normal; FONT-FAMILY: Dotum&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-101-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-101-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Ruby On Rails</category>
			<category>error</category>
			<category>ruby error</category>
			<category>Ruby on Rails</category>
			<category>루비온레일즈</category>
			<category>에러</category>
			<category>오류</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/101</guid>
			<comments>http://www.twelo.com/101#entry101comment</comments>
			<pubDate>Tue, 24 Feb 2009 19:03:24 +0900</pubDate>
		</item>
		<item>
			<title>아이팟터치 - WIFIRemote Lite (Free APP) PC 원격 리모콘컨트롤</title>
			<link>http://www.twelo.com/100</link>
			<description>&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs11.tistory.com/image/17/tistory/2009/02/22/19/12/49a1250c73acb&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;494976.png&quot; height=&quot;60&quot; width=&quot;60&quot;/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;아이팟 터치(1,2세대) APP중 아이팟에 키보드 또는 특수 기능키, 조합키를 등록하여 리모콘?! 으로 사용할 수 있도록 해주는 어플이다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
먼저 어플을 다운받았다면, 실행할경우 바로 접속 오류가 난다 그이유는 Receiver list 등록과, 등록된 PC에 iReceiver 라는 서버형태의 유틸을 설치를 해야 된다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
먼저 순서대로&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
1. 어플(wifiremote lite) 프리버젼을 다운받는다.&lt;/div&gt;
&lt;div&gt;
2. 아이팟에서 어플 실행 후 상단 오른쪽에 있는 edit 를 눌러 해당 PC의 아이피를 입력한다 (예: 192.168.10.1)&lt;/div&gt;
&lt;div&gt;
3. 리시버에 등록된 아이피의 PC 즉, 무선 조정을 원하는 PC에 ireceiver 유틸을 설치한다&lt;/div&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://twelo.tistory.com/attachment/49a128068c0ddDI.exe&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/exe.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; ireceiverWindowversion.exe&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://twelo.tistory.com/attachment/49a1280de344fDG.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; iReceiver_1.0.1MacOSXversion.zip&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;
4. (1,2,3)을 모두 만족하여 연결되면 아래와 같은 화면이 나타난다.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
(처음에는 무도 Undefined 로 설정되어있으며 아래의 화면 하단 오른쪽에 있는 Edit 버튼을 눌러 설정한다)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
※ 저는 곰플레이어에 맞게 /방향키-&amp;gt;/&amp;lt;-/위/아래/스페이스/ 등 사용하여 영화를 보는 내내 멈춤, 빨리감기, 되감기,볼륨 조정을 주로 합니다만,&amp;nbsp;&amp;nbsp;Full &amp;nbsp;버젼이 아닌 lite 버젼을 사용중이라 아마 버튼 설정이 저장 되지 않는거 같습니다. 하지만 뭐 불편없이 (영화, 만화보기 프로그램 꿀뷰등) 사용하고 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;table style=&quot;display: inline; border-collapse: collapse&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://cfs15.tistory.com/image/19/tistory/2009/02/22/19/18/49a1268f96b19&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;494976.jpg&quot; height=&quot;480&quot; width=&quot;320&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-100-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-100-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-fr/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-fr/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Twelo</category>
			<category>APP</category>
			<category>ipod</category>
			<category>wifiremote</category>
			<category>wifiremote lite</category>
			<category>아이팟터치 어플</category>
			<category>아이팟터치2세대 어플</category>
			<category>어플</category>
			<author>티엘로</author>
			<guid>http://www.twelo.com/100</guid>
			<comments>http://www.twelo.com/100#entry100comment</comments>
			<pubDate>Sun, 22 Feb 2009 19:26:40 +0900</pubDate>
		</item>
	</channel>
</rss>
