<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Developer Tip&amp;Tech</title>
		<link>http://www.devtt.com/Ryan/</link>
		<description>개발자 팁 &amp; 테크 정보, 최신 IT 소식을 전해드립니다.</description>
		<language>ko</language>
		<pubDate>Fri, 05 Jun 2009 00:26:42 +0900</pubDate>
		<generator>Textcube 1.7.6 : Staccato</generator>
		<image>
		<title>Developer Tip&amp;Tech</title>
		<url>http://www.devtt.com/attach/1/1331613868.gif</url>
		<link>http://www.devtt.com/Ryan/</link>
		<width>183</width>
		<height>62</height>
		<description>개발자 팁 &amp; 테크 정보, 최신 IT 소식을 전해드립니다.</description>
		</image>
		<item>
			<title>Eclipse Mylyn 으로 통합 이슈 트래킹하기</title>
			<link>http://www.devtt.com/Ryan/54</link>
			<description>&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR vAlign=top&gt;
&lt;TD width=&quot;100%&quot;&gt;
&lt;H1&gt;&lt;SPAN style=&quot;COLOR: #999999&quot;&gt;&lt;BR&gt;Mylyn 2.0, Part 1: &lt;/SPAN&gt;통합된 태스크 관리&lt;BR&gt;&lt;EM&gt;&lt;BR&gt;Eclipse용 통합 이슈 트래킹으로 작업을 &lt;BR&gt;&lt;BR&gt;단순하게!&lt;/EM&gt;&lt;/H1&gt;&lt;IMG class=display-img alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=1 height=6&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;!--END RESERVED FOR FUTURE USE INCLUDE FILES--&gt;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;난이도 : 중급&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#author&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mik Kersten&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;, Mylyn Project Lead; President &amp;amp; CTO, Tasktop Technologies&lt;/P&gt;
&lt;P&gt;2007 년 12 월 04 일&lt;/P&gt;
&lt;BLOCKQUOTE&gt;최근 출시된 Mylyn 2.0 버전 (전 Mylar)은 태스크들을 Eclipse로 완벽하게 통합하고, 그러한 태스크들의 콘텍스트(context)을 자동으로 관리함으로써 생산성을 향상시킵니다. Mylyn 프로젝트 리더인 Mik Kersten은 Mylyn 1.0 이후 많은 사용자 피드백을 받았고, 이를 두 파트로 된 Mylyn 가이드에 적용하여 업데이트 했습니다. Part 1에서는 Mylyn의 태스크 관리 장치와 Bugzilla, Trac, JIRA 같은 저장소와의 통합에 대해 설명합니다. &lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에서는 콘텍스트 관리로 멀티 태스킹을 쉽게 하는 방법과, 정보 오버로드를 줄이는 방법을 설명합니다. &lt;/BLOCKQUOTE&gt;&lt;!--START RESERVED FOR FUTURE USE INCLUDE FILES--&gt;&lt;!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --&gt;&lt;!--END RESERVED FOR FUTURE USE INCLUDE FILES--&gt;
&lt;P&gt;소프트웨어 시스템, 프레임웍, 툴들은 계속 성장할 수 있지만, 정보를 처리하는 개발자의 능력은 실제로 한계가 있다. 대부분의 통합 개발 환경(IDE)은 구조화 된 뷰, 에디터, 고급 검색 장치를 사용하여 이러한 한계를 극복하려고 한다. 이러한 메커니즘을 통해 대형 시스템들을 보다 쉽게 검색할 수 있지만, 전형적인 프로그래밍 태스크를 완수하기 위해 처리되어야 하는 수 많은 정보를 관리하기에는 부족하다. 결국, 구조화 된 뷰는 과부하가 되고 만다. 예를 들어, Eclipse Package Explorer는 작은 엔터프라이즈 애플리케이션을 검색하기만 해도 수 천 개의 소스 파일들을 보여주기 때문에, 이러한 정보를 스크롤, 검색, 트래킹 하는데 엄청난 시간을 낭비할 수 있다. &lt;/P&gt;
&lt;P&gt;재미있는 점은, 대부분의 경우 프로그래밍 태스크를 완성하기 위해 시스템의 전체적인 계층적 구조나 특정 메소드에 대한 모든 레퍼런스를 볼 필요가 없다는 것이다. 예를 들어, 버그 픽스나 기능 추가의 경우, 여러분의 시스템의 하위 세트에만 관심이 있다. Mylyn은 두 개의 장치들을 Eclipse에 추가함으로써 그러한 하위 세트를 명확하게 하는 인터랙션 기술이다. 통합 태스크 관리(&lt;EM&gt;integrated task management&lt;/EM&gt;)와 자동 콘텍스트 관리(&lt;EM&gt;automated context management&lt;/EM&gt;)가 그것이다. 태스크 관리는 task/bug/defect/ticket/story/issue 트래커를 Eclipse로 통합하고 고급의 태스크 편집 및 태스크 스케줄링 장치를 제공한다. 콘텍스트 관리는 Eclipse와의 인터랙션을 감시하고, 태스크와 관련된 정보를 자동으로 구분하며, 구조화 된 뷰와 에디터에 초점을 맞춰 관련된 정보만을 보여준다. 이러한 장치들이 결합되어, Mylyn의 Task-Focused UI가 구성되는데, 이는 멀티 태스킹을 더욱 쉽게 해주고, 정보 오버로드를 크게 줄인다. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; 섹션의 &quot;Using Task Context to Improve Programmer Productivity&quot; 연구 논문 참조) &lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;40%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N10062&gt;&lt;STRONG&gt;생각의 속도&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;미엘린(Myelin)은 자연스럽게 발생하는 인체 물질로서, 흥분 상태에서 뉴런들을 더욱 활성화 함으로써 생각을 가속화 한다. Mylyn이란 이름도 이 myelin에서 착안한 것이다. 많은 사용자들은 Mylyn으로 자신이 생각하는 속도로 코딩을 할 수 있다고 말하고 있다. 이전에, 이 프로젝트는 Mylar라고 하는 얇은 플라스틱 필름과 같은 이름을 사용했다. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;본 기술자료 시리즈는 Mylyn 사용 가이드이다. 태스크 관리가 아닌 프로그래밍에 초점을 맞춘 부분에서는 여러분이 Eclipse IDE를 알고 있는 것으로 간주한다. Part 1에서는 Mylyn과 태스크 관리용 장치를 소개한다. &lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에서는 콘텍스트 관리용 Mylyn 장치를 소개하고, Task-Focused UI가 프로그래밍과 개발 방식에 어떤 영향을 미치는지를 설명한다. 여러분의 편의를 위해 두 파트를 동시에 발표한다. &lt;/P&gt;
&lt;P&gt;Part 1은 프로그래밍 액티비티에 국한된 것이 아니고, Eclipse나 독립 애플리케이션에서 Mylyn을 사용하는 방법에 관한 내용이다. &lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;는 자바 ™ 프로그래밍에 초점을 맞추면서도, Eclipse 기반 툴에 적용할 수 있는 기능들을 논한다. Bugzilla는 이 글의 예제에 사용되는 태스크 저장소이지만, 개념과 UI는 &lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#repositories&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn이 지원하는 다른 이슈 트래커들&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에도 적용된다. 다른 커넥터와 Mylyn을 사용할 계획이 있더라도, Bugzilla Connector를 사용하는 단계를 권장한다. 이렇게 함으로써 핵심 기능에 더 익숙해 질 수 있다. &lt;/P&gt;
&lt;P&gt;&lt;A name=N10081&gt;&lt;SPAN class=atitle&gt;Mylyn 소개&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn은 Eclipse SDK를 태스크를 트래킹하는 고급 메커니즘으로 확대되었다. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;) &lt;EM&gt;태스크&lt;/EM&gt;는 사용자 리포트 버그나 기능 향상에 대한 기록 같이, 요청 또는 다른 사람들과 공유하고자 하는 작업의 단위이다. Mylyn으로는 워크스페이스에서 로컬로 태스크를 저장하거나, 한 개 이상의 태스크 저장소에 저장된 태스크들로 작업을 할 수 있다. (&lt;EM&gt;태스크 저장소&lt;/EM&gt;의 예는 Bugzilla, Trac, JIRA 같은 이슈 트래커이다. 특정 태스크 저장소를 연결하려면, 그 저장소를 위해 &lt;EM&gt;Mylyn 커넥터&lt;/EM&gt;가 설치되어야 한다. &lt;/P&gt;
&lt;P&gt;일단 태스크가 통합되면, Mylyn은 그러한 태스크에 대한 작업 액티비티를 감시하여 태스크와 관련한 정보를 구분한다. 이것으로부터, Mylyn은 태스크 콘텍스트(&lt;EM&gt;task context&lt;/EM&gt;) -- 태스크와 관련된 모든 생성물들을 만든다. 여기에는 여러분이 검색했던 문서, 편집했던 메소드, 언급했던 API가 들어갈 수 있다. Mylyn은 태스크 콘텍스트를 사용하여 UI를 관심 정보에 집중시키고, 관심이 없는 부분들은 숨기며, 관련된 것들을 자동으로 찾는다. 작업을 수행시키기에 필요한 정보가 생기면 검색, 스크롤, 네비게이션에 드는 시간을 줄임으로써 생산성을 향상시킬 수 있다. 태스크 콘텍스트를 분명하게 함으로써, Mylyn은 멀티 태스킹, 플래닝, 재사용, 전문성 공유에도 기여한다.&lt;/P&gt;
&lt;P&gt;시간이 흘러가면서, Mylyn을 사용한 결과, 작업 방식이 미묘하면서도 근본적으로 바뀐다. 여러분이 일단, 태스크 중심 방식으로 작업하는데 익숙해지면, 생산성은 매우 높아진다는 것을 알 수 있다. 조직화 되고, 중요한 협업 태스크들에 집중하고, 진행 상황을 추적하는 것이 점점 쉬워진다. &lt;/P&gt;
&lt;P&gt;그림 1에서 번호가 매겨진 영역들은 Mylyn 태스크와 콘텍스트 관리 기능들이다. &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;오늘로 스케줄링 된 활성 태스크와 Bugzilla 리포트가 있는 Task List 
&lt;LI&gt;태스크 콘텍스트에서 관리되는 변경 세트 
&lt;LI&gt;오프라인 지원이 되는 풍부한 태스크 에디터 
&lt;LI&gt;Eclipse Package Explorer의 태스크 중심(Task-focused) 모드 &lt;/LI&gt;&lt;/OL&gt;&lt;BR&gt;&lt;A name=fig1&gt;&lt;B&gt;그림 1. Mylyn의 Task-Focused UI&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-overview.jpg&quot; width=572 height=420&gt; &lt;BR&gt;
&lt;P&gt;크게 &lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/sidefile.html&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#996699&gt;보기&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;다음 섹션에서는 Mylyn을 설치 및 구성하는 방법과, 핵심 기능들을 설명하겠다. Mylyn의 태스크 관리 장치들을 배우고 나서, 이것이 매일 매일의 워크플로우에 어떻게 영향을 주는지를 배울 것이다. &lt;/P&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/rules/blue_rule.gif&quot; width=&quot;100%&quot; height=1&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class=no-print cellSpacing=0 cellPadding=0 align=right&gt;
&lt;TBODY&gt;
&lt;TR align=right&gt;
&lt;TD&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=16 height=4&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/u_bold.gif&quot; width=16 height=16&gt;&lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top align=right&gt;&lt;A class=fbox href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#main&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#5c81a7&gt;위로&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=repositories&gt;&lt;SPAN class=atitle&gt;태스크 저장소 커넥터&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;이 글에서, 필자는 Mylyn의 Bugzilla Connector를 사용하여 태스크 저장소 통합 작업의 핵심 개념을 설명할 것이다. 이 개념은 다른 지원되는 태스크 저장소와 동일하지만, 통합과 커넥터의 성숙 레벨은 다양하다. Mylyn에 번들 된 Bugzilla와 Trac 커넥터는 성숙하고 레퍼런스 구현으로서 간주된다. 기타 이슈 트래커와 프로젝트 관리 툴들용 커넥터(CollabNet, Rally, Mantis, XPlanner)는 Mylyn Extensions 페이지를 참조하라. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;). &lt;/P&gt;
&lt;P&gt;완전하게 통합된 커넥터는 다음 기능을 선사한다:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;쿼리&lt;/STRONG&gt;: 쿼리는 태스크들을 Mylyn의 Task List로 가져오는 메커니즘이다. 쿼리 편집과 검색 장치들은 커넥터 전용이고, Eclipse 기반 쿼리 디자이너 또는 서버의 계정으로부터 온 쿼리의 검색을 제공한다. 또는 이 두 가지 모두를 제공한다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;풍부한 편집&lt;/STRONG&gt;: 태스크와 쿼리는 통합 에디터에서 편집될 수 있다. 이 장치는 태스크에 태스크와 다른 구조화 된 엘리먼트에 하이퍼링크를 제공하고, 드래그&amp;amp;드롭 같은 Eclipse와 데스크탑 통합도 제공한다. 풍부한 편집을 제공하는 커넥터는 Eclipse의 임베디드 브라우저에서 태스크와 쿼리를 여는 장치도 제공한다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;첨부&lt;/STRONG&gt;: 파일들이 저장소에 첨부되거나, 저장소로부터 파일들을 가져올 수 있다. 이 기능으로 운영 체계 또는 Eclipse 내에서 파일들을 첨부할 수 있고, 콘텍스트 공유 같은 장치들을 실행한다. (&lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;).&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;오프라인 지원&lt;/STRONG&gt;: 연결이 해제된 상태에서 작업할 수 있고, 서버에서 대기할 필요 없이 즉각 태스크에 액세스 하여 쿼리할 수 있다. 이러한 장치는 변경 공지도 제공하는데, 이메일 클라이언트에 의존하는 대신 태스크용 인박스로서 Task List를 사용할 수 있다. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Mylyn의 완전한 통합을 경험하고, 외부 또는 웹 기반 UI 의존성을 탈피하기 위해서는, 커넥터는 여기에 리스팅 된 네 가지 모든 장치들을 지원해야 한다. 하지만, Eclipse의 태스크들을 작업할 수 있도록 &lt;EM&gt;충분한&lt;/EM&gt; 장치들이 있다면, Mylyn의 Task-Focused UI도 많은 혜택을 줄 수 있다. 커넥터용 태스크 저장소를 사용할 수 없다면:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#startedwithlocal&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;로컬 태스크&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;를 위한 Mylyn 지원을 사용하라. 지원되지 않은 저장소가 웹 기반 UI를 갖고 있다면, 브라우저에서 URL을 Mylyn으로 가져와서 태스크를 만든다.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;다양한 웹 기반 저장소들(Google Code Hosting (code.google.com), IssueZilla (java.net, dev2dev, tigris.org), GForge (objectweb.org), SourceForge (sf.net), JIRA, Trac, phpBB, vBulletin)에서 기본적인 쿼리 지원을 제공하는 Generic Web Repository Connector를 사용하라. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;태스크 저장소 벤더에게 문의하여 Mylyn 용 커넥터를 만든다. Mylyn 버그 페이지에 커넥터에 투표하는 것도 고려해 보라. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;).&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;고유의 커넥터를 만들라. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;) &lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/rules/blue_rule.gif&quot; width=&quot;100%&quot; height=1&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class=no-print cellSpacing=0 cellPadding=0 align=right&gt;
&lt;TBODY&gt;
&lt;TR align=right&gt;
&lt;TD&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=16 height=4&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/u_bold.gif&quot; width=16 height=16&gt;&lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top align=right&gt;&lt;A class=fbox href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#main&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#5c81a7&gt;위로&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=N1013C&gt;&lt;SPAN class=atitle&gt;설치와 설정&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn은 현재 대부분의 Eclipse 배포판에 포함되어 있기 때문에, 가장 쉽게 구할 수 있는 방법은 Eclipse 다운로드 페이지(&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;)에서 Mylyn을 포함하고 있는 패키지를 다운로드 하는 것이다. 하지만, 새로운 Mylyn 버전으로 업데이트 하거나, Mylyn이 포함 되지 않은 Eclipse 버전에 Mylyn을 설치할 경우에는 다음 방법도 유용하다. &lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;40%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N1014D&gt;&lt;STRONG&gt;팁: Mylyn은 Java 5 또는 이후 버전이 필요하다!&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;Mylyn은 Java 5를 기반으로 구현된다. JRE 1.4 또는 이전 버전에서 실행한다면 작동하지 않을 것이다. 자신의 Eclipse 버전이 어떤 JRE를 사용하고 있는지를 확인해 보라.( &lt;STRONG&gt;Help &amp;gt; About Eclipse SDK &amp;gt; Configuration Details&lt;/STRONG&gt;) 설치 문제 해결은 Mylyn FAQ를 참조하라. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Eclipse 버전에 맞는 Mylyn을 설치하려면, Eclipse Update Manager를 사용한다: &lt;STRONG&gt;Help &amp;gt; Software Updates &amp;gt; Find and install &amp;gt; Search for new features to install&lt;/STRONG&gt;. Eclipse 3.2에서 업데이트 되면, &lt;STRONG&gt;Search for updates&lt;/STRONG&gt; 대신 이 방법을 사용하는 것이 더 낫지만, 이것은 올바른 의존성 체크를 수행하지 않는다. Eclipse 3.3에서는 어떤 방법도 다 가능하다. 최신 Mylyn 업데이트 사이트에서는 Update Manager를 제공한다. Mylyn의 다운로드 페이지를 참조하라. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Mylyn의 핵심적인 디자인 목적 중 하나는 Eclipse의 기존 UI 장치들과 완벽하게 통합하는 것이다. 또 다른 목적은 여러분이 필요로 하는 기능들만 설치하여 사용하는 것이다. 그림 2는 여러분이 설치하고자 하는 기능들을 선택할 수 있는 UI이다. 여러분의 역할이 개발이 아닌 버그 찾기라면, Task-Focused UI를 설치할 필요 없이 Mylyn의 Task List를 설치하고, 이슈 트래커용 커넥터를 개별적으로 선택할 수 있다. 소프트웨어 개발자들은 두 기능 모두를 설치하고 싶어한다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig2&gt;&lt;B&gt;그림 2. Mylyn 기능 및 저장소 커넥터 선택하기&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-install.jpg&quot; width=267 height=164&gt; &lt;BR&gt;
&lt;P&gt;업데이트 사이트에서 설치할 기능들을 선택할 때, 여러분이 사용하는 한 개 이상의 태스크 저장소를 선택한다. Mylyn 다운로드 페이지에서 명시한 것처럼, 추가 업데이트 사이트를 더하여 원하는 커넥터들을 구해야 한다. 권장 Task-Focused UI 기능을 설치할 때, Eclipse 버전에 설치할 수 있는 모든 브릿지(bridge)들을 선택해야 한다. (브릿지 상세는 &lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; 참조) Eclipse 3.3 또는 이후 버전을 재시작 하면, 그림 3과 같은 welcome 스크린이 나온다. Eclipse 3.2를 사용하고 있다면 Help 메뉴에서 직접 welcome 스크린을 열도록 한다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig3&gt;&lt;B&gt;그림 3. Welcome 스크린&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-welcome.jpg&quot; width=569 height=303&gt; &lt;BR&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/rules/blue_rule.gif&quot; width=&quot;100%&quot; height=1&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class=no-print cellSpacing=0 cellPadding=0 align=right&gt;
&lt;TBODY&gt;
&lt;TR align=right&gt;
&lt;TD&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=16 height=4&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/u_bold.gif&quot; width=16 height=16&gt;&lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top align=right&gt;&lt;A class=fbox href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#main&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#5c81a7&gt;위로&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=N10194&gt;&lt;SPAN class=atitle&gt;태스크와 쿼리&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn은 두 가지 종류의 태스크와의 작업을 지원한다: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;로컬 태스크&lt;/STRONG&gt;는 Eclipse 워크스페이스에 저장되고, 스케줄링 같은 기본적인 태스크 관리 기능을 제공한다. 로컬 태스크들은 개인적이고 여러분에게만 보인다.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;저장소 태스크&lt;/STRONG&gt;는 외부 애플리케이션이나 서버에 대응하는 태스크 저장소에 저장된다. 저장소 태스크는 사람들간 공유되지만, 여전히 개인 스케줄링과 노트 같은 로컬 태스크 장치들도 제공한다. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;이 섹션에서는 로컬 태스크들을 생성하여 편집하는 방법을 설명하고, 저장소 태스크들로 작업할 수 있는 기능들을 검토한다. 여기에서 다룬 기능들의 가용성은 커넥터의 &lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#repositories&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;통합 레벨&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에 의존하기 때문에, 적용할 수 있는 것만 참조해야 한다. 통합 레벨과 관계 없이, 모든 Mylyn의 태스크 관리 장치들을 사용할 수 있는데, 이 부분은 &lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#planning&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;태스크 관리와 개인 플래닝&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에서 다루겠다.&lt;/P&gt;
&lt;P&gt;&lt;A name=startedwithlocal&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;로컬 태스크 시작하기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn을 설치한 후에, 다음 단계를 따른다:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Task List 뷰의 &lt;STRONG&gt;New Task&lt;/STRONG&gt; 툴바 버튼을 클릭하여 새로운 태스크를 만든다. 
&lt;LI&gt;&lt;STRONG&gt;Local Tasks&lt;/STRONG&gt; 저장소를 선택한다. 
&lt;LI&gt;태스크 요약에 입력한다. 
&lt;LI&gt;Eclipse 툴바에서 &lt;STRONG&gt;Save&lt;/STRONG&gt;를 클릭하거나, Ctrl+S를 눌러 업데이트 된 디스크립션을 저장한다. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;로컬 태스크를 만드는 지름길은 Insert 키 또는 텍스트나 URL을 웹 브라우저에서 Task List로 가져오는 것이다. 새로운 태스크의 디스크립션은 상응하는 웹 페이지의 제목에 따라서 자동으로 채워진다. (Firefox에서는 일반적인 드래그를 하고, Internet Explorer에서는 드래그 동안 Ctrl을 누른다.) Task List에서 태스크를 더블 클릭하면 태스크 에디터가 열리고(그림 4), 여기에서 노트를 생성하고, 관련 하이퍼링크들을 붙이거나, 특정 날짜로 태스크를 스케줄링 한다. 기본적으로, 새롭게 생성된 태스크들은 이들이 생성된 날짜로 스케줄링 된다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig4&gt;&lt;B&gt;그림 4. 로컬 태스크 편집하기&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-editor.jpg&quot; width=572 height=411&gt; &lt;BR&gt;
&lt;P&gt;일단, 십여 개의 로컬 태스크들을 만들면, &lt;EM&gt;카테고리&lt;/EM&gt;를 만들어서 이들을 구성해야 한다. 태스크를 만들고, Task List에 카테고리를 선택하지 않았다면, 이 태스크는 Uncategorized 컨테이너에 배치된다. 여러분이 만들었던 태스크를 Task List의 &lt;STRONG&gt;Move to&lt;/STRONG&gt; 팝업 메뉴를 사용하여 또 다른 카테고리나 태스크 에디터로 옮기거나 드래그&amp;amp;드롭을 사용한다. &lt;/P&gt;
&lt;P&gt;로컬 태스크 완료를 표시하려면, 태스크의 팝업 메뉴 또는 태스크 에디터를 사용한다. 완료 표시가 된 태스크들은 기본적으로 필터링 되지만, Task List의 뷰 메뉴를 통해서 필터링 될 수 있다. (Task List 뷰 툴바의 오른쪽을 향하는 삼각형으로 열린다.) 어지러움을 없애기 위해, 어떤 태스크도 보여주지 않는 카테고리들(예를 들어, 이 카테고리에 있는 모든 태스크들이 완료되었을 경우)은 나타나지 않는다. Task List의 상단에 있는 &lt;STRONG&gt;Find:&lt;/STRONG&gt; 박스를 사용하여 필터링 된 태스크들에 액세스 한다. 마지막으로, 태스크 에디터를 통해 로컬 태스크용 우선 순위와 플래닝 정보를 설정한다. &lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#planning&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;태스크 관리와 개인 플래닝&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에서는 플래닝에 대해 자세히 다룬다. &lt;/P&gt;
&lt;P&gt;Mylyn의 아이콘 스킴에 익숙해 지려면, Task List 뷰 메뉴에서 &lt;STRONG&gt;Show UI Legend&lt;/STRONG&gt; 액션을 사용한다. (그림 5) 이 글에서 아이콘 스킴에 대해서도 이야기 할 것이다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig5&gt;&lt;B&gt;그림 5. Mylyn UI Legend&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-ui-legend.jpg&quot; width=300 height=641&gt; &lt;BR&gt;
&lt;P&gt;&lt;A name=N10217&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;태스크 저장소 추가하기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;태스크 저장소들은 태스크 관리에 사용하는 기능과 메타포의 관점에서 매우 광범위하다. Mylyn의 태스크 장치들은 통합된 방식으로 광범위한 저장소와 작업할 수 있도록 한다:&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;32%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N10223&gt;&lt;STRONG&gt;팁: 저장소 추가 후 설정의 유효성 검사 &lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;가장 많이 보고되는 Mylyn 문제들은 태스크 저장소 연결에 관한 것이다. &lt;STRONG&gt;Validate Settings&lt;/STRONG&gt; 버튼을 사용하여 여러분이 입력한 기밀 정보가 올바른지를 확인한다. 네트워크 프록시 같은 추가 설정이 필요하면, 다른 섹션들 중 하나를 사용하고 이들을 다시 확인한다. 일반적으로, 태스크 저장소 커넥터는 밸리데이션이 실패할 경우 유용한 메시지를 제공한다. 그렇지 않으면, 커넥터용 문서를 참조하거나, 연결 문제 해결을 위한 Mylyn FAQ(&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#resources&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;참고자료&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;)를 참조하라. 일부 커넥터들은 서버상에서 특별한 설정을 필요로 한다. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;로컬 태스크&lt;/STRONG&gt;: Eclipse 워크스페이스에 저장된 간단한 태스크들과 작업하는데 사용되는 특별한 종류의 저장소.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;공유 태스크&lt;/STRONG&gt;: 팀이 공유 태스크 저장소(예를 들어, Bugzilla 서버)를 사용한다면, 이 저장소를 사용하여 다른 사람들과 협업할 수 있다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;프로젝트 관리 태스크&lt;/STRONG&gt;: XPlanner 같은 커넥터들은 태스크들을 프로젝트 단계와 사용자 스토리로 그룹핑 할 수 있도록 하는 태스크 관리 장치를 제공한다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;STRONG&gt;버그와 향상 리포트&lt;/STRONG&gt;: 이것은 제품의 사용자들과 지원 팀들간 일반적으로 공유되는 특별한 유형의 태스크들이다. Mylyn은 통합 버그 리포팅을 다른 태스크에도 제공한다. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Task Repositories 뷰(&lt;STRONG&gt;Window &amp;gt; Show View &amp;gt; Mylyn &amp;gt; Task Repositories&lt;/STRONG&gt;)를 열거나, 이것을 포함하고 있는 Team Synchronizing 퍼스펙티브 같은 퍼스펙티브를 사용함으로써, 태스크 저장소를 만들 수 있다. 일단 열리기만 하면, 뷰의 툴바를 사용하여 새로운 저장소를 추가한다. 저장소 비밀 번호와 기타 연결 상세를 입력하거나, 가용 템플릿들 중 하나를 선택한다. 그림 6의 bugs.eclipse.org 저장소는 Mylyn을 설치할 때 자동으로 생성되어 Mylyn과 Eclipse에 대한 버그와 기능 요청을 쉽게 보고할 수 있도록 한다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig6&gt;&lt;B&gt;그림 6. Eclipse.org Bugzilla 저장소 추가하기 &lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-repository.jpg&quot; width=572 height=561&gt; &lt;BR&gt;
&lt;P&gt;&lt;A name=N1026F&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;저장소 쿼리&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;태스크 저장소를 성공적으로 추가했다면, Task List의 팝업 메뉴에 있는 &lt;STRONG&gt;New Query&lt;/STRONG&gt; 액션을 통해 그 저장소에 있는 태스크에 액세스 할 수 있는 쿼리를 만들 수 있다. 예를 들어, 필자의 이메일 주소에 할당된 모든 Bugzilla 리포트에 액세스 할 쿼리를 작성한다. (그림 7):&lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig7&gt;&lt;B&gt;그림 7. 새로운 Bugzilla 쿼리 만들기 &lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-query.jpg&quot; width=572 height=685&gt; &lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;56%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=query_configuration&gt;&lt;STRONG&gt;쿼리 설정 권고&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;다양한 구성 스타일을 지원하기 위해, Mylyn의 Task List는 카테고리와 쿼리를 설정 및 사용하는 방식을 유연하게 했다. 예를 들어, 팀이 반복을 관리하고 각 Bugzilla 리포트에 마일스톤을 표시하는 것을 중요시 여긴다면, 마일스톤에 상응하는 쿼리를 설정하고, 이들을 사용하여 프로젝트의 진행을 트래킹 할 수 있다. 하지만, Mylyn 팀과 다른 Mylyn 사용자들과 함께 작업해본 필자의 경험 상, 다른 사람들과 많이 협업한다면 개인 별로 쿼리를 설정하고, 여러분에게 할당된 태스크 작업을 주로 한다면 컴포넌트나 제품 영역을 설정하는 것을 권장한다. 모든 태스크 컨테이너들의 팝업 메뉴에서 사용할 수 있는 Task List의 &lt;STRONG&gt;Go Into&lt;/STRONG&gt; 액션을 사용하여 할당된 태스크나 특정 컴포넌트와 관련된 것에만 집중할 수 있다. Task Search (Ctrl+H) 장치를 사용하여 최신의 마일스톤 진행 상황을 알 수 있다. 구체적으로 다음 사항을 권하고 싶다.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;여러분에게 할당된 모든 태스크에 대한 하나의 쿼리를 설정한다. (이를 테면, &quot;All Mine&quot; 같은). 뚜렷한 제품이나 컴포넌트 영역이 있다면, 이 쿼리를 여러 개로 나눌 수 있다. 일반적으로, 싱글 쿼리로 충분하고, Task List가 수행되는 순서대로 태스크를 놓기 때문에 다음에 무엇을 해야 할 지를 쉽게 알 수 있다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;다른 사람들과 면밀히 협업한다면, 이들 각각에 대한 쿼리를 설정한다. Mylyn의 인커밍 공지는 개인별 논의에 대응하고 우선순위를 정하는데 도움이 된다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;여러분이 보고했거나, 주석을 달았거나, 참조가 되었던 모든 버그들에 대한 쿼리를 설정한다. (&quot;Products - Eclipse&quot;와 &quot;Products - Mozilla&quot;) 관심 있는 모든 태스크 저장소에 이를 수행하여, 여러분이 관심을 갖고 있는 모든 리포트에 대한 변경 공지를 받도록 한다. 고유의 태스크를 위해 설정했던 쿼리에 포함된 컴포넌트를 배제함으로써, 쿼리들 간 태스크 중복을 피할 수 있다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;버그를 찾는다면, 버그용 인박스 계정용 개별 쿼리를 설정하여 인커밍 리포트를 모니터링 할 수 있도록 한다. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;포함시킬 것을 강력히 권장하고 싶다. Mylyn은 기본적으로 완료된 태스크들을 필터링 하고, Task List의 상단에 있는 &lt;STRONG&gt;Find:&lt;/STRONG&gt; 박스를 통해 쉽게 검색할 수 있도록 한다. 쿼리에 미완 태스크들만 포함된다면, 그러한 태스크들이 완료되면, 이 쿼리에서는 더 이상 보이지 않는다. 모든 Mylyn 태스크에 대한 필자의 쿼리는 현재 1,420 개의 엘리먼트를 리턴하고, 이중 대부분이 완료된 것이다. 일반적으로, 이러한 유형의 큰 결과 세트는 문제가 되지 않는다.&lt;/P&gt;
&lt;P&gt;쿼리에서 사라지는 완료 태스크들이 여전히 Archive에 보인다면, 여기에는 여러분이 그 동안 작업했던 모든 태스크들이 포함된 것이다.&lt;/P&gt;
&lt;P&gt;마일스톤 같은 스케줄링 정보에 대한 쿼리를 설정하는 것이 유용할 수 있지만, 다른 사람들과 중복되는 쿼리들로 Task List에 과부하를 줄 수 있다. Search 함수를 사용하여 타겟 마일스톤 같은 것을 쿼리하는 것도 고려해 볼 만하다. 일반적으로, 여러분이 지금 작업 및 협업하고 있는 것을 가능한 자세하게 보여주는 Task List를 설정하는 것이 가장 유용하고, 이 마일스톤에 &quot;다음&quot; 작업이 무엇인지 같은 질문에 빠르게 답할 때에는 검색이 유용하다. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;매개변수를 설정하고 &lt;STRONG&gt;Finish&lt;/STRONG&gt;를 클릭한 후에, Task List의 쿼리 컨테이너에는 상응하는 태스크들로 채워진다. Mylyn은 백그라운드에 태스크용 정보를 가져온다. 태스크 정보가 다운로드 되면, 태스크 열기가 바로 일어난다. 태스크 정보를 검색하기 위한 서버 라운드 트립이 필요가 없기 때문이다. 쿼리의 매개변수들을 변경하려면, 이것을 다시 열고(Task List의 쿼리를 더블 클릭한다.), 선택된 값을 편집한다. 쿼리 매개변수 설정이 커넥터 별로 다양하지만, 이들은 커넥터의 웹 UI에서 제공되는 장치들을 반영한다. 커넥터 문서 또는 서버 웹 UI 문서를 참조하라. &lt;/P&gt;
&lt;P&gt;기본적으로, 쿼리들은 20분 마다 자동으로 동기화 하고, 쿼리 매개변수들과 매치하는 새로운 태스크를 보여준다. (&lt;STRONG&gt;Preferences &amp;gt; Mylyn &amp;gt; Task List&lt;/STRONG&gt;를 통해 이 스케줄을 변경할 수 있다.) Mylyn은 웹에서 연결이 해제될 때 오프라인 모드로 될 필요가 없다. 하지만, 동기화를 끄고 싶다면, 예를 들어, 연장된 기간 동안 오프라인으로 작업하거나, 사용된 대역폭에 직접 지불할 때-Task List의 뷰 메뉴에서 &lt;STRONG&gt;Synchronize Automatically&lt;/STRONG&gt; 설정을 토글링 함으로써 이를 수행할 수 있다. 이 모든 태스크와 쿼리들을 툴바의 버튼을 통해 직접 동기화 하거나, 팝업 메뉴나 F5 키보드 숏컷에서 개별적으로 쿼리를 동기화 할 수 있다. 또한, 태스크 저장소를 오프라인 모드로 둘 수 있다. 이것은 저장소에 액세스 할 수 없을 때 확장된 기간 동안 작업할 때 유용하다. &lt;/P&gt;
&lt;P&gt;웹 브라우저를 통해 액세스 할 수 있는 커넥터의 경우, Mylyn은 여러분도 이미 익숙하고, 일부 연산들이 Mylyn의 풍부한 편집 장치에 의해 지원되지 않는다면 의존해야 하는 웹 UI와의 통합을 제공한다. 태스크나 쿼리를 오른쪽 클릭하여 웹 브라우저에서 연다. (Eclipse 브라우저 설정은 &lt;STRONG&gt;Window &amp;gt; Preferences &amp;gt; General &amp;gt; Web Browser&lt;/STRONG&gt;에 있다.), 제휴 URL을 가진 모든 저장소 태스크는 Task List의 툴바와 태스크 팝업 메뉴의 Open with Browser 액션을 통해 열릴 수 있다. 또한 이 브라우저를 사용하여 Bugzilla 쿼리도 열 수 있다. (예를 들어, Bugzilla 웹 UI를 사용하여 이를 조정하기 위해 이메일에 붙이고 싶을 경우). New Query 마법사 프롬프트가 생기면 이것을 붙임으로써 업데이트 된 URL에서 Task List에 새로운 쿼리를 만들 수 있다. &lt;/P&gt;
&lt;P&gt;&lt;A name=N102D5&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;태스크 검색하기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;태스크 검색은 쿼리를 생성하는 것과 비슷하지만, 결과를 Task List에 저장하지 않는다. Ctrl+H 또는 Search 메뉴 (&lt;STRONG&gt;Search &amp;gt; Task Search&lt;/STRONG&gt;)를 사용하고, 관심 있는 저장소를 선택하고, 검색 기준을 입력한 다음 &lt;STRONG&gt;Search&lt;/STRONG&gt;를 클릭한다. Search 뷰가 열리면, 검색과 매치되는 태스크를 열 수 있다. (그림 8) 검색을 조정하려면, Search 다이얼로그를 다시 열고 이전의 검색 기준을 복원한다. 검색 결과는 Search 뷰의 팝업 메뉴에서 쿼리로 바뀔 수 있다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig8&gt;&lt;B&gt;그림 8. 태스크 검색과 결과&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-search.jpg&quot; width=564 height=267&gt; &lt;BR&gt;
&lt;P&gt;&lt;A name=N102F3&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;저장소 태스크 만들기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;새로운 저장소 태스크를 만들려면, Task List 툴바나 &lt;STRONG&gt;File &amp;gt; New&lt;/STRONG&gt; 메뉴에서 상응하는 액션을 사용하면서, 저장소를 선택한다. 이 단계 후에, 커넥터는 Bugzilla 컴포넌트 같은 이 태스크용 추가 애트리뷰트를 요청할 것이다. 새로운 에디터가 열리면 태스크의 애트리뷰트와 디스크립션을 채울 수 있다. 여러분이 Bugzilla 커넥터를 사용하고 있다면 운영 체계 같은 일부 애트리뷰트는 자동으로 선택된다.&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;40%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N10302&gt;&lt;STRONG&gt;팁: 쿼리 모드의 오른쪽 클릭&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;쿼리 모드를 오른쪽 클릭하면, 쿼리에 해당하는 저장소나 제품을 자동으로 선택할 수 있다. 일반적으로, 인풋을 요하는 함수를 호출하면, Mylyn은 여러분의 선택을 사용하여 관련 인풋을 미리 선택한다.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;여러분이 만들어야 하는 또 다른 종류의 태스크는 Mylyn용 버그 리포트 또는 Eclipse 기반 툴이다. 버그 리포팅은 bugs.eclipse.org 저장소의 자동 추가와, Eclipse의 Error Log 뷰와 Help 메뉴에서 액세스 할 수 있는 자동 버그 리포팅 용 액션을 통해 쉽게 수행된다. 보고하고 싶은 에러 이벤트를 보게 되면, 이것을 오른쪽 클릭하고, &lt;STRONG&gt;Report as Bug&lt;/STRONG&gt;를 선택한다. New Repository Task 에디터가 열리고, 스택 트레이스 같은 모든 관련 정보들이 포함된다. &lt;/P&gt;
&lt;P&gt;이러한 종류의 원클릭 버그 리포팅으로 수 많은 중복 버그 파일링을 만들 수 있지만, Mylyn은 자동화된 중복 탐지를 수행한다. &lt;STRONG&gt;Search for Duplicates&lt;/STRONG&gt; 버튼은 잠재적 중복에 대해 해당 저장소를 쿼리하기 위해 리포트의 Description에 있는 스택 태스크를 자동 삽입하거나, 직접 붙인다. 중복 탐지의 결과가 Search 뷰에 나타난다. (그림 9) 매치가 이루어지면, 이것을 열고, 새로운 버그 리포트를 만드는 대신 코멘트를 단다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig9&gt;&lt;B&gt;그림 9. 통합된 버그 리포팅과 중복 탐지&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-duplicate.jpg&quot; width=505 height=520&gt; &lt;BR&gt;
&lt;P&gt;&lt;A name=N10327&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;편집과 동기화&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Bugzilla 태스크를 열면, 에디터 상에 Bugzilla와 Planning 탭을 볼 수 있다. 저장소 커넥터는 저장소에서 공유되는 태스크 정보를 편집하기 위해 Bugzilla 탭 같은 풍부한 에디터를 제공한다. 또한, Planning 탭은 개인용 노트를 만드는데 로컬 태스크에 있었던 것과 같은 장치를 제공한다. &lt;/P&gt;
&lt;P&gt;버그에 있는 코멘트를 볼 때, Outline 뷰를 사용하여 코멘트들간 검색할 수 있지만, 읽지 않은 코멘트의 자동 폴딩(folding)은 대부분의 네비게이션이 Task Editor 자체에서 수행될 수 있다는 것을 의미한다. 다른 태스크와 다른 구조화 된 엘리먼트(자바 스택 트레이스 엘리먼트)에 대한 레퍼런스가 하이퍼링크 된다. (그림 10과 &lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#fig1&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;그림 1&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;) 하이퍼링크의 신택스는 커넥터 전용이다. 일반적으로, 태스크 에디터의 좌측 상단에서 보게 되는 같은 레퍼런스는 버그를 하이퍼링크로 연결하는데 사용될 수 있다. 커넥터의 웹 UI에 의해 지원되는 대안 신택스들 역시 지원된다. &lt;EM&gt;task &amp;lt;key&amp;gt;&lt;/EM&gt; 신택스는 언제나 지원된다. &lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig10&gt;&lt;B&gt;그림 10. 저장소 태스크 에디터와 콘텐트 어시스트 &lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-editor-repository.jpg&quot; width=559 height=514&gt; &lt;BR&gt;
&lt;P&gt;커넥터가 오프라인 편집을 지원하면, Mylyn은 상응하는 쿼리나 태스크가 동기화 될 때마다 이 카피를 열고 업데이트 하는 태스크의 캐싱된 카피를 관리한다. 애트리뷰트를 설정하거나 코멘트의 부분들을 합성하는 것 같이 어떤 변경이라도 있으면, Ctrl+S를 눌러서 변경 사항을 로컬로 저장한다. 이로써, 태스크들은 아웃고잉(&lt;EM&gt;outgoing&lt;/EM&gt;) 인디케이터를 얻게 된다. 태스크를 제출 할 준비가 되면, 에디터 하단에 있는 &lt;STRONG&gt;Submit&lt;/STRONG&gt;을 클릭한다. &lt;/P&gt;
&lt;P&gt;태스크가 이전에 열렸다면, 이것을 다시 열면 오프라인 카피를 가져오게 되고, 태스크의 백그라운드 동기화를 시작한다. 여러분은 태스크를 읽고 작업을 시작하기 전에 서버로의 라운드 트립을 기다릴 필요가 없다. 새로운 인커밍 변화가 발견되거나, 누군가가 에디터가 열려있는 동안 태스크를 변경한다면, 에디터의 타이틀 바는 이를 가리키고, 에디터를 리프레시 할 것을 명령한다. &lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;40%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N10358&gt;&lt;STRONG&gt;팁: 이메일 인박스 정돈하기&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;Mylyn의 백그라운드 동기화 덕분에, Bugzilla의 버그 리포트 변경 사항을 알기 위해 이메일 공지에 의존하지 않아도 된다. 여러분이 관심 있는 (예를 들어, 복사했던 모든 리포트 같은) 모든 태스크를 캡쳐하는 쿼리를 설정하면, 인박스에 과부하를 주지 않는 깔끔한 인커밍 화살표의 형태로 공지를 받을 수 있다. &lt;STRONG&gt;Window &amp;gt; Preferences &amp;gt; Mylyn &amp;gt; Tasks&lt;/STRONG&gt;를 선택함으로써 동기화 스케줄을 설정한다. 트리에서 노드를 오른쪽 클릭하고 &lt;STRONG&gt;Synchronize&lt;/STRONG&gt;를 선택함으로써 쿼리와 태스크를 직접 동기화 할 수 있다.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;누군가가 저장소의 태스크를 변경한다면, 예를 들어, 새로운 주석을 추가한다면, 팝업 창이 스크린의 오른쪽 밑에 나타나서 변경 사항을 알려주고, 태스크는 &lt;EM&gt;인커밍&lt;/EM&gt; 화살표를 사용하여 보여진다. 인커밍 변화를 요약한 툴팁을 보려면 태스크 위에 마우스를 댄다. 태스크가 열리면, 변경 사항이 하이라이트 되고, 추가되었던 새로운 코멘트가 자동으로 확장된다. 로컬 카피와 서버의 카피가 변경되었다면, 빨간색 충돌 모양의 인디케이터가 나타나고, 문제를 해결하라는 프롬프트가 뜬다. 충돌 모양을 보게 되면, 태스크가 태스크 에디터의 &lt;STRONG&gt;Synchronize&lt;/STRONG&gt; 버튼을 통해 동기화 되고, 변경 사항을 제출했는지 확인하거나, 팝업 메뉴의 &lt;STRONG&gt;Mark &amp;gt; Clear Outgoing&lt;/STRONG&gt;을 통해 이들을 버린다. &lt;/P&gt;
&lt;P&gt;&lt;A name=N10374&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;첨부 파일&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;태스크 에디터의 Attachments 섹션에서 &lt;STRONG&gt;Add...&lt;/STRONG&gt; 버튼을 사용하여 저장소에 첨부 파일을 추가할 수 있다. 워크스테이션에서 윈도우 매니저에서 파일이나 텍스트를 에디터의 Attachments 섹션으로 가져올 수 있다. 첨부 파일을 추가하면, 첨부 파일들이 클립보드 콘텐트, 컴퓨터 상의 파일, Eclipse 워크스페이스 중 어디에서 생성되는지를 선택할 수 있는 마법사가 호출된다. Attachments 테이블에서는 웹 브라우저나 에디터에 첨부 파일을 열고 저장 또는 클립보드로 복사하기 같은 콘텍스트 메뉴를 통해 특정 액션을 수행한다. &lt;/P&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/rules/blue_rule.gif&quot; width=&quot;100%&quot; height=1&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class=no-print cellSpacing=0 cellPadding=0 align=right&gt;
&lt;TBODY&gt;
&lt;TR align=right&gt;
&lt;TD&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=16 height=4&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/u_bold.gif&quot; width=16 height=16&gt;&lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top align=right&gt;&lt;A class=fbox href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#main&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#5c81a7&gt;위로&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=planning&gt;&lt;SPAN class=atitle&gt;태스크 관리와 개인 플래닝&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;이제, Mylyn에 싱글 태스크 리스트와 주간 작업일에 관련된 모든 태스크를 관리하는 인박스를 만드는 방법을 설명하겠다. 많은 개발자들의 경우, 주어진 주간 작업일에 트래킹 및 스케줄링 되어야 할 태스크 범위는 다음과 같다:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;작업하고 있는 제품을 위해 해결해야 하는 결점과 기능 
&lt;LI&gt;짝을 이룬 동료들에 의해 수행되거나, 멘토링 또는 관리되어야 할 태스크 
&lt;LI&gt;프레임웍, API, 소프트웨어와 관련한 버그 리포트 
&lt;LI&gt;개인적인 to-do 아이템과 리마인더 &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;이 모든 태스크들을 하나의 뷰로 통합하면 다음에 해야 할 일을 보기 위해 한 곳만 보면 되므로, 관리가 더 쉬워진다. 태스크 관리를 더욱 잘 활용하기 위해서, Mylyn은 스케줄링 및 연기 태스크와 XP 스타일 개발의 직접성과 적응성 같은 일반적으로 인식된 태스크 관리 베스트 프랙티스를 실현했다. Mylyn의 태스크 관리 툴을 사용하여 장기적인 우선 순위를 잃지 않으면서 한 주 동안 쉽게 변화하는 요구 사항들의 변화에 쉽게 적응할 수 있다. 주간 작업일의 제어하는 것 외에도, Mylyn은 Eclipse를 떠나지 않은 채, 마일스톤과 우선 순위 같은 공유 저장소 애트리뷰트를 만듦으로써 팀 프랙티스와 통합할 수 있도록 해준다. &lt;/P&gt;
&lt;P&gt;&lt;A name=N1039C&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Scheduled Date 대 Due Date&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn은 스케줄링 목적으로 두 가지 종류의 날짜를 제공한다: &lt;EM&gt;scheduled date&lt;/EM&gt;와 &lt;EM&gt;due date&lt;/EM&gt;. (이 두 가지가 태스크 에디터에 나타났다는 것을 알 수 있다.) Scheduled Date는 주 노동 시간을 관리하고 우선 순위를 정하는 것을 돕는 반면, Due Date는 데드라인 같은 고정된 이벤트에 해당한다.&lt;/P&gt;
&lt;P&gt;태스크의 Scheduled Date는 우선 순위 변경에 따라 쉽게 연기될 수 있는 개인용 스케줄링을 위한 소프트(soft) 데이트이다. 그 태스크에 대한 작업을 시작하는 시간을 정한다. 태스크가 이 Scheduled Date에 해당하면, 태스크는 빨간색으로 변하고 작업을 시작하거나 시작일을 미뤄야 함을 알려준다. Today로 스케줄링 된 태스크는 빨간색 대신 파란색으로 변하고, 작업일의 끝에 스케줄링 되기 때문에, 작업일에 태스크를 재 스케줄링 할 필요가 없다. &lt;/P&gt;
&lt;P&gt;반대로, 태스크의 Due Date는 고정된 날짜이다. 태그가 완료되어야 하는 날짜이다. 이것은 데드라인 같은 외부적 제약 조건과 관련이 있다. 공유 태스크 저장소나 캘린더링 툴을 사용한다면, Due Date는 동기화 되어 다른 팀 멤버들도 볼 수 있다. 예를 들어, Bugzilla의 타임 트래킹(time-tracking) 장치가 실행되면, Bugzilla 태스크용 Due Date는 태스크 에디터의 Attributes 섹션 내의 Time Tracking 섹션을 통해 설정될 수 있고 다른 팀 멤버들이 편집할 수 DT다. Due Date의 존재는 해당 날짜 전에는 파란색, 그 날짜 후에는 빨간색이 되는 태스크 아이콘 상의 작은 시계로 표시된다. &lt;/P&gt;
&lt;P&gt;&lt;A name=N103B1&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;주 노동 시간에 집중하기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn으로 태스크 생성과 공유가 쉽기는 하지만, 일단 이것을 사용하기 시작하면, Task List는 곧 수십 개 또는 수천 개의 태스크들로 넘쳐날 것이다. 이러한 현상은 Mylyn의 초기 사용자들에게 일어났으며, 필자도 그 중 하나다. 아마도 필자가 최초의 사용자였기 때문에, 필자의 현재 Task List에는 5천 개 이상의 태스크들이 있고, 이중 천 개 이상이 미완이다. 이것은 정보 오버로드를 줄이고자 하는 Mylyn의 목표에 배치된다. 이를 해결하기 위해, Mylyn은 태스크의 스케줄링과 연기에 체계화 된 장치들을 제공하고, 이러한 정보를 사용하여 주 노동 시간에 관련된 태스크들만 보여주는 Task List에 집중한다. 새롭게 생성된 태스크들은 생성일에 대해 스케줄링 되고, 태스크 에디터의 Planning 섹션이나 콘텍스트 메뉴를 통해서 나중 시간 또는 날짜로 빠르게 연기될 수 있다. &lt;/P&gt;
&lt;P&gt;태스크가 Scheduled Date에 도달하면, 태스크와 컨테이너(쿼리)는 빨간색으로 변하고, 팝업 창이 리마인더로서 데스크탑에 나타난다. (다른 Mylyn 색상과 폰트 설정과 마찬가지로, &lt;STRONG&gt;Window &amp;gt; Preferences &amp;gt; General &amp;gt; Appearance &amp;gt; Colors and Fonts&lt;/STRONG&gt;에서 태스크 강조 선호도를 설정할 수 있다.) &lt;STRONG&gt;Window &amp;gt; Mylyn &amp;gt; Tasks &amp;gt; Scheduling&lt;/STRONG&gt;에 설정된 작업일의 시작은 미래 날짜로 연기될 때 태스크가 스케줄링 되는 시간을 정한다. 작업일의 끝을 변경하면 그 날에 스케줄링 된 태스크들이 지난 것인지 여부를 파악한다. &lt;/P&gt;
&lt;P&gt;Mylyn의 태스크 관리 모델의 핵심은 관심 기반 랭킹과 필터링인데, 이것은 Task List 툴바의 Focus on Workweek 액션을 통해 활성화 할 수 있다. 포커싱은 주 노동 시간에 관련된 태스크들만 보이게끔 한다. 여기에 속한 태스크들은:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;그 주에 스케줄링 되거나 Scheduled Date를 지나친 태스크. 
&lt;LI&gt;인커밍 변경과 코멘트가 있는 저장소 태스크. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;그림 11에서 보듯, 태스크에는 색깔이 있고 다음에 무엇을 할 지 빠르게 구분할 수 있도록 분류된다:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;시일이 지난 태스크들은 빨간색이고, 언제나 리스트의 위에 있다. 
&lt;LI&gt;오늘 날짜의 태스크는 파란색이다. 
&lt;LI&gt;그 주의 후반에 스케줄링 된 태스크는 검정색이다. 
&lt;LI&gt;오늘 완료된 태스크는 녹색이다. 
&lt;LI&gt;이전에 완료된 태스크들은 회색이다. &lt;/LI&gt;&lt;/UL&gt;&lt;STRONGR&gt;&lt;A name=fig11&gt;&lt;B&gt;그림 11. 태스크 스케줄링&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-scheduling.jpg&quot; width=560 height=506&gt; &lt;BR&gt;
&lt;P&gt;&lt;A name=N103F3&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;한 번에 하루씩&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;태스크를 쉽게 스케줄링 하고 연기할 수 있게 하고, 해당 주에 스케줄링 된 태스크들로 뷰를 제한함으로써, Mylyn은 전체적인 우선 순위 관점에서 관리할 수 있도록 한다. 작업일을 명확히 하기 위해, Mylyn은 현재 요일에 스케줄링 된 모든 태스크들을 파란색으로 강조한다. 포커스 모드에서 작업할 때 스크롤바를 비교적 덜 보기 때문에, Task List는 확장된 채로 있고, 따라서, 다음에 해야 할 일에 대해 언제나 알 수 있다. &lt;/P&gt;
&lt;P&gt;Mylyn의 태스크 포커싱 장치를 사용하여 관리되는 주 노동 시간 예제를 생각해 보자:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;주의 시작에, 태스크 리스트에는 그 주에 이전에 스케줄링 되었거나 연기된 수 많은 빨간색 태스크들이 있다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;빨간 색은 그렇게 좋은 색깔은 아니기 때문에, 콘텍스트 메뉴를 사용하여 각 태스크를 오늘 또는 다른 날로 스케줄링 한다. 빨간색이 모두 사라지면(오늘 날짜는 파란색, 주 후반에 해야 할 일은 검은색), 주의 스케줄을 조사하여 이것이 현실적인지를 파악하고 태스크를 필요한 만큼 연기하거나 위임한다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;Task List가 포커싱 되어 있는 한, 녹색의 진행 바(그림 11의 Task List 상단에 보임)를 통해서 주 노동 시간에 너무 많은 태스크들을 스케줄링 하지 않았는지를 검사한다. 일부 태스크들이 특별히 더 길다면, 태스크의 Planning 섹션을 열어서 시간을 조정하고, 주 노동 시간 상태 바는 이에 따라서 조정된다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;작업일의 끝에, 여러분이 완료한 모든 태스크들은 행복한 녹색이 된다. 나머지 파란색이나 빨간색 태스크를 검토하고, 이 태스크를 내일 또는 미래의 특정 날짜로 연기한다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;다음 날의 시작에, 그 날로 스케줄링 된 모든 태스크들이 파란색이 되고, 날짜가 지난 태스크들은 빨간색이 된다. 작업일을 조정하면, 태스크들을 그 주의 나중 날짜로 연기하기 때문에, 보여지는 파란색 태스크는 그날 수행할 수 있는 모든 것을 나타낸다. 태스크를 완료하면, 녹색이 된다. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;주 노동 시간의 끝에서는, 스크롤바는 사라지고, 리스트 상의 대부분의 태스크들이 녹색이 된다. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;태스크 스케줄링은 태스크 관리의 주요 부분이기 때문에, Mylyn은 Task List에 &lt;STRONG&gt;Scheduled&lt;/STRONG&gt; 프리젠테이션을 제공하는데, 이것은 카테고리와 쿼리 대신 해당 날짜 별로 태스크들을 구성한다. 포커스 모드에서, 프리젠테이션은 그 주의 각 요일에 완료해야 하는 모든 태스크들을 보여준다. 이것은 그 주를 통해 워크로드의 균형을 맞추는데 유용하다. 또한, 새로운 코멘트가 있는 스케줄링 되지 않은 태스크들이 나타나지 않기 때문에 공유 태스크를 사용할 때 특히 유용하다. 새로운 인커밍을 체크하기 위해, &lt;STRONG&gt;Categorized&lt;/STRONG&gt; 프리젠테이션으로 가서, 우선 순위를 재 조정하고, 스케줄에 초점을 맞춘다. 포커스 모드에 있지 않을 때, 스케줄링 된 프리젠테이션을 사용하여 앞으로의 주에 태스크 로드의 균형을 맞춰서 Next Week 컨테이너를 검사하여 얼마나 많은 태스크들이 연기되었는지를 확인한다. &lt;/P&gt;
&lt;P&gt;&lt;A name=N10431&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;작업 세트 만들기&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;지금까지 설명했던 모든 장치들이 Task List를 유연한 방식으로 스케줄링 할 수 있는 관련 태스크들의 통합 세트로 만든다. 태스크들은 쿼리들을 사용하여 그룹핑 될 수 있고, 저장소 커넥터가 이들을 지원한다면 하위 태스크들로 중첩될 수 있다. (Bugzilla 커넥터가 하는 것처럼, Task List 뷰 메뉴에서 옵션을 실행한다.) 하지만, Mylyn 2.0의 작업 세트(&lt;EM&gt;working set&lt;/EM&gt;) 지원으로, 완전히 관련이 없는 태스크들을 작업할 수 있다. 하나의 제품과 두 개의 다른 오픈 소스 프로젝트에 대한 작업을 한다고 가정해 보자. 주요 제품에 초점을 맞춰 작업일의 대부분을 보내겠지만, 여전히 다른 프로젝트를 체크하는 옵션도 있다. Mylyn의 작업 세트로는 특정 제품과 관련된 쿼리와 카테고리를 그룹핑 할 수 있고 Eclipse 워크스페이스에서 보는 파일과 기타 리소스의 수를 조정하는 장치도 제공한다. &lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;40%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N10440&gt;&lt;STRONG&gt;팁: Show all&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;작업 세트 스위처 드롭-다운에서 &lt;STRONG&gt;Show All&lt;/STRONG&gt;을 선택하여, 마치 작업 세트를 설정하지 않은 것처럼, 모든 엘리먼트를 볼 수 있다. 이는 Task List 전체를 주기적으로 보는데 유용하다. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Task List의 상단에 스위처 바를 사용하여, 관련 쿼리, 카테고리, 워크스페이스 리소스를 포함하는 작업 세트를 만든다. (그림 12) Eclipse 뷰가 &lt;EM&gt;Window Working Set&lt;/EM&gt; (기본)을 보여주도록 설정되는 한, Mylyn 작업 세트를 변환하면 Task List와 Eclipse 뷰 모두 작업 세트의 일부인 태스크와 프로젝트만 보여준다. 예를 들어, 오픈 소스 프로젝트들 중 하나를 위해 작업 세트를 설정하고 이것을 드롭 다운으로 실행한다면, Eclipse Task List, Package Explorer, Problems 뷰는 그 프로젝트와 관련된 콘텐트만 보여준다. Task List Find 장치는 작업 세트 내의 매치만 보여준다. Search (Ctrl+H) 범위를 정해서 Working Set에 있는 것만 찾을 수 있는데, 이는 큰 워크스페이스를 갖고 있을 경우 매우 유용하다. 다시 말해서, 전체적인 Eclipse는 여러분이 만들었던 작업 세트와 관련된 것만 보여준다. 작업 세트는 워크스페이스의 난잡함을 줄이고, 여러 워크스페이스를 사용해야 하는 필요성을 줄인다. &lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;에서는, Eclipse에서 보이는 것의 범위를 싱글 태스크로 조정하는 방법을 설명하겠다.&lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig12&gt;&lt;B&gt;그림 12. 작업 세트 편집 및 토글링&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-working-sets.jpg&quot; width=572 height=607&gt; &lt;BR&gt;
&lt;P&gt;&lt;A name=N10467&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;필터링, 분류, 검색&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;자동화 된 장치 외에도, Mylyn은 수동 분류와 필터링 장치를 제공한다:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;뷰 메뉴의 &lt;STRONG&gt;Sort by&lt;/STRONG&gt; 엔트리에서 Priority 같은 애트리뷰트 분류. 
&lt;LI&gt;뷰 메뉴에서 &lt;STRONG&gt;Filter Priority Lower Than&lt;/STRONG&gt; 엔트리를 사용한 우선 순위 별 필터링. 
&lt;LI&gt;뷰 메뉴를 통한 모든 Archive 카테고리와 완료 태스크 필터링(포커스 모드로 자동 바뀌도록 권장) 
&lt;LI&gt;&lt;STRONG&gt;Go Into&lt;/STRONG&gt; (포커스 모드 작업 권장)를 클릭함으로써 특정 카테고리나 쿼리에 있는 태스크들을 위한 필터링 
&lt;LI&gt;드래그&amp;amp;드롭을 사용하여 태스크들을 수동으로 분류하기; 저장소 태스크들을 카테고리로 분류하기. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;그림 13은 수동 Task List 필터를 보여준다:&lt;/P&gt;&lt;STRONGR&gt;&lt;A name=fig13&gt;&lt;B&gt;그림 13. 수동 Task List 필터&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/part1-filters.jpg&quot; width=491 height=476&gt; &lt;BR&gt;
&lt;P&gt;수동 검색과 필터링은 다양한 필터와 분류기를 반복적으로 토글링하는데 필요한 부담을 나타낸다. 이것은 기본 연산 모드에는 권장되지 않지만, 플래닝과 구성에는 유용하다. Focus on Workweek이 활성화 되면, 수동 필터링과 분류 설정이 실행 불가로 된다. 포커스를 토글링 하여 이를 복원한다. &lt;/P&gt;
&lt;P&gt;Task List를 구성할 때, &lt;STRONG&gt;Move to Category&lt;/STRONG&gt; 콘텍스트 메뉴 또는 콘텍스트 메뉴의 &lt;STRONG&gt;Remove from Category&lt;/STRONG&gt;를 선택함으로써 태스크를 이동할 수 있다. 콘텍스트 메뉴를 통해서 명확히 삭제하지 않는 한, 쿼리에서 사라지거나, 카테고리에서 사라지겠지만, Task List에서 어떤 태스크도 사라지지 않는다. Task List의 상단에 있는 Find 바는 Archive와 다른 곳에 있는 오랜 태스크들을 검색할 수 있는 편리한 방법이다. &lt;STRONG&gt;Clear&lt;/STRONG&gt; 버튼을 클릭하거나 Esc 키를 누르면 이전에 보였던 태스크들이 복원된다. Archive 컨테이너는 쿼리를 생성하는 일반적인 방식이 해결된 태스크들을 배제하는 것이기 때문에 코멘트가 달린 이전에 해결된 태스크들을 보는데 유용하다. (&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#query_configuration&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;쿼리 설정 권고&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; 참조) &lt;/P&gt;
&lt;P&gt;&lt;A name=N104B0&gt;&lt;SPAN class=smalltitle&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;백업과 반출&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;55%&quot; align=right&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width=10&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=10 height=1&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=5 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD bgColor=#eeeeee&gt;&lt;A name=N104B9&gt;&lt;STRONG&gt;팁: 태스크 데이터 공유하기&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;
&lt;P&gt;여러 워크스페이스에서 작업할 때, Import를 사용하여 태스크를 가져오는 대신, &lt;STRONG&gt;Window &amp;gt; Preferences &amp;gt; Mylyn &amp;gt; Tasks&lt;/STRONG&gt;를 설정하여 태스크 데이터 디렉토리가 공유 위치가 되도록 설정할 수 있다. 네트워크 드라이브에 위치를 둔다면, 이것이 자주 액세스 될 것이므로 빠른 연결을 통해 사용할 수 있어야 한다. 이는 워크스페이스 위치를 직접 관리하는 사용자들을 위해 권장되는 고급 옵션이다. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;태스크 중심 방식으로 작업하면 할수록, Task List는 더욱 가치가 있다. Task List의 자동 백업은 기본적으로 실행되고, &lt;STRONG&gt;Window &amp;gt; Preferences &amp;gt; Mylyn &amp;gt; Tasks&lt;/STRONG&gt;로 백업 디렉토리를 설정할 수 있다. 백업에서 복원하려면, 상응하는 라디오 버튼을 선택하고 백업 스냅샷을 선택한다. 기본적으로, Mylyn은 매일 태스크 데이터 모두를 찍고, 30일 동안 백업을 관리한다. (&lt;STRONG&gt;Preferences &amp;gt; Tasks&lt;/STRONG&gt;를 통해 설정). &lt;STRONG&gt;File &amp;gt; Export&lt;/STRONG&gt;를 클릭하여 태스크를 반출할 수 있다. &lt;/P&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/rules/blue_rule.gif&quot; width=&quot;100%&quot; height=1&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class=no-print cellSpacing=0 cellPadding=0 align=right&gt;
&lt;TBODY&gt;
&lt;TR align=right&gt;
&lt;TD&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=16 height=4&gt;&lt;BR&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=center&gt;&lt;IMG border=0 alt=&quot;&quot; src=&quot;http://www.ibm.com/i/v14/icons/u_bold.gif&quot; width=16 height=16&gt;&lt;BR&gt;&lt;/TD&gt;
&lt;TD vAlign=top align=right&gt;&lt;A class=fbox href=&quot;http://www.ibm.com/developerworks/kr/library/j-mylyn1/index.html#main&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#5c81a7&gt;위로&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=N104D2&gt;&lt;SPAN class=atitle&gt;Part 1의 결론&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mylyn 사용 가이드 Part 1에서는, Mylyn의 태스크 관리 장치에 대해 설명했다. 이러한 장치들이 개인적인 태스크 관리를 어떻게 지원하고, 전체적으로 Bugzilla 같은 웹 기반 이슈 트래커들을 Eclipse로 어떻게 통합하는지를 살펴보았다. 또한 Mylyn에 의해 관리되는 전형적인 주 노동 시간 또는 작업일을 설명했고, Task List를 관리 하는 방법도 설명했다. &lt;/P&gt;
&lt;P&gt;Task List 뷰는 태스크 저장소들이 얼마나 많은지 상관 없이, 모든 작업을 관리할 수 있는 하나의 장소를 제공한다. Eclipse에서 더 많은 작업 시간을 보낼 수 있고, 외부 브라우저 윈도우로 끊임 없이 변환하는 대신 생산성을 높일 수 있다. 또한, 드래그&amp;amp;드롭 첨부 파일과 오프라인 지원 같은 웹 기반 이슈 트래커로 더욱 풍부한 혜택을 누릴 수 있다. &lt;/P&gt;
&lt;P&gt;이것이 Mylyn의 전부가 아니다. 태스크가 작업의 확실한 일부가 되면, Mylyn은 그 콘텍스트를 자동으로 관리한다. 본 시리즈 Part 2에서는 Mylyn의 콘텍스트 관리 장치를 보여주고, 정보 오버로드를 줄이고, 정보 오버로드를 줄이며, 하나의 클릭으로 멀티 태스킹을 수행하는 방법을 설명한다. 지금 바로 &lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Part 2&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;로 가기 바란다. &lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=resources&gt;&lt;SPAN class=atitle&gt;참고자료&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;STRONG&gt;교육&lt;/STRONG&gt;&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;&quot;&lt;A href=&quot;http://www.ibm.com/developerworks/java/library/j-mylyn2/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn 2.0, Part 2: 자동화된 콘텍스트 관리&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;&quot; (Mik Kersten, developerWorks, 2007년 8월)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&quot;&lt;A href=&quot;http://kerstens.org/mik/publications/2006-11-mylar-fse.pdf&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;태스크 콘텍스트를 사용하여 프로그래머의 생산성 높이기&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;&quot; (Mik Kersten과 Gail C. Murphy, FSE 2006)&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://wiki.eclipse.org/index.php/Mylyn_FAQ&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn FAQ&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;와 &lt;A href=&quot;http://wiki.eclipse.org/index.php/Mylyn_User_Guide&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;사용자 가이드&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: Mylyn 사용자용 문서.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.eclipse.org/mylyn/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn 홈페이지&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: Mylyn 사용자와 개발자를 위한 리소스와 지원.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://wiki.eclipse.org/Mylyn_Integrator_Reference&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn Integrator Reference&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.ibm.com/developerworks/kr/library/opensource/top-projects/eclipse-starthere.html&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Eclipse 시작하기 (한글)&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: Eclipse 플랫폼과 Eclipse용 프로젝트(Mylyn 포함) 소개.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.tasktop.com/blog/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mik의 블로그&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: 필자의 웹로그 보기.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.ibm.com/developerworks/kr/java/&quot; cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;자바 존&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: 자바 프로그래밍 관련 다양한 기술자료 보기.&lt;/LI&gt;&lt;/UL&gt;&lt;STRONGR&gt;&lt;B&gt;제품 및 기술 얻기&lt;/STRONG&gt;&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href=&quot;http://wiki.eclipse.org/index.php/Mylyn_Extensions&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn Extensions&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: Mylyn에 포함되지 않은 커넥터 다운로드.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://wiki.eclipse.org/index.php/Mylyn_FAQ#Generic_Web_Repository_Connector&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Generic Web Repository Connector&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.eclipse.org/mylyn/downloads/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn 다운로드&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.eclipse.org/downloads/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#996699&gt;Eclipse 다운로드&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: Eclipse 3.2 및 기타 다운로드.&lt;STRONGR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;&lt;B&gt;토론&lt;/STRONG&gt;&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.eclipse.org/mylyn/bugs/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Mylyn 버그와 투표&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: Mylyn의 버그 리포트 제출과 기능 요청.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.eclipseplugincentral.com/Web_Links-index-req-ratelink-lid-560.html&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;Eclipse Plug-in Central&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.ibm.com/developerworks/blogs/&quot; target=new cmImpressionSent=&quot;1&quot;&gt;&lt;INS&gt;&lt;FONT color=#5c81a7&gt;developerWorks 블로그&lt;/FONT&gt;&lt;/INS&gt;&lt;/A&gt;: developerWorks community 참여하기.&lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;A name=author&gt;&lt;SPAN class=atitle&gt;필자소개&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0 width=&quot;100%&quot;&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colSpan=3&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=&quot;100%&quot; height=5&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top align=left&gt;
&lt;TD&gt;&lt;IMG alt=&quot;&quot; src=&quot;http://www.ibm.com/i/c.gif&quot; width=4 height=5&gt;&lt;/TD&gt;
&lt;TD width=&quot;100%&quot;&gt;
&lt;P&gt;Mik는 Xerox PARC의 연구원으로서 aspect 지향 프로그래밍 툴을 만들었으며 eclipse.org/aspectj 프로젝트에 기여하고 있다. 브리티시컬럼비아대학교에서 박사 과정에 있는 동안, 태스크 중심 인터랙션 기술을 개발했으며 eclipse.org/mylar 프로젝트를 이끌었다.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;&lt;/B&gt;</description>
			<category>os.ide.etc.</category>
			<category>eclipse</category>
			<category>mylin</category>
			<category>마이린</category>
			<category>이클립스</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/54</guid>
			<comments>http://www.devtt.com/Ryan/54#entry54comment</comments>
			<pubDate>Thu, 04 Jun 2009 22:36:11 +0900</pubDate>
		</item>
		<item>
			<title>Eclipse Java Project 를 Dynamic Web Project 로 변환하는 방법</title>
			<link>http://www.devtt.com/Ryan/53</link>
			<description>&lt;P&gt;&lt;FONT color=#006699&gt;1. WorkSpace 이하 프로젝트 폴더로 이동&lt;BR&gt;2. .project 파일을 연다.&lt;BR&gt;3. 소스중 natures 라는 부분 안에다가 아래 내용을 삽입한다.&lt;/FONT&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#993366&gt;&amp;nbsp; &amp;nbsp; &amp;lt;nature&amp;gt;org.eclipse.wst.common.project.facet.core.nature&amp;lt;/nature&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;lt;nature&amp;gt;org.eclipse.wst.common.modulecore.ModuleCoreNature&amp;lt;/nature&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#006699&gt;4. eclipse를 다시 &amp;nbsp;시작하거나 혹은 eclipse 가 열려 있었다면 프로젝트로 이동해서 새로고침후 변경내용을 적용한다.&lt;BR&gt;&lt;BR&gt;5. Package Explorer 에서 해당 프로젝트의 properties 를 열어서 project facets 에 들어간다.&lt;BR&gt;&lt;BR&gt;5. Java 와 Dynamic Web Modules 를 추가해 준다.&lt;BR&gt;&lt;BR&gt;* 만약 WebContent 디렉토리 명을 바꾸고 싶다면 &lt;BR&gt;프로젝트 폴더 안에 있는 .setting/org.eclipse.wst.common.component 파일을 열어 WebRoot 를 다른 이름으로 바꿔주면 된다.&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#999966&gt;&lt;FONT color=#666699&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;BR&gt;&amp;lt;project-modules id=&quot;moduleCoreId&quot; project-version=&quot;1.5.0&quot;&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;lt;wb-module deploy-name=&quot;ArticleService&quot;&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wb-resource deploy-path=&quot;/&quot; source-path=&quot;&lt;STRONG&gt;/&lt;FONT color=#d41a01&gt;WebContent&lt;/FONT&gt;&lt;/STRONG&gt;&quot;/&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;wb-resource deploy-path=&quot;/WEB-INF/classes&quot; source-path=&quot;/src&quot;/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;context-root&quot; value=&quot;ArticleService&quot;/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&quot;java-output-path&quot;/&amp;gt;&lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/wb-module&amp;gt;&lt;BR&gt;&amp;lt;/project-modules&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
			<category>os.ide.etc.</category>
			<category>Dynamic Web Project</category>
			<category>eclipse</category>
			<category>project</category>
			<category>web project</category>
			<category>wtp</category>
			<category>다이나믹웹프로젝트</category>
			<category>웹프로젝트</category>
			<category>이클립스</category>
			<category>프로젝트</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/53</guid>
			<comments>http://www.devtt.com/Ryan/53#entry53comment</comments>
			<pubDate>Wed, 03 Jun 2009 16:35:42 +0900</pubDate>
		</item>
		<item>
			<title>MP3Tag 로 태그, 앨범아트 관리하기!</title>
			<link>http://www.devtt.com/Ryan/52</link>
			<description>&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#333333&gt;&lt;STRONG&gt;최근 PMP, MP3 플레이어들이 듣는것만 아니라 LCD 화면으로 음악정보를 볼 수 있으면서 음악파일&lt;BR&gt;태그에 중요성이 부각되고 있습니다.&lt;BR&gt;아이팟터치나 코원D2 등등 기타 플레이어에서 음악파일 실행시 앨범자켓이 화면에 보여지면서 플레이가 되는데 어쩌다 자켓이나 태그정보가 없는 음악파일을 실행하면 아주 썰렁하다는 느낌을 받게되죠.&lt;BR&gt;&lt;BR&gt;다음 소개하는 Mp3tag 프로그램을 이용해서 TAG, 앨법아트를 마음대로 제작, 편집해서 사용하시면 될거 같습니다.&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#333333&gt;&lt;STRONG&gt;MP3파일 외에도 OGG,WMA,FLAC,APE 등의 여러 포멧을 지원하니 좀 좋은듯..ㅋㅋ &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#333333&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#177fcd&gt;&lt;STRONG&gt;* 설치파일 (2008-12-21 기준 최신버전)&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://www.devtt.com/Ryan/attachment/1098449235.xxx&quot;&gt;&lt;img src=&quot;http://www.devtt.com/image/extension/exe.gif&quot; alt=&quot;&quot; /&gt; mp3tagv242setup.exe&lt;/a&gt;&lt;/div&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;설치는 쉬우니 패스하고, 간단한 사용법을 알려드리겠습니다.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;프로그램을 실행하시고 드래그앤 드롭으로 파일을 가져옵니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1260383024.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;479&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;파일을 일괄적으로 수정하는게 편하니까 전체선택을 합니다. (개별적인 편집도 가능합니다)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1214868867.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;좌측에 있는 태그 입력란에 내용을 채웁니다.. 쉽죠?&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;&#039;MP3Tag&#039; 는 표지그림을 넣는 기능도 지원하는데, 그림과 같은 방법으로 그림을 선택하여 지정합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1314594552.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;입력이 끝났으면 저장 버튼을 눌러 적용시킵니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1188651612.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;&#039;MP3Tag&#039; 에는 태그 내용에 맞게 파일명을 수정하는 기능도 있는데 계속 그림을 통해 설명드리겠습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1348795869.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;그림과 같이 [태그 - 파일이름] 버튼을 클릭합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1242187373.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;각종 태그를 사용하여 태그에 맞는 파일명을 입력하는데 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;각각..&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#990000&gt;%artist% - 아티스트&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#990000&gt;%track% - 트랙번호&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#990000&gt;%title% - 제목&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#990000&gt;%album% - 앨범이름&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#990000&gt;%year% - 발매년도&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;..위와 같은 태그이름을 가지고 있습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;태그 외의 문자는 그대로 적용되어 -, _, [], 등의 기호나 띄어쓰기 등을 입력할 수 있습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;제대로 적용됐는지 확인하기 쉽게 미리보기도 지원하고 있습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;파일명은 각자의 취향대로 입력하면 되지만,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;특정한 기준이 없으신 분들은 제 방식을 따라하시면 편합니다..&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;B&gt;&lt;FONT face=돋움 color=#990000&gt;%artist% - $num(%track%,2) %title%&lt;/FONT&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;입니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;%track% 양쪽으로 감싸진 태그는 트랙을 두자리 숫자로 입력하기 위한 것입니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;간혹 플레이어에 따라 1번 트랙 다음에 10번 트랙이 재생되는 경우가 있는데&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;이를 방지하기 위해 그냥 1 대신 01 로 나타내기 위함입니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1404834471.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;적용하시면 위와 같이 파일명이 적용된 걸 보실 수 있습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;또 한가지..&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;&#039;MP3Tag&#039; 의 편리한 기능 중 하나가 바로 인터넷을 통해 태그를 간편하게 적용할 수 있다는 것인데요..&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;아쉽게도 외국 사이트만 지원되기 때문에 국내 음반은 적용되지 않습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;그럼에도 대부분의 팝 음반이 적용 가능하므로 외국 음원을 보유하고 있다면 매우 강력한 기능이 아닐 수 없습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;마찬가지로, 파일을 불러온 다음 전체선택 합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;그리고 상단의 지구모양 아이콘 옆의 화살표를 클릭하면 검색할 사이트를 선택할 수 있는데&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;저는 아마존으로 가보겠습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1031836132.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;검색어를 입력합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;검색어는 아티스트나 앨범명 중에서 입력 가능한데&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;아티스트 이름으로 검색해보겠습니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1036553987.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;아마존에서 발매된 음반들 중에 검색어와 일치하는 것들이 나타납니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;해당하는 항목을 선택하여 다음 단계로 갑니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;(보통 앨범에 대한 정보를 미리 알고 있기 때문에 선택에 어려움은 없을 것이라 생각 됩니다.)&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1031811104.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;앨범 정보가 나옵니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;왼쪽이 아마존에서 검색한 음반의 태그 정보이고&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;오른쪽이 보유하고있는 파일입니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;왼쪽 목록과 오른쪽 목록의 순서를 일치시키시기 바랍니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;저는 아쉽게도 14번 트랙이 없군요;;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;저처럼 파일이 없는 경우엔 &amp;lt;관련없음&amp;gt; 항목을 해당 위치에 놓으시면 됩니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1109712018.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;앨범 표지를 적용할 수도 있는데&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;우클릭하여 나타나는 메뉴로 태그에 이미지를 적용할지 여부를 선택합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;태그에만 적용하는 것 외에 표지를 따로 그림파일로 저장할 수도 있군요.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1381382854.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#0066cc&gt;이상 태그가 적용된 것을 확인하실 수 있습니다. 설명한 방법을 이용해 파일명도 편집 가능합니다.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://www.devtt.com/attach/1/1026692795.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;480&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;FONT face=돋움 color=#999900&gt;- 원글 링크 : &lt;/FONT&gt;&lt;A href=&quot;http://blog.naver.com/dizzyhwang/80058882612&quot; target=_blank&gt;&lt;FONT color=#999900&gt;http://blog.naver.com/dizzyhwang/80058882612&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;</description>
			<category>mp3</category>
			<category>mp3tag</category>
			<category>tag</category>
			<category>앨범아트</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/52</guid>
			<comments>http://www.devtt.com/Ryan/52#entry52comment</comments>
			<pubDate>Mon, 22 Dec 2008 10:15:30 +0900</pubDate>
		</item>
		<item>
			<title>정말 사고싶은 PMP</title>
			<link>http://www.devtt.com/Ryan/51</link>
			<description>그동안 아이팟 터치에 빠져 있다보니 국내에 이렇게 좋은 터치 PMP 가 출시된지 몰랐다.&lt;BR&gt;사실 출시는 어제 되었지만...ㅎㅎ&lt;BR&gt;터치감도 아이팟 만큼 좋으며, 화면은 아이팟보다 월등한 스펙이다.&lt;BR&gt;더해서 블루투스 EDR 내장에 DMB, 디자인도 죽이고... 16기가 가격이 30만원....&lt;BR&gt;아직 DMB내장형은 출시 안되었지만 곧 출시된다고 하니 DMB 내장된 제품이 나올때 까지 기다리려고 한다.&lt;BR&gt;아.. 정말 피말리는 시간이 될것같다.&lt;BR&gt;&lt;BR&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=950 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=740 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 595px; HEIGHT: 863px&quot; height=1000 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_001.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 599px; HEIGHT: 371px&quot; height=410 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_003.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 598px; HEIGHT: 1061px&quot; height=1170 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_004.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 598px; HEIGHT: 700px&quot; height=894 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_005.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 599px; HEIGHT: 808px&quot; height=1052 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_006.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 602px; HEIGHT: 897px&quot; height=987 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_007.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 602px; HEIGHT: 635px&quot; height=675 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_008.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 608px; HEIGHT: 802px&quot; height=853 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_009.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 610px; HEIGHT: 1228px&quot; height=1354 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_010.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;IMG style=&quot;WIDTH: 609px; HEIGHT: 930px&quot; height=1035 src=&quot;http://download.cowon.com/product/COWONS9/images/cowon_S9/overvw/overvw_012.jpg&quot; width=740&gt;&lt;/TD&gt;&lt;/TR&gt;



&lt;TR&gt;
&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;MAP name=Map&gt;&lt;AREA shape=RECT coords=217,26,266,42 href=&quot;#&quot;&gt;&lt;AREA shape=RECT coords=162,26,202,43 href=&quot;#&quot;&gt;&lt;AREA shape=RECT coords=93,26,147,43 href=&quot;#&quot;&gt;&lt;AREA shape=RECT coords=38,25,77,43 href=&quot;#&quot;&gt;&lt;/MAP&gt;&lt;!-- START of Menu part --------------------------------------------------------------------------------------------------------------------------------------&gt;&lt;/TD&gt;
&lt;TD width=10&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
			<category>S9</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/51</guid>
			<comments>http://www.devtt.com/Ryan/51#entry51comment</comments>
			<pubDate>Wed, 17 Dec 2008 23:31:47 +0900</pubDate>
		</item>
		<item>
			<title>파일백업 프로그램</title>
			<link>http://www.devtt.com/Ryan/50</link>
			<description>파일백업 프로그램 Replicator 를 소개합니다.&lt;BR&gt;사실 백업이라기보단 폴더 통째로 카피를 시키는거죠...&lt;BR&gt;특정 폴더를 선택하고 스케줄러에 등록을 해두면 스케줄러에 따라 파일이 정해진 폴더에 복사됩니다.&lt;BR&gt;옵션으로 교체카피(덮어쓰기), 증분카피, 기존데이터 삭제후 카피, 파일명 태그(파일네임_생성일지)지원 등등...&lt;BR&gt;다양한 옵션으로 파일 카피가 가능합니다.&lt;BR&gt;무료버전이며 아래 주소로 최신 버전 다운이 가능합니다. (2008-12-17 현재 Replicator v3.6.5 버전 다운)&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://www.devtt.com/Ryan/attachment/1185222720.xxx&quot;&gt;&lt;img src=&quot;http://www.devtt.com/image/extension/exe.gif&quot; alt=&quot;&quot; /&gt; ptreplicator-setup.exe&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href=&quot;http://www.karenware.com/powertools/ptreplicator.asp&quot;&gt;http://www.karenware.com/powertools/ptreplicator.asp&lt;/A&gt;&amp;nbsp;(제작사 홈페이지 주소)&lt;BR&gt;&lt;BR&gt;이제 설치를 한번 해보겠습니다.&lt;BR&gt;&lt;BR&gt;
&lt;DIV class=&quot;imageblock center&quot; style=&quot;CLEAR: both; TEXT-ALIGN: center&quot;&gt;설치가 완료가 되면 처음 화면은 아래와 같이 나오게 됩니다. &lt;BR&gt;&lt;IMG src=&quot;http://cfs14.tistory.com/upload_control/download.blog?fhandle=YmxvZzIwMDA1NkBmczE0LnRpc3RvcnkuY29tOi9hdHRhY2gvMC8yMy5wbmc=&quot;&gt;&amp;nbsp;&lt;BR&gt;&lt;/DIV&gt;
&lt;P&gt;처음에는 Edit Settings… 버튼을 클릭을 하면 아래와 같이 나옵니다. &lt;/P&gt;&lt;BR&gt;
&lt;P&gt;위에서 Edit job…을 클릭 하시면 아래와 같이 설정이 됩니다. &lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://cfs11.tistory.com/upload_control/download.blog?fhandle=YmxvZzIwMDA1NkBmczExLnRpc3RvcnkuY29tOi9hdHRhY2gvMC8xNC5wbmc=&quot;&gt; &lt;/P&gt;
&lt;P&gt;Job Name / Source Folder (백업을 원하는 폴더) / Destination Folder ( 저장을 하고자 하는 폴더 ) &lt;/P&gt;
&lt;P&gt;그리고 언제 언제 백업을 하겠다는 것을 정하기 위해서 Change Schedule… 을 클릭하고 저장 &lt;/P&gt;
&lt;P&gt;&lt;IMG src=&quot;http://cfs13.tistory.com/upload_control/download.blog?fhandle=YmxvZzIwMDA1NkBmczEzLnRpc3RvcnkuY29tOi9hdHRhY2gvMC8xNC5wbmc=&quot;&gt; &lt;/P&gt;
&lt;P&gt;화면대로라면 매일 백업을 하되... 월, 수, 금 은 백업을 하지 않는다는 뜻입니다.&lt;/P&gt;</description>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/50</guid>
			<comments>http://www.devtt.com/Ryan/50#entry50comment</comments>
			<pubDate>Wed, 17 Dec 2008 10:45:06 +0900</pubDate>
		</item>
		<item>
			<title>자바스크립트 정규식 사용법</title>
			<link>http://www.devtt.com/Ryan/49</link>
			<description>&lt;DIV style=&quot;COLOR: #3333ff; BACKGROUND-COLOR: #ccffcc&quot;&gt;본 문서의 저작권은 &lt;A href=&quot;http://iilii.egloos.com/4445254&quot;&gt;&lt;U&gt;&lt;FONT color=#800080&gt;anti-nhn license&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;에 따릅니다. &lt;/DIV&gt;
&lt;DIV style=&quot;BACKGROUND-COLOR: #ffffcc&quot;&gt;*본 페이지에는 자바스크립트가 많이 들어있습니다. 자바스크립트가 실행되지 않으면 제대로 보이지 않습니다.&lt;BR&gt;*본 페이지는 IE용 태그를 사용하였으므로, firefox 등에서는 정상작동하지 않을 수 있습니다. &lt;/DIV&gt;
&lt;H1&gt;차례&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap01&quot;&gt;&lt;U&gt;&lt;FONT color=#800080&gt;1. 정규식이란?&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap02&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;2. 정규식 만들기&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap03&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;3. 정규식 표현법&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap04&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;4. 정규식 사용 예제&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap05&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;5. Javascript 정규식 함수&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap06&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;6. 정규식으로 만든 유용한 Javascript 함수&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://kio.zc.bz/Lecture/regexp.html#chap07&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;7. Java 정규식 함수&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;A name=chap01&gt;
&lt;H1&gt;1. 정규식이란?&lt;/H1&gt;&lt;/A&gt;
&lt;UL style=&quot;FONT-SIZE: 12pt; COLOR: #7777ff&quot;&gt;
&lt;LI&gt;String의 &lt;B&gt;&lt;FONT color=#ff0000&gt;검색&lt;/FONT&gt;&lt;/B&gt;,&lt;B&gt;&lt;FONT color=#ff0000&gt;치환&lt;/FONT&gt;&lt;/B&gt;,&lt;B&gt;&lt;FONT color=#ff0000&gt;추출&lt;/FONT&gt;&lt;/B&gt;을 위한 패턴. 
&lt;LI&gt;언어별 사용법은 대동소이함. 
&lt;LI&gt;패턴예&amp;gt;전화번호 형식, 이메일 형식 등. &lt;/LI&gt;&lt;/UL&gt;&lt;A name=chap02&gt;
&lt;H1&gt;2. 정규식 만들기&lt;/H1&gt;&lt;/A&gt;
&lt;OL style=&quot;FONT-SIZE: 14pt; COLOR: #6666ff&quot;&gt;
&lt;LI&gt;Javascript 
&lt;UL style=&quot;FONT-SIZE: 12pt; COLOR: #7777ff&quot;&gt;
&lt;LI&gt;
&lt;DIV style=&quot;BACKGROUND-COLOR: #ffffcc&quot;&gt;var regexp = &lt;I&gt;/pattern/[flags]&lt;/I&gt; ;&lt;BR&gt;var test = regexp.test(&lt;I&gt;to be checked&lt;/I&gt;)&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style=&quot;BACKGROUND-COLOR: #ccffff&quot;&gt;var regexp = new RegExp(&lt;I&gt;&quot;pattern&quot;[, &quot;flags&quot;]&lt;/I&gt;);&lt;BR&gt;var test = regexp.test(&lt;I&gt;to be checked&lt;/I&gt;) &lt;/DIV&gt;
&lt;LI&gt;flags for javascript 
&lt;UL style=&quot;FONT-SIZE: 12pt; COLOR: #7777ff&quot;&gt;
&lt;LI&gt;g : global match, 일반적으로 패턴이 1번만 발견되면 찾기를 종료하지만, g flag가 있으면, 문자열 내에서 모든 패턴을 찾는다. 
&lt;LI&gt;i : ignore case, 대소문자를 고려하지 않고 체크한다.[a-z]와 [A-Z]는 같은 표현이 된다. 
&lt;LI&gt;m : match over multiple lines, 여러 줄에 걸쳐 체크를 한다. &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Java 
&lt;UL style=&quot;FONT-SIZE: 12pt; COLOR: #7777ff&quot;&gt;
&lt;LI&gt;java.util.regex package 
&lt;LI&gt;
&lt;DIV style=&quot;BACKGROUND-COLOR: #ffffcc&quot;&gt;Pattern p = Pattern.compile(&lt;I&gt;&quot;pattern&quot;&lt;/I&gt;); &lt;BR&gt;Matcher m = p.matcher(&lt;I&gt;&quot;string to be checked&quot;&lt;/I&gt;); &lt;BR&gt;boolean b = m.matches();&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style=&quot;BACKGROUND-COLOR: #ccffff&quot;&gt;boolean b = Pattern.matches(&lt;I&gt;&quot;pattern&quot;&lt;/I&gt;, &lt;I&gt;&quot;string to be checked&quot;&lt;/I&gt;);&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;A name=chap03&gt;
&lt;H1&gt;3. 정규식 표현법&lt;/H1&gt;&lt;/A&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #ffffff&quot;&gt;*&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;는 valid, &lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;는 invalid&lt;BR&gt;*두꺼운 글씨체는 매칭되는 부분.&lt;BR&gt;*예제는 javascript 기준이며, 언어에 따라 다소 차이가 발생할 수 있다. &lt;/FONT&gt;
&lt;TABLE cellSpacing=1 cellPadding=5 width=1024 bgColor=#cccccc border=0&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#dddddd&gt;
&lt;TH width=50&gt;문자&lt;/TH&gt;
&lt;TH width=300&gt;용도&lt;/TH&gt;
&lt;TH width=426&gt;예제&lt;/TH&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\&lt;/TD&gt;
&lt;TD width=300&gt;
&lt;UL&gt;
&lt;LI&gt;특수문자를 의미 
&lt;LI&gt;특수문자의 사용을 제외(특수문자 앞에서) &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;UL&gt;
&lt;LI&gt;b는 b라는 글자를 의미 하지만 \b는 단어 경계를 의미 
&lt;LI&gt;*은 0번이상 반복이라는 의미이지만, \*는 *이라는 글자를 의미. &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;^&lt;/TD&gt;
&lt;TD width=300&gt;문자열의 시작. []안에서는 not의 의미&lt;BR&gt;* ^A는 &quot;A로 시작&quot;이라기 보다는 &quot;시작 직후에 A가 나온다&quot;는 의미로 해석하는 것이 좋다. 즉, 시작과 끝과 같은 빈 공간을 하나의 문자로 간주하는 것이 좋다. &lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^A/g, new Array(&quot;A string&quot;, &quot;an A&quot;));
        writeExample(/[^A]/g, new Array(&quot;A string&quot;, &quot;an A&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^A/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;A&lt;/B&gt; string&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;an A&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;B&gt;/[^A]/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;A&lt;B&gt; &lt;/B&gt;&lt;B&gt;s&lt;/B&gt;&lt;B&gt;t&lt;/B&gt;&lt;B&gt;r&lt;/B&gt;&lt;B&gt;i&lt;/B&gt;&lt;B&gt;n&lt;/B&gt;&lt;B&gt;g&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;a&lt;/B&gt;&lt;B&gt;n&lt;/B&gt;&lt;B&gt; &lt;/B&gt;A&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;$&lt;/TD&gt;
&lt;TD width=300&gt;문자열의 마지막&lt;BR&gt;&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/t$/, new Array(&quot;eat&quot;, &quot;GREAT&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/t$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ea&lt;B&gt;t&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;GREAT&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;*&lt;/TD&gt;
&lt;TD width=300&gt;0번 이상 반복&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/ab*d/g, new Array(&quot;ad&quot;, &quot;abd&quot;, &quot;abdcdeabbbbdedb&quot;, &quot;ab&quot; , &quot;axd&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/ab*d/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;ad&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abd&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abd&lt;/B&gt;cde&lt;B&gt;abbbbd&lt;/B&gt;edb&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;ab&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;axd&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;+&lt;/TD&gt;
&lt;TD width=300&gt;1번 이상 반복 ( = {1,} )&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/ab+d/g, new Array(&quot;ad&quot;, &quot;abd&quot;, &quot;abdcdeabbbbdedb&quot;, &quot;ab&quot; , &quot;axd&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/ab+d/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ad&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abd&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abd&lt;/B&gt;cde&lt;B&gt;abbbbd&lt;/B&gt;edb&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;ab&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;axd&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;?&lt;/TD&gt;
&lt;TD width=300&gt;0번 이나 1번&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/e?le?/g, new Array(&quot;angel&quot;, &quot;angle&quot;, &quot;element&quot;));
        writeExample(/abc\-?d/g, new Array(&quot;abc-d&quot;, &quot;abcd&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/e?le?/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ang&lt;B&gt;el&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;ang&lt;B&gt;le&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;ele&lt;/B&gt;ment&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;B&gt;/abc\-?d/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;abc-d&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abcd&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;.&lt;/TD&gt;
&lt;TD width=300&gt;new line 을 제외한 모든 글자&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/.n/g, new Array(&quot;nay, an apple is on the tree&quot;, &quot;nay&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/.n/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;nay, &lt;B&gt;an&lt;/B&gt; apple is &lt;B&gt;on&lt;/B&gt; the tree&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;nay&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;(x)&lt;/TD&gt;
&lt;TD width=300&gt;x를 체크하고 체크한 값을 변수로 저장&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/(f..) (b..)/, new Array(&quot;foo bar&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/(f..) (b..)/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;foo bar&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :foo&lt;BR&gt;2th :bar&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;(?:x)&lt;/TD&gt;
&lt;TD width=300&gt;x를 체크하고 체크한 값을 변수로 저장하지 않음&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/(?:f..) (b..)/, new Array(&quot;foo bar&quot;, &quot;bar foo&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/(?:f..) (b..)/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;foo bar&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :bar&lt;BR&gt;
&lt;LI&gt;bar foo&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;x|y&lt;/TD&gt;
&lt;TD width=300&gt;x 또는 y&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/green|red/, new Array(&quot;green apple&quot;, &quot;red apple&quot;, &quot;yellow apple&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/green|red/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;green&lt;/B&gt; apple&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;red&lt;/B&gt; apple&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;yellow apple&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;x(?=y)&lt;/TD&gt;
&lt;TD width=300&gt;x후에 y가 나오고, x부분만 매칭되는 부분으로 간주&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/blah(?=soft|hard)/, new Array(&quot;blahsoft&quot;, &quot;blahhard&quot;, &quot;blah soft&quot;));
        writeExample(/blah(?=soft).*/, new Array(&quot;blahsoft&quot;, &quot;blahhard&quot;, &quot;blah soft&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/blah(?=soft|hard)/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;blah&lt;/B&gt;soft&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;blah&lt;/B&gt;hard&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blah soft&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;B&gt;/blah(?=soft).*/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;blahsoft&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blahhard&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blah soft&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;x(?!y)&lt;/TD&gt;
&lt;TD width=300&gt;x가 나오고 그 뒤에 y가 있으면 안 됨&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/blah(?!hard)/, new Array(&quot;blahsoft&quot;, &quot;blahhard&quot;, &quot;blah soft&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/blah(?!hard)/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;blah&lt;/B&gt;soft&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blahhard&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;blah&lt;/B&gt; soft&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;{n}&lt;/TD&gt;
&lt;TD width=300&gt;앞에 지정한 것이 n개&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/.{3}/, new Array(&quot;ab&quot;, &quot;abc&quot;, &quot;abcd&quot;, &quot;홍길동&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/.{3}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ab&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abc&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abc&lt;/B&gt;d&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;홍길동&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;{n,}&lt;/TD&gt;
&lt;TD width=300&gt;앞에 지정한 것이 n개 이상&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/.{3,}/, new Array(&quot;ab&quot;, &quot;abc&quot;, &quot;abcd&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/.{3,}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ab&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abc&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abcd&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;{n,m}&lt;/TD&gt;
&lt;TD width=300&gt;앞에 지정한 것이 n~m개&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/.{3,5}/, new Array(&quot;ab&quot;, &quot;abc&quot;, &quot;abcd&quot;, &quot;홍길동&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/.{3,5}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ab&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abc&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abcd&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;홍길동&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;[xyz]&lt;/TD&gt;
&lt;TD width=300&gt;x나 y나 z. []안에는 얼마든지 쓸 수 있다.&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/[abc]{2}/, new Array(&quot;ab&quot;, &quot;abc&quot;, &quot;adbd&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/[abc]{2}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;ab&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;ab&lt;/B&gt;c&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;adbd&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;[x-z]&lt;/TD&gt;
&lt;TD width=300&gt;x에서 z까지&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/[a-z]{4,}/g, new Array(&quot;She sells sea shells by the sea shore는 Very 어렵다!&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/[a-z]{4,}/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;She &lt;B&gt;sells&lt;/B&gt; sea &lt;B&gt;shells&lt;/B&gt; by the sea &lt;B&gt;shore&lt;/B&gt;는 Very 어렵다!&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;[^xyz]&lt;/TD&gt;
&lt;TD width=300&gt;x,y,z를 제외한 나머지 모든 것&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/[^a-z]{2,}/g, new Array(&quot;I&#039;m a good man&quot;, &quot;I am A good Man&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/[^a-z]{2,}/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;I&#039;&lt;/B&gt;m a good man&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;I &lt;/B&gt;am&lt;B&gt; A &lt;/B&gt;good&lt;B&gt; M&lt;/B&gt;an&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;[\b]&lt;/TD&gt;
&lt;TD width=300&gt;백스페이스. \b와 혼동하지 말것.&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/[\b]/g, new Array(&quot;ab\bcd&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/[\b]/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;ab&lt;B&gt;&lt;/B&gt;cd&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;일반적인 String에서는 \b가 백스페이스를 의미한다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\b&lt;/TD&gt;
&lt;TD width=300&gt;단어의 경계.[\b]와 혼동하지 말것.&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/\bn[a-z]/g, new Array(&quot;I am not a boy&quot;, &quot;online&quot;, &quot;nope&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/\bn[a-z]/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;I am &lt;B&gt;no&lt;/B&gt;t a boy&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;online&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;no&lt;/B&gt;pe&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\B&lt;/TD&gt;
&lt;TD width=300&gt;\b 를 제외한 전부&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/\Bn[a-z]/g, new Array(&quot;noonday&quot;, &quot;online&quot;, &quot;nope&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/\Bn[a-z]/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;noo&lt;B&gt;nd&lt;/B&gt;ay&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;o&lt;B&gt;nl&lt;/B&gt;i&lt;B&gt;ne&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;nope&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\cX&lt;/TD&gt;
&lt;TD width=300&gt;컨트롤X와 매칭. \cM은 컨트롤M과 매칭&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\d&lt;/TD&gt;
&lt;TD width=300&gt;숫자.[0-9]와 같음&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/\d/g, new Array(&quot;7 eight 9&quot;, &quot;123&quot;));
        writeExample(/^0[0-9]{2}/g, new Array(&quot;0120&quot;, &quot;12011&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/\d/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;7&lt;/B&gt; eight &lt;B&gt;9&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;1&lt;/B&gt;&lt;B&gt;2&lt;/B&gt;&lt;B&gt;3&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;B&gt;/^0[0-9]{2}/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;012&lt;/B&gt;0&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;12011&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\D&lt;/TD&gt;
&lt;TD width=300&gt;\d 를 제외한 전부&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/\D/g, new Array(&quot;7 eight 9&quot;, &quot;12?3&quot; ));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/\D/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;7&lt;B&gt; &lt;/B&gt;&lt;B&gt;e&lt;/B&gt;&lt;B&gt;i&lt;/B&gt;&lt;B&gt;g&lt;/B&gt;&lt;B&gt;h&lt;/B&gt;&lt;B&gt;t&lt;/B&gt;&lt;B&gt; &lt;/B&gt;9&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;12&lt;B&gt;?&lt;/B&gt;3&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\f&lt;/TD&gt;
&lt;TD width=300&gt;form-feed&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\n&lt;/TD&gt;
&lt;TD width=300&gt;new line&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\r&lt;/TD&gt;
&lt;TD width=300&gt;carriage return&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\s&lt;/TD&gt;
&lt;TD width=300&gt;white space&lt;BR&gt;ex&amp;gt;탭, 띄어쓰기, \n, \r&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/k\s/g, new Array(&quot;korea&quot;, &quot;blank is&quot;, &quot;blank&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/k\s/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;korea&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blan&lt;B&gt;k &lt;/B&gt;is&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blank&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\S&lt;/TD&gt;
&lt;TD width=300&gt;\s 를 제외한 전부&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/k\S/g, new Array(&quot;korea&quot;, &quot;blank is&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/k\S/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;ko&lt;/B&gt;rea&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blank is&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\t&lt;/TD&gt;
&lt;TD width=300&gt;탭&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\v&lt;/TD&gt;
&lt;TD width=300&gt;vertical tab&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\w&lt;/TD&gt;
&lt;TD width=300&gt;알파벳+숫자+_. [A-Za-z0-9_]와 동일&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/\w/g, new Array(&quot;!@#$%^&amp;*()+_-[]{}\\|\&quot;&#039;:;,.&lt;&gt;?/&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/\w/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;!@#$%^&amp;amp;*()+&lt;B&gt;_&lt;/B&gt;-[]{}\|&quot;&#039;:;,.&amp;lt;&amp;gt;?/&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _가 &amp;lt;b&amp;gt;를 먹여도 별로 티가 안 난다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\W&lt;/TD&gt;
&lt;TD width=300&gt;\w 빼고 전부&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/\W/g, new Array(&quot;!@#$%^&amp;*()+_-[]{}\\|\&quot;&#039;:;,.&lt;&gt;?/&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/\W/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;!&lt;/B&gt;&lt;B&gt;@&lt;/B&gt;&lt;B&gt;#&lt;/B&gt;&lt;B&gt;$&lt;/B&gt;&lt;B&gt;%&lt;/B&gt;&lt;B&gt;^&lt;/B&gt;&lt;B&gt;&amp;amp;&lt;/B&gt;&lt;B&gt;*&lt;/B&gt;&lt;B&gt;(&lt;/B&gt;&lt;B&gt;)&lt;/B&gt;&lt;B&gt;+&lt;/B&gt;_&lt;B&gt;-&lt;/B&gt;&lt;B&gt;[&lt;/B&gt;&lt;B&gt;]&lt;/B&gt;&lt;B&gt;{&lt;/B&gt;&lt;B&gt;}&lt;/B&gt;&lt;B&gt;\&lt;/B&gt;&lt;B&gt;|&lt;/B&gt;&lt;B&gt;&quot;&lt;/B&gt;&lt;B&gt;&#039;&lt;/B&gt;&lt;B&gt;:&lt;/B&gt;&lt;B&gt;;&lt;/B&gt;&lt;B&gt;,&lt;/B&gt;&lt;B&gt;.&lt;/B&gt;&lt;B&gt;&amp;lt;&lt;/B&gt;&lt;B&gt;&amp;gt;&lt;/B&gt;&lt;B&gt;?&lt;/B&gt;&lt;B&gt;/&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\n&lt;/TD&gt;
&lt;TD width=300&gt;\n이 자연수일때, ()로 지정한 n번째 정규식&lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/(.{2})e tru\1 is \1at/, new Array(&quot;the truth is that ...&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/(.{2})e tru\1 is \1at/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;the truth is that&lt;/B&gt; ...&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :th&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;(th)가 \1로 지정된다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\xhh&lt;/TD&gt;
&lt;TD width=300&gt;hh는 hexacode, &lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/[\x21-\x40]/g, new Array(&quot;!@#$%^&amp;*()po&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/[\x21-\x40]/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;!&lt;/B&gt;&lt;B&gt;@&lt;/B&gt;&lt;B&gt;#&lt;/B&gt;&lt;B&gt;$&lt;/B&gt;&lt;B&gt;%&lt;/B&gt;^&lt;B&gt;&amp;amp;&lt;/B&gt;&lt;B&gt;*&lt;/B&gt;&lt;B&gt;(&lt;/B&gt;&lt;B&gt;)&lt;/B&gt;po&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;A href=&quot;http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html&quot; target=_blank&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Code table 보기&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR vAlign=top bgColor=#ffffff&gt;
&lt;TD&gt;\uhhhh&lt;/TD&gt;
&lt;TD width=300&gt;hhhh는 hexacode, &lt;/TD&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/[\u3131-\u3163\uac00-\ud7a3]/g, new Array(&quot;나는 blah 직원입니다.ㅋㅋ&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/[\u3131-\u3163\uac00-\ud7a3]/g&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;나&lt;/B&gt;&lt;B&gt;는&lt;/B&gt; blah &lt;B&gt;직&lt;/B&gt;&lt;B&gt;원&lt;/B&gt;&lt;B&gt;입&lt;/B&gt;&lt;B&gt;니&lt;/B&gt;&lt;B&gt;다&lt;/B&gt;.&lt;B&gt;ㅋ&lt;/B&gt;&lt;B&gt;ㅋ&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;코드 번호&amp;gt; 3131:ㄱ 3163:ㅣ ac00:가 d7a3:힣 (javascript, java) &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;A name=chap04&gt;
&lt;H1&gt;4. 정규식 사용 예제&lt;/H1&gt;&lt;/A&gt;
&lt;TABLE cellSpacing=1 cellPadding=5 width=1024 bgColor=#cccccc border=0&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[0-9]/, new Array(&quot;09없다&quot;, &quot;100점&quot;, &quot;집이 10평&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[0-9]/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;0&lt;/B&gt;9없다&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;1&lt;/B&gt;00점&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;집이 10평&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^\w+$/, new Array(&quot;blahsoft&quot;,&quot;blah(co)&quot; ,&quot;blah soft&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^\w+$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;blahsoft&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blah(co)&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blah soft&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[a-zA-Z][\w\-]{4,11}$/, new Array(&quot;blah2010&quot;,&quot;blah-2010!&quot;, &quot;2010blah&quot;, &quot;ILikegoooooooooooooooooogle&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[a-zA-Z][\w\-]{4,11}$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;blah2010&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blah-2010!&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;2010blah&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;ILikegoooooooooooooooooogle&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}/, new Array(&quot;02-6288-2114&quot;, &quot;031-779-7114&quot;, &quot;12-1234-5678&quot;, &quot;02-6288-2114545&quot;, &quot;02-0288-2114&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;02-6288-2114&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;031-779-7114&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;12-1234-5678&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;02-6288-2114&lt;/B&gt;545&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;02-0288-2114&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^0\d{1,2}-[1-9]\d{2,3}-\d{4}$/, new Array(&quot;02-6288-2114&quot;, &quot;031-779-7114&quot;, &quot;12-1234-5678&quot; , &quot;02-2123-12314545&quot;, &quot;02-0288-2114&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^0\d{1,2}-[1-9]\d{2,3}-\d{4}$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;02-6288-2114&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;031-779-7114&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;12-1234-5678&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;02-2123-12314545&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;02-0288-2114&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[\.a-zA-Z0-9\-]+\.[a-zA-Z]{2,}/, new Array(&quot;r-d.blah.co.kr&quot;,&quot;r-d.blah.co.kr입니다.&quot;, &quot;blah..co.kr&quot;, &quot;a.com&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[\.a-zA-Z0-9\-]+\.[a-zA-Z]{2,}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;r-d.blah.co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;r-d.blah.co.kr&lt;/B&gt;입니다.&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;blah..co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;a.com&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^(?:[\w\-]{2,}\.)+[a-zA-Z]{2,}$/, new Array(&quot;r-d.blah.co.kr&quot;,&quot;r-d.blah.co.kr입니다.&quot; ,&quot;blah..co.kr&quot;, &quot;a.com&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^(?:[\w\-]{2,}\.)+[a-zA-Z]{2,}$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;r-d.blah.co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;r-d.blah.co.kr입니다.&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;blah..co.kr&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;a.com&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[_a-zA-Z0-9\-]+@[\._a-zA-Z0-9\-]+\.[a-zA-Z]{2,}/, new Array(&quot;abc@haha.co.kr&quot;, &quot;abc@haha..co.kr&quot;, &quot;hwang@a.com&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[_a-zA-Z0-9\-]+@[\._a-zA-Z0-9\-]+\.[a-zA-Z]{2,}/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;abc@haha.co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;abc@haha..co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;hwang@a.com&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[\w\-]+@(?:(?:[\w\-]{2,}\.)+[a-zA-Z]{2,})$/, new Array(&quot;abc@haha.co.kr&quot;, &quot;abc@haha..co.kr&quot;, &quot;hwang@a.com&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[\w\-]+@(?:(?:[\w\-]{2,}\.)+[a-zA-Z]{2,})$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;abc@haha.co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;abc@haha..co.kr&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;hwang@a.com&lt;FONT color=red&gt;&lt;I&gt;ⓘ&lt;/I&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
    writeExample(/^([a-z]+):\/\/((?:[a-z\d\-]{2,}\.)+[a-z]{2,})(:\d{1,5})?(\/[^\?]*)?(\?.+)?$/i, new Array(&quot;http://www.blah.co.kr/main/index.jsp?var=value&quot;, &quot;http://www.blah.co.kr/main/index.jsp&quot;, &quot;http://blah.co.kr/&quot;, &quot;http://blah.co.kr&quot;,  &quot;http://blah.co.kr:8088/main/&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^([a-z]+):\/\/((?:[a-z\d\-]{2,}\.)+[a-z]{2,})(:\d{1,5})?(\/[^\?]*)?(\?.+)?$/i&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;http://www.blah.co.kr/main/index.jsp?var=value&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :http&lt;BR&gt;2th :www.blah.co.kr&lt;BR&gt;3th :&lt;BR&gt;4th :/main/index.jsp&lt;BR&gt;5th :?var=value&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;http://www.blah.co.kr/main/index.jsp&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :http&lt;BR&gt;2th :www.blah.co.kr&lt;BR&gt;3th :&lt;BR&gt;4th :/main/index.jsp&lt;BR&gt;5th :&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;http://blah.co.kr/&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :http&lt;BR&gt;2th :blah.co.kr&lt;BR&gt;3th :&lt;BR&gt;4th :/&lt;BR&gt;5th :&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;http://blah.co.kr&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :http&lt;BR&gt;2th :blah.co.kr&lt;BR&gt;3th :&lt;BR&gt;4th :&lt;BR&gt;5th :&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;http://blah.co.kr:8088/main/&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;1th :http&lt;BR&gt;2th :blah.co.kr&lt;BR&gt;3th ::8088&lt;BR&gt;4th :/main/&lt;BR&gt;5th :&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/^[ㄱ-ㅣ가-힣]+$/, new Array(&quot;티맥스소프트&quot;, &quot;ㅜㅜ&quot;, &quot;ㅎㅎ&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/^[ㄱ-ㅣ가-힣]+$/&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;티맥스소프트&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;ㅜㅜ&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;
&lt;LI&gt;&lt;B&gt;ㅎㅎ&lt;/B&gt;&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;A name=chap05&gt;
&lt;H1&gt;5. Javascript 정규식 함수&lt;/H1&gt;&lt;/A&gt;
&lt;TABLE cellSpacing=1 cellPadding=5 width=1024 bgColor=#cccccc border=0&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#dddddd&gt;
&lt;TH width=200&gt;함수&lt;/TH&gt;
&lt;TH width=450&gt;코드예제&lt;/TH&gt;
&lt;TH width=455&gt;코드설명&lt;/TH&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=200&gt;Array RegExp.exec (&lt;I&gt;to be checked&lt;/I&gt;)&lt;/TD&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_exec&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myRe=/d(b+)(d)/ig; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myArray =&amp;nbsp;myRe.exec(&quot;cdbBdbsbz&quot;);&lt;/DIV&gt;
&lt;P&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/d(b+)(d)/ig, new Array(&quot;cdbBdbsbz&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/d(b+)(d)/ig&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;c&lt;B&gt;dbBd&lt;/B&gt;bsbz&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;
&lt;TD width=455&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
    eval(document.getElementById(&#039;ex_exec&#039;).innerHTML);

    document.write(&quot;myArray.index =&quot; + myArray.index +&quot; ; (처음으로 매칭되는 위치, 컴터가 늘 그렇듯 위치는 0번째부터 센다.)&lt;br&gt;&quot;);
    document.write(&quot;myArray.input = &quot;+ myArray.input +&quot;; (체크할 대상)&lt;br&gt;&quot;);
    document.write(&quot;myArray[0] = &quot;+myArray[0]+&quot;;(검사에 통과한 부분)&lt;br&gt;&quot;);
    document.write(&quot;myArray[1] = &quot;+myArray[1]+&quot;;(1번째 괄호에서 체크된 부분)&lt;br&gt;&quot;);
    document.write(&quot;myArray[2] = &quot;+myArray[2]+&quot;;(2번째 괄호에서 체크된 부분)&lt;br&gt;&quot;);
    document.write(&quot;&lt;br&gt;&quot;);
    
    document.write(&quot;myRe.lastIndex =&quot; + myRe.lastIndex +&quot; ; (다음번 체크를 하기위한 위치.)&lt;br&gt;&quot;);
    document.write(&quot;myRe.ignoreCase = &quot; + myRe.ignoreCase +&quot;; (/i 플래그 체크)&lt;br&gt;&quot;);
    document.write(&quot;myRe.global = &quot; + myRe.global +&quot;; (/g 플래그 체크)&lt;br&gt;&quot;);
    document.write(&quot;myRe.multiline = &quot; + myRe.multiline +&quot;; (/m 플래그 체크)&lt;br&gt;&quot;);


    document.write(&quot;&lt;br&gt;&quot;);
    document.write(&quot;RegExp.$_ = &quot;+(RegExp.$_ ) +&quot;;(입력한 스트링)&lt;br&gt;&quot;);
//    document.write(&quot;RegExp.$&amp; = &quot;+(RegExp.$&amp; ) +&quot;;(정규식)&lt;br&gt;&quot;);
//    document.write(&quot;RegExp.$+ = &quot;+(RegExp.$+ ) +&quot;;(정규식)&lt;br&gt;&quot;);
//    document.write(&quot;RegExp.$&#039; = &quot;+(RegExp.$&#039; ) +&quot;;(정규식)&lt;br&gt;&quot;);
//    document.write(&quot;RegExp.$` = &quot;+(RegExp.$` ) +&quot;;(정규식)&lt;br&gt;&quot;);
    document.write(&quot;RegExp.$1 = &quot;+(RegExp.$1 ) +&quot;;(1번째 괄호에서 체크된 부분 )&lt;br&gt;&quot;);
    //--&gt;
&lt;/SCRIPT&gt;
myArray.index =1 ; (처음으로 매칭되는 위치, 컴터가 늘 그렇듯 위치는 0번째부터 센다.)&lt;BR&gt;myArray.input = cdbBdbsbz; (체크할 대상)&lt;BR&gt;myArray[0] = dbBd;(검사에 통과한 부분)&lt;BR&gt;myArray[1] = bB;(1번째 괄호에서 체크된 부분)&lt;BR&gt;myArray[2] = d;(2번째 괄호에서 체크된 부분)&lt;BR&gt;&lt;BR&gt;myRe.lastIndex =5 ; (다음번 체크를 하기위한 위치.)&lt;BR&gt;myRe.ignoreCase = true; (/i 플래그 체크)&lt;BR&gt;myRe.global = true; (/g 플래그 체크)&lt;BR&gt;myRe.multiline = false; (/m 플래그 체크)&lt;BR&gt;&lt;BR&gt;RegExp.$_ = cdbBdbsbz;(입력한 스트링)&lt;BR&gt;RegExp.$1 = bB;(1번째 괄호에서 체크된 부분 )&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=200&gt;boolean RegExp.test(&lt;I&gt;to be checked&lt;/I&gt;)&lt;/TD&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_test&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myRe=/d(b+)(d)/ig; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;checked =&amp;nbsp;myRe.test(&quot;cdbBdbsbz&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(&quot;checked =&amp;nbsp;&quot; +&amp;nbsp;checked +&quot;;&amp;lt;br&amp;gt;&quot;);&lt;/DIV&gt;
&lt;P&gt;
&lt;SCRIPT language=JavaScript&gt;
    &lt;!--
        writeExample(/d(b+)(d)/ig, new Array(&quot;cdbBdbsbz&quot;));
    //--&gt;
    &lt;/SCRIPT&gt;
&lt;B&gt;/d(b+)(d)/ig&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;c&lt;B&gt;dbBd&lt;/B&gt;bsbz&lt;FONT color=green&gt;&lt;B&gt;ⓥ&lt;/B&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행결과:
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
eval(document.getElementById(&#039;ex_test&#039;).innerHTML);
    //--&gt;
&lt;/SCRIPT&gt;
 checked = true;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=200&gt;String RegExp.toString()&lt;/TD&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_toString&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myRe=/d(b+)(d)/ig; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;myRe.toString(); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(str);&lt;/DIV&gt;
&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행 결과:
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
eval(document.getElementById(&#039;ex_toString&#039;).innerHTML);
    //--&gt;
&lt;/SCRIPT&gt;
 /d(b+)(d)/ig &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=200 rowSpan=4&gt;String String.replace(&lt;I&gt;pattern or string&lt;/I&gt;, &lt;I&gt;to be replaced&lt;/I&gt;)&lt;/TD&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_str_str&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;abcdefe&quot;; &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(str.replace(&quot;e&quot; ,&amp;nbsp;&quot;f&quot;));&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행 결과:
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
eval(document.getElementById(&#039;ex_str_str&#039;).innerHTML);
    //--&gt;
&lt;/SCRIPT&gt;
 abcdffe &lt;BR&gt;&lt;BR&gt;e가 2번 있지만, 첫번째 인자가 정규식이 아니라 문자열일 경우는 첫번째 것만 바꾼다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_reg_str&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;aba&quot;; &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(str.replace(/^a/ ,&amp;nbsp;&quot;c&quot;));&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행 결과:
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
eval(document.getElementById(&#039;ex_reg_str&#039;).innerHTML);
    //--&gt;
&lt;/SCRIPT&gt;
 cba &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_str_$&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;re =&amp;nbsp;/(\w+)\s(\w+)/; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;John Smith&quot;; &lt;BR&gt;newstr =&amp;nbsp;str.replace(re, &quot;$2, $1&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(newstr)&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행 결과:
&lt;SCRIPT language=JavaScript1.2&gt;
&lt;!--
eval(document.getElementById(&#039;ex_str_$&#039;).innerHTML);
//--&gt;
&lt;/SCRIPT&gt;
 Smith, John &lt;BR&gt;&lt;BR&gt;re에 의해서 찾아진 문자열 들은 re에서 ()로 표현된 순서대로 $1, $2와 같이 변수로 저장된다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_str_fun&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;re =&amp;nbsp;/\s(?:http|https):\/\/\S*(?:\s|$)/g; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;url is http://iilii.egloos.com/ !!\n&quot;; &lt;BR&gt;str += &quot;blah home: http://www.blah.co.kr&quot;; &lt;BR&gt;newstr =&amp;nbsp;str.replace(re, &lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;&amp;nbsp;(str,p1,offset,s) { &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;&quot;&amp;lt;a href=&#039;&quot; +&amp;nbsp;str +&amp;nbsp;&quot;&#039;&amp;gt;&quot; +&amp;nbsp;str +&amp;nbsp;&quot;&amp;lt;/a&amp;gt;&quot;; &lt;BR&gt;&amp;nbsp; } &lt;BR&gt;).replace(/\n/, &quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(newstr);&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
&lt;!--
eval(document.getElementById(&#039;ex_str_fun&#039;).innerHTML);
//--&gt;
&lt;/SCRIPT&gt;
url is&lt;A href=&quot;http://iilii.egloos.com/&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt; http://iilii.egloos.com/ &lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;!!&lt;BR&gt;blah home:&lt;A href=&quot;http://www.blah.co.kr/&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt; http://www.blah.co.kr&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;str: 찾은 문자열&lt;BR&gt;p1: ()에서 검색된 1번째 문자열. 마찬가지로 p2,p3 등도 가능&lt;BR&gt;offset: str을 찾은 위치&lt;BR&gt;s : 원본 문자열.&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=200&gt;Array String.match(&lt;I&gt;regular expression&lt;/I&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_match&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;ABCdEFgHiJKL&quot;; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myResult =&amp;nbsp;str.match(/[a-z]/g ); &lt;BR&gt;&lt;FONT color=#00ff66&gt;for&lt;/FONT&gt;(&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;cnt =&amp;nbsp;0 ;&amp;nbsp;cnt &amp;lt; myResult.length; cnt++){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(cnt +&quot;:&quot; +&amp;nbsp;myResult[cnt] +&quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;} &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(&quot;비교&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;ABCdEFgHiJKL&quot;; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myResult =&amp;nbsp;/[a-z]/g.exec(str); &lt;BR&gt;&lt;FONT color=#00ff66&gt;for&lt;/FONT&gt;(&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;cnt =&amp;nbsp;0 ;&amp;nbsp;cnt &amp;lt; myResult.length; cnt++){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(cnt +&quot;:&quot; +&amp;nbsp;myResult[cnt] +&quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;}&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행 결과:&lt;BR&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
eval(document.getElementById(&#039;ex_match&#039;).innerHTML);
    //--&gt;
&lt;/SCRIPT&gt;
0:d&lt;BR&gt;1:g&lt;BR&gt;2:i&lt;BR&gt;비교&lt;BR&gt;0:d&lt;BR&gt;&lt;BR&gt;String.match(RegExp) =&amp;gt;g flag가 있어도 다 찾아낸다. &lt;BR&gt;RegExp.exec(String) =&amp;gt;g flag가 있으면, 한 개만 찾고 끝낸다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD vAlign=top width=200&gt;Array String.split(&lt;I&gt;[separator[, limit]]&lt;/I&gt;)&lt;/TD&gt;
&lt;TD vAlign=top width=450&gt;
&lt;DIV id=ex_split&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;ABCdEFgHiJKL&quot;; &lt;BR&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;myResult =&amp;nbsp;str.split(/[a-z]/g ,&amp;nbsp;3); &lt;BR&gt;&lt;FONT color=#00ff66&gt;for&lt;/FONT&gt;(&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;cnt =&amp;nbsp;0 ;&amp;nbsp;cnt &amp;lt; myResult.length; cnt++){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(cnt +&quot;:&quot; +&amp;nbsp;myResult[cnt] +&quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;}&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=455&gt;실행 결과:&lt;BR&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
    &lt;!--
eval(document.getElementById(&#039;ex_split&#039;).innerHTML);
    //--&gt;
&lt;/SCRIPT&gt;
0:ABC&lt;BR&gt;1:EF&lt;BR&gt;2:H&lt;BR&gt;&lt;BR&gt;주어진 문자열을 separator를 기준으로 limit 만큼 자른다. &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;A name=chap06&gt;
&lt;H1&gt;6. 정규식으로 만든 유용한 Javascript 함수&lt;/H1&gt;&lt;/A&gt;
&lt;TABLE cellSpacing=1 cellPadding=5 width=1024 bgColor=#cccccc border=0&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#dddddd&gt;
&lt;TD&gt;
&lt;H3&gt;String removeTags(&lt;I&gt;input&lt;/I&gt;)&lt;/H3&gt;HTML tag부분을 없애준다 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;DIV id=func_remove&gt;&lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;&amp;nbsp;removeTags(input) { &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;input.replace(/&amp;lt;[^&amp;gt;]+&amp;gt;/g, &quot;&quot;);&amp;nbsp; &lt;BR&gt;};&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;example&amp;gt;&lt;BR&gt;
&lt;DIV id=func_remove_ex&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;&amp;lt;b&amp;gt;blah&amp;lt;/b&amp;gt; &amp;lt;i&amp;gt;soft&amp;lt;/i&amp;gt;&quot;; &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(str +&quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(removeTags(str));&lt;/DIV&gt;result&amp;gt;&lt;BR&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
&lt;!--
eval(document.getElementById(&#039;func_remove&#039;).innerHTML);
eval(document.getElementById(&#039;func_remove_ex&#039;).innerHTML);
//--&gt;
&lt;/SCRIPT&gt;
&lt;B&gt;blah&lt;/B&gt; &lt;I&gt;soft&lt;/I&gt;&lt;BR&gt;blah soft &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#dddddd&gt;
&lt;TD&gt;
&lt;H3&gt;String String.trim()&lt;/H3&gt;문자열의 앞뒤 공백을 없애준다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;DIV id=func_trim&gt;&lt;FONT color=#ff0000&gt;String&lt;/FONT&gt;.prototype.trim =&amp;nbsp;&lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;() { &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;this.replace(/^\s+|\s+$/g, &#039;&#039;);&amp;nbsp; &lt;BR&gt;};&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;example&amp;gt;&lt;BR&gt;
&lt;DIV id=func_trim_ex1&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; untrimed string &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;; &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(&quot;========&quot; +&amp;nbsp;str+ &quot;==============&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(&quot;========&quot; +&amp;nbsp;str.trim() +&amp;nbsp;&quot;==============&quot;);&lt;/DIV&gt;result&amp;gt;&lt;BR&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
&lt;!--
eval(document.getElementById(&#039;func_trim&#039;).innerHTML);
eval(document.getElementById(&#039;func_trim_ex1&#039;).innerHTML);
//--&gt;
&lt;/SCRIPT&gt;
======== untrimed string ==============&lt;BR&gt;========untrimed string============== &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#dddddd&gt;
&lt;TD&gt;
&lt;H3&gt;String String.capitalize()&lt;/H3&gt;단어의 첫 글자를 대문자로 바꿔준다. &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;DIV id=func_capitalize&gt;&lt;FONT color=#ff0000&gt;String&lt;/FONT&gt;.prototype.capitalize =&amp;nbsp;&lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;() { &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;this.replace(/\b([a-z])/g, &lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;($1){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;$1.toUpperCase(); &lt;BR&gt;&amp;nbsp; &amp;nbsp; }) ;&amp;nbsp;&amp;nbsp; &lt;BR&gt;};&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;example&amp;gt;&lt;BR&gt;
&lt;DIV id=func_capitalize_ex1&gt;&lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;str =&amp;nbsp;&quot;korea first world best&quot;; &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(str.capitalize());&lt;/DIV&gt;result&amp;gt;&lt;BR&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
&lt;!--
eval(document.getElementById(&#039;func_capitalize&#039;).innerHTML);
eval(document.getElementById(&#039;func_capitalize_ex1&#039;).innerHTML);
//--&gt;
&lt;/SCRIPT&gt;
Korea First World Best &lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#dddddd&gt;
&lt;TD&gt;
&lt;H3&gt;String number_format(&lt;I&gt;input&lt;/I&gt;)&lt;/H3&gt;입력된 숫자를 ,를 찍은 형태로 돌려준다&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;
&lt;DIV id=func_number_format&gt;&lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;&amp;nbsp;number_format(input){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;input =&amp;nbsp;&lt;FONT color=#ff0000&gt;String&lt;/FONT&gt;(input); &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#ff3399&gt;var&lt;/FONT&gt;&amp;nbsp;reg =&amp;nbsp;/(\-?\d+)(\d{3})($|\.\d+)/; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &lt;FONT color=#6699cc&gt;if&lt;/FONT&gt;(reg.test(input)){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;input.replace(reg, &lt;FONT color=#6633ff&gt;function&lt;/FONT&gt;(str, p1,p2,p3){ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;number_format(p1) +&amp;nbsp;&quot;,&quot; +&amp;nbsp;p2 +&amp;nbsp;&quot;&quot; +&amp;nbsp;p3; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ); &lt;BR&gt;&amp;nbsp; &amp;nbsp; }&lt;FONT color=#6699cc&gt;else&lt;/FONT&gt;{ &lt;BR&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;FONT color=#cc00cc&gt;return&lt;/FONT&gt;&amp;nbsp;input; &lt;BR&gt;&amp;nbsp; &amp;nbsp; } &lt;BR&gt;}&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;example&amp;gt;&lt;BR&gt;
&lt;DIV id=func_number_format_ex1&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(number_format(1234562.12) +&amp;nbsp;&quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(number_format(&quot;-9876543.21987&quot;)+ &quot;&amp;lt;br&amp;gt;&quot;); &lt;BR&gt;&lt;FONT color=#ff0000&gt;document&lt;/FONT&gt;.write(number_format(&quot;-123456789.12&quot;)+ &quot;&amp;lt;br&amp;gt;&quot;);&lt;/DIV&gt;result&amp;gt;&lt;BR&gt;
&lt;SCRIPT language=JavaScript1.2&gt;
&lt;!--
eval(document.getElementById(&#039;func_number_format&#039;).innerHTML);
eval(document.getElementById(&#039;func_number_format_ex1&#039;).innerHTML);
//--&gt;
&lt;/SCRIPT&gt;
1,234,562.12&lt;BR&gt;-9,876,543.21987&lt;BR&gt;-123,456,789.12&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;A name=chap07&gt;
&lt;H1&gt;7. Java 정규식 함수&lt;/H1&gt;&lt;/A&gt;
&lt;TABLE cellSpacing=1 cellPadding=5 width=1024 bgColor=#cccccc border=0&gt;
&lt;TBODY&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;&lt;PRE&gt;Pattern p = Pattern.compile(&quot;(a*)(b)&quot;);
Matcher m = p.matcher(&quot;aaaaab&quot;);
if (m.matches()) {
    for (int i = 0; i &amp;lt; m.groupCount() + 1; i++) {
        System.out.println(i + &quot;:&quot; + m.group(i));
    }
} else {
    System.out.println(&quot;not match!&quot;);
}

result&amp;gt;
0:aaaaab
1:aaaaa
2:b
0번째는 매칭된 부분.
&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;&lt;PRE&gt;String a = &quot;I love her&quot;;
System.out.println(a.replaceAll(&quot;([A-Z])&quot;, &quot;\&quot;$1\&quot;&quot;));

result&amp;gt;
&quot;I&quot; love her
자바도 $1을 쓸 수 있다.
&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR bgColor=#ffffff&gt;
&lt;TD&gt;&lt;PRE&gt;Pattern p = Pattern.compile(&quot;cat&quot;);
Matcher m = p.matcher(&quot;one cat two cats in the yard&quot;);
StringBuffer sb = new StringBuffer();
while (m.find()) {
    m.appendReplacement(sb, &quot;dog&quot;);
    System.out.println(sb.toString());
}
m.appendTail(sb);
System.out.println(sb.toString());

result&amp;gt;
one dog
one dog two dog
one dog two dogs in the yard
&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
			<category>javascript</category>
			<category>자바스크립트</category>
			<category>정규식</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/49</guid>
			<comments>http://www.devtt.com/Ryan/49#entry49comment</comments>
			<pubDate>Wed, 10 Dec 2008 09:45:37 +0900</pubDate>
		</item>
		<item>
			<title>버전별 Oracle thin Driver</title>
			<link>http://www.devtt.com/Ryan/47</link>
			<description>버전별 Oracle thin Driver 
&lt;P&gt;
&lt;TABLE cellSpacing=0 cellPadding=0 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bgcolor_dark&gt;
&lt;TABLE cellSpacing=1 cellPadding=2 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR class=bgcolor_middle align=middle&gt;
&lt;TD&gt;&amp;nbsp;Version &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;JDK 1.1 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;JDK 1.2 and 1.3 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;JDK 1.4 &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;7.3.4.0.2 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/7.3.4.0.2/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;8.0.4.0.6 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/8.0.4.0.6/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;8.0.5.2 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/8.0.5.2/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;8.1.7.1 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/8.1.7.1/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/8.1.7.1/classes12.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes12.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;9.0.1 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.0.1/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.0.1/classes12.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes12.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;9.0.1.4 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.0.1.4/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.0.1.4/classes12.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes12.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;9.0.2.2 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.0.2.2/classes12.jar&quot; target=_blank&gt;&lt;FONT color=#800080&gt;classes12.jar&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.0.2.2/ojdbc14.jar&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;ojdbc14.jar&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;9.2.0.1 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.2.0.1/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.2.0.1/classes12.zip&quot; target=_blank&gt;&lt;FONT color=#800080&gt;classes12.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.2.0.1/ojdbc14.jar&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;ojdbc14.jar&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR class=bgcolor_light&gt;
&lt;TD&gt;&amp;nbsp;9.2.0.3 &lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.2.0.3/classes111.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes111.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.2.0.3/classes12.zip&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;classes12.zip&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD&gt;&amp;nbsp;&lt;A class=con_link href=&quot;http://java.yb2u.com/download/program/Oracle_thin/9.2.0.3/ojdbc14.jar&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;ojdbc14.jar&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;TABLE cellSpacing=0 cellPadding=1 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bgcolor_dark&gt;
&lt;TABLE cellSpacing=0 cellPadding=2 width=&quot;100%&quot; border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bgcolor_middle noWrap align=middle&gt;&lt;NOBR&gt;출처 : yb2u.com 
&lt;DIV class=autosourcing-stub&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;STRONG style=&quot;PADDING-RIGHT: 7px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot;&gt;[출처]&lt;/STRONG&gt; &lt;A href=&quot;http://blog.naver.com/smilejwb/90001921542&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;ojdbc14.jar&lt;/FONT&gt;&lt;/A&gt;&lt;SPAN style=&quot;PADDING-RIGHT: 7px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot;&gt;|&lt;/SPAN&gt;&lt;STRONG style=&quot;PADDING-RIGHT: 7px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px&quot;&gt;작성자&lt;/STRONG&gt; &lt;A href=&quot;http://blog.naver.com/smilejwb&quot; target=_blank&gt;&lt;FONT color=#0066cc&gt;스마일정&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/NOBR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
			<category>oracle</category>
			<category>ojdbc</category>
			<category>드라이버</category>
			<category>오라클</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/47</guid>
			<comments>http://www.devtt.com/Ryan/47#entry47comment</comments>
			<pubDate>Wed, 22 Oct 2008 10:37:56 +0900</pubDate>
		</item>
		<item>
			<title>오픈소스 소프트웨어 기반 SW 개발 프레임워크 &#039;애니프레임자바3.1&#039;</title>
			<link>http://www.devtt.com/Ryan/46</link>
			<description>IT서비스 업체 삼성SDS가 오픈소스 소프트웨어 기반 SW 개발 프레임워크 &#039;애니프레임자바3.1&#039; 버전을 커뮤니티 사이트(http://www.anyframejava.org)를 통해 선보였다고 1일 발표했다.&lt;BR&gt;&lt;BR&gt;&#039;애니프레임자바3.1&#039;은 지난 6월 공개된 3.0 버전에 객체지향 데이터처리기술 및 웹서비스 기능을 추가한 것으로 글로벌 환경에서도 이용이 가능한 자바 기반 프레임워크라고 삼성SDS는 설명했다.&lt;BR&gt;&lt;BR&gt;삼성SDS에 따르면 애니프레임자바3.1을 활용한 개발과정에서 객체지향 데이터처리 기술을 쓰면 개발자는 데이터 처리를 위한 코딩업무시 30% 가량의 생산성 향상 효과를 기대할 수 있다. 웹서비스 기능을 통해 인터넷에 연결된 다양한 업무 시스템과도 쉽게 연계할 수 있어 SW 재활용성 확대에 따른 기존 IT 투자 보호와 중복 투자 방지 효과도 누릴 수 있다.&lt;BR&gt;&lt;BR&gt;지난 6월 커뮤니티 사이트를 통해 발표된 애니프레임자바3.0의 경우 9월말까지 약 4만5천 여명이 사이트를 방문했고 2만건정도의 다운로드가 이뤄졌다. 개발자들의 기술요청 건수도 200건이 넘었다. &lt;BR&gt;&lt;BR&gt;삼성SDS는 &quot;커뮤니티 방문자들은 대학생, 대학교수, 중소SW업체 및 대기업 개발자 등 다양하게 걸쳐 있다&quot;면서 &quot;실제로 프로젝트에 적용하는 사례도 많다&quot;고 강조했다.&lt;BR&gt;&lt;BR&gt;금융전문 IT업체인 지아(GIA)컨설팅이 대표적이다. 지아컨설팅은 현재 진행중인 퇴직연금 종합관리시스템 사업의 솔루션 개발에 &#039;애니프레임&#039;을 활용하고 있다.</description>
			<category>it news</category>
			<category>애니프레임</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/46</guid>
			<comments>http://www.devtt.com/Ryan/46#entry46comment</comments>
			<pubDate>Thu, 02 Oct 2008 16:00:31 +0900</pubDate>
		</item>
		<item>
			<title>greate song !!!</title>
			<link>http://www.devtt.com/Ryan/45</link>
			<description>&lt;object width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/-1mhbH7CgZs&amp;amp;hl=ko&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/-1mhbH7CgZs&amp;amp;hl=ko&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;400&quot; height=&quot;300&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;*가사&lt;BR&gt;&lt;BR&gt;Whenever life gets you down, &lt;BR&gt;인생이 그대를 실망 시킬때&lt;BR&gt;keeps you wearing a frown, &lt;BR&gt;얼굴을 찡그리게 할때&lt;BR&gt;and the gravy train has left you behind... &lt;BR&gt;그리고 쉬운돈을 벌기회가 그대를 버리고 떠나갈때&lt;BR&gt;&lt;BR&gt;and when you&#039;re all out of hope, &lt;BR&gt;희망이란 조금도 남아있지은&lt;BR&gt;down at the end of your rope, &lt;BR&gt;당신의 줄의 끝에버티고&lt;BR&gt;and nobody&#039;s there to throw you a line... &lt;BR&gt;그대를 구해줄 사람도 없을때&lt;BR&gt;If you ever get so low &lt;BR&gt;그토록 바닥을 기고&lt;BR&gt;that you don&#039;t know which way to go &lt;BR&gt;어디로 가야할지 방황할때&lt;BR&gt;come on and take a walk in my shoes...&lt;BR&gt;이리와 나의 입장이 되어보세요 &lt;BR&gt;Never worry &#039;bout a thing &lt;BR&gt;걱정할일도 없고&lt;BR&gt;got the world on a string&lt;BR&gt;세상은 내뜻대로 돌아가죠 &lt;BR&gt;Cause I&#039;ve got the cure for all of my blues. &lt;BR&gt;왜냐하면 나는 모든것의 해결책을 갖고 있기 때문이죠&lt;BR&gt;&lt;BR&gt;(CHORUS) &lt;BR&gt;I take a look at my enormous penis &lt;BR&gt;나는 거대한 내 XX를 쳐다보죠&lt;BR&gt;and my troubles start melting away. &lt;BR&gt;그러면 나의 골치아픈 일은 모두 녹아 없어지ㅛ&lt;BR&gt;I take a look at my enormous penis &lt;BR&gt;나는 거대한 내 XX를 쳐다보죠&lt;BR&gt;and the happy times are coming to stay. &lt;BR&gt;그러면 해피타임은 나를 찾아오죠&lt;BR&gt;&lt;BR&gt;I gotta sing and I dance &lt;BR&gt;나는 춤 추고 노래해요&lt;BR&gt;when I glance in my pants &lt;BR&gt;내 바지 밑을 내려 볼때&lt;BR&gt;and the feeling&#039;s like a sunshiney day...&lt;BR&gt;햇빛이 밝은 날같은 느낌이죠 &lt;BR&gt;I take a look at my enormous penis &lt;BR&gt;나는 거대한 내 XX를 쳐다보죠&lt;BR&gt;and everything is going my way. &lt;BR&gt;그러면 모든 일이 내뜻대로 되죠&lt;BR&gt;&lt;BR&gt;Everybody!&lt;BR&gt;&lt;BR&gt;(CHORUS) &lt;BR&gt;I take a look at my enormous penis &lt;BR&gt;나는 거대한 내 XX를 쳐다보죠&lt;BR&gt;and my troubles start melting away. &lt;BR&gt;그러면 나의 골치아픈 일은 모두 녹아 없어지ㅛ&lt;BR&gt;I take a look at my enormous penis &lt;BR&gt;나는 거대한 내 XX를 쳐다보죠&lt;BR&gt;and the happy times are coming to stay. &lt;BR&gt;그러면 해피타임은 나를 찾아오죠 &lt;BR&gt;&lt;BR&gt;Yeah I got great big amounts &lt;BR&gt;그래요 난 거대한 양을 가지고 있죠&lt;BR&gt;in the place where it counts &lt;BR&gt;그 중요한 그곳에&lt;BR&gt;and the feeling&#039;s like a sunshiney day...&lt;BR&gt;햇빛이 밝은 날같은 느낌이죠 &lt;BR&gt;I take a look at my enormous penis &lt;BR&gt;나는 거대한 내 XX를 쳐다보죠&lt;BR&gt;and everything is going my way. &lt;BR&gt;그러면 모든 일이 내뜻대로 되죠&lt;BR&gt;&lt;BR&gt;더글라스: My Trouser Monster! (내 바지속 괴물!)&lt;BR&gt;&lt;BR&gt;해리: My Meat is Murder! (내 고기(?)는 살인!)&lt;BR&gt;&lt;BR&gt;제임스: Size Doesn&#039;t Matter... (크기는 중요치 않아...) &amp;lt;- 흑.. 제임스ㅜㅜ&lt;BR&gt;&lt;BR&gt;Everything is going my way... YUMMM!&lt;BR&gt;모든 일이 내뜻대로 되죠~~~ 냠!&lt;BR&gt;</description>
			<category>funny</category>
			<category>funny</category>
			<category>song</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/45</guid>
			<comments>http://www.devtt.com/Ryan/45#entry45comment</comments>
			<pubDate>Wed, 01 Oct 2008 13:49:28 +0900</pubDate>
		</item>
		<item>
			<title>애플 아이폰 지퍼라이터 어플리케이션</title>
			<link>http://www.devtt.com/Ryan/44</link>
			<description>&lt;P&gt;&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0&quot; width=&quot;600&quot; height=&quot;400&quot;&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;/&gt;&lt;param name=&quot;movie&quot; value=&quot;http://dory.mncast.com/mncHMovie.swf?movieID=10042747720080918200000&amp;amp;skinNum=1&quot;/&gt;&lt;!--[if !IE]&gt; &lt;--&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; transparent=&quot;yes&quot; data=&quot;http://dory.mncast.com/mncHMovie.swf?movieID=10042747720080918200000&amp;amp;skinNum=1&quot; width=&quot;600&quot; height=&quot;400&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://dory.mncast.com/mncHMovie.swf?movieID=10042747720080918200000&amp;amp;skinNum=1&quot;&gt;[Flash] http://dory.mncast.com/mncHMovie.swf?movieID=10042747720080918200000&amp;amp;skinNum=1&lt;/a&gt;&lt;/p&gt;&lt;/object&gt;&lt;!--&gt; &lt;![endif]--&gt;&lt;/object&gt;&amp;nbsp;&lt;BR&gt;어플리케이션으로 이런걸 만들다니... 정말 애플은 대단하네요.&lt;BR&gt;사실 근처 하드웨어끼리 통신여부를 체크해서 그냥 라이터 이미지만 활성화 시키는것이고...&lt;BR&gt;촛불이 바람에 반응하는것도... 사실은 바람 소리, 마이크에 반응하는방식인데, &lt;BR&gt;일반적으로 그냥 생각한다면 정말 근처에 가면 불이 옮겨붙고, 바람불면 꺼진다고 생각하도록 &lt;BR&gt;만드는 기발한 발상인듯합니다.&lt;BR&gt;정말 잡스는 대단한 사람인듯...&lt;BR&gt;&lt;BR&gt;근데 바람 부는 저사람은 누구지?...&lt;/P&gt;</description>
			<category>it news</category>
			<category>애플</category>
			<category>어플리케이션</category>
			<category>지퍼라이터</category>
			<author>(Ryan)</author>
			<guid>http://www.devtt.com/Ryan/44</guid>
			<comments>http://www.devtt.com/Ryan/44#entry44comment</comments>
			<pubDate>Fri, 19 Sep 2008 10:14:57 +0900</pubDate>
		</item>
	</channel>
</rss>
