<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>U.Seung&#039;s Log</title>
		<link>http://9eye.net/</link>
		<description>하면 되고, 꿈꾸면 이루어 지고, 믿으면 현실이 되는 곳.. 그 곳은 혹시 내가 살고 있는 이 곳이 아닐까?</description>
		<language>ko</language>
		<pubDate>Tue, 09 Mar 2010 15:25:38 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<image>
		<title>U.Seung&#039;s Log</title>
		<url><![CDATA[http://cfs2.tistory.com/upload_control/download.blog?fhandle=YmxvZzUyNzNAZnMyLnRpc3RvcnkuY29tOi9hdHRhY2gvMC83Mi5qcGc%3D]]></url>
		<link>http://9eye.net/</link>
		<description>하면 되고, 꿈꾸면 이루어 지고, 믿으면 현실이 되는 곳.. 그 곳은 혹시 내가 살고 있는 이 곳이 아닐까?</description>
		</image>
		<item>
			<title>Customizing Windows Command Prompt</title>
			<link>http://9eye.net/entry/Customizing-Windows-Command-Prompt</link>
			<description>&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;#1. Prompt 설정.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/image/2046E3254B9214641184A1&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/126E51044B92146453EE20&quot; height=&quot;116&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
  &lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(203, 203, 203); border-right-color: rgb(203, 203, 203); border-bottom-color: rgb(203, 203, 203); border-left-color: rgb(203, 203, 203); background-color: rgb(255, 255, 255); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;&lt;b&gt;
PROMPT=$P$G$_$$&lt;/b&gt;&lt;/div&gt;
 &lt;p&gt;&lt;/p&gt;
  &lt;p&gt;계속 사용하고 싶으면..    &lt;br /&gt;
환경 변수에 등록해주면 됩니다.&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://cfile8.uf.tistory.com/image/190EF7264B9214645C617D&quot;&gt;&lt;img src=&quot;http://cfile21.uf.tistory.com/image/1368680B4B92146419B198&quot; height=&quot;83&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
  &lt;p&gt;몇 가지 포인트가 있는데..    &lt;br /&gt;
$_는 한 줄을 바꿀 때 씁니다.&lt;br /&gt;
마지막에 Space 를 넣어 주는 것이 보기 편합니다.&lt;/p&gt;
  &lt;p&gt;편의에 따라서 %USERNAME%, %COMPUTERNAME% 등을 넣어 줄 수도 있지만&lt;br /&gt;
Remote로 접속하는 경우가 적기 때문에 필요 없는 경우가 많습니다.&lt;/p&gt;
  &lt;p&gt;&amp;nbsp;&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;#2. 폰트 변경.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/2060F90E4B9215D34A2BE4&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/2060F90E4B9215D34A2BE4&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/207A360D4B9215D441B965&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/207A360D4B9215D441B965&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://cfile26.uf.tistory.com/original/135D3D014B9215D439E2D6&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile26.uf.tistory.com/image/135D3D014B9215D439E2D6&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://cfile6.uf.tistory.com/original/165BA80E4B9215D39A6293&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile6.uf.tistory.com/image/165BA80E4B9215D39A6293&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;
  &lt;p&gt;&lt;a href=&quot;http://cfile7.uf.tistory.com/image/1175A40C4B9215D5517BA1&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/1633380C4B9215D50AF7FA&quot; width=&quot;244&quot; height=&quot;242&quot; /&gt;&lt;/a&gt; &lt;/p&gt;
  &lt;p&gt;Fixed Width 폰트를 지정할 수 있습니다.   &lt;br /&gt;
한글은 굴림체, 돋움체, 나눔고딕 코딩 등을 지정할 수 있습니다.    &lt;br /&gt;
원하는 폰트가 목록에 나오게 하기 위해서는    &lt;br /&gt;
Registry의 &lt;strong&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont&lt;/strong&gt; 에 추가하시면 됩니다.&lt;/p&gt;
  &lt;p&gt;영문폰트를 사용하고 싶으시면 Codepage를 바꿔야 합니다.   &lt;br /&gt;
chcp 명령어를 사용하거나    &lt;br /&gt;
Registry의 &lt;strong&gt;HKEY_CURRENT_USER\Console&lt;/strong&gt;의 하위를 직접 세팅 해서 바꾸면 됩니다.&lt;/p&gt;</description>
			<category>정보 공유터</category>
			<category>cmd</category>
			<category>command</category>
			<category>prompt</category>
			<category>Windows</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/367</guid>
			<comments>http://9eye.net/entry/Customizing-Windows-Command-Prompt#entry367comment</comments>
			<pubDate>Sun, 07 Mar 2010 13:27:12 +0900</pubDate>
		</item>
		<item>
			<title>GameTech 2010 - TERA의 서버 구조</title>
			<link>http://9eye.net/entry/GameTech-2010-TERA-Server-Architecture</link>
			<description>&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
지난 주에 GameTech 2010에 다녀 왔습니다.&lt;br /&gt;
&lt;div&gt;
정말 오랜만에 세미나를 들으러 갔던 것 같습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
GameTech 2010 공식 홈페이지:&amp;nbsp;&lt;a href=&quot;http://gametech.gamespot.co.kr/&quot; target=&quot;_blank&quot; title=&quot;[http://gametech.gamespot.co.kr/]로 이동합니다.&quot;&gt;http://gametech.gamespot.co.kr/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
GameTech 2010 관련 기사:&amp;nbsp;&lt;a href=&quot;http://gametech.gamespot.co.kr/&quot; target=&quot;_blank&quot; title=&quot;[http://gametech.gamespot.co.kr/]로 이동합니다.&quot;&gt;&lt;a href=&quot;http://www.zdnet.co.kr/conference/gametech2010/&quot; target=&quot;_blank&quot; title=&quot;[http://www.zdnet.co.kr/conference/gametech2010/]로 이동합니다.&quot;&gt;http://www.zdnet.co.kr/conference/gametech2010/&lt;/a&gt;&lt;/a&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;div&gt;
일단 TERA의 서버 구조는 매우 간단합니다.&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: disc; &quot;&gt;
&lt;li&gt;한 Planet(Wow의 &lt;a href=&quot;http://www.worldofwarcraft.com/info/basics/realmtypes.html&quot; target=&quot;_blank&quot; title=&quot;[http://www.worldofwarcraft.com/info/basics/realmtypes.html]로 이동합니다.&quot;&gt;Relm&lt;/a&gt;)당 수용인원은 대략 5000명 정도 예상.&lt;/li&gt;
&lt;li&gt;한 Planet에는 하나의 Arbiter 서버를 Front-end로 둠.&lt;/li&gt;
&lt;li&gt;한 Arbiter 서버에는 여러개의 World서버를 Back-end로 둠.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;TERA에서는 Planet간에도 유저가 만날 수 있는 통합전장이라는 시스템이 있으므로,&lt;br /&gt;
특정 World서버에서는 여러개의 Arbiter 서버와 연결을 가질 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&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;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;[Arbiter 서버]&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: square; &quot;&gt;
&lt;li&gt;주로 I/O를 담당.&lt;/li&gt;
&lt;li&gt;Network 통신에 해당하는 Non-Blocking I/O와 Database 작업에 해당하는 Blocking I/O를 담당.&lt;br /&gt;
(내부적으로는 위의 두가지 방식의 Thread Pool을 분리 한다고 함.)&lt;/li&gt;
&lt;li&gt;채팅, 길드 등의 게임 로직을 담당&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;[World 서버]&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;list-style-type: square; &quot;&gt;
&lt;li&gt;주로&amp;nbsp;(CPU작업이 많은)&amp;nbsp;게임로직을 담당.&lt;/li&gt;
&lt;li&gt;Blocking I/O만을 처리하며 모든 Thread가 대등한 역할을 수행.&lt;/li&gt;
&lt;li&gt;대부분의 게임 로직을 처리하며, 통합 전장/Instance Dungeon 기능도 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
----&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
여기까지는 발표 내용이고, 제 개인적인 생각을 몇 자 적어보자면...&lt;/div&gt;
&lt;div&gt;
발표 초반에 액션성을 강조한 게임이라고 TERA의 특징을 소개하였으나&lt;/div&gt;
&lt;div&gt;
설명을 들을 수록 액션성이 잘 표현되는 CPU와 I/O를 많이 쓰는 곳에 적합한 구조라는 생각은 안 들었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
지금 구조에서는 Arbiter 서버 프로세스 하나에서 대부분의 I/O가 일어 나는데&lt;/div&gt;
&lt;div&gt;
I/O쪽 부하가 지나치게 집중 되도록 되어 있으며,&lt;/div&gt;
&lt;div&gt;
안정성 측면에서도 Arbiter 서버&amp;nbsp;이거 다운되면 어떻게 하나 걱정부터 많이 들었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
물론, 서버 기능별로 채팅서버, 파티서버, 몬스터서버 이렇게 한 없이 분리하다보면&lt;/div&gt;
&lt;div&gt;
복잡도가 올라가서 결국 서버의 안정성이 떨어진다는 것을 부정하긴 힘들지만&lt;/div&gt;
&lt;div&gt;
아무리 그래도 프로세스 하나에서 Network I/O, 채팅/길드, DB 까지 다하는 것은 좀 지나치다는 생각이 듭니다.&amp;nbsp;( 물론, 블로홀 스튜디오에는 국내 최고 수준의 막강 QA 인력이 포진하고 있다고 합니다... )&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
뭐 이런 저런 우려와 걱정이 되긴 하였지만..&lt;/div&gt;
&lt;div&gt;
가슴 속에서는 &#039;&lt;b&gt;Arbiter 서버와 World 서버만 있다고?&amp;nbsp;이거 만들기 엄청 편하겠는데 +_+)/.... &lt;/b&gt;&#039;&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;/div&gt;
&lt;div&gt;
정확히 문구까지는 기억이 나지는 않지만 대략 아래와 같은 말이었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;blockquote&gt;&lt;div&gt;
서버 구조는 해당 게임의 특징에 따라서 다르겠지만 그것과 더불어서 해당 게임을 만드는 팀에 따라서 달라져야 합니다. 지금 만들고 있는 서버 구조는 현재 팀의 구성에 따라서 정한 것입니다. 만약 현재 팀 구성이 아니었다면 다른 모델을 도전 해볼 수도 있었을 것 같습니다.&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
			<category>정보 공유터</category>
			<category>Bluehole Studio</category>
			<category>GameTech</category>
			<category>게임테크</category>
			<category>블루홀</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/366</guid>
			<comments>http://9eye.net/entry/GameTech-2010-TERA-Server-Architecture#entry366comment</comments>
			<pubDate>Tue, 02 Mar 2010 02:09:21 +0900</pubDate>
		</item>
		<item>
			<title>한국 귀화시험 기출 문제...</title>
			<link>http://9eye.net/entry/naturalization-Test-Korea</link>
			<description>&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;필기:&amp;nbsp;&lt;/b&gt;&lt;a href=&quot;http://www.scribd.com/doc/26929681/&quot;&gt;&lt;b&gt;http://www.scribd.com/doc/26929681/&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
면접:&amp;nbsp;&lt;a href=&quot;http://www.scribd.com/doc/26929697/&quot;&gt;http://www.scribd.com/doc/26929697/&lt;/a&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;object id=&quot;doc_28134954000888&quot; name=&quot;doc_28134954000888&quot; height=&quot;600&quot; width=&quot;100%&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://d1.scribdassets.com/ScribdViewer.swf&quot; style=&quot;outline:none;&quot; &gt;		&lt;param name=&quot;movie&quot; value=&quot;http://d1.scribdassets.com/ScribdViewer.swf&quot;&gt;		&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;&gt; 		&lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot;&gt; 		&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt; 		&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt; 		&lt;param name=&quot;FlashVars&quot; value=&quot;document_id=26929681&amp;amp;access_key=key-2f2ruocqdl0on59tek2e&amp;amp;page=1&amp;amp;viewMode=list&quot;&gt; 		&lt;embed id=&quot;doc_28134954000888&quot; name=&quot;doc_28134954000888&quot; src=&quot;http://d1.scribdassets.com/ScribdViewer.swf?document_id=26929681&amp;amp;access_key=key-2f2ruocqdl0on59tek2e&amp;amp;page=1&amp;amp;viewMode=list&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; height=&quot;600&quot; width=&quot;100%&quot; wmode=&quot;opaque&quot; bgcolor=&quot;#ffffff&quot;&gt;&lt;/embed&gt; 	&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</description>
			<category>정보 공유터</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/365</guid>
			<comments>http://9eye.net/entry/naturalization-Test-Korea#entry365comment</comments>
			<pubDate>Tue, 16 Feb 2010 20:20:44 +0900</pubDate>
		</item>
		<item>
			<title>[RSS] 네이버 캐스트 Feed</title>
			<link>http://9eye.net/entry/RSS-Naver-Cast-Feed</link>
			<description>&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
네이버에서는 좋은 정보를 참 많이 제공 해주고 있습니다.&lt;/div&gt;
&lt;div&gt;
구워진지(Burned) 얼마 되지 않은 Feed.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
네이버캐스트 :: &lt;b&gt;매일의 디자인&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastDesign&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastDesign]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastDesign&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastDesign]로 이동합니다.&quot;&gt;EMAIL&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastDesign&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastDesign]로 이동합니다.&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;div&gt;
네이버캐스트 :: &lt;b&gt;아름다운 한국&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastTrip&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastTrip]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastTrip&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastTrip]로 이동합니다.&quot;&gt;EMAIL&lt;/a&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;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
네이버캐스트 :: &lt;b&gt;오늘의 과학&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastScience&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastScience]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastScience&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastScience]로 이동합니다.&quot;&gt;EMAIL&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastScience&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastScience]로 이동합니다.&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
네이버캐스트 :: &lt;b&gt;오늘의 미술&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastArt&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastArt]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastArt&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastArt]로 이동합니다.&quot;&gt;EMAIL&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastArt&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastArt]로 이동합니다.&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
네이버캐스트 :: &lt;b&gt;오늘의 집&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastHome&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastHome]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastHome&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastHome]로 이동합니다.&quot;&gt;EMAIL&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastHome&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastHome]로 이동합니다.&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
네이버캐스트 ::&amp;nbsp;&lt;b&gt;오늘의&amp;nbsp;체조&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastGym&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastGym]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastGym&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastGym]로 이동합니다.&quot;&gt;EMAIL&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastGym&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastGym]로 이동합니다.&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(121, 165, 228); border-right-color: rgb(121, 165, 228); border-bottom-color: rgb(121, 165, 228); border-left-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
네이버캐스트 :: &lt;b&gt;인물과 역사&lt;/b&gt;: &lt;a href=&quot;http://feeds.feedburner.com/NaverCastPeopleHistroy&quot; target=&quot;_blank&quot; title=&quot;[http://feeds.feedburner.com/NaverCastPeopleHistroy]로 이동합니다.&quot;&gt;RSS&lt;/a&gt;, &lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastPeopleHistroy&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastPeopleHistroy]로 이동합니다.&quot;&gt;EMAIL&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://feedburner.google.com/fb/a/mailverify?uri=NaverCastPeopleHistroy&quot; target=&quot;_blank&quot; title=&quot;[http://feedburner.google.com/fb/a/mailverify?uri=NaverCastPeopleHistroy]로 이동합니다.&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&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;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
			<category>정보 공유터</category>
			<category>RSS</category>
			<category>RSS 만들기</category>
			<category>네이버</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/363</guid>
			<comments>http://9eye.net/entry/RSS-Naver-Cast-Feed#entry363comment</comments>
			<pubDate>Tue, 16 Feb 2010 12:57:25 +0900</pubDate>
		</item>
		<item>
			<title>빌드(컴파일, 링크) 속도가 느리다면....</title>
			<link>http://9eye.net/entry/Slow-Link-speed-Add-RAM</link>
			<description>&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;b&gt;컴파일 속도&lt;/b&gt;가 느리다면.. &lt;a href=&quot;http://www.xoreax.com/slow_build_time_challenge.htm&quot; target=&quot;_blank&quot; title=&quot;[http://www.xoreax.com/slow_build_time_challenge.htm]로 이동합니다.&quot;&gt;IncrediBuild&lt;/a&gt;를 쓰세요.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile26.uf.tistory.com/original/161FBA024B6AA22678A4CE&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile26.uf.tistory.com/image/161FBA024B6AA22678A4CE&quot; alt=&quot;&quot; filemime=&quot;image/gif&quot; filename=&quot;BuildMonitor_Progress_Small.gif&quot; height=&quot;200&quot; width=&quot;500&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;b&gt;링크 속도&lt;/b&gt;가 느리다면.&lt;/div&gt;
&amp;nbsp;일단 64비트 OS를 설치하고,&lt;div&gt;
&amp;nbsp;RAM을 넉넉하게 늘리세요. &amp;nbsp; ( 4G 이상, 6G 이상 추천 )&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile7.uf.tistory.com/original/186932124B6AA30B3D3D22&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile7.uf.tistory.com/image/186932124B6AA30B3D3D22&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;system.PNG&quot; height=&quot;291&quot; width=&quot;382&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;RAM 업그레이드 이후에 체감 링크 속도가 2~3배 빨라졌습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;------------------------------------&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&amp;nbsp;OS를 Windows 7 x64로 업그레이드 했더니 빌드 속도가 더 빨라 졌습니다.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;Windows 7 에서 멀티코어 지원이 강화 된 영향 같습니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</description>
			<category>정보 공유터</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/356</guid>
			<comments>http://9eye.net/entry/Slow-Link-speed-Add-RAM#entry356comment</comments>
			<pubDate>Thu, 04 Feb 2010 10:55:21 +0900</pubDate>
		</item>
		<item>
			<title>[MySQL] NULL이지만 NULL이 아닌 슬픈 이야기..</title>
			<link>http://9eye.net/entry/Mysql-Binary-Type-Null-Column-But-Not-Null</link>
			<description>&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;일단 어떤 테이블에 varbinary(123) 타입을 가진 컬럼이 하나 있었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&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(203, 203, 203); border-right-color: rgb(203, 203, 203); border-bottom-color: rgb(203, 203, 203); border-left-color: rgb(203, 203, 203); background-color: rgb(0, 0, 0); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;mysql&amp;gt; DESC SomeTable col1;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;+-------+----------------+------+-----+---------+-------+&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| Field | Type &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Null | Key | Default | Extra |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;+-------+----------------+------+-----+---------+-------+&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| col1 &amp;nbsp;| varbinary(123) | YES &amp;nbsp;| &amp;nbsp; &amp;nbsp; | NULL &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;+-------+----------------+------+-----+---------+-------+&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;1 row in set (0.00 sec)&lt;/font&gt;&lt;/span&gt;&lt;/div&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;
&amp;nbsp;이 컬럼에는 NULL이 들어 있었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&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(203, 203, 203); border-right-color: rgb(203, 203, 203); border-bottom-color: rgb(203, 203, 203); border-left-color: rgb(203, 203, 203); background-color: rgb(0, 0, 0); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;mysql&amp;gt; SELECT col1 FROM SomTable LIMIT 0, 10 ;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;+------+&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| col1 |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;+------+&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;| NULL |&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;+------+&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;10 rows in set (0.00 sec)&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp;Stored Procedure를 통해서 여러개의 테이블에서 여러개의 컬럼을 읽는 프로그램이었는데...&amp;nbsp;디버깅 끝에 이 부분부터 꼬이기 시작한다는 것을 발견했습니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;그리고 희한하게도 이 컬럼을 읽는 부분에서 NULL이 아닌 값을 읽고 있는 것을 발견했습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;그리고... 확인결과 ... 진짜 NULL이 아님을 알았고&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 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(203, 203, 203); border-right-color: rgb(203, 203, 203); border-bottom-color: rgb(203, 203, 203); border-left-color: rgb(203, 203, 203); background-color: rgb(0, 0, 0); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;mysql&amp;gt; SELECT col1 FROM SomeTable WHERE col1 IS NULL LIMIT 0, 10 ;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;Empty set (0.00 sec)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp;비극의 진실은...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&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(203, 203, 203); border-right-color: rgb(203, 203, 203); border-bottom-color: rgb(203, 203, 203); border-left-color: rgb(203, 203, 203); background-color: rgb(0, 0, 0); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; &quot;&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;mysql&amp;gt; SELECT col1 FROM SomeTable WHERE col1 = &quot;NULL&quot; LIMIT 0, 10 ;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;+------+&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| col1 |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;+------+&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;| NULL |&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;+------+&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;
&lt;font class=&quot;Apple-style-span&quot; color=&quot;#8E8E8E&quot;&gt;&lt;span style=&quot;font-family: &#039;Courier New&#039;; &quot;&gt;10 rows in set (0.00 sec)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
.......... oTL&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;한 가지 고려해볼 수 있는 사항은&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;Binary 컬럼은 SELECT시에 *(asterisk)를 쓰지 않고,&amp;nbsp;HEX(col1) 처럼 HEX() 함수로 감싸도록 (마음속으로.. ) 강제 하는 방법.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&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;/div&gt;
&lt;/div&gt;</description>
			<category>정보 공유터</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/355</guid>
			<comments>http://9eye.net/entry/Mysql-Binary-Type-Null-Column-But-Not-Null#entry355comment</comments>
			<pubDate>Fri, 22 Jan 2010 19:27:13 +0900</pubDate>
		</item>
		<item>
			<title>[Linux] 콜스택이 깨진 Core 파일 디버깅 하기</title>
			<link>http://9eye.net/entry/Debug-Broken-CallStack-using-GDB</link>
			<description>&lt;br /&gt;
&amp;nbsp;Linux에서 Daemon을 돌리다 보면 버그로 인해서 프로그램이 Crash 되는 일이 종종 있습니다.&lt;br /&gt;
&amp;nbsp;당연히 문제가 되는 부분 찾아서 고쳐야 합니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;그럴때 대부분 사용하는 방법이 Process가 죽기전에 기록을 &lt;A title=&quot;[http://linux.die.net/man/5/core]로 이동합니다.&quot; href=&quot;http://linux.die.net/man/5/core&quot; target=_blank&gt;Core파일&lt;/A&gt;에 남기도록 설정&amp;nbsp;하는 방법 입니다.&lt;br /&gt;
&amp;nbsp;정상적으로 남겨진 Core파일 경우라면 디버깅 하는게 큰 문제는 없을 테지만&lt;br /&gt;
&amp;nbsp;아래와 같이 콜스택이 깨져 보이는 난감한 상황을 만들어 내기도 합니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #cbcbcb 1px solid; BORDER-LEFT: #cbcbcb 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #000000; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cbcbcb 1px solid; BORDER-RIGHT: #cbcbcb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;SPAN style=&quot;WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium &#039;Times New Roman&#039;; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px&quot; class=Apple-style-span&gt;&lt;SPAN style=&quot;BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px&quot; class=Apple-style-span&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;Loaded symbols for /lib/tls/librt.so.1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;Reading symbols from /usr/lib/libggauth2.so.56...&lt;WBR&gt;done.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;Loaded symbols for /usr/lib/libggauth2.so.56&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;#0&amp;nbsp; 0x02d10100 in ?? ()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;(gdb)&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: white&quot; lang=EN-US&gt;bt&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;#0&amp;nbsp; 0x02d10100 in ?? ()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;#1&amp;nbsp; 0x01010000 in ?? ()&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;#2&amp;nbsp; 0x000002d2 in ?? ()&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;콜스택이 깨져 보이는 경우는 주로 &lt;A title=&quot;[http://en.wikipedia.org/wiki/Stack_buffer_overflow]로 이동합니다.&quot; href=&quot;http://en.wikipedia.org/wiki/Stack_buffer_overflow&quot; target=_blank&gt;Stack Buffer Overrun&lt;/A&gt; 으로 인한 문제 입니다. &lt;br /&gt;
&amp;nbsp;(다른 문제는 이 글에서 다루지&amp;nbsp;않습니다.)&lt;br /&gt;
&amp;nbsp;이 경우, 스택에 있던 Return Address가 지워져 있기 때문에 GDB는 콜스택을&amp;nbsp;표시하지 못합니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;하지만 이런 경우라고&amp;nbsp;해서 너무 낙심할 것은 아닙니다.&lt;br /&gt;
&amp;nbsp;Stack Buffer가 조금 넘친 경우에는 남은 정보를 이용해서 문제를 해결 할 수 있기 때문입니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;이때, 실마리를 제공해주는 것은&amp;nbsp;Register의 &lt;A title=&quot;[http://en.wikipedia.org/wiki/X86#Purpose]로 이동합니다.&quot; href=&quot;http://en.wikipedia.org/wiki/X86#Purpose&quot; target=_blank&gt;ESP&lt;/A&gt; 입니다.&lt;br /&gt;
&amp;nbsp;비록 원하던 Return Adress는 지워졌지만 ESP는&amp;nbsp;값은 정상적인 값을 유지하고 있습니다.&lt;br /&gt;
&amp;nbsp;이제 ESP가 가르키던 메모리 주변을 뒤져서 Return Address와 유사한 값들이 있는지 찾아보면 문제에 대한 힌트를 얻을 수 있습니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;일단 Return Address랑 유사한 녀석들은 어떤 녀석이어야 하는지 파악 해야&amp;nbsp;합니다.&lt;br /&gt;
&amp;nbsp;당연히 Return Address는 실행가능한 Instruction 들이 저장되어 있는 &lt;A title=&quot;[http://en.wikipedia.org/wiki/Code_segment]로 이동합니다.&quot; href=&quot;http://en.wikipedia.org/wiki/Code_segment&quot; target=_blank&gt;Code Segment&lt;/A&gt;를 가르키고&amp;nbsp;있습니다.&amp;nbsp;GDB에서는 &lt;STRONG&gt;maint info sections .text&lt;/STRONG&gt; 명령어를 통해서 Code Segment를 찾아 볼 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #cbcbcb 1px solid; BORDER-LEFT: #cbcbcb 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #000000; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cbcbcb 1px solid; BORDER-RIGHT: #cbcbcb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;SPAN style=&quot;WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium &#039;Times New Roman&#039;; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px&quot; class=Apple-style-span&gt;&lt;SPAN style=&quot;BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px&quot; class=Apple-style-span&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;(gdb)&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: white&quot; lang=EN-US&gt;maint info sections .text&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;Exec file:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; `/home/aa/bb.debug.&lt;WBR&gt;1f25cf3be302bd7308d598c132ac90&lt;WBR&gt;4b&#039;, file type elf32-i386.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(141,179,226)&quot; lang=EN-US&gt;0x08051e20&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(141,179,226)&quot; lang=EN-US&gt;0x0824fc08&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;at 0x00009e20: .text ALLOC LOAD READONLY CODE HAS_CONTENTS&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;Core file:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; `/home/aa/core.&lt;WBR&gt;1214458224.bb.30678&#039;, file type elf32-i386.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR style=&quot;MARGIN-LEFT: 4em&quot; class=Apple-interchange-newline&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;이제 Code Segment의 범위도 구했으니 ESP를 기준으로 주변 탐색해서&amp;nbsp;Return Address와 유사한 녀석들을 찾아&amp;nbsp;본다면 아마 콜스택과&amp;nbsp;유사한 모양이&amp;nbsp;만들어 질 수 있을 겁니다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;이를 위해서 간단한 &lt;A title=&quot;[http://sourceware.org/gdb/current/onlinedocs/gdb/Define.html#Define]로 이동합니다.&quot; href=&quot;http://sourceware.org/gdb/current/onlinedocs/gdb/Define.html#Define&quot; target=_blank&gt;User-defined Command&lt;/A&gt;를 만들었습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #cbcbcb 1px dashed; BORDER-LEFT: #cbcbcb 1px dashed; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cbcbcb 1px dashed; BORDER-RIGHT: #cbcbcb 1px dashed; PADDING-TOP: 10px&quot; class=txc-textbox&gt;define findsymbols&lt;br /&gt;
set $textbegin = $arg0&lt;br /&gt;
set $textend = $arg1&lt;br /&gt;
set $si = $arg2&lt;br /&gt;
set $ei = $arg3&lt;br /&gt;
while $si &amp;lt; $ei&lt;br /&gt;
set $value = *(int*)$si&lt;br /&gt;
if ($textbegin &amp;lt;= $value &amp;amp;&amp;amp; $value &amp;lt;= $textend)&lt;br /&gt;
printf &quot;[0x%08x] &quot;, $si&lt;br /&gt;
info symbol $value&lt;br /&gt;
end&lt;br /&gt;
set $si = $si + sizeof(void*)&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
&amp;nbsp;가독성이 다소 떨어지긴&amp;nbsp;하지만 동작은 간단합니다.&lt;br /&gt;
&amp;nbsp;주어진 범위를 탐색하면서 정해진 범위의 값(Code Segment의 범위)이 들어오면..&lt;br /&gt;
&amp;nbsp;해당 값을 &lt;STRONG&gt;info symbol&lt;/STRONG&gt; 을 이용해서 출력하는&amp;nbsp;Command 입니다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;실제로 사용하면 아래와 같은 결과를 얻을 수 있습니다. (함수 이름은&amp;nbsp;가명..)&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #cbcbcb 1px solid; BORDER-LEFT: #cbcbcb 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #000000; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cbcbcb 1px solid; BORDER-RIGHT: #cbcbcb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&lt;SPAN style=&quot;WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium &#039;Times New Roman&#039;; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px&quot; class=Apple-style-span&gt;&lt;SPAN style=&quot;BORDER-COLLAPSE: collapse; FONT-FAMILY: arial, sans-serif; FONT-SIZE: 13px&quot; class=Apple-style-span&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;(gdb)&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: white&quot; lang=EN-US&gt;findsymbols&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(141,179,226)&quot; lang=EN-US&gt;0x08051e20&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: white&quot; lang=EN-US&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(141,179,226)&quot; lang=EN-US&gt;0x0824fc08&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: white&quot; lang=EN-US&gt;&lt;SPAN class=Apple-converted-space&gt;&amp;nbsp;&lt;/SPAN&gt;$esp-1024 $esp+1024&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;[..]&amp;nbsp;IoHandler::SendPacket(char const*, unsigned int, bool) + 786 in section .text&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;[..]&amp;nbsp;IoHandler::UniCast(char const*, unsigned int) + 26 in section .text&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;[..]&lt;/SPAN&gt;&amp;nbsp;Remote::PartyCast(Party*, char const*, unsigned int) + 141 in section .text&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;[..]&lt;/SPAN&gt; Dispatcher::Do(&lt;WBR&gt;Task*, TaskMsg*) + 795 in section .text&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;[..]&lt;/SPAN&gt;&amp;nbsp;Task::&lt;WBR&gt;ExtractTaskMsg(&lt;WBR&gt;TaskMsg*) + 953 in section .text&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px 0px 0px 10pt&quot; class=MsoNormal&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; COLOR: rgb(191,191,191)&quot; lang=EN-US&gt;[..] &lt;/SPAN&gt;Task::svc() + 510 in section .text&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;br /&gt;
&lt;br /&gt;콜스택(?)을 얻었으니 ESP값과 비교 등을&amp;nbsp;통해서 어느 지점에서&amp;nbsp;Crash되었는 지를 파악할 수 있을 것입니다. 아마 있어야 하는 함수 1~2개가 누락되어서 보이는 경우가 대부분 일테고요.&amp;nbsp;어떤 함수가 버퍼를 넘치게 했는지 찾아내면 됩니다.&lt;br /&gt;
&lt;br /&gt;좀 더 정확한 원인을 얻어 보기 위해서는 GDB의 &lt;STRONG&gt;x&lt;/STRONG&gt; 명령어 등을&amp;nbsp;이용해서 ESP 주변 메모리를 잘 뒤져보면 답을 찾을 수 있습니다. 하지만 이 정도 까지 얻었다면 소스를 보고 문제의 원인을 먼저 찾고 문제점이 맞는지 검증하는 편이 더 빠를 수 있습니다.&lt;br /&gt;
&lt;br /&gt;그럼 즐거운 디버깅 되세요 :)&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;</description>
			<category>정보 공유터</category>
			<category>core</category>
			<category>corefile</category>
			<category>debugging</category>
			<category>GDB</category>
			<category>Linux</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/353</guid>
			<comments>http://9eye.net/entry/Debug-Broken-CallStack-using-GDB#entry353comment</comments>
			<pubDate>Mon, 18 Jan 2010 22:56:48 +0900</pubDate>
		</item>
		<item>
			<title>내 책상 (2010)</title>
			<link>http://9eye.net/entry/My-Desk-In-The-Office-2010</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/12364D244B4D47B74BB0A0&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/12364D244B4D47B74BB0A0&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;myOfficeDesk.jpg&quot; height=&quot;473&quot; width=&quot;630&quot;/&gt;&lt;/a&gt;&lt;/div&gt;(사진 찍은 날짜는 사진 우측 위에 표시.)&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;아시는 분은 아시겠지만&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;저는 온라인 게임 서버를 만들고 있습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
#.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;모니터는 세 대를 사용합니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;본체는 두 대를 이용하며,&amp;nbsp;두 컴퓨터는 Input Director로 연결해서 사용합니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;(지금은 내부 사정으로 서브컴퓨터를 사용하지 못하고 있습니다만,&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp;서브 컴퓨터의 용도는 주로 웹서핑이나 모니터링 툴을 사용하는 목적으로 썼습니다. )&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;/div&gt;
&lt;div&gt;
&amp;nbsp;키보드는 원래 기계식을 쓰다가 너무 시끄러운것 같아서 i-rocks를 씁니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;근데 요즘 가끔씩 손목이 아파서(원인은 잘 모르겠지만..)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;Microsoft의 Natural Keyboard로 바꿀까 말까 고민하고 있습니다.&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;/div&gt;
&lt;div&gt;
&amp;nbsp;키보드 아래에는 Post-It을 붙이는 장소입니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;할일이 생기면 Post-It을 붙이고, 그 위에 적어 둡니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;할일을 다 하면 두줄로 긋고, Post-It에 적힌 리스트가 모두 두줄로 그으면 Post-It을 버립니다.&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;/div&gt;
&lt;div&gt;
&amp;nbsp;주로 쓰는 프로그램은 Microsoft Visual Studio 2008 입니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;Linux에서 돌아가야하는 Application을 만들지만 Linux에서 개발/디버깅은 불가피한 경우가 아니면 하지 않습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;Visual Studio을 쓸때는 양쪽 화면에 꽉차게 창 크기를 늘려서 씁니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;이렇게 쓰면 창 두개를 한 화면에 볼 수 있어서 편리합니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;(사진에서는 파일 하나만 열었네요.)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;색상은 검은 바탕을 선호하며, 폰트는 Bit Stream Vera Sans Mono를 씁니다.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
			<category>잡담 놀이터</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/352</guid>
			<comments>http://9eye.net/entry/My-Desk-In-The-Office-2010#entry352comment</comments>
			<pubDate>Wed, 13 Jan 2010 15:57:08 +0900</pubDate>
		</item>
		<item>
			<title>위대한 발견: Visual Studio 검색창 늘리기</title>
			<link>http://9eye.net/entry/%EC%9C%84%EB%8C%80%ED%95%9C-%EB%B0%9C%EA%B2%AC-Visual-Studio-%EA%B2%80%EC%83%89%EC%B0%BD-%EB%8A%98%EB%A6%AC%EA%B8%B0</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile3.uf.tistory.com/original/1156F10C4B30A2305730FC&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile3.uf.tistory.com/image/1156F10C4B30A2305730FC&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;ureka.PNG&quot; height=&quot;165&quot; width=&quot;481&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;div&gt;&lt;div&gt;
&amp;nbsp;그림의 오른쪽 아래 동그라미 쳐진 곳을 주목하면 된다.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;저 상자가 늘어난다는 것..&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
&amp;nbsp;매일 쓰던 툴에서 발견한 신선함 이랄까;;;&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;/div&gt;</description>
			<category>정보 공유터</category>
			<category>Visual Studio</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/351</guid>
			<comments>http://9eye.net/entry/%EC%9C%84%EB%8C%80%ED%95%9C-%EB%B0%9C%EA%B2%AC-Visual-Studio-%EA%B2%80%EC%83%89%EC%B0%BD-%EB%8A%98%EB%A6%AC%EA%B8%B0#entry351comment</comments>
			<pubDate>Tue, 22 Dec 2009 19:44:46 +0900</pubDate>
		</item>
		<item>
			<title>Vim으로 여러 파일 Tab으로 열기</title>
			<link>http://9eye.net/entry/Open-Many-files-in-single-vim-using-tabs</link>
			<description>&lt;br /&gt;
&amp;nbsp;일단 회사에 보면 대부분이 U모 Editor를 사용하고 있다.&lt;br /&gt;
&amp;nbsp;훌륭한 프로그램이라고 생각하지만 그냥 안 쓰다보니 설치도 안했다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;나는 주로 Windows에서도 Vim을 쓰는데..&lt;br /&gt;
&amp;nbsp;다른 사람들에 비해서 여러개의 파일을 다루는 것이 불편하다는 것을 알게 되었다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/167258164AEC1C629DB10C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/167258164AEC1C629DB10C&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;gg.PNG&quot; height=&quot;425&quot; width=&quot;460&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;그래서 위와 같이 Vim의 Tabs 기능으로 자주 쓰는 파일을 열어야 생각이 들었다.&lt;br /&gt;
&amp;nbsp;일단 생각하고나니 문제가 간단해졌다.&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #c1c1c1 1px solid; BORDER-LEFT: #c1c1c1 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px solid; BORDER-RIGHT: #c1c1c1 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;CD F:\TT\&lt;br /&gt;
gvim -p *.xml&lt;br /&gt;
&lt;/DIV&gt;&lt;br /&gt;
&amp;nbsp;자주 쓰는 파일 목록을 따로 저장해서 열어주는 방식도 있겠지만..&lt;br /&gt;
&amp;nbsp;난 이 정도로 충분했다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;두 개의 바로가기를 만들었는데&lt;br /&gt;
&amp;nbsp;하나는 *.xml을 읽어 주고, 하는 *.ini를 읽어 준다.&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;이제는&amp;nbsp;다른 사람보다 편해졌다. :)&lt;br /&gt;
&lt;br /&gt;</description>
			<category>정보 공유터</category>
			<category>batch</category>
			<category>Command Line</category>
			<category>script</category>
			<category>win32</category>
			<author>U_Seung</author>
			<guid>http://9eye.net/350</guid>
			<comments>http://9eye.net/entry/Open-Many-files-in-single-vim-using-tabs#entry350comment</comments>
			<pubDate>Sat, 31 Oct 2009 20:50:06 +0900</pubDate>
		</item>
	</channel>
</rss>
