<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>::: newtype의 지식창고 :::</title>
		<link>http://newtype.pe.kr/</link>
		<description>지극히 개인적인 지식의 창고</description>
		<language>ko</language>
		<pubDate>Mon, 05 Dec 2011 09:04:11 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>newtype</managingEditor>
		<item>
			<title>core 파일이 생성되는 한가지 상황</title>
			<link>http://newtype.pe.kr/434</link>
			<description>오늘 하루종일 삽질한 내용이 있어서 기록을 남긴다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[ 상황 ]&lt;/b&gt;&lt;br /&gt;
패킷 내용이 추가되어서 기존 모듈을 수정하게 되었다.&lt;br /&gt;
컴파일을 잘되는데, 실행하면 계속 core 파일이 생성되면서 프로세스가 죽는다.&lt;br /&gt;
수정 한 부분을 전체 주석으로 막아도, &lt;a href=&quot;http://newtype.pe.kr/391&quot; target=&quot;_blank&quot; title=&quot;[http://newtype.pe.kr/391]로 이동합니다.&quot;&gt;Call Stack을 체크&lt;/a&gt; 해보면 특정 함수를 진입하는 시점에 죽어 버린다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[ 원인 ]&lt;/b&gt;&lt;br /&gt;
원인은 패킷 사이즈가 커지면서, Stack 영역에 할당 할 수 있는 최대 메모리 사이즈를 초과한 것이다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[ 해결 방안 ]&lt;/b&gt;&lt;br /&gt;
Stack 영역이 아닌, Heap영역에 메모리를 할당 하면 된다.&lt;br /&gt;
&lt;br /&gt;
원인 밝히느라 오전 내내 삽질,&amp;nbsp;&lt;br /&gt;
정적 메모리 구조를 동적 구조로 바꾸느라고, 오후 내내 디버깅 및 삽질..&lt;br /&gt;
오늘 하루도 이렇게 날려 먹었다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[ Code ]&lt;/b&gt;&lt;br /&gt;
-. Stack 영역에 할당 할 수 있는 최대 크기 확인 ( 단위 KB )&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(193, 193, 193); border-right-color: rgb(193, 193, 193); border-bottom-color: rgb(193, 193, 193); border-left-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;$&amp;nbsp;ulimit -s&lt;br /&gt;
&amp;nbsp;8192&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
-. 테스트 프로그램.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: cpp; toolbar: false&quot;&gt;// cc -o maxsize maxsize.c
#include &amp;lt;stdio.h&amp;gt;

typedef char PACKET[5600000];

int main()
{
        PACKET pkt;
        //PACKET pkt2;  
        PACKET *pkt3;

        printf (&quot;\n&quot;);
        printf ( &quot;%s: %d\n&quot;, &quot;PACKET&quot;, sizeof(PACKET) );

        memset ( &amp;amp;pkt, 0, sizeof(pkt) );
        //memset ( &amp;amp;pkt2, 0, sizeof(pkt2) );   // rise core dump  

        pkt3 = (PACKET*)malloc(sizeof(PACKET));
        if ( !pkt3 ) printf(&quot;not enough momery\n&quot;);
        else memset( pkt3, 0, sizeof(PACKET) );

        return 0;
}
&lt;/pre&gt;&lt;div&gt;
&lt;br /&gt;
실행 해 보면, &amp;nbsp;아래와 같은 결과를 얻는다.&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(193, 193, 193); border-right-color: rgb(193, 193, 193); border-bottom-color: rgb(193, 193, 193); border-left-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;$&amp;nbsp;maxsize&lt;br /&gt;
PACKET: 5600000&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;하지만, 9, 16 라인의 주석을 풀고 실행해보면, 아래와 같이 core 파일이 생성된다.&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(193, 193, 193); border-right-color: rgb(193, 193, 193); border-bottom-color: rgb(193, 193, 193); border-left-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;$&amp;nbsp;maxsize&lt;br /&gt;
세그멘테이션 결함(Segmentation Fault)(코어 덤프)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 999999999; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;br /&gt;
&lt;b&gt;[ 참고문서 ]&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/stack_size&quot;&gt;http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/stack_size&lt;/a&gt;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/434&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>c</category>
			<category>core</category>
			<category>heap</category>
			<category>stack</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/434</guid>
			<comments>http://newtype.pe.kr/434#entry434comment</comments>
			<pubDate>Mon, 31 Oct 2011 20:41:59 +0900</pubDate>
		</item>
		<item>
			<title>Javascript로 폭포수 바이러스 효과 구현..</title>
			<link>http://newtype.pe.kr/433</link>
			<description>얼마전 &lt;a href=&quot;http://kathack.com/&quot; target=&quot;_blank&quot; title=&quot;[http://kathack.com/]로 이동합니다.&quot;&gt;자바스크립트로 괴혼&lt;/a&gt;을 구현한 것을 보았다.&lt;br /&gt;
&lt;br /&gt;
신기 하다 싶어서, 폭포수 바이러스 효과를 구현해 보았다.&lt;br /&gt;
스크립트를 실행하면, html 본문 내용을 Char 별로 파싱해서 떨어트린다.&lt;br /&gt;
&lt;br /&gt;
발로짜서 인지, 속도가 엄청 느리다.&lt;br /&gt;
본문 내용이 많아지면, 브라우져가 버거워 하기까지 한다.&lt;br /&gt;
시간나면, 천천히 개선해 봐야겠다.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://host.newtype.pe.kr/fall/fall.html&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://host.newtype.pe.kr/fall/fall.html&quot; target=&quot;_blank&quot; title=&quot;[http://host.newtype.pe.kr/fall/fall.html]로 이동합니다.&quot;&gt;http://host.newtype.pe.kr/fall/fall.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Chrome 에서 테스트 해봤다.&lt;br /&gt;
&amp;nbsp;&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 999999999; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/433&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>www</category>
			<category>JavaScript</category>
			<category>폭포수</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/433</guid>
			<comments>http://newtype.pe.kr/433#entry433comment</comments>
			<pubDate>Thu, 04 Aug 2011 18:13:45 +0900</pubDate>
		</item>
		<item>
			<title>TISTORY 에서 SyntaxHighlighter 사용하기.</title>
			<link>http://newtype.pe.kr/432</link>
			<description>블로그 특성상 소스 코드를 자주 올리게 되는데, 보기 좋게 올리기 위해&amp;nbsp;&lt;br /&gt;
&lt;a href=&quot;http://alexgorbatchev.com/SyntaxHighlighter/&quot; target=&quot;_blank&quot; title=&quot;[http://alexgorbatchev.com/SyntaxHighlighter/]로 이동합니다.&quot;&gt;SyntaxHighlighter&lt;/a&gt; 를 사용하기로 했다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. SyntaxHighlighter 다운 받기.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://alexgorbatchev.com/SyntaxHighlighter/&quot;&gt;http://alexgorbatchev.com/SyntaxHighlighter/&lt;/a&gt;&amp;nbsp;에서 다운 받는다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;포스팅 당시 최신 버전은 3.0.83 이었다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;다운로드 받아 압축을 풀면 아래와 같이 있는데,&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;필요한 파일은 styles, scripts 디렉토리에 있는 것들이다.&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/1864A4444DD087FA0FF019&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/1864A4444DD087FA0FF019&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;1_list.PNG&quot; height=&quot;154&quot; width=&quot;396&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;b&gt;2. 필요한 파일을 UPLOAD.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; TISTORY 관리자 페이지에 로긴해서, [ 스킨 ] / [ HTML/CSS편집 ] / [ 파일 업로드 ] 화면에서 &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 필요한 파일을 모두 올린다.&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 필요한 파일은 압축푼 파일 중에&amp;nbsp;styles, scripts&amp;nbsp;디렉토리 밑에 있는 모든 파일이다.&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile24.uf.tistory.com/original/1409654F4DD089AB03B5A2&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/1409654F4DD089AB03B5A2&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;2_upload.PNG&quot; height=&quot;286&quot; width=&quot;570&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 올려진 파일을들 보면, images 디렉토리 밑으로 올라간 것을 알 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. TISTORY 스킨 파일 편집.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;[ 스킨 ] / [ HTML/CSS편집 ] / [ HTML/CSS 편집 ] 화면에서 skin.html 파일에 내용을 편집한다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;pre class=&quot;brush: html; toolbar: false; gutter: false&quot;&gt;&lt;link rel=&quot;stylesheet&quot; media=&quot;screen&quot; type=&quot;text/css&quot; href=&quot;./style.css&quot;&gt;
&lt;/pre&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;밑줄에 아래의 내용을 추가한다.&lt;br /&gt;
&lt;pre class=&quot;brush: html; toolbar: false&quot;&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shCore.js&quot;&gt;&lt;/script&gt;
&lt;link href=&quot;./images/shThemeEmacs.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushAS3.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushBash.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushCpp.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushCSharp.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushCss.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushDelphi.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushDiff.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushGroovy.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushJava.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushJavaFX.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushJScript.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushPerl.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushPhp.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushPlain.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushPowerShell.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushPython.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushRuby.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushScala.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushSql.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushVb.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shBrushXml.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;./images/shLegacy.js&quot;&gt;&lt;/script&gt;
&lt;/pre&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; 위 내용 처럼 압축을 풀었을때 경로가 아닌, 파일이 올라간 images로 경로를 바꾸어야 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 두번째 &quot;shThemeEmacs.css&quot; 파일은 보여줄 테마를 지정한 것이다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 테마 css 파일을 이것저것 지정해보고 마음에 드는 것으로 결정하면 된다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; (사실 맘에 쏙 드는 것이 없었는데. Emacs 테마가 가장 나은 것 같다.)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 동일한 방법으로&amp;nbsp;skin.html 파일 가장 하단 &amp;lt;/body&amp;gt; 위쪽에 아래와 내용을 넣어 준다.&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;brush: html; toolbar: false; highlight: 3&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;
     SyntaxHighlighter.config.stripBrs = true;
     SyntaxHighlighter.all();
&lt;/script&gt;
&lt;/pre&gt;

&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; 여기서 필요한 코드는 맨 밑줄 함수 실행부 이고, 그외 설정 부분이다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; stripBrs를 true로 설정하면, TISTORY 에서 자동으로 &amp;lt;br&amp;gt; 태그를 붙이는 걸 무시 할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;

&lt;b&gt;&amp;nbsp;4. TISTORY에서 글쓰기.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; 글을 쓸때에는 소스 코드가 들어갈때는 html 모드에서 글을 써야한다.&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/original/150627464DD0AAF010AC1E&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile9.uf.tistory.com/image/150627464DD0AAF010AC1E&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;3_html.PNG&quot; height=&quot;131&quot; width=&quot;278&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 위와 같이 html 체크박스를 체크하면, html 모드에서 글을 입력할 수 있다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 소스 코드를 넣을때 아래와 같은 문법으로 넣는다.&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;brush: text; toolbar: false; highlight: [1, 10]&quot;&gt;&amp;lt;pre class=&quot;brush: sql&quot;&amp;gt;
CREATE TABLE CVS_COMMIT
(
   SEQ              NUMBER(10) NOT NULL,
   USERID           VARCHAR2(20) NOT NULL,
   REG_DATE         DATE DEFAULT SYSDATE,
   PROJECT          VARCHAR2(50) NOT NULL,
   FILENAME         VARCHAR2(500) NOT NULL
);
&amp;lt;/pre&amp;gt;
&lt;/pre&gt;

&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;소스의 내용은 &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt; 태그 사이에 넣어주고, class의 brush 속성에 원하는 문법을 지정한다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;지정 가능한 문법은 아래와 같다.&amp;nbsp;&lt;br /&gt;
&lt;table width=&quot;100%&quot; bgcolor=&quot;#ffffff&quot; style=&quot;border-collapse:collapse&quot; cellpadding=&quot;1&quot; cellspacing=&quot;4&quot;&gt;
&lt;tbody&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;ActionScript3&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;as3, actionscript3&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushAS3.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Bash/shell&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;bash, shell&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushBash.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;ColdFusion&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;cf, coldfusion&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushColdFusion.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;C#&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;c-sharp, csharp&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushCSharp.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;C++&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;cpp, c&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushCpp.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;CSS&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;css&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushCss.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Delphi&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;delphi, pas, pascal&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushDelphi.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Diff&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;diff, patch&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushDiff.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Erlang&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;erl, erlang&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushErlang.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Groovy&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;groovy&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushGroovy.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;JavaScript&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;js, jscript, javascript&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushJScript.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Java&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;java&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushJava.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;JavaFX&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;jfx, javafx&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushJavaFX.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Perl&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;perl, pl&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushPerl.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;PHP&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;php&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushPhp.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Plain Text&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;plain, text&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushPlain.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;PowerShell&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;ps, powershell&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushPowerShell.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Python&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;py, python&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushPython.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Ruby&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;rails, ror, ruby&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushRuby.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Scala&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;scala&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushScala.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;SQL&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;sql&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushSql.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Visual Basic&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;vb, vbnet&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushVb.js&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;XML&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;xml, xhtml, xslt, html, xhtml&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;shBrushXml.js&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;


&lt;br /&gt;
첫번째 컬럼이 문법, 두번째 컬럼이 brush에 지정할 속성 상수,&amp;nbsp;&lt;br /&gt;
세번째 컬럼이 필요한 Javascript 파일로써 TISTORY에 UPLOAD되어 있어야 한다.&lt;br /&gt;
&lt;br /&gt;
문법 뿐 아니라 추가 속성을 지정할 수 있는데, 아래와 같이 &quot;;&quot; (세미콜론) 로 구분한다.&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;brush: html; toolbar: false; gutter: false&quot;&gt;&amp;lt;pre class=&quot;brush: js; ruler: true; first-line: 10; highlight: [2, 4, 6]&quot;&amp;gt;...&amp;lt;/pre&amp;gt;
&lt;/pre&gt;

&lt;br /&gt;

지정 할 수 있는 속성 목록은 아래와 같다.&lt;br /&gt;
&lt;table width=&quot;100%&quot; bgcolor=&quot;#ffffff&quot; style=&quot;border-collapse:collapse&quot; cellpadding=&quot;1&quot; cellspacing=&quot;1&quot;&gt;
&lt;tbody&gt;
	&lt;tr&gt;
		&lt;th style=&quot;border:1px solid #dadada&quot;&gt;&lt;center&gt;속성&lt;/center&gt;
		&lt;/th&gt;&lt;th style=&quot;border:1px solid #dadada&quot;&gt;&lt;center&gt;기본값&lt;/center&gt;
		&lt;/th&gt;&lt;th style=&quot;border:1px solid #dadada&quot;&gt;&lt;center&gt;설명&lt;/center&gt;
	&lt;/th&gt;&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;auto-links&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;true&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;URL을 클릭하면 페이지 이동이 가능하도록&lt;br /&gt;
하이퍼링크를 자동으로 걸어준다.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;class-name&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;&#039;&#039;&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;그외 사용자 지정 class를 추가하고 싶을때 사용한다.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;collapse&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;false&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;&quot;펼치기&quot; 기능을 사용하고 싶을 때&lt;br /&gt;
(티스토리의 &quot;더보기&quot; 기능이 더 나은것 같다)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;first-line&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;1&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;시작 Line Number를 지정한다.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;gutter&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;true&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;Line Number를 켜고 끌수 있다.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;highlight&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;null&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;강조할 라인을 배열로 넘긴다.&lt;br /&gt;
 (예 : &quot;brush: plain; highlight: [1, 3]&quot;)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;html-script&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;false&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;php, asp, jsp 등과 같이 소스 코드안에 html이 포함되는 경우&lt;br /&gt;
 html도 하이라이팅하고 싶으면 사용한다&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;smart-tabs&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;true&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;스마트탭 기능의 활성화 여부를 지정한다&lt;br /&gt;
(무슨 기능인지 잘 모르겠다)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;tab-size&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;4&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;TAB 크기를 지정한다.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;toolbar&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;true&lt;/td&gt;
		&lt;td style=&quot;border:1px solid #dadada&quot;&gt;툴바를 켜거나 끌 수 있다.&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
이제 TISTORY에서 깔끔한 코드를 볼 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(254, 222, 199); border-right-color: rgb(254, 222, 199); border-bottom-color: rgb(254, 222, 199); border-left-color: rgb(254, 222, 199); background-color: rgb(254, 222, 199); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;&lt;b&gt;&amp;lt;주의 사항&amp;gt;&lt;/b&gt;&lt;br /&gt;
-. SyntaxHighlighter 3.0.83 버전에 버그가 하나 있다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 일부 코드에 대해 Line Number가 어긋나 보이는 경우가 있다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 한 Line 에 긴 코드가 포함된 경우 wrapped(자동줄바꿈) 처리를 하면서 잘못 처리하는 것 같다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 소스 코드를 무조건 올리지 말고, 적당히 줄바꿈 처리를 해주고 올리는 것이 좋다.&amp;nbsp;&lt;br /&gt;
-. html모드에서 &amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt; 태그를 사용할 경우 소스 코드에 포함된 &quot;&amp;lt;&quot;, &quot;&amp;gt;&quot;의 파싱을 잘못하는&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 경우가 발생하는 것 같다.&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 소스 코드를 올리기 전에 &quot;&amp;lt;&quot;를 &quot;&amp;amp;lt;&quot;로, &quot;&amp;gt;&quot;를 &quot;&amp;amp;gt;&quot;로 변환 해서 올리는 것이 좋다.&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;imageblock&quot; style=&quot;display:inline;&quot;&gt;&lt;a href=&quot;http://newtype.tistory.com/attachment/cfile10.uf@144AE4534DD0C6730F5D49.zip&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; syntaxhighlighter_3.0.83.zip&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 999999999; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/432&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>www</category>
			<category>syntaxhighlighter</category>
			<category>SyntaxHighlighter 3</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/432</guid>
			<comments>http://newtype.pe.kr/432#entry432comment</comments>
			<pubDate>Mon, 16 May 2011 15:12:13 +0900</pubDate>
		</item>
		<item>
			<title>CVS Commit 로그를 남겨보자</title>
			<link>http://newtype.pe.kr/431</link>
			<description>-. 요구사항 파악 및 설계&lt;br /&gt;
&lt;br /&gt;
적용 패키지 작성을 위해 수정된 파일 목록을 추출 할 방법을 찾아 보기로 했다.&lt;br /&gt;
업무 때문에 소스 관리를 CVS 로 하고 있다. CVS의 단점은 개별 파일이력은 확인 할 수 있는데,&amp;nbsp;&lt;br /&gt;
수정된 파일 목록을 뽑기가 쉽지 않다는 것이다.&lt;br /&gt;
&lt;br /&gt;
구글링을 해보니 CVS에서 Commit 시점에 뭔가 처리할 수 있다는 것을 알았다.&lt;br /&gt;
&lt;br /&gt;
먼저, CVS 서버에 접속해서 저장소의 CVSROOT 디렉토리를 보자&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 544 &amp;nbsp;4월 22 09:23 checkoutlist&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 694 &amp;nbsp;3월 21 &amp;nbsp;2009 checkoutlist,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 882 &amp;nbsp;4월 26 16:03 commitinfo&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 959 &amp;nbsp;3월 21 &amp;nbsp;2009 commitinfo,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 993 &amp;nbsp;3월 21 &amp;nbsp;2009 config&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1192 &amp;nbsp;3월 21 &amp;nbsp;2009 config,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 602 &amp;nbsp;2월 &amp;nbsp;8 16:32 cvswrappers&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 801 &amp;nbsp;3월 21 &amp;nbsp;2009 cvswrappers,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1025 &amp;nbsp;3월 21 &amp;nbsp;2009 editinfo&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1224 &amp;nbsp;3월 21 &amp;nbsp;2009 editinfo,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs 292081967 &amp;nbsp;4월 29 18:14 history&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1245 &amp;nbsp;4월 21 11:32 loginfo&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1367 &amp;nbsp;3월 21 &amp;nbsp;2009 loginfo,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1151 &amp;nbsp;3월 21 &amp;nbsp;2009 modules&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1350 &amp;nbsp;3월 21 &amp;nbsp;2009 modules,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 564 &amp;nbsp;3월 21 &amp;nbsp;2009 notify&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 763 &amp;nbsp;3월 21 &amp;nbsp;2009 notify,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 640 &amp;nbsp;4월 25 12:43 passwd&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 649 &amp;nbsp;3월 21 &amp;nbsp;2009 rcsinfo&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 848 &amp;nbsp;3월 21 &amp;nbsp;2009 rcsinfo,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 879 &amp;nbsp;3월 21 &amp;nbsp;2009 taginfo&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1078 &amp;nbsp;3월 21 &amp;nbsp;2009 taginfo,v&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxrw- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp; 187 11월 10 17:15 val-tags&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1026 &amp;nbsp;3월 21 &amp;nbsp;2009 verifymsg&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;-rwxrwxr-- 1 cvs cvs &amp;nbsp; &amp;nbsp; &amp;nbsp;1225 &amp;nbsp;3월 21 &amp;nbsp;2009 verifymsg,v&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
위와 같은 파일들을 볼 수 있는데..&amp;nbsp;&lt;br /&gt;
여기서&amp;nbsp;&lt;b&gt;commitinfo&lt;/b&gt;&amp;nbsp;란 파일이 CVS에서 Commit 하기 바로전에 실행되는 파일이다.&lt;br /&gt;
&lt;br /&gt;
방향은 정해졌다.&amp;nbsp;&lt;br /&gt;
작업 구성은 아래와 같은 순서로 하기로 했다.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;b&gt;1. CVS가 Commit 되는 시점에 파일명을 DB에 저장한다.&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt;&amp;nbsp;CVSROOT/commitinfo에 등록할 쉘 스크립트를 작성.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;b&gt;2. &amp;nbsp;저장된 DB를 조회할 간단한 WEB Page 제작&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt;&amp;nbsp;평소 관심을 갖고 있던, jQuery를 이용.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[&amp;nbsp;1. CVS가 Commit 되는 시점에 파일명을 DB에 저장한다&amp;nbsp;]&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
commitinfo 파일에 아래와 같이 내용을 추가 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;$ vi CVSROOT/commitinfo&amp;nbsp;&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;ALL /home/cvs/myproject/CVSROOT/cvscommitlog.sh&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
DB에 테이블을 생성 한다.&lt;br /&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;&lt;/p&gt;
&lt;pre class=&quot;brush: sql&quot;&gt;CREATE TABLE CVS_COMMIT
(
   SEQ              NUMBER(10) NOT NULL,
   USERID           VARCHAR2(20) NOT NULL,
   REG_DATE         DATE DEFAULT SYSDATE,
   PROJECT          VARCHAR2(50) NOT NULL,
   FILENAME         VARCHAR2(500) NOT NULL
);
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;span style=&quot;font-size: 8pt; &quot;&gt;* index는&amp;nbsp;REG_DATE, TO_CHAR(reg_date, &#039;YYYY/MM/DDHH24:MI&#039;), USERID, PROJECT 를 걸었다.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
commitinfo 파일이 실행할 쉘스크립트를 작성한다.&lt;br /&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;
&lt;/p&gt;
&lt;pre class=&quot;brush: shell;&quot;&gt;#!/bin/sh
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ORACLE_SID
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_OWNER=oracle
export LANG=c
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib;

DATE=`date &quot;+%Y-%m-%d %H:%M:%S&quot;`
DT=`date &quot;+%Y%m%d&quot;`
LOG_FILE=&quot;/home/cvs/cvs_log/commit.$DT.log&quot;
DIR=$1
USER=$USER
PROJECT=`echo $DIR | cut -d/ -f4`
#(echo &quot;&quot;; id;) &amp;gt;&amp;gt; $LOG_FILE
shift
for file in $*
do
    echo &quot;$PROJECT, $USER, $DATE, $DIR/$file&quot; &amp;gt;&amp;gt; $LOG_FILE
        result=`$ORACLE_HOME/bin/sqlplus oracle_user/oracle_pwd@oracledb &amp;lt;&amp;lt;EOF 
        INSERT INTO CVS_COMMIT 
        VALUES ( (SELECT NVL(MAX(SEQ), 0) +1 FROM CVS_COMMIT), 
                       &#039;$USER&#039;, TO_DATE(&#039;$DATE&#039;, &#039;YYYY-MM-DD hh24:mi:ss&#039;), 
                       &#039;$PROJECT&#039;, &#039;$DIR/$file&#039;);
        COMMIT;
        EOF
        `
done
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[ 2. &amp;nbsp;저장된 DB를 조회할 간단한 WEB Page 제작 ]&lt;/b&gt;&lt;br /&gt;
jsp 파일 하나와 html파일 하나로 이루어졌고, jQuery와 JSON을 이용 했다.&lt;br /&gt;
&lt;a href=&quot;http://jonathanleighton.com/projects/date-input&quot; target=&quot;_blank&quot; title=&quot;[http://jonathanleighton.com/projects/date-input]로 이동합니다.&quot;&gt;DATE Picker&lt;/a&gt;는 jQuery Plugin 중에 하나를 이용했다.&lt;br /&gt;
&lt;br /&gt;
&lt;p id=&quot;more431_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;431_0&#039;,&#039;html 내용 보기&#039;,&#039;접기&#039;); return false;&quot;&gt;html 내용 보기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content431_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;&lt;/p&gt;
&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;
&lt;/p&gt;
&lt;pre class=&quot;brush: html, javascript&quot;&gt;&lt;htm&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/htm; charset=euc-kr&quot;&gt;
&lt;script src=&quot;/js/jquery.min.js&quot;&gt;&lt;/script&gt; 
&lt;script src=&quot;/js/jquery.jdpicker.js&quot;&gt;&lt;/script&gt;
&lt;link href=&quot;/js/jdpicker.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;screen&quot;&gt;

&lt;script language=&quot;JavaScript&quot;&gt;
	var url = &quot;./wdms_cvsCommitLog.jsp&quot;;

	$(document).ready(function(){
	
		feelUserID();
		feelProject();
		
		$(&#039;#btn_submit&#039;).click(feelData);
	});

	function feelUserID(){
		$.getJSON( url, {
			method: &quot;GetUserID&quot;,
			start_date: &quot;&quot;,
			end_date: &quot;&quot;
		},			
		function(data){
			var html=&#039;&lt;option value=&quot;All&quot;&gt;All&lt;/option&gt;&#039;;
			$.each(data.item, function(i, item){
				html+=&#039;&lt;option value=&quot;&#039;+item.USERID+&#039;&quot;&gt;&#039;
                                             +item.USERID+&#039;&lt;/option&gt;&#039;;
			})		
			$(&quot;#sel_UserID&quot;).html(html);
		});
	}
	
	function feelProject(){
		$.getJSON( url, {
			method: &quot;GetProject&quot;,
			start_date: &quot;&quot;,
			end_date: &quot;&quot;
		},			
		function(data){
			var html=&#039;&lt;option value=&quot;All&quot;&gt;All&lt;/option&gt;&#039;;
			$.each(data.item, function(i, item){
				html+=&#039;&lt;option value=&quot;&#039;+item.PROJECT+&#039;&quot;&gt;&#039;
                                            +item.PROJECT+&#039;&lt;/option&gt;&#039;;
			})		
			$(&quot;#sel_Project&quot;).html(html);
		});
	}
	
	function feelData(){
	
		var start_dt = $(&quot;#start_dt&quot;).val();
		var end_dt = $(&quot;#end_dt&quot;).val();
		var user_id = $(&quot;#sel_UserID&quot;).val();
		var project = $(&quot;#sel_Project&quot;).val();
		var distinct = $(&quot;input:checked&quot;).length;
		if ( start_dt &gt; end_dt &amp;&amp; end_dt.length&gt;0) { 
			alert (&#039;시작일이 종료일보다 큽니다.&#039;);
			return false;
		}
		if ( start_dt==&quot;&quot; &amp;&amp; end_dt!=&quot;&quot; ) { 
			alert (&#039;시작일을 선택해 주세요.&#039;);
			return false;
		}
	
		$.getJSON( url, {
			method: &quot;GetCvs&quot;,
			start_date: start_dt,
			end_date: end_dt,
			user_id: user_id,
			project: project,
			distinct: distinct
		},			
		function(data){
			var html=&#039;&lt;tr bgcolor=&quot;#ffffff&quot;&gt;&lt;td&gt;&#039;;
			html+=&#039;&lt;center&gt;검색된 데이터가 없습니다.&lt;/center&gt;&lt;/td&gt;&lt;/tr&gt;&#039;; 
			if( data.item.length &gt; 0 ) {
				html=&#039;&#039;;
				if(distinct==0){
					html += &#039;&lt;tr align=&quot;center&quot;&gt;&#039;; 
					html +=&#039;&lt;td width=&quot;10%&quot; height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot;&gt;&#039;;
					html +=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&lt;b&gt;사용자&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&#039;;
					html +=&#039;&lt;td width=&quot;15%&quot; height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot;&gt;&#039;;
					html += &#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&lt;b&gt;프로젝트&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&#039;;
					html +=&#039;&lt;td width=&quot;15%&quot; height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot;&gt;&quot;;
					html +=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&lt;b&gt;날짜&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&#039;;
					html +=&#039;&lt;td width=&quot;15%&quot; height=&quot;30&quot;  bgcolor=&quot;#EFEFEF&quot;&gt;&#039;;
					html +=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&lt;b&gt;파일이름&lt;/b&gt;&#039;;
					html +=&#039;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&#039;;
					$.each(data.item, function(i, item){
						html+=&#039;&lt;tr align=&quot;center&quot; &gt;&#039;;
						html+=&#039;&lt;td width=&quot;10%&quot; height=&quot;30&quot; bgcolor=&quot;#ffffff&quot;&gt;&#039;;
						html+=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&#039;
							+item.USERID+&#039;&lt;/font&gt;&lt;/td&gt;&#039;;
						html+=&#039;&lt;td width=&quot;10%&quot; height=&quot;30&quot; bgcolor=&quot;#ffffff&quot;&gt;&#039;;
						html+=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&#039;
							+item.PROJECT+&#039;&lt;/font&gt;&lt;/td&gt;&#039;;
						html+=&#039;&lt;td width=&quot;15%&quot; height=&quot;30&quot; bgcolor=&quot;#ffffff&quot;&gt;&#039;;
						html+=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&#039;
							+item.REG_DATE+&#039;&lt;/font&gt;&lt;/td&gt;&#039;;
						html+=&#039;&lt;td width=&quot;10%&quot; height=&quot;30&quot; align=&quot;left&quot; 
								bgcolor=&quot;#ffffff&quot;&gt;&#039;;
						html+=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot;&gt;&#039;;
						html+=item.FILENAME.substring(18+item.PROJECT.length,
						               item.FILENAME.length);
						html+=&#039;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&#039;;
					})		
				}else if(distinct==1){
					html+=&#039;&lt;tr align=&quot;center&quot; bgcolor=&quot;#EFEFEF&quot;&gt;&#039;; 
					html+=&#039;&lt;td width=&quot;10%&quot; height=&quot;30&quot; &gt;&#039;;
					html+=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&lt;b&gt;파일이름&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&#039;;
					html +=&#039;&lt;/tr&gt;&#039;;
			    	$.each(data.item, function(i, item){
			    		html+=&#039;&lt;tr &gt;&#039;;
					html+=&#039;&lt;td width=&quot;10%&quot; height=&quot;30&quot; bgcolor=&quot;#ffffff&quot;&gt;&#039;;
					html+=&#039;&lt;font size=&quot;2&quot; face=&quot;돋움&quot; &gt;&#039;+item.FILENAME;
					html+=&#039;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&#039;;
			    	})
				}
			} 
			$(&quot;#tbl_Data&quot;).html(html);
		});
	}
&lt;/script&gt;
 
&lt;!-- TITLE 생성 부분 시작 --&gt;
&lt;table border=&quot;0&quot; width=&quot;200&quot;&gt;
   &lt;tbody&gt;&lt;tr&gt;
     &lt;td width=&quot;200&quot;&gt;
        &lt;img border=&quot;0&quot; src=&quot;/image/common/cn_wpe2.gif&quot; width=&quot;200&quot; height=&quot;5&quot;&gt;
    &lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
     &lt;td width=&quot;200&quot; align=&quot;left&quot;&gt;&lt;font size=&quot;2&quot; color=&quot;#2D7776&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
          &lt;b&gt;필링 CVS Commit 목록&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
     &lt;td width=&quot;200&quot;&gt;
         &lt;img border=&quot;0&quot; src=&quot;/image/common/cn_wpe2.gif&quot; width=&quot;200&quot; height=&quot;5&quot;&gt;&lt;/td&gt;
   &lt;/tr&gt;
 &lt;/tbody&gt;&lt;/table&gt;
 
&lt;!-- TITLE 생성 부분 종료 --&gt; 
&lt;form id=&quot;frm&quot;&gt;
&lt;table width=&quot;830&quot; border=&quot;0&quot; cellspacing=&quot;1&quot; cellpadding=&quot;4&quot; bgcolor=&quot;lightgrey&quot;&gt;
	&lt;tbody&gt;&lt;tr&gt;
 		&lt;td height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot; width=&quot;15%&quot;&gt;&lt;b&gt;&amp;nbsp;시작일&lt;/b&gt;&lt;/td&gt;
		&lt;td valign=&quot;middle&quot; bgcolor=&quot;#ffffff&quot; width=&quot;35%&quot;&gt;
			&lt;input type=&quot;text&quot; id=&quot;start_dt&quot; class=&quot;jdpicker&quot;&gt; 
		&lt;/td&gt;
		&lt;td height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot; width=&quot;15%&quot;&gt;&lt;b&gt;&amp;nbsp;종료일&lt;/b&gt;&lt;/td&gt;
		&lt;td valign=&quot;middle&quot; bgcolor=&quot;#ffffff&quot; width=&quot;35%&quot;&gt;
			&lt;input type=&quot;text&quot; id=&quot;end_dt&quot; class=&quot;jdpicker&quot;&gt; 
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot; width=&quot;15%&quot;&gt;&lt;b&gt;&amp;nbsp;User ID&lt;/b&gt;&lt;/td&gt;
		&lt;td valign=&quot;middle&quot; bgcolor=&quot;#ffffff&quot; width=&quot;85%&quot; colspan=&quot;3&quot;&gt;
			&lt;select id=&quot;sel_UserID&quot;&gt;  
			&lt;/select&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot; width=&quot;15%&quot;&gt;&lt;b&gt;&amp;nbsp;프로젝트&lt;/b&gt;&lt;/td&gt;
		&lt;td valign=&quot;middle&quot; bgcolor=&quot;#ffffff&quot; width=&quot;85%&quot; colspan=&quot;3&quot;&gt;
			&lt;select id=&quot;sel_Project&quot;&gt; 
			&lt;/select&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td height=&quot;30&quot; bgcolor=&quot;#EFEFEF&quot; width=&quot;15%&quot;&gt;&lt;b&gt;&amp;nbsp;기타 옵션&lt;/b&gt;&lt;/td&gt;
		&lt;td valign=&quot;middle&quot; bgcolor=&quot;#ffffff&quot; width=&quot;70%&quot; colspan=&quot;2&quot;&gt;
			&lt;input type=&quot;checkbox&quot; id=&quot;chk_distinct&quot;&gt;
                        &lt;font color=&quot;blue&quot;&gt;중복 문서 제거&lt;/font&gt;
		&lt;/td&gt;
 
		&lt;td valign=&quot;middle&quot; bgcolor=&quot;#ffffff&quot; width=&quot;15%&quot;&gt;
			&lt;center&gt;
			  &lt;input type=&quot;button&quot; id=&quot;btn_submit&quot; value=&quot;검색&quot;&gt;
			&lt;/center&gt;
		&lt;/td&gt;
 	&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
 &lt;/form&gt;
&lt;br /&gt;
&lt;table width=830 border=0 cellspacing=1 bgcolor=&quot;lightgrey&quot; id=&quot;tbl_Data&quot;&gt;
&lt;/table&gt;
 &lt;/htm&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p id=&quot;more431_1&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;431_1&#039;,&#039;jsp 내용 보기&#039;,&#039;접기&#039;); return false;&quot;&gt;jsp 내용 보기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content431_1&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;
&lt;/p&gt;
&lt;pre class=&quot;brush: java&quot;&gt;&amp;lt;%@page import=&quot;WDMS.Common.ConvUtil&quot;%&amp;gt;
&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html;charset=euc-kr&quot;  import=&quot;java.sql.*&quot; %&amp;gt;
&amp;lt;%
	// 연결 정보
	String ORA_IP = &quot;ORACLE_ID&quot;;
	String ORA_SID= &quot;ORACLE_SID&quot;;
	String ORA_USER= &quot;ORACLE_USER&quot;;
	String ORA_PWD= &quot;ORACLE_PWD&quot;;

	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	ResultSetMetaData rsmd = null;
    
	int i;
    
	String strData =&quot;&quot;;
	int nCol=0;
	int nRow=0;
	int numIndex =1;
	StringBuffer szQuery = new StringBuffer();
    
	String method=ConvUtil.nullToSpace(request.getParameter(&quot;method&quot;));
	String start_date=ConvUtil.nullToSpace(request.getParameter(&quot;start_date&quot;));
	String end_date=ConvUtil.nullToSpace(request.getParameter(&quot;end_date&quot;));
	String user_id=ConvUtil.nullToSpace(request.getParameter(&quot;user_id&quot;));
	String project=ConvUtil.nullToSpace(request.getParameter(&quot;project&quot;));
	String distinct=ConvUtil.nullToSpace(request.getParameter(&quot;distinct&quot;));

	if ( method.equals(&quot;GetUserID&quot;) )  {
		szQuery.append(&quot;SELECT DISTINCT USERID FROM CVS_COMMIT&quot;);
	} else if (method.equals(&quot;GetProject&quot;)) {
		szQuery.append(&quot;SELECT DISTINCT PROJECT FROM CVS_COMMIT&quot;);
	} else if (method.equals(&quot;GetCvs&quot;)) {
		if(distinct.equals(&quot;0&quot;)){
			szQuery.append(&quot;SELECT USERID, &quot;);
			szQuery.append(&quot;TO_CHAR(REG_DATE, &#039;YYYY-MM-DD hh24:mi:ss&#039;) REG_DATE,)&quot;;
			szQuery.append(&quot;PROJECT,FILENAME FROM CVS_COMMIT&quot;);
		}else{
			szQuery.append(&quot;SELECT DISTINCT FILENAME FROM CVS_COMMIT&quot;);
		}
		
		if(start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;end_date.equals(&quot;&quot;)){
			if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
				szQuery.append(&quot; where USERID=? AND PROJECT=?&quot;);
			}else if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;project.equals(&quot;All&quot;) ){
				szQuery.append(&quot; where USERID=?&quot;);
			}else if(user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
				szQuery.append(&quot; where PROJECT=?&quot;);
			}
		
			if(distinct.equals(&quot;0&quot;)){
				szQuery.append(&quot; order by REG_DATE&quot;);
			}
		}else{
			if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
				szQuery.append(&quot; where USERID=? AND PROJECT=?&quot;);
			}else if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;project.equals(&quot;All&quot;) ){
				szQuery.append(&quot; where USERID=?&quot;);
			}else if(user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
				szQuery.append(&quot; where PROJECT=?&quot;);
			}else{
					szQuery.append(&quot; where 1=1&quot;);
			}
			
			if(!start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;end_date.equals(&quot;&quot;)){
				szQuery.append(&quot; and REG_DATE BETWEEN ? AND SYSDATE&quot;);	
			}else if(!start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;!end_date.equals(&quot;&quot;)){
				szQuery.append(&quot; and TO_CHAR(reg_date, &#039;YYYY/MM/DDHH24:MI&#039;) &quot;);
				szQuery.append(&quot;BETWEEN ? AND ?&quot;);
			}
			
			if(distinct.equals(&quot;0&quot;)){
				szQuery.append(&quot; order by REG_DATE&quot;);	
			}
		}
	}else if (method.equals(&quot;&quot;)) {
			out.println(&quot;Unkwon method!!&quot;);
		return;
	}

	try {
     
        //1.드라이버선택
        Class.forName(&quot;oracle.jdbc.driver.OracleDriver&quot;);
        
        //2.db연결
        conn = DriverManager.getConnection(&quot;jdbc:oracle:thin:@&quot;
                     +ORA_IP+&quot;:1521:&quot;+ORA_SID, ORA_USER, ORA_PWD);
        
        //3.Statement객체및 쿼리생성
        pstmt = conn.prepareStatement(szQuery.toString());
        if(method.equals(&quot;GetCvs&quot;)){
        	if(start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;end_date.equals(&quot;&quot;)){
	        	if( !user_id.equals(&quot;All&quot;) &amp;amp;&amp;amp; !project.equals(&quot;All&quot;) ) {
		        	pstmt.setString(numIndex++,user_id);
		        	pstmt.setString(numIndex,project);
	        	} else if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;project.equals(&quot;All&quot;) ){
	        		pstmt.setString(numIndex,user_id);
	        	} else if(user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
	        		pstmt.setString(numIndex,project);
	        	} else{
	        		if(!start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;end_date.equals(&quot;&quot;)) {
	        			pstmt.setString(numIndex,start_date);
	        			} else if(!start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;!end_date.equals(&quot;&quot;)){
	        				pstmt.setString(numIndex++,start_date+&quot;00:00&quot;);
	        				pstmt.setString(numIndex,end_date+&quot;23:59&quot;);
	        			}
				}
        	}else{
        		if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
                	pstmt.setString(numIndex++,user_id);
                	pstmt.setString(numIndex++,project);
                	}else if(!user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;project.equals(&quot;All&quot;) ){
                		pstmt.setString(numIndex++,user_id);
                	}else if(user_id.equals(&quot;All&quot;)&amp;amp;&amp;amp;!project.equals(&quot;All&quot;) ){
                		pstmt.setString(numIndex++,project);
                	}
        		//
        		if(!start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;end_date.equals(&quot;&quot;)){
        			pstmt.setString(numIndex,start_date);
       			}else if(!start_date.equals(&quot;&quot;)&amp;amp;&amp;amp;!end_date.equals(&quot;&quot;)){
       				pstmt.setString(numIndex++,start_date+&quot;00:00&quot;);
       				pstmt.setString(numIndex,end_date+&quot;23:59&quot;);
       			}
	        }
        }
        
        //4.실행
        rs = pstmt.executeQuery();
        
        //5.처리
            // 헤더 
        rsmd = rs.getMetaData();
        nCol = rsmd.getColumnCount();
        strData = &quot;{\n\t\&quot;title\&quot;: \&quot;Feelring CVS Commit Log\&quot;,\n\t\&quot;item\&quot;: [\n\t\t&quot;;
            
            // 데이타
        while(rs.next())
        {
            strData += &quot;\t{\n\t\t&quot;;
        
            for(i=1; i&amp;lt;=nCol; i++)
            {
                strData += &quot;\&quot;&quot; + rsmd.getColumnName(i) 
                            + &quot;\&quot; : \&quot;&quot; + rs.getString(i) + &quot;\&quot;,&quot;;
            }
            strData = strData.substring(0, strData.length() -1 );
            
            strData += &quot;\n\t},\n&quot;;
            nRow++;
        }
        rs.close();
        
        strData = strData.substring(0, strData.length() -2 );
        strData += &quot;\t]\n}&quot;;
        
        out.println(strData);
        
        //6.연결해제
        pstmt.close();
        conn.close();
        
    } catch (Exception e) {
    
        if(rs!=null){ try{rs.close();}catch(SQLException se){} }
        if(pstmt!=null){ try{pstmt.close();}catch(SQLException se){} }
        if(conn != null){ try{conn.close();} catch(SQLException se){}} 
        out.println(e);
        
    }

%&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 999999999; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-news-widget&quot; style=&quot;width: 100%; text-align: center&quot;&gt;
		  					&lt;embed src=&quot;http://api.v.daum.net/static/recombox1.swf&quot; quality=&quot;high&quot; flashvars=&quot;nid=16400592&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;false&quot; bgcolor=&quot;#ffffff&quot; width=&quot;400&quot; height=&quot;80&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot;&gt;&lt;/embed&gt;
						&lt;/div&gt;&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/431&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>etc</category>
			<category>commit</category>
			<category>cvs</category>
			<category>date picker</category>
			<category>jQuery</category>
			<category>json</category>
			<category>oracle</category>
			<category>Shell</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/431</guid>
			<comments>http://newtype.pe.kr/431#entry431comment</comments>
			<pubDate>Wed, 04 May 2011 13:17:23 +0900</pubDate>
		</item>
		<item>
			<title>iPhone 4.3.1 완탈후 mobileterminal 설치 방법.</title>
			<link>http://newtype.pe.kr/430</link>
			<description>iPhone 4.3.1 완탈 후 몇몇 시디아 어플이 정상적으로 설치가 되지 않았다.&lt;br /&gt;
&lt;br /&gt;
iFile, SBSettings, mobileterminal 등이 설치를 하려면,&amp;nbsp;&lt;br /&gt;
다른 툴들과의 종속성 에러가 발생하는 것이다. ( DEPENDS xxxxx )&lt;br /&gt;
&lt;br /&gt;
Cydia / Manage / Sources 에서 불필요해 보이는 소스를 삭제하니 정상적으로 설치가 되었다.&lt;br /&gt;
소스 아이콘이 ?(물음표) 로 나오는 것 위주로 삭제하니 되었다.&lt;br /&gt;
&lt;br /&gt;
필요한 어플들을 설치 하기는 했는데,&amp;nbsp;&lt;br /&gt;
mobileterminal 을 실행하면 바로 죽어버린다.&lt;br /&gt;
&lt;br /&gt;
구글링을 해보니, 소스에 [ http://www.ijailbreak.com/repository/ ]를 추가하고,&lt;br /&gt;
시디아를 Refresh하면, upgrade를 진행한다.&lt;br /&gt;
&lt;br /&gt;
터미널을 띄우면 정삭으로 동작한다.&lt;br /&gt;
&lt;br /&gt;
[ 참조 ]&lt;br /&gt;
&lt;a href=&quot;http://www.ijailbreak.com/cydia/learn-how-to-install-mobileterminal-for-up-to-the-ios-4-3-1-firmware-mobileterminal-520-1/&quot;&gt;http://www.ijailbreak.com/cydia/learn-how-to-install-mobileterminal-for-up-to-the-ios-4-3-1-firmware-mobileterminal-520-1/&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ijailbreak.com/cydia/introducing-the-official-ijailbreak-repository/&quot;&gt;http://www.ijailbreak.com/cydia/introducing-the-official-ijailbreak-repository/&lt;br /&gt;
&lt;/a&gt;&lt;a href=&quot;http://tiny2n.tistory.com/80&quot;&gt;http://tiny2n.tistory.com/80&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 999999999; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/430&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>emb</category>
			<category>4.3.1</category>
			<category>mobileterminal</category>
			<category>sbsettings</category>
			<category>아이폰</category>
			<category>탈옥</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/430</guid>
			<comments>http://newtype.pe.kr/430#entry430comment</comments>
			<pubDate>Tue, 05 Apr 2011 17:38:42 +0900</pubDate>
		</item>
		<item>
			<title>S/W 구입..</title>
			<link>http://newtype.pe.kr/429</link>
			<description>처음으로 PC용 S/W 를 구입했다.&lt;br /&gt;
부끄러운 얘기지만, S/W 개발자 이면서도 처음이다.&lt;br /&gt;
&lt;br /&gt;&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/201C683D4D91E01E34B3CF&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/201C683D4D91E01E34B3CF&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;emeditor.png&quot; height=&quot;179&quot; width=&quot;470&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&amp;nbsp;&lt;br /&gt;
주인공은 EmEditor라는 놈으로, Windows용 Text이다.&lt;br /&gt;
태생이 일본산이라, 멀티바이트 문자를 완벽하게 지원한다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.emeditor.com/&quot;&gt;http://www.emeditor.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;지난 10여년간 써온 에디터 중에 가장 만족도가 높았고, 4-5년 정도 써온것 같다.&lt;br /&gt;
&lt;br /&gt;내가 느낀 장점을 나열하자면..&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; -. 이제까지 써본 Text Editor 중에 가장 완벽한 멀티바이트 문자 지원&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( 국산 Editor + 보다도 완벽하다 )&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; -. 대용량 파일 지원 (빠른 속도)&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; -. 강력한 메크로 지원&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; -. Column 블록 선택 기능 지원&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; -. 정규식 지원&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; -. 다양한 플러그 인&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
등이다. 4만원이 넘는 금액이었지만, 전혀 아깝지 않다. ^^&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/11136E3F4D91E1B4173D4A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/11136E3F4D91E1B4173D4A&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;emeditor.png&quot; height=&quot;381&quot; width=&quot;412&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;짜잔~!&lt;/div&gt;
&amp;nbsp;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/429&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>막글</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/429</guid>
			<comments>http://newtype.pe.kr/429#entry429comment</comments>
			<pubDate>Tue, 29 Mar 2011 22:49:43 +0900</pubDate>
		</item>
		<item>
			<title>내 인생을 하루로 계산 하면..</title>
			<link>http://newtype.pe.kr/428</link>
			<description>김난도 교수의 &quot;아프니까 청춘이다&quot; 라는 책에 보면 &quot;인생 시계&quot;라는 말이 나온다.&lt;br /&gt;
평균 수명 80살을 하루로 계산해서, &amp;nbsp;1년을 18분 쯤으로 계산 한 것인데..&lt;br /&gt;
&lt;br /&gt;
내 인생 나이는 얼마나 될까?&lt;br /&gt;
내 인생은 &lt;font class=&quot;Apple-style-span&quot; color=&quot;#174600&quot;&gt;오전 10시 43분&lt;/font&gt; 이란다.&lt;br /&gt;
&lt;br /&gt;
인생 시간을 계산 해보자.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://host.newtype.pe.kr/1day/&quot; target=&quot;_blank&quot; title=&quot;[http://host.newtype.pe.kr/1day/]로 이동합니다.&quot;&gt;http://host.newtype.pe.kr/1day/&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;p id=&quot;more428_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;428_0&#039;,&#039;소스 보기&#039;,&#039;소스 닫기&#039;); return false;&quot;&gt;소스 보기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content428_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;p style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; &quot;&gt;
&lt;pre class=&quot;brush: javascript; html-script: true&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&amp;gt;
    &amp;lt;title&amp;gt;
    	인생을 하루로 계산하면...
    &amp;lt;/title&amp;gt;
    &amp;lt;script src=&quot;../lib/jquery.js&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script src=&quot;../lib/common.js&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script&amp;gt;
        $(document).ready(function(){
			function d2d(d) {
				var g=80*365/(24*60);
				var h=Math.floor(d/g/60);
				var m=Math.ceil((d/g)-(h*60));
				var am;
				if(m==60) {h++; m=0;}
				m=(m==0)?&quot;정각&quot;:(m+&quot;분&quot;);
				am=(h&amp;lt;12)?&quot;오전 &quot;:&quot;오후 &quot;;
				h=(h&amp;gt;12)?(h-12):h;
				$(&quot;#result&quot;).html(&quot;당신의 인생 시간은 &amp;lt;span class=&#039;dt&#039;&amp;gt;&quot;
					+am+h+&quot;시 &quot;+m+&quot;&amp;lt;/span&amp;gt; 입니다.&quot;);
			}

			function doDay() {
				var y=$(&quot;#year&quot;).attr(&quot;value&quot;);
				var m=$(&quot;#month&quot;).attr(&quot;value&quot;);
				var d=$(&quot;#day&quot;).attr(&quot;value&quot;);
				
				if(y&amp;lt;1800){$(&quot;#result&quot;).text(&quot;태어난 해가 올바르지 않습니다.&quot;); return;}
				if(m&amp;lt;1||m&amp;gt;12)
					{$(&quot;#result&quot;).text(&quot;태어난 달이 올바르지 않습니다.&quot;); return;}
				if(d&amp;lt;1||d&amp;gt;31)
					{$(&quot;#result&quot;).text(&quot;태어난 날이 올바르지 않습니다.&quot;); return;}

				var b=new Date(y,m-1,d);
				var t=new Date();
				var diff=Math.ceil((t.getTime()-b.getTime())/1000/60/60/24);

				if(diff&amp;gt;(80*365)){$(&quot;#result&quot;).text(&quot;다음 생을 기약해요...&quot;); return;}
				d2d(diff);
			}
		
			$(&quot;input[type=button]&quot;).click(doDay);
			$(&quot;input[type=text]&quot;).keyup(function(e){
				if(e.keyCode==13) doDay();
			});
		});
    &amp;lt;/script&amp;gt;
    &amp;lt;style type=&quot;text/css&quot;&amp;gt;
         * { font-family:돋움 }
		.dt { font-weight:bold; font-color=blue }
		.cp { font-size:9pt; color=gray }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;h2&amp;gt;인생을 하루로 표현 하면..&amp;lt;/h2&amp;gt;
	&amp;lt;p&amp;gt;
	    생일을 입력하세요 : &amp;lt;input type=&quot;text&quot; id=&quot;year&quot; size=4 /&amp;gt;년 
		&amp;lt;input type=&quot;text&quot; id=&quot;month&quot; size=2 /&amp;gt;월
		&amp;lt;input type=&quot;text&quot; id=&quot;day&quot; size=2 /&amp;gt;일 생입니다. 
	    &amp;lt;input type=&quot;button&quot; value=&quot;계산&quot;/&amp;gt;
	&amp;lt;/p&amp;gt;
	&amp;lt;span id=&quot;result&quot;&amp;gt;&amp;lt;/span&amp;gt;
	&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
	&amp;lt;span class=&quot;cp&quot;&amp;gt;by &amp;lt;a href=&quot;http://newtype.pe.kr&quot;&amp;gt;newtype&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&lt;/pre&gt;
&lt;/p&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
jQuery를 이용했고, &lt;br /&gt;
테스트를 해보니, 약간의 오차가 있는 듯 하다.&lt;br /&gt;
&amp;nbsp;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/428&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>www</category>
			<category>jQuery</category>
			<category>인생시간</category>
			<category>인생시계</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/428</guid>
			<comments>http://newtype.pe.kr/428#entry428comment</comments>
			<pubDate>Tue, 22 Mar 2011 09:29:44 +0900</pubDate>
		</item>
		<item>
			<title>allow_url_fopen off 일때, proxy 구현 방법.</title>
			<link>http://newtype.pe.kr/427</link>
			<description>jQuery에 관심이 생기면서, javascript 만으로 RSS 리더기를 만들어 보기로 했다.&lt;br /&gt;
jQuery가 워낙에 많은 Plugin들을 지원하고 있어서, rss Parser도 금방 찾을 수 있었다.&lt;br /&gt;
&lt;a href=&quot;http://hovinne.com/articles/jfeed-jquery-rss-atom-feed-parser-plugin&quot; target=&quot;_blank&quot; title=&quot;[http://hovinne.com/articles/jfeed-jquery-rss-atom-feed-parser-plugin]로 이동합니다.&quot;&gt;jFeed&lt;/a&gt; 라는 것인데, 소스도 간단하고.. 복잡한 기능이 필요없는 용도로는 적당했다.&lt;br /&gt;
&lt;br /&gt;
그런데, 예상치도 못한 문제가 있었다.&lt;br /&gt;
Ajax에서 다른 도메인의 페이지를 읽기 위해 proxy를 구현 해야 하는데..&lt;br /&gt;
셈플 소스에 포함된 것이 정상적으로 동작하지 않는 것이다.&lt;br /&gt;
&lt;br /&gt;
셈플 소스에 포함된 코드는 아래와 같다.&lt;br /&gt;
&lt;pre class=&quot;brush: php&quot;&gt;&amp;lt;?php
header(&#039;Content-type: application/xml&#039;);
$handle = fopen($_REQUEST[&#039;url&#039;], &quot;r&quot;);

if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
원인은 호스팅을 받고 있는 &lt;a href=&quot;http://www.cafe24.com/&quot; target=&quot;_blank&quot; title=&quot;[http://www.cafe24.com/]로 이동합니다.&quot;&gt;cafe24&lt;/a&gt; 에서는 보안상의 이유로 php.ini 파일에서&amp;nbsp;fopen 함수의 사용을 막아 놓은 것이다.&lt;br /&gt;
&lt;br /&gt;
&lt;p style=&quot;margin:0&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/206F563D4D82BE33192580&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/206F563D4D82BE33192580&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;img.PNG&quot; height=&quot;175&quot; width=&quot;570&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
업체에서 제안하는 방법은,&amp;nbsp;fsockopen 이용하는 방법으로 셈플 소스는 아래와 같다.&lt;br /&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
function get_url_fsockopen( $url ) {
	$URL_parsed = parse_url($url);

	$host = $URL_parsed[&quot;host&quot;];
	$port = $URL_parsed[&quot;port&quot;];
	if ($port==0)
		$port = 80;

	$path = $URL_parsed[&quot;path&quot;];
	if ($URL_parsed[&quot;query&quot;] != &quot;&quot;)
		$path .= &quot;?&quot;.$URL_parsed[&quot;query&quot;];

	$out = &quot;GET $path HTTP/1.0\r\nHost: $host\r\n\r\n&quot;;

	$fp = fsockopen($host, $port, $errno, $errstr, 30);

	if (!$fp) {
		echo &quot;$errstr ($errno)&amp;lt;br&amp;gt;\n&quot;;
	} else {
		fputs($fp, $out);
		$body = false;
		while (!feof($fp)) {
			$s = fgets($fp, 128);
			if ( $body )
			$in .= $s;
			if ( $s == &quot;\r\n&quot; )
			$body = true;
		}

		fclose($fp);
		echo $in;
	}
}
&lt;/pre&gt;
&lt;br /&gt;
하지만, &amp;nbsp;이방법도.. connection, write는 성공하지만, read 부분에서 데이터를 가져오질 못했다.&lt;br /&gt;
업체 문의 결과, www 폴더안에 &quot;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193DA9&quot;&gt;.htaccess&lt;/font&gt;&quot; 파일을 만들고 파일 내용으로,&amp;nbsp;&lt;br /&gt;
&lt;pre class=&quot;brush: text; toolbar: false; gutter: false&quot;&gt;
php_flag allow_url_fopen 1
&lt;/pre&gt;
&lt;br /&gt;
를 넣어 주면 된다고 한다. 단, 취약점을 통한 보안적 위험에 대한 책임을 보장할 수 없단다.&lt;br /&gt;
왠지 찝찝하다.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
좀 더 뒤져보니, &lt;a href=&quot;http://kr2.php.net/manual/en/book.curl.php&quot; target=&quot;_blank&quot; title=&quot;[http://kr2.php.net/manual/en/book.curl.php]로 이동합니다.&quot;&gt;curl&lt;/a&gt; 이란 php 라이브러리가 있다. 이넘이 물건이다. 좀 잡다한 기능들이 많아 무거워 보이긴 한데.. 일단 동작은 잘 된다.&lt;br /&gt;
&lt;br /&gt;
curl 라이브러리를 이용한 소스는 아래와 같다.&lt;br /&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
&amp;lt;?php

function get_url_content($url) {

	$ch = curl_init();

	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch, CURLOPT_HEADER, true);
   
	$html = curl_exec($ch);  
	$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
  
  	$inc=1;
	while ($http_code == 301 || $http_code == 302)
	{
		$header = curl_getinfo($ch, CURLINFO_HEADER_OUT);
		curl_close($ch);

		list($header, $html) = explode(&quot;\n\n&quot;, $html, 2);
		preg_match(&#039;/Location: (.*?)\n/&#039;, $header, $matches);
		$url = $matches[1];
		if (strlen(trim($url)) &amp;lt;= 0 )
			return &quot;[&quot;.$http_code.&quot;] forwarding error, not found url.&amp;lt;br/&amp;gt;&quot;;

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,$url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$html = curl_exec($ch);
		$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

		if ( $inc++ &amp;gt; 5 ) {
			curl_close($ch);
			return &quot;to many forwarding...&amp;lt;br/&amp;gt;&quot;;
		}
	}

	curl_close($ch);

	return substr($html, strpos($html, &#039;&amp;lt;?xml&#039;));;
}

echo get_url_content( $_REQUEST[&#039;url&#039;] );

?&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
소스의 기능은 아래와 같다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;1. HTTP CODE가 301, 302의 Forwarding 관련된 것이면 해당 URL로 이동.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;:&amp;nbsp;CURLOPT_HEADER 옵션, while문 안의 해더 파싱 부분.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;2. Forwaring이 5번 이상이면, 에러 처리.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: while문 안의 if문&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;3. HTTP 해더 부분 제거.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: return 전의 substr 구문. rss 리더를 위한 proxy 이므로 필요 하다.&lt;br /&gt;
&lt;br /&gt;
마지막 소스를 이용해 proxy 문제를 해결 했다.
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 1e+009; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/427&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>www</category>
			<category>allow_url_fopen</category>
			<category>curl</category>
			<category>jQuery</category>
			<category>php</category>
			<category>proxy</category>
			<category>RSS</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/427</guid>
			<comments>http://newtype.pe.kr/427#entry427comment</comments>
			<pubDate>Fri, 18 Mar 2011 14:33:29 +0900</pubDate>
		</item>
		<item>
			<title>JQuery를 이용한 둥근 테두리 테이블 만들기</title>
			<link>http://newtype.pe.kr/426</link>
			<description>&lt;div&gt;
&lt;a href=&quot;http://webnoon.net/entry/%ED%85%8C%EB%91%90%EB%A6%AC%EA%B0%80-%EB%91%A5%EA%B7%BC-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot; target=&quot;_blank&quot; title=&quot;[http://webnoon.net/entry/%ED%85%8C%EB%91%90%EB%A6%AC%EA%B0%80-%EB%91%A5%EA%B7%BC-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%A7%8C%EB%93%A4%EA%B8%B0]로 이동합니다.&quot;&gt;웹눈 님의 Round Table 소스&lt;/a&gt;를 JQuery를 이용하는 소스로 수정해봤습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
JQuery를 요 몇일 보고 있는데, 재미있네요..&lt;/div&gt;
&lt;div&gt;
이제 막 시작한 단계로 더 깔끔하게 다듬을 수 있을 것도 같은데..&lt;/div&gt;
&lt;div&gt;
아직은 내공이 부족하네요.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
좋은 방법 있으면 공유 해주시면 고맙겠습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;pre class=&quot;brush: jscript; auto-links: false; html-script: true;&quot;&gt;
&amp;lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
function roundTable(objID) {
	var $obj = $(&quot;table#&quot; + objID);
	var s, r;
	var y, x, MAX;
	var w, h;

	r = parseInt($obj.attr(&#039;radius&#039;));
	if (r == null || r &amp;lt; 1) r = 1;
	else if (r &amp;gt; 6) r = 6;

	MAX = r * 2 + 1;

	$obj.before(&quot;&amp;lt;TABLE id=&#039;tmpRoundTbl&#039;&amp;gt;&amp;lt;/TABLE&amp;gt;&quot;)
	$(&quot;table#tmpRoundTbl&quot;)
		.attr(&quot;cellSpacing&quot;, 0)
		.attr(&quot;cellPadding&quot;, 0)
		.append(&quot;&amp;lt;TBODY&amp;gt;&amp;lt;/TBODY&amp;gt;&quot;);

	for (y=0; y &amp;lt; MAX; y++) {
		$(&quot;table#tmpRoundTbl TBODY&quot;).append(&quot;&amp;lt;TR&amp;gt;&amp;lt;/TR&quot;);
		s = Math.abs(y - parseInt(r));
		for (x=0; x &amp;lt; MAX; x++) {
			
			$(&quot;table#tmpRoundTbl TBODY TR:eq(&quot;+y+&quot;)&quot;)
				.append(&quot;&amp;lt;TD&amp;gt;&amp;lt;/TD&amp;gt;&quot;);

			w = &#039;1px&#039;; h = &#039;1px&#039;;
			if (x == 0 || x == MAX - 1) h = null;
			else if (y == 0 || y == MAX - 1) w = null;
			else if (r &amp;gt; 2) {
				if (Math.abs(x - r) == 1) w = &#039;2px&#039;;
				if (Math.abs(y - r) == 1) h = &#039;2px&#039;;
			}

			if (w != null) 
				$(&quot;table#tmpRoundTbl TBODY TR:eq(&quot;+y+&quot;) TD:eq(&quot;+x+&quot;)&quot;)
					.css(&quot;width&quot;, w);
			if (h != null) 
				$(&quot;table#tmpRoundTbl TBODY TR:eq(&quot;+y+&quot;) TD:eq(&quot;+x+&quot;)&quot;)
					.css(&quot;height&quot;, h);

			if (s == x || s == MAX - x - 1) 
				$(&quot;table#tmpRoundTbl TBODY TR:eq(&quot;+y+&quot;) TD:eq(&quot;+x+&quot;)&quot;)
					.css(&quot;backgroundColor&quot;, $obj.attr(&#039;rborder&#039;) );
			else if (x &amp;gt; s &amp;amp;&amp;amp; s &amp;lt; MAX - x - 1) 
				$(&quot;table#tmpRoundTbl TBODY TR:eq(&quot;+y+&quot;) TD:eq(&quot;+x+&quot;)&quot;)
					.css(&quot;backgroundColor&quot;, $obj.attr(&#039;rbgcolor&#039;) );
		}
	}

	$(&quot;table#tmpRoundTbl TBODY TR:eq(&quot;+s+&quot;) TD:eq(&quot;+r+&quot;)&quot;).append( $obj );
}
&amp;lt;/script&amp;gt;


&amp;lt;table id=&quot;ta&quot; width=&quot;300&quot; height=&quot;100&quot; border=&quot;0&quot; 
    radius=&quot;3&quot; rborder=&quot;#999999&quot; rbgcolor=&quot;#F8F8F8&quot;&amp;gt;
&amp;lt;tbody&amp;gt;&amp;lt;tr&amp;gt;
&amp;lt;td valign=&quot;top&quot;&amp;gt;테스트입니다&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;
&amp;lt;span&amp;gt;
&amp;lt;script&amp;gt;roundTable(&quot;ta&quot;);&amp;lt;/script&amp;gt;
&amp;lt;/span&amp;gt;

&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: 굴림; font-size: 9pt; line-height: 1.5; &quot;&gt;
&lt;b&gt;[ 참고 ]&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: 굴림; font-size: 9pt; line-height: 1.5; &quot;&gt;
&lt;a href=&quot;http://webnoon.net/entry/%ED%85%8C%EB%91%90%EB%A6%AC%EA%B0%80-%EB%91%A5%EA%B7%BC-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot; target=&quot;_blank&quot; title=&quot;[http://webnoon.net/entry/%ED%85%8C%EB%91%90%EB%A6%AC%EA%B0%80-%EB%91%A5%EA%B7%BC-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%A7%8C%EB%93%A4%EA%B8%B0]로 이동합니다.&quot;&gt;Javascript로 테두리가 둥근 테이블 만들기&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: 굴림; font-size: 9pt; line-height: 1.5; &quot;&gt;
&lt;a href=&quot;http://www.taeyo.pe.kr/Columns/List.aspx?SEQ=29&amp;amp;IDX=0&quot; target=&quot;_blank&quot; title=&quot;[http://www.taeyo.pe.kr/Columns/List.aspx?SEQ=29&amp;amp;IDX=0]로 이동합니다.&quot;&gt;TAEYO.NET의 JQuery 강좌&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: 굴림; font-size: 9pt; line-height: 1.5; &quot;&gt;
&lt;a href=&quot;http://jquery.com/&quot; target=&quot;_blank&quot; title=&quot;[http://jquery.com/]로 이동합니다.&quot;&gt;jquery.com&lt;/a&gt;&lt;/div&gt;
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 1e+009; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;
&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/426&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>www</category>
			<category>JavaScript</category>
			<category>jQuery</category>
			<category>round</category>
			<category>TABLE</category>
			<category>둥근 테두리</category>
			<category>테이블</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/426</guid>
			<comments>http://newtype.pe.kr/426#entry426comment</comments>
			<pubDate>Tue, 01 Feb 2011 14:30:02 +0900</pubDate>
		</item>
		<item>
			<title>새해 복 많이 받으세요.</title>
			<link>http://newtype.pe.kr/425</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/136FAB554D215D3B17539A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/136FAB554D215D3B17539A&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;신묘년.jpg&quot; height=&quot;476&quot; width=&quot;570&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;2011년 새해가 밝았습니다.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;b&gt;올 한 해도 좋은일만 생기고,&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;b&gt;늘 웃을 수 있는 한해가 되었으면 좋겠습니다.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;b&gt;돈 많이 버시고, 새해 복 많이 받으세요.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div id=&quot;__KO_DIC_LAYER__&quot; style=&quot;padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; position: fixed; z-index: 1e+009; overflow-x: hidden; overflow-y: hidden; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(51, 51, 119); border-right-color: rgb(51, 51, 119); border-bottom-color: rgb(51, 51, 119); border-left-color: rgb(51, 51, 119); display: none; &quot;&gt;&lt;iframe frameborder=&quot;0&quot; scrolling=&quot;yes&quot; style=&quot;width: 100%; height: 100%; background-color: rgb(255, 255, 255); &quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;[ 이미지 출처 ]&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blog.naver.com/PostView.nhn?blogId=year0321&amp;amp;logNo=150098874487&quot;&gt;http://blog.naver.com/PostView.nhn?blogId=year0321&amp;amp;logNo=150098874487&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;tt-plugin ttShareEntryWithSNS tt-sns-icon-alignment-left tt-sns-icon-size-small&quot;&gt;
	&lt;button class=&quot;ttShareEntryWithYozm&quot; id=&quot;ttServiceYozm_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;yozm&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;요즘에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithTwitter&quot; id=&quot;ttServiceTwitter_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;twitter&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;트위터에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithFacebook&quot; id=&quot;ttServiceFacebook_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;facebook&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;페이스북에 보내기&lt;/span&gt;&lt;/button&gt;&lt;button
	class=&quot;ttShareEntryWithMe2day&quot; id=&quot;ttServiceMe2day_&quot; onclick=&quot;ShareEntryWithSNS.share(&#039;me2day&#039;, &#039;&#039;, &#039;&#039;);&quot;&gt;&lt;span&gt;미투데이에 보내기&lt;/span&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align:left; padding-top:10px;&quot;&gt;
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=newtype.pe.kr/425&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=310&amp;amp;action=like&amp;amp;font=tahoma&amp;amp;colorscheme=light&amp;amp;height=65&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;border:none; overflow:hidden; width:310px; height:65px;&quot; allowTransparency=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</description>
			<category>막글</category>
			<author>newtype</author>
			<guid>http://newtype.pe.kr/425</guid>
			<comments>http://newtype.pe.kr/425#entry425comment</comments>
			<pubDate>Mon, 03 Jan 2011 14:25:35 +0900</pubDate>
		</item>
	</channel>
</rss>

