<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>gwangyi&#039;s Factory</title>
		<link>http://blog.gwangyi.kr/</link>
		<description>gwangyi, Chris, 성광의 블로그.
잡다한 프로그래밍, 크래킹 관련 내용이 올라올 모양</description>
		<language>ko</language>
		<pubDate>Wed, 17 Aug 2011 06:19:11 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<item>
			<title>POVIS 자동화 라이브러리</title>
			<link>http://blog.gwangyi.kr/entry/POVIS-%EC%9E%90%EB%8F%99%ED%99%94-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC</link>
			<description>&lt;p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
오래간만의 포스팅은 Povis 자동화 라이브러리이다.&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;이전에도 올렸었던 것 같기도 한데, 이번에 추가된 내용은 식단표를 읽어오는 내용이다.&lt;/p&gt;
&lt;p&gt;포비스 시스템 자체가 약간 병맛나서 익스 6.0, 7.0으로밖에 들어갈 수 없기도 하지만, 더해서 올라오는 식단표도 어딘가에서 재사용하기 구려서 파싱하는 프로그램을 만들었다.&lt;/p&gt;
&lt;p&gt;당연히 POVIS에 접속해야하므로 아이디와 비번이 있어야 긁어올 수 있다.&lt;/p&gt;
&lt;p&gt;루비로 되어 있고, nokogiri와 net/http, open-uri 라이브러리를 필요로 한다.&lt;/p&gt;
&lt;p&gt;아... 저 세개가 다 내 던파 캐릭 이름이군ㅋ&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile25.uf@162BDC114CAC8CEB014585.rb&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; Povis.rb&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-65-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-65-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-65-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=10169423&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Ruby</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/65</guid>
			<comments>http://blog.gwangyi.kr/entry/POVIS-%EC%9E%90%EB%8F%99%ED%99%94-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC#entry65comment</comments>
			<pubDate>Wed, 06 Oct 2010 23:52:03 +0900</pubDate>
		</item>
		<item>
			<title>NateOff - NoAd NateOn Patch for NateOn 4.0.10.4 (1481)</title>
			<link>http://blog.gwangyi.kr/entry/NateOff-NoAd-NateOn-Patch-for-NateOn-40104-1481</link>
			<description>&lt;p&gt;6월 29일 수정: 첨부파일을 잘못했다. 제대로 된 것을 첨부한다.&lt;/p&gt;
&lt;p&gt;네이트온이 또 패치가 되었다. 이번에 보니까 핫클립이나 메인 둘 다 안보게 하는 옵션이 생겨서, 예전에 가장 큰 문제가 해결되어 기존의 패치에서 되던 부분을 그대로 다시 적용시켜 새 패치를 만들었다.&lt;/p&gt;
&lt;p&gt;그리고 학교 네트웍 사정으로 인해 80번 포트가 막혀 자동으로 패치파일을 못 읽어오던 문제가 있었다. 그래서 약간 수정된 NateOff 파일을 다시 첨부한다.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile4.uf@15303D144C28D338992C4E.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; NateOff.zip&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-63-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-63-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-63-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=7605502&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>크래킹, 크랙미</category>
			<category>NateOff</category>
			<category>ruby</category>
			<category>광고제거</category>
			<category>광고제거 패치</category>
			<category>네이트온</category>
			<category>네이트온 광고제거</category>
			<category>네이트온 광고제거 패치</category>
			<category>패치</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/63</guid>
			<comments>http://blog.gwangyi.kr/entry/NateOff-NoAd-NateOn-Patch-for-NateOn-40104-1481#entry63comment</comments>
			<pubDate>Thu, 17 Jun 2010 22:34:42 +0900</pubDate>
		</item>
		<item>
			<title>Fortune Delivery</title>
			<link>http://blog.gwangyi.kr/entry/Fortune-Delivery</link>
			<description>&lt;p&gt;내가 다니는 학교 POSTECH은 기숙사 학교기 때문에, 배달 음식을 시켜먹는 일이 잦다.&lt;br /&gt;
근데 요즘 돈도 없었고 먹을 일도 잘 없어 배달음식을 자주 안시켜먹었더니, 뭐가 맛있고 뭐가 괜찮은지 모르는 상황에 이르렀다.&lt;br /&gt;
그래서 랜덤으로 배달메뉴를 고르는 프로그램을 만들어야겠다는 결론에 도달했다.&lt;/p&gt;
&lt;p&gt;루비로 짰는데, CGI로 짤려고 했더니 매번 호출때마다 파싱해 오는게 너무 느려서 standalone web server로 만들었다.&lt;/p&gt;
&lt;p&gt;웹서버 코드는 웹서핑 해서 나온 코드를 대충 때려박아 넣었다.&lt;/p&gt;
&lt;p&gt;핵심인 배달업체 페이지 분석에서 학교 홈페이지가 공개되면 여러모로 곤란해질듯 하여 그 부분은 X로 마스킹 했으니, 그냥 켜면 절대 돌아가지 않는다.&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile24.uf@151380184C19972A434527.rb&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; delivery.rb&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile22.uf@1875DE244C1996E056A46D.rb&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; fortune_delivery.rb&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-62-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-62-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-62-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=7595082&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Ruby</category>
			<category>hpricot</category>
			<category>html 파서</category>
			<category>open-uri</category>
			<category>ruby</category>
			<category>SOCKET</category>
			<category>web server</category>
			<category>배달업체</category>
			<category>소켓</category>
			<category>웹서버</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/62</guid>
			<comments>http://blog.gwangyi.kr/entry/Fortune-Delivery#entry62comment</comments>
			<pubDate>Thu, 17 Jun 2010 12:32:21 +0900</pubDate>
		</item>
		<item>
			<title>NateOff - NoAd NateOn Patcher</title>
			<link>http://blog.gwangyi.kr/entry/NateOff-NoAd-NateOn-Patcher</link>
			<description>&lt;p&gt;NateOff만 세개라 좀 찔린다 -_-;;&lt;/p&gt;
&lt;p&gt;이번에 수정한건, 처음 네이트온 뜰 때 핫클립이나 네이트온 메인이 뜨는 부분을 없앴다. stdcall이라 add esp, xxx 로 덮어써줬는데 정확하게 바이트수가 맞아들어가 기분이 좋았다.&lt;/p&gt;
&lt;p&gt;두 부분만 바이트패치 되어 있기 때문에, NateOnMain.exe에 이상한 것이 들어있거나 하진 않다.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile23.uf@113EF61D4BF68A3209816D.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; NateOff.zip&lt;/a&gt;&lt;/div&gt;더해서, 패치 프로그램이 좀 더 좋아졌다. 압축을 풀고 NateOff.exe를 실행시키고 모두 패치를 눌러주면 된다. 패치가 되지 않는 경우, 패치되지 않는 파일을 선택하고 복원한 다음 패치하면 패치가 된다.&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-61-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-61-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-61-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=7131310&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>크래킹, 크랙미</category>
			<category>NateOff</category>
			<category>nateon</category>
			<category>광고제거</category>
			<category>광고제거 패치</category>
			<category>네이트온 광고제거 패치</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/61</guid>
			<comments>http://blog.gwangyi.kr/entry/NateOff-NoAd-NateOn-Patcher#entry61comment</comments>
			<pubDate>Fri, 21 May 2010 22:28:26 +0900</pubDate>
		</item>
		<item>
			<title>AD-free NateOn Patcher, NateOff</title>
			<link>http://blog.gwangyi.kr/entry/AD-free-NateOn-Patcher-NateOff</link>
			<description>&lt;p&gt;이전에 만들었던걸 좀 더 개량했다. 광고를 받아다 보여주는 것으로 보이는 함수 (00577F40)의 시작을 RETN으로 덮어쓰고, 리소스를 편집해 상단부 뉴스티커가 아예 애초부터 안보이게 고쳤다. 덤으로 채팅창의 광고도 제거했다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p id=&quot;more60_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;60_0&#039;,&#039;과정 보기&#039;,&#039;접기&#039;); return false;&quot;&gt;과정 보기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content60_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;p&gt;일단, 광고 창의 class를 spy++ 등으로 보면 #30770으로 다이얼로그인 것을 확인할 수 있다. 다이얼로그를 생성하는 API함수는 CreateDialogParam이나 CreateDialogIndirectParam, DialogBoxParam 등이 있는데, DialogBox... 는 Modal 다이얼로그를 생성하지만 광고창은 실제로 떠 있는 동안 다른 창을 선택할 수 있는 Non-modal이다. 따라서 USER32.DLL 모듈에서 CreateDialogParam, CreateDialogIndirectParam을 찾아 브레이크를 걸어준다. 물론, 이 두 함수 모두 스트링을 다루기 때문에 A/W가 붙은 변종들이 있다. XP 이상에서는 A류는 W를 부르는 래퍼일 뿐이므로 W에만 걸어도 무방하다.&lt;/p&gt;
&lt;p&gt;그 다음 적당히 실행시켜보면서, 몇 번째 호출때 광고창이 생성되는지 본다. 횟수를 확인한 후에는 광고 창을 만드는 CreateDialogIndirectParam(해 보면 CreateDialogParam은 호출되지 않음을 알 수 있다)을 실행하기 전에, 이 함수를 호출한 Caller들을 Calling Stack을 확인해서 하나씩 브레이크를 걸어본다.&lt;/p&gt;
&lt;p&gt;함수의 calling convention에 따라서 stdcall인지 cdecl인지에 맞게 함수 호출를 무시하고 지나가보면, 적당한 위치에서 죽지 않고 무사히 실행되는 부분을 확인할 수 있다. 현재 네이트온(버전 4.0.10.4 (1481))에서는 그 위치가 00671d08이다.&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/1841C2024BF3ED77093C14&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile24.uf.tistory.com/image/1841C2024BF3ED77093C14&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;call.png&quot; height=&quot;416&quot; width=&quot;710&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;잘 보면, CALL 뒤에 스택을 정리하는 부분이 보인다. 따라서 저 함수는 cdecl이고, 함수의 리턴 방법은 RETN 명령으로 바로 리턴하는 것이다.&lt;/p&gt;
&lt;p&gt;RETN은 기계어로 C3이므로, 함수 호출을 따라 가서 00577F40을 C3으로, 명령이 2byte였으니까 다음을 90으로 넣어주면 함수가 완전히 무시된다. 그러고 실행시켜보면 켜자마자 뜨는 광고가 사라진다! 만세ㅋ&lt;/p&gt;
&lt;p&gt;그 외의 광고 제거는 리소스 해커 등의 툴을 이용해서 132번과 163번 다이얼로그의 전광판, 광고티커에 주어진 스타일 중 WS_VISIBLE 을 빼면 된다.&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;압축을 푼 다음, nateoff.bat 을 실행시키면 패치가 진행된다. 이전에 네이트온을 종료시켜주는건 센스.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile30.uf@15752C054BF3FE6327A1A6.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; nateoff.zip&lt;/a&gt;&lt;/div&gt;참고: 현재 지원하는 패치 버전은 최소 4.0.10.4 (1481)버전이다. 도움말-&amp;gt;네이트온 정보 를 눌러서 확인해보면 된다. 이 글을 쓰는 현재 시점에서 최신버전이므로, 최신버전으로 업데이트하면 될 것이다.
&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-60-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-60-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-60-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=7105922&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>크래킹, 크랙미</category>
			<category>Crack</category>
			<category>NateOff</category>
			<category>nateon</category>
			<category>광고</category>
			<category>광고제거</category>
			<category>네이트온 광고제거</category>
			<category>네이트온 광고제거 패치</category>
			<category>해킹</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/60</guid>
			<comments>http://blog.gwangyi.kr/entry/AD-free-NateOn-Patcher-NateOff#entry60comment</comments>
			<pubDate>Wed, 19 May 2010 23:22:42 +0900</pubDate>
		</item>
		<item>
			<title>AD free NateOn</title>
			<link>http://blog.gwangyi.kr/entry/AD-free-NateOn</link>
			<description>&lt;p&gt;넷북을 쓰다 보면, 무선 연결이 불안정할 때가 많아 수시로 끊어진다. 그 자체는 문제가 아닌데, 그러다 보면 메신저들이 신나게 재접을 해대는 상황이 벌어지기 마련이다. 이 때 문제가 되는 것이, 네이트온의 경우 쓸데없는 광고가 뜬다는 것이다.&lt;/p&gt;
&lt;p&gt;이 쓸데 없는 광고는 얼마나 쓸 데가 없냐면, 광고가 떠도 앞에 안 나오고 뒤에 숨어 있다가 네이트온 쪽지가 와서 보려고 쪽지창을 클릭할 때 광속의 속도로 전면으로 튀어나와서는 대신 클릭당한다. 그러면 Internet Explorer가-심지어 기본 브라우저를 딴 것으로 바꾸어두어도!-뜨면서 그게 완전히 뜨기까지 네이트온은 먹통이 되고, 그게 뜬 뒤에도 한동안 버벅거리는 것은 상당한 짜증을 동반시킨다.&lt;/p&gt;
&lt;p&gt;그래서 나는 광고를 없애버리기로 다짐했다. 하는 김에 네이트온 접속 후의 스킨을 수정해서 광고를 떼보았다. 요놈도 상당히 자리를 차지해 넷북으로썬 상당히 귀찮다.&lt;/p&gt;
&lt;p&gt;이것도 저것도 모르겠다, 하는 사람은 첨부된 파일을 받아다 적당히 풀면 되겠다. xml파일은 C:\Program Files\NATEON\Skins\DefSkin 에, exe파일은 C:\Program Files\NATEON\BIN에 넣으면 된다.&lt;/p&gt;
&lt;p&gt;수정한 부분은 xml 파일에서는 아랫쪽에 주석처리된 부분 밑의 tr 태그를 죄다 지웠다. 그러고 나니까 별로 안예뻐서 miniview 들어가 있는 행과 그 아래 행은 살려뒀더니 원래부터 광고가 없었던 것 마냥 이뻐졌다ㅋ&lt;/p&gt;
&lt;p&gt;exe파일에서는 &#039;아마도&#039; 광고 관련 처리하는 루틴을 전부 NOP으로 때워넣었는데, 위치가 0271d08부터 약 32byte 정도 된다. add esp, 24h 까지 덮으면 된다.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile22.uf@141F19184BF238349D5323.xml&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; main_view.xml&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile8.uf@16216B184BF23886C114E9.exe&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/exe.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; NateOnMain.exe&lt;/a&gt;&lt;/div&gt;첨언: 찾아보니까 이미 한 사람이 많다...-_-;&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-59-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-59-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-59-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=7083309&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>크래킹, 크랙미</category>
			<category>AD</category>
			<category>Crack</category>
			<category>nateon</category>
			<category>광고</category>
			<category>광고제거</category>
			<category>네이트온</category>
			<category>네이트온 광고제거</category>
			<category>네이트온 광고제거 패치</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/59</guid>
			<comments>http://blog.gwangyi.kr/entry/AD-free-NateOn#entry59comment</comments>
			<pubDate>Tue, 18 May 2010 15:56:42 +0900</pubDate>
		</item>
		<item>
			<title>C로 CGI를 만들어 보아요</title>
			<link>http://blog.gwangyi.kr/entry/C%EB%A1%9C-CGI%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4-%EB%B3%B4%EC%95%84%EC%9A%94</link>
			<description>&lt;p&gt;요즘은 인터넷 홍수 시대라고 해도 과언이 아닐 정도로 엄청난 양의 정보들이 인터넷을 통해 유통되고 있다. 최초의 인터넷(정확히는 www:World Wide Web)은 단순히 발행된 정보를 독자에게 전해주는 단방향 커뮤니케이션이었지만, CGI라고 하는 요술방망이가 등장한 이후 사용자가 서버에게 단순히 요청만 하는 것이 아니라 정보를 제공해주고 그 제공된 정보를 서버가 다시 처리해 돌려주는 신비한 일도 발생하기 시작했다.&lt;/p&gt;
&lt;p&gt;지금이야 php다, RoR이다, django다 하는 더 이상한 놈들에게 자리를 빼앗기거나 대체, 또는 그것들을 위한 단순한 backend 수준으로 그 위상이 격하된 CGI이지만 처음 나왔을 때는 상당하고도 신선한 충격이었고, 덕분에 Perl이라는 언어는 원래 계획됐던 보고, 시스템 관리용 언어에서 벗어나서 굉장히 넓은 지평을 갖게 되었다. 한 때 우리나라에서 유행했던 소위 “설치형 웹게임”이란 놈들은 거의 다 이 Perl로 짜여지기도 했다.&lt;/p&gt;
&lt;p&gt;Perl은 시스템 관리용으로도 쓰였기 때문에 웬만한 머신에는 다 설치되어 있었고, 따라서 CGI를 쓰는 데는 큰 문제가 없었지만 가끔씩 Perl이 설치되지 않았거나 Perl을 사용할 수 없는 웹서버가 있었고, 또 Perl이란 언어 자체가 내부적으론 컴파일링을 하지만 원시 코드(source code)를 그대로 입력받는 언어였기에 필연적으로(하지만 지금은 전혀 상관없는) 속도가 느려지기 마련이어서, 가끔 바이너리로 된 CGI가 배포되기도 했었다.&lt;/p&gt;
&lt;p&gt;하지만 이제 와서는 사실, Perl이 안 깔린 머신도 없고 웬만한 기능은 다 Perl, python, ruby 등의 언어로 바인딩이 제공되고 있으며 저런 것을 쓰더라도 속도 문제에 있어서 전혀 신경을 쓰지 않아도 될 정도의 시대인지라, C로 CGI를 만들겠다는 것은 정말 &lt;b&gt;뻘짓&lt;/b&gt;이 아닐 수 없다. 그럼에도 불구하고 C로 CGI를 만들어야 하는 이유가 있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 12pt; &quot;&gt;&lt;b&gt;C는 모든 언어의 기본이다.&lt;/b&gt;&lt;/span&gt; 이 말은 C가 정말 기초적이기 때문에 이 것을 배워야 다른 언어로 CGI를 짤 수 있다는 되도안한 소리가 아니다. 무슨 뜻이냐면, 특히나 Linux의 경우, 대부분의 라이브러리들이 1차적으로 C 언어로 된 인터페이스를 갖는다. 거기에 추가적으로 필요하다면 각 언어용 바인딩이 제공되어 설치하여 쓰게 되어 있다. 따라서, Perl이나 python, ruby용 바인딩이 설치되어 있지 않은 어떤 라이브러리를 사용하고 싶다면, 그 바인딩을 구해서 사용할 수 없는 경우엔 C로 짜는 것이 대안이 될 수 있다는 것이다. 이 &#039;사용할 수 없는 경우&#039;라는 것은 상당히 많은 경우를 포함하는데, C와의 호환이 필요한 라이브러리의 경우 C로 컴파일해야 하는 경우가 자주 발생한다. 이 때 가끔씩, 뭔가 알 수 없는 이유로 컴파일이 안되는 경우가 발생하기도 하고, 컴파일을 무사히 마치더라도 적절한 위치에 넣을 수 있는 권한이 없어 실패할 수도 있다. 기본적으로 각 언어별로 제공되는 확장기능 관리 기능을 통해 설치하려고 해도 보통은 권한이 없어서 그것도 여의치 않다. 하지만, &lt;b&gt;어쨌든 간에&lt;/b&gt; 그 라이브러리가 머신에 깔려만 있다면, 헤더파일만 있으면 C에서는 가져다 쓰는 데 큰 문제가 없다.&lt;/p&gt;
&lt;p&gt;... 두 번째 이상의 이유를 찾아보려 했지만 도저히 모르겠다. 나도 C로 두 개의 CGI를 &#039;이시대에&#039; 만들었지만, 왜 했는지 지금 생각해보면 참 바보같다. 물론, 이 선택을 하지 않으면 관리자 권한이 없는 웹서버에 내가 원하는 기능을 갖는 CGI 만들기는 불가능했을 것이기 때문에-그리고 그 웹서버를 버릴 수도 없는 상황이라- 어쩔 수 없었지만.&lt;/p&gt;
&lt;p&gt;서론은 여기까지 하고, 먼저 단순한 예제를 보자. 아마 다른 언어로 CGI를 만들어 봤으면 다음 예제가 뭐하는 것인지, 더해서 얼마나 무의미한 것인지 알 수 있으리라고 생각한다.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;
int main()
{
    puts(&quot;Content-type: text/plain\n&quot;);
    puts(&quot;안녕, 세상아!&quot;);
    return 0;
}&lt;/pre&gt;
&lt;/blockquote&gt;&lt;p&gt;별 것 없다. 컴파일해서 대충 first.cgi 정도로 이름을 바꿔 적당한 곳에 넣어주자. 아, 이야기하는 것을 깜빡했는데, 적어도 이 글은 &#039;C 언어로 된 간단한 소스파일을 이해할 수 있고 CGI 사용을 위한 웹서버 설정을 할 수 있는 사람&#039;, 또는 &#039;C 언어로 된 간단한 소스파일을 이해할 수 있고 CGI 사용이 가능하도록 설정된 웹서버를 가진 사람&#039;을 대상으로 하고 있다. 따라서 독자 여러분께서는 first.cgi로 접속하는 법을 알고 있을 것이다.
&lt;/p&gt;
&lt;p&gt;접속해 보면 웹브라우저에 달랑 ”안녕, 세상아!” 라는 글이(당연히 따옴표는 없다) 찍힌 것을 볼 수 있을 것이다. 이 단순한 소스 코드가 의미하는 바는 다음과 같다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; &quot;&gt;
&lt;li&gt;&amp;nbsp;puts(&quot;Content-type: text/plain\n&quot;);&lt;br /&gt;
실제로는 puts가 문자열을 출력할 때 맨 뒤에 개행문자를 하나 더 붙이므로 개행이 두 번 일어나게 되어 빈 줄 하나가 생긴다. 이 명령이 수행하는 것은 &#039;이 CGI가 출력할 내용물의 타입은 text/plain입니다&#039;하고 클라이언트에게 알리는 것이다. html을 출력할때는 text/html, xml을 출력할 때는 application/xml, png파일일 때는 image/png가 된다. MIME을 찾아봐라.&lt;/li&gt;
&lt;li&gt;puts(&quot;안녕, 세상아!&quot;);&lt;br /&gt;
위에서 출력한 헤더의 내용이 나온다. 단순한 텍스트로 안녕, 세상아! 가 출력된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
기본적으로, CGI가 표준 출력(stdout)으로 출력하는 내용이 클라이언트로 전송되게 된다. 그런데 클라이언트에서 접속했을 때 500에러가 나온다면, 첫째로 헤더 출력하는걸 깜빡했거나 잘못된 헤더를 출력하는 경우이고, Perl이나 다른 언어로 만들었을 경우와 다르게 Segmentation Fault가 난 경우에도 500 에러가 난다. 절대 Segmentation fault 이전까지 출력한 내용이 나오지 않으므로(Apache2의 경우) 알아둘 필요가 있다.&lt;/p&gt;
&lt;p&gt;다른 언어로 CGI를 만들어 봤다면 알겠지만, CGI는 서버와 클라이언트의 정보를 환경변수와 표준 입력으로 얻는다. C로 짜는 경우도 큰 차이가 없다. 환경변수 정보를 확인하고 싶다면 다음 CGI를 만들어서 테스트해보면 좋을 것이다.&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;
int main(int argc, char ** argv, char ** env)
{
    int ch;
    puts(&quot;Content-type: text/plain\n&quot;);
    while(*env) puts(*(env++));
    puts(&quot;This is stdin:&quot;);
    while((ch = fgetc(stdin)) -1) fputc(ch, stdout);
    return 0;
}&lt;/pre&gt;
&lt;/blockquote&gt;&lt;p&gt;요정도면 무리 없이 GET/POST 양쪽 모두 사용할 수 있을 것이다. 참고로, %xx 형식으로 escape된 것은 직접 unescape 해 주어야 한다.
&lt;/p&gt;
&lt;p&gt;그런데, multipart/form-data로 encoding 된 데이터가 넘어올 때는 상당히 곤란하다. 뭔가 많이 복잡해진다는 것을 저 cgi를 통해 확인할 수 있을 것이다. 하지만 파일 업로드를 포기할 수는 없는 노릇. 이럴 때를 위해 누군가가 강력한 라이브러리를 만들어뒀다.&lt;/p&gt;
&lt;p&gt;cgilib이라는 라이브러리인데, &lt;a href=&quot;http://www.infodrom.org/projects/cgilib/&quot; target=&quot;_blank&quot; title=&quot;[http://www.infodrom.org/projects/cgilib/]로 이동합니다.&quot;&gt;cgilib 홈 페이지&lt;/a&gt;에서 자세한 정보를 접할 수 있다. ...고는 하지만, 뭔가 문서가 부족하다. 하지만 cgilib 자체가 워낙 가볍고 작은 라이브러리인지라, 일반적으로 설치하면 cgi.h 파일이 /usr/include에서 발견되는데 이 파일을 열어서 내용을 보면 금방 이해할 수 있다. cgiInit()로 넘겨진 parameter들을 준비시켜서 cgiGetValue(), cgiGetFile()로 받아오면 된다.&lt;/p&gt;
&lt;p&gt;다음은 2차원 갤러리 CGI 소스의 일부분이다.&lt;br /&gt;
&lt;/p&gt;&lt;p id=&quot;more57_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;57_0&#039;,&#039;더보기&#039;,&#039;접기&#039;); return false;&quot;&gt;더보기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content57_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;blockquote&gt;&lt;pre&gt;#include &amp;lt;cgi.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

#include &amp;lt;config.h&amp;gt;
#include &amp;lt;backend.h&amp;gt;

static s_cgi * cgi;

static char * cgiGetValue2(const char * name)
{
    char * ret = cgiGetValue(cgi, name);
    char * probe, * fin = NULL;
    int check = 0;

    if(!ret) return NULL;

    while(*ret)
    {
        if(*ret != &#039;\n&#039; &amp;amp;&amp;amp; *ret != &#039;\r&#039; &amp;amp;&amp;amp; *ret != &#039;\t&#039; &amp;amp;&amp;amp; *ret != &#039; &#039;) break;
        ret++;
    }
    probe = ret;
    while(*probe)
    {
        if(*probe == &#039;\n&#039; || *probe == &#039;\r&#039; || *probe == &#039;\t&#039; || *probe == &#039; &#039;)
        {
            if(!fin)
                fin = probe;
        }
        else
            fin = NULL;
        probe++;
    }
    if(fin) *fin = 0;
    return ret;
}

int main()
{
    char * action, * gal, ** args;

    cgi = cgiInit();
    puts(&quot;Content-type: application/xml\n&quot;);

    gal = cgiGetValue2(&quot;gal&quot;);
    if(!gal) jhgal_page_error(&quot;Please specify gallery name!&quot;);
    if(!jhgal_config_init()) jhgal_page_error(&quot;Config engine is not available!&quot;);
    if(!jhgal_backend_init(jhgal_config(&quot;dbtype&quot;))) jhgal_page_error(&quot;Given backend is not available!&quot;);

    action = cgiGetValue2(&quot;action&quot;);

    if(!action)
    {
        jhgal_page_index(gal);
    }
    else if(!strcmp(action, &quot;show&quot;))
    {
        int id = 0;
        char * id_str = cgiGetValue2(&quot;id&quot;);
        if(!id_str) jhgal_page_error(&quot;Not available id!&quot;);
        sscanf(id_str, &quot;%d&quot;, &amp;amp;id);

        jhgal_page_show(gal, id);
    }
    else if(!strcmp(action, &quot;create&quot;))
    {
        jhgal_post_t new_post = jhgal_post_new();
        int x = 0, y = 0;
        char * x_str = cgiGetValue2(&quot;x&quot;),
             * y_str = cgiGetValue2(&quot;y&quot;);
        s_file * photo = cgiGetFile(cgi, &quot;photo&quot;);
        if(!photo) jhgal_page_error(&quot;No photo attached!&quot;);
        if(!x_str || !y_str)
        {
            x = -1; y = -1;
        }
        else
        {
          sscanf(x_str, &quot;%d&quot;, &amp;amp;x); sscanf(y_str, &quot;%d&quot;, &amp;amp;y);
        }
        jhgal_post_set(new_post,
                &quot;x&quot;, x,
                &quot;y&quot;, y,
                &quot;gal&quot;, gal,
                &quot;title&quot;, cgiGetValue2(&quot;title&quot;),
                &quot;author&quot;, cgiGetValue2(&quot;author&quot;),
                &quot;email&quot;, cgiGetValue2(&quot;email&quot;),
                &quot;homepage&quot;, cgiGetValue2(&quot;homepage&quot;),
                &quot;photo&quot;, photo-&amp;gt;filename,
                &quot;description&quot;, cgiGetValue2(&quot;description&quot;), NULL);
        jhgal_page_create(gal, new_post, photo-&amp;gt;tmpfile, cgiGetValue2(&quot;password&quot;));
        jhgal_post_destroy(new_post);
    }
    else if(!strcmp(action, &quot;delete&quot;))
    {
        int id = 0;
        char * id_str = cgiGetValue2(&quot;id&quot;);
        if(!id_str) jhgal_page_error(&quot;Not available id!&quot;);
        sscanf(id_str, &quot;%d&quot;, &amp;amp;id);

        jhgal_page_delete(gal, id, cgiGetValue2(&quot;password&quot;));
    }
    else if(!strcmp(action, &quot;create_gallery&quot;))
    {
        jhgal_page_create_gallery(gal, cgiGetValue2(&quot;password&quot;));
    }
    else
    {
        jhgal_page_index(gal);
    }

    jhgal_backend_cleanup();

    return 0;
}&lt;/pre&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;p&gt;약간의 문제가 있는지, multipart/form-data로 인코딩된 경우 패러미터의 앞에 개행문자가 포함돼서 분석하기 어렵길래 cgiGetValue2()를 만들었다. 이 함수가 하는 것은 s/^\s+|\s+$//g 를 수행한다.
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;참쉽죠?&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-57-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-57-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-57-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=6980023&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>C</category>
			<category>C</category>
			<category>CGI</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/57</guid>
			<comments>http://blog.gwangyi.kr/entry/C%EB%A1%9C-CGI%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4-%EB%B3%B4%EC%95%84%EC%9A%94#entry57comment</comments>
			<pubDate>Tue, 11 May 2010 17:26:22 +0900</pubDate>
		</item>
		<item>
			<title>2D 갤러리 cgi 완성</title>
			<link>http://blog.gwangyi.kr/entry/2D-%EA%B0%A4%EB%9F%AC%EB%A6%AC-cgi-%EC%99%84%EC%84%B1</link>
			<description>&lt;p&gt;요즘 급 cgi 만드는 일이 많아졌다 -_-&amp;nbsp;그것도 제일 만들기 구린 C로.....-_-;;;&lt;/p&gt;
&lt;p&gt;어렸을 때 perl로 cgi 찌그덕 거리던 시절에는 하나의 꿈이었는데, 해보니 로망이고 뭐고 삽질일 뿐이다. 남는 것은 “아, 이렇게 이쁘게 삽질해서 구덩이를 팠구나!” 정도?&lt;/p&gt;
&lt;p&gt;막 다 짰는데, 관리용 frontend가 없어서 아직 부실하다. 이거 만들어지고 주석 다는 대로 올려봐야겠다.&lt;/p&gt;
&lt;p&gt;기능은,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: square; &quot;&gt;
&lt;li&gt;위치를 지정하여 그 포인트에 사진을 달 수 있음(지도에 표시하는 형식으로 활용가능)&lt;/li&gt;
&lt;li&gt;많은 부분이 customize 가능함&lt;/li&gt;
&lt;li&gt;실질적으로 작동하는 cgi는 xml 데이터를 내어놓기 때문에 frontend가 꼭 웹페이지일 필요가 없음&lt;/li&gt;
&lt;li&gt;db backend 선택가능(이라고 해봐야 구현된건 sqlite3밖에 없다.)&lt;/li&gt;
&lt;li&gt;thumbnail 생성(64x64로 생성하고, 가로세로 비율을 찌그러뜨리지 않음)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
부족한 점(앞으로 수정 안할지도...)&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: square; &quot;&gt;
&lt;li&gt;관리용 UI 없음: 이 부분은 앞으로 추가할 것임&lt;/li&gt;
&lt;li&gt;모든 사진 목록을 한번에 화면에 뿌려줌: 속도 저하 가능성 있음&lt;/li&gt;
&lt;li&gt;공지사항처럼 올리는 사람만 올릴 수 있고, 관리용 비밀번호는 1개로 공통 사용&lt;/li&gt;
&lt;li&gt;C로 짜여저 완벽한 cross-platform이 되지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
테스트 해 본 환경은 linux x64와 Solaris SunOS 5.9에서 테스트 해 봤는데, 큰 무리 없이 돌아간다.&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-56-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-56-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-56-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&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=6976364&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;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>C</category>
			<category>C</category>
			<category>CGI</category>
			<category>갤러리</category>
			<category>계획</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/56</guid>
			<comments>http://blog.gwangyi.kr/entry/2D-%EA%B0%A4%EB%9F%AC%EB%A6%AC-cgi-%EC%99%84%EC%84%B1#entry56comment</comments>
			<pubDate>Tue, 11 May 2010 13:49:30 +0900</pubDate>
		</item>
		<item>
			<title>binary graphic counter by C</title>
			<link>http://blog.gwangyi.kr/entry/binary-graphic-counter-by-C</link>
			<description>&lt;p&gt;지난번에 만들었던 카운터에 치명적 문제-오늘 카운트가 어제로 넘어가지 않는-가 발생해서 수정했다.&lt;/p&gt;
&lt;p&gt;특별한건...없다 -_-;&lt;/p&gt;
&lt;p&gt;컴파일 할 때는 다음 명령으로 컴파일한다.&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&amp;nbsp;$ gcc counter.c -lgd -o counter.cgi&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;경우에 따라 다른 옵션이 필요할 수 있다. (SunOS 5.9에서는 gd library가 iconv를 참조하고 있어서 -liconv를 붙여주어야 한다.)&lt;/p&gt;
&lt;p&gt;gd 라이브러리가 필요한데, 우분투 리눅스라면 apt-get으로 간단하게 설치할 수 있다.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;# apt-get install libgd2-xpm-dev&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;다른 OS에도 각자에 맞는 방법이 있으니까 적당히 하면 되고, 이도 저도 안되면 &lt;a href=&quot;http://libgd.org/&quot; target=&quot;_blank&quot; title=&quot;[http://libgd.org/]로 이동합니다.&quot;&gt;http://libgd.org&lt;/a&gt; 에서 다운로드 받아도 좋다.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile1.uf@142AA6224BE8DF7A848649.cgi&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; counter_solaris_x86.cgi&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile3.uf@135017014BE8DDB90259FA.c&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; counter.c&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile24.uf@1326ED224BE8DF865974ED.cgi&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/110706133414/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; counter_linux_x86.cgi&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://gwangyi.tistory.com/attachment/cfile3.uf@204F60014BE8F76A7B5D27.txt&quot;&gt;&lt;img src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/txt.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; readme.txt&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-55-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-55-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-55-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>C</category>
			<category>C</category>
			<category>CGI</category>
			<category>counter</category>
			<category>GD</category>
			<category>카운터</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/55</guid>
			<comments>http://blog.gwangyi.kr/entry/binary-graphic-counter-by-C#entry55comment</comments>
			<pubDate>Tue, 11 May 2010 13:40:08 +0900</pubDate>
		</item>
		<item>
			<title>돈까스 한뚝배기 하실래예?</title>
			<link>http://blog.gwangyi.kr/entry/%EB%8F%88%EA%B9%8C%EC%8A%A4-%ED%95%9C%EB%9A%9D%EB%B0%B0%EA%B8%B0-%ED%95%98%EC%8B%A4%EB%9E%98%EC%98%88</link>
			<description>&lt;p&gt;아 ㅋㅋㅋ 이건 진짜 걸작이다. &amp;nbsp;나 비록 길지 않은 24년 평생동안 이런 음식은 처음봤다.&lt;/p&gt;
&lt;p&gt;제목에 하고 싶은 말은 다 적혀있다.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile4.uf.tistory.com/original/1239B60E4BE3DD7E48FA35&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile4.uf.tistory.com/image/1239B60E4BE3DD7E48FA35&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;P100507001.jpg&quot; height=&quot;488&quot; width=&quot;650&quot;/&gt;&lt;/a&gt;&lt;/div&gt;학식에서 나온 밥이다. 배가 무척-_-고픈 상태(머리 회전이 정지하고, 손은 떨리며, 온 몸에서 칼로리와 당분을 요구하는 비정상적 상태)였던 탓에 깨끗·선명과는 거리가 먼 사진이 찍혔지만, 그래도 오른편에 보이는 뚝배기에 담긴 돈까스는 그 장엄한 모습을 빛내고 있다.&lt;/p&gt;
&lt;p&gt;맛은... 대체로 괜찮았다. 단지 평소의 4천원짜리 메뉴에 비하면 양이 좀 적었다.&lt;/p&gt;
&lt;p&gt;학식 밥이라 이 메뉴를 언제 다시 볼 수 있을 지 알 수 없다는 것이 약간의 아쉬움이다.&lt;/p&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-54-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-54-1&quot; class=&quot;entry-ccl-nc&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black02.png&quot; alt=&quot;비영리&quot;/&gt;
	&lt;img id=&quot;ccl-icon-54-2&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-sa/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-sa/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/ShareAlike&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>잡설</category>
			<author>gwangyi</author>
			<guid>http://blog.gwangyi.kr/54</guid>
			<comments>http://blog.gwangyi.kr/entry/%EB%8F%88%EA%B9%8C%EC%8A%A4-%ED%95%9C%EB%9A%9D%EB%B0%B0%EA%B8%B0-%ED%95%98%EC%8B%A4%EB%9E%98%EC%98%88#entry54comment</comments>
			<pubDate>Fri, 07 May 2010 18:32:26 +0900</pubDate>
		</item>
	</channel>
</rss>

