<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>rein's world</title>
	
	<link>http://rein.kr/blog</link>
	<description>프로그래머, 독서가, 게이머 그리고 블로거</description>
	<lastBuildDate>Tue, 09 Mar 2010 23:59:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/reinblog" /><feedburner:info uri="reinblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>reinblog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Turing Award 2009</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/5HoMRjmjXxk/2225</link>
		<comments>http://rein.kr/blog/archives/2225#comments</comments>
		<pubDate>Tue, 09 Mar 2010 23:59:16 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2225</guid>
		<description><![CDATA[2009년 ACM A. M. 튜링 어워드는어제 날짜로(미국 시간), 마이크로소프트 리서치의 C. Thacker 에게 수여되었다.
2007년 IEEE 존 폰 노이만 메달의 주인공이기도 한데, 여기서도 언급한 &#8220;최초의 현대식 개인용 컴퓨터를 만든 사람&#8221;으로 이번에 튜링 어워드를 수상하게 되었다. 사실 누군지 그때 보고 까먹어서(&#8230;) 다시 위키백과 C. Thacker 페이지를 봤다. 최초의 개인용 컴퓨터인 Xerox PARC에 있을 때 최초의 개인용 컴퓨터인 Alto를 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webcitation.org/5o6kRE5V6">2009년 ACM A. M. 튜링 어워드는어제 날짜로(미국 시간), 마이크로소프트 리서치의 C. Thacker 에게 수여되었다</a>.</p>
<p>2007년 IEEE 존 폰 노이만 메달의 주인공이기도 한데, 여기서도 언급한 &#8220;최초의 현대식 개인용 컴퓨터를 만든 사람&#8221;으로 이번에 튜링 어워드를 수상하게 되었다. 사실 누군지 그때 보고 까먹어서(&#8230;) 다시 <a href="http://en.wikipedia.org/wiki/Charles_P._Thacker">위키백과 C. Thacker 페이지를 봤다</a>. 최초의 개인용 컴퓨터인 Xerox PARC에 있을 때 최초의 <a href="http://en.wikipedia.org/wiki/Xerox_Alto">개인용 컴퓨터인 Alto</a>를 만들었고, DEC에서 최초의 MP 워크스테이션 구현체인 <a href="http://en.wikipedia.org/wiki/DEC_Firefly">Firefly</a>를 만들면서, cache snooping 기반의 coherency protocol을 만들어냈다.<sup>[1]</sup></p>
<p>그리고 마이크로소프트 리서치에서 타블렛 PC를 만들어냈다고 한다.</p>
<p>한줄 논평: 거의 개인용 컴퓨팅 사를 쓰신 분인게 참 무섭군요(&#8230;).</p>
<ol class="footnotes"><li id="footnote_0_2225" class="footnote">컴퓨터 구조 시간에 배우는 MESI 프로토콜과 비슷한데, I 상태가 없고 write-through로 구현되어 있음</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=5HoMRjmjXxk:CtLO9IRPeHo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=5HoMRjmjXxk:CtLO9IRPeHo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=5HoMRjmjXxk:CtLO9IRPeHo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=5HoMRjmjXxk:CtLO9IRPeHo:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/5HoMRjmjXxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2225/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2225</feedburner:origLink></item>
		<item>
		<title>리뷰: 프로젝트가 서쪽으로 간 까닭은</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/tIvvulRSShs/2220</link>
		<comments>http://rein.kr/blog/archives/2220#comments</comments>
		<pubDate>Tue, 09 Mar 2010 14:05:06 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[책]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2220</guid>
		<description><![CDATA[작년 졸트 어워드를 받은 “Adrenaline Junkies and Template Zombies”의 번역이다. 역자는 Joel on Software, 초난감 기업의 조건 등등을 번역한 박재호 님과 이해영 님.

책 제목이 참 괜찮게 한글화 된 듯하다. 그래서 산거지만(…)
일단 86 가지의 “팀 (행동) 유형”에 관해서 4 명의 저자들이 (어떻게 보면 굉장히) 가볍게 다룬다. 각 항목마다,

항목의 제목(과 그에 해당하는 원본 책의 제목)
그에 해당하는 사진 [...]]]></description>
			<content:encoded><![CDATA[<p>작년 졸트 어워드를 받은 “Adrenaline Junkies and Template Zombies”의 번역이다. 역자는 Joel on Software, 초난감 기업의 조건 등등을 번역한 박재호 님과 이해영 님.</p>
<p><div style='text-align: center;'><a href='http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8991268684&amp;copyPaper=1&amp;ttbkey=ttbrein011042003'><img src='http://image.aladdin.co.kr/cover/cover/8991268684_1.jpg' alt="프로젝트가 서쪽으로 간 까닭은 - 프로젝트 군상의 86가지 행동 패턴" style="border: 1px solid black;" /></a></div></p>
<p>책 제목이 참 괜찮게 한글화 된 듯하다. 그래서 산거지만(…)</p>
<p>일단 86 가지의 “팀 (행동) 유형”에 관해서 4 명의 저자들이 (어떻게 보면 굉장히) 가볍게 다룬다. 각 항목마다,</p>
<ul>
<li>항목의 제목(과 그에 해당하는 원본 책의 제목)</li>
<li>그에 해당하는 사진 혹은 그림</li>
<li>수 단어 ~ 수 줄 수준의 간단한 어구 인용, 혹은 내용 요약</li>
<li>본 내용 1~3 페이지 정도.</li>
</ul>
<p>의 형식으로 다룬다. 덕분에 지하철 2정거장 이동 –&gt; (환승) –&gt; 3정거장 이동인 출/퇴근 길에 끊기는 느낌없이 참 편안히 볼 수 있었다.</p>
<p>인상 깊은 항목이거나, 내가 재밌게 본 항목을 몇 개 인용해보겠다.</p>
<blockquote><p>7번째 항목 내일(Mãnana)에서는 “막연한 내일”의 문제를 다룬다. “일을 끝내기 위한 긴박감을 느끼는 기간은 약 30일에서 90일”인데, 이에 해당하는 기간이 아니라 막연한 마감시한인 경우(저보다 긴 데드라인), 긴박감을 느낄 수 없다는 문제. 그래서 이걸 잘게 나눠서, 각 기간마다 결과물(프로토타입, 특정 기능집합 …)을 내놓게 해야한다고 설명한다.</p></blockquote>
<p>이런 식으로 각 문제, 혹은 현상(?)을 가볍게 다루면서 86개의 항목이 나온다. 안 지루하고, 프로젝트 문제점을 지적하는 여러 책들에 비해 상대적으로 통찰력도 주는 느낌이고, 쪼개보기 좋아서 편하게 봤다.</p>
<p>유쾌하게 봤던 항목을 몇 개 꼽자면,</p>
<ul>
<li>16, 대시보드 &#8211; 일종의 정보 방열판. 다만 정보과잉은 피할 것.</li>
<li>60, 음식++ &#8211; 팀원들이 모여서 식사를 하라. 심지어 음식을 만들어먹어라!<sup>[1]</sup></li>
<li>67, 십자 나사 &#8211; 좋은 아이디어라고 빨리 퍼지는 건 아니다. 이건 회사들어가기 전에 품었던 생각 중 일부를 실제로 실현하는데 걸린 시간을 생각하면 Orz</li>
<li>70, 브라운 운동 &#8211; 방향성을 응집성 있게 세우는 건 중요하다. 특히 초기에. C++은 한 명이 만들었다. linux도, python도, &#8230; 위원회가 만든 ada의 현재 운명은&#8230;(하략)</li>
<li>80, 해외 개발팀 함정 &#8211; L? 전자에서 일하던 친구 A군의 증언이랑 비교해서 생각하니, &#8220;이렇게 멍청하게 하는게 정말 실제 사례군&#8221;이란 느낌을 받았다</li>
</ul>
<p>정도? 사실 나머지도 다 유쾌함; 실제 상황이라면 무진장 괴롭겠지만&#8230;</p>
<p><a href="http://rein.kr/blog/archives/462">예전에 “초난감 기업의 조건”을 읽었을 때 느꼈던, “그래서 어쩌라고?”하는 느낌</a>도 좀 덜해서 – 각 현상의 냄새에 관한 언급이 적절히 끼어들어가 있다 – 어느 정도 추천할만한 책인듯 싶다.</p>
<ol class="footnotes"><li id="footnote_0_2220" class="footnote">미야자키 하야오 감독이 &#8220;센과 치히로의 행방불명&#8221;을 제작하던 때에, 돌아가면서 음식을 만들었다는데, 감독 자신도 국수를 만들어 내놨다고 한다;;;; 근데 책에는 센과 <strong>히치</strong>로라고 오타가 있다. 흑흑</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=tIvvulRSShs:ipcwebXNgU4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=tIvvulRSShs:ipcwebXNgU4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=tIvvulRSShs:ipcwebXNgU4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=tIvvulRSShs:ipcwebXNgU4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/tIvvulRSShs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2220/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2220</feedburner:origLink></item>
		<item>
		<title>내 글이 SNS에 다다를 때까지 걸리는 시간</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/OFPPQwKFXkA/2146</link>
		<comments>http://rein.kr/blog/archives/2146#comments</comments>
		<pubDate>Sun, 07 Mar 2010 09:38:47 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2146</guid>
		<description><![CDATA[이 블로그에서 글을 하나 쓰면, 대략 다음과 같은 경로로 (내가 사용하는) SNS들에 전파된다 (고 추정된다).

일단 RSS 리더인 구글리더에 직접(RSS 주소 넣음) + FeedBurner 를 통해서 전달되고, FeedBurner는 이걸 twitter로도 보낸다.

그리고 Google Buzz는 이걸 따로 가져가는 듯 하고, 마지막으로 twitter 로 보낸 글을 Google Buzz가 다시 긁어온다.

근데 이게 걸리는 시간을 보고 있자니 미묘한 시차가 재밌다. 요즘 [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">이 블로그에서 글을 하나 쓰면, 대략 다음과 같은 경로로 (내가 사용하는) SNS들에 전파된다 (<em>고 추정된다</em>).</div>
<div><img class="alignnone size-full wp-image-2210" title="DataFlowToSNS" src="http://rein.kr/blog/wp-content/uploads/2010/03/DataFlowToSNS.png" alt="Data Flow To SNS" width="225" height="308" /></div>
<div>일단 RSS 리더인 구글리더에 직접(RSS 주소 넣음) + FeedBurner 를 통해서 전달되고, FeedBurner는 이걸 twitter로도 보낸다.</div>
<div></div>
<div>그리고 Google Buzz는 이걸 따로 가져가는 듯 하고, 마지막으로 twitter 로 보낸 글을 Google Buzz가 다시 긁어온다.</div>
<div></div>
<div>근데 이게 걸리는 시간을 보고 있자니 미묘한 시차가 재밌다. 요즘 (사실 요즈음이라고 하기엔 좀 찔리지만…)</div>
<div>여튼 최근 글 4 개 기준으로,</div>
<pre>Twitter(via FB):        00:06   00:22   00:24   00:12
Buzz:                   01:12   00:22   00:24   00:12
Google Reader(via FB):  01:19   00:26   00:24   00:12
GoogleReader:           00:20   01:13   00:24   00:12
Buzz(via Twitter)       09:06   19:08   08:40   02:06</pre>
<div>가 각각 걸렸다. 정렬 순서는 <em>평균적으로</em> 빠른 순&#8230;</div>
<div></div>
<div>갈수록 FB의 socialize 로 트위터에 글이 가는 시간과, 구글 리더에 글이 업데이트되는 시간, Buzz 에 업데이트 시간이 비슷하게 나온다. 이걸로 봐선 Google Reader 와 Google Buzz, FeedBurner의 socialize 는 (FeedBurner의 것으로 추정되는) 크롤러 큐를 공유하는 듯 하다. 가끔 엄한 시차가 나는 걸로 봐선 push라기보단 pull이란 느낌으로?</div>
<div></div>
<div>아마 의도적인듯 하지만, 트위터 -&gt; 구글 버즈는 무진장 느림&#8230;  가장 빨랐을 때도 2시간 넘게 걸리다니; 오래 걸릴 땐 거의 하루가 걸렸고; 덕분에 상대적으로 트위터를 잘 안쓰게 된다. 그리고 상대적으로 사용횟수는 줄고, 주로 Google Buzz를 이용하게 된다 &#8212; 특히 회사 있을 때. 적절한 정렬(단순한 reverse-chronicle order가 아닌) + mute 기능 때문에, 회사에서 관심가는 대화만 적당히 볼 수 있단 느낌으로&#8230;</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=OFPPQwKFXkA:4yklGID9vE8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=OFPPQwKFXkA:4yklGID9vE8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=OFPPQwKFXkA:4yklGID9vE8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=OFPPQwKFXkA:4yklGID9vE8:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/OFPPQwKFXkA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2146/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2146</feedburner:origLink></item>
		<item>
		<title>전역</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/jDjAJ3mJohg/2213</link>
		<comments>http://rein.kr/blog/archives/2213#comments</comments>
		<pubDate>Sat, 06 Mar 2010 16:05:03 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[일상]]></category>
		<category><![CDATA[잡담]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2213</guid>
		<description><![CDATA[Global variable / function 할 때의 그 전역은 아니고(…), 전문연구요원으로 복무하는 기간이 끝났다.
2007년 3월 7일부터 2010년 3월 6일(토요일이라 실질적으론 전날인 5일까지)까지로 끝.    병무청 홈페이지에서 정말 끝난건가 싶어서(…) 뭔가 조회해보려고 했더니 가상 PC에선 거의 뭐가 안된다; 덤벼 싸우자!
유일하게 조회되는건 아직 데이터가 없다고 나온다. 이건 월요일되야 업데이트되나…[1] 
사실 전문연구요원 신분(?)을 벗어나 민간인(!)이 되는거라고해도 바뀌는거라곤 [...]]]></description>
			<content:encoded><![CDATA[<p>Global variable / function 할 때의 그 전역은 아니고(…), 전문연구요원으로 복무하는 기간이 끝났다.</p>
<p>2007년 3월 7일부터 2010년 3월 6일(토요일이라 실질적으론 전날인 5일까지)까지로 끝.    <br />병무청 홈페이지에서 정말 끝난건가 싶어서(…) 뭔가 조회해보려고 했더니 가상 PC에선 거의 뭐가 안된다; 덤벼 싸우자!</p>
<p>유일하게 조회되는건 아직 데이터가 없다고 나온다. 이건 월요일되야 업데이트되나…<sup>[1]</sup> </p>
<p>사실 전문연구요원 신분(?)을 벗어나 민간인(!)이 되는거라고해도 바뀌는거라곤 해외 나갈 때 절차가 단순화되는 거 밖에 없는듯하지만; 개인적으로 자축 겸, 정리 겸 해서 글을 쓴다.</p>
<p>ps. 뭔가 주특기(?)가 1713 전산기운용으로 나오는군. 대체 왜? 전문연 하면 그냥 소총수?던가 아닌가…</p>
<ol class="footnotes"><li id="footnote_0_2213" class="footnote">사실 이거 캡쳐해서 넣으려고 했는데 ㅠㅠ</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=jDjAJ3mJohg:nkYM68bJRFM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=jDjAJ3mJohg:nkYM68bJRFM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=jDjAJ3mJohg:nkYM68bJRFM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=jDjAJ3mJohg:nkYM68bJRFM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/jDjAJ3mJohg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2213/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2213</feedburner:origLink></item>
		<item>
		<title>이번 가을 Civilization V가 온다!</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/twbNgC4XDUA/2191</link>
		<comments>http://rein.kr/blog/archives/2191#comments</comments>
		<pubDate>Mon, 22 Feb 2010 01:13:23 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Game]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2191</guid>
		<description><![CDATA[내가 가장 사랑해 마지 않는 게임, Civilization 시리즈의 신작이 이번 가을에 등장할 예정이라함.
http://www.civilization5.com/
공개된 정보는 개략적인 발매일(올 가을)과 3 장의 스크린샷 뿐.
Updated: Steam 을 통해 공개된 정보에 따르면, 스팀 쪽으로는 2010년 9월 2일에 발매됨 &#8212; http://store.steampowered.com/app/50100/
공개된 스크린샷도 총 5개로 증가. 
일단 공식 홈페이지를 통해 공개된 스샷 중 하나를 여기에도 올린다. 모든 권리는 Firaxis Games 에 있다. [...]]]></description>
			<content:encoded><![CDATA[<p>내가 가장 사랑해 마지 않는 게임, Civilization 시리즈의 신작이 이번 가을에 등장할 예정이라함.</p>
<p><a href="http://www.civilization5.com/">http://www.civilization5.com/</a></p>
<p><del datetime="2010-02-24T00:18:44+00:00">공개된 정보는 개략적인 발매일(올 가을)과 3 장의 스크린샷 뿐.</del></p>
<p>Updated: Steam 을 통해 공개된 정보에 따르면, 스팀 쪽으로는 2010년 9월 2일에 발매됨 &#8212; <a href="http://store.steampowered.com/app/50100/">http://store.steampowered.com/app/50100/</a></p>
<p>공개된 스크린샷도 총 5개로 증가.<a href="http://store.steampowered.com/app/50100/"> </a></p>
<p>일단 공식 홈페이지를 통해 공개된 스샷 중 하나를 여기에도 올린다. 모든 권리는 Firaxis Games 에 있다. (All rights are reserved to Firaxis Games)</p>
<p><img class="aligncenter size-full wp-image-2192" title="Civilization V" src="http://rein.kr/blog/wp-content/uploads/2010/02/screenshot_03.jpg" alt="Civilization V" width="640" height="366" /></p>
<p>Civilization IV 보다 좀 더 &#8220;생동감이 더해진&#8221; 그래픽이 맘에 든다. 사실 나와주는 것만으로도 감사! ㅠㅠ</p>
<p>아마 Amazon.com 에선 해외 배송이 안될 듯 하지만, 모든 수단과 방법을 동원해서(&#8230;) 구매해야지 Orz</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=twbNgC4XDUA:diwGLlBOVHs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=twbNgC4XDUA:diwGLlBOVHs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=twbNgC4XDUA:diwGLlBOVHs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=twbNgC4XDUA:diwGLlBOVHs:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/twbNgC4XDUA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2191/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2191</feedburner:origLink></item>
		<item>
		<title>근황 – 2010/02/18</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/Nnq7sBe72tY/2142</link>
		<comments>http://rein.kr/blog/archives/2142#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:45:17 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[일상]]></category>
		<category><![CDATA[잡담]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2142</guid>
		<description><![CDATA[설
이번 설은 제주도에서 보냈다. 제주도에 있는 친가에서 3일간 보내고 서울로 귀환.
아들내미는 (대부분의) 내 친가/외가 친척들과는 처음 만나는 자리였는데, 아직 낯을 안가려서인지 인기 만점.
놀아주는 사람이 많아서인지 잘 보내다 왔다. 다만 귀성길의 비행기 안에서는, 내려가는 내내 울어서 안쓰러웠다. 귀경길엔 먹을 걸 찾아서 울지 않았음(&#8230;)
귀환길에 장염을 달고와서 (사실 오기 전부터 설사+구토 1번), 대략 만 40시간 정도 설사하고, 두 [...]]]></description>
			<content:encoded><![CDATA[<h3>설</h3>
<p>이번 설은 제주도에서 보냈다. 제주도에 있는 친가에서 3일간 보내고 서울로 귀환.</p>
<p>아들내미는 (대부분의) 내 친가/외가 친척들과는 처음 만나는 자리였는데, 아직 낯을 안가려서인지 인기 만점.<br />
놀아주는 사람이 많아서인지 잘 보내다 왔다. 다만 귀성길의 비행기 안에서는, 내려가는 내내 울어서 안쓰러웠다. 귀경길엔 먹을 걸 찾아서 울지 않았음(&#8230;)</p>
<p>귀환길에 장염을 달고와서 (사실 오기 전부터 설사+구토 1번), 대략 만 40시간 정도 설사하고, 두 번 토하고 -_- 병원가서 약처방받고 만 이틀을 죽만 먹은 끝에 지금은 나은듯하다.<br />
덕분에 서울에 잠시 방문한 ㅈㅎㅁ은 못 만나버림. Orz</p>
<h3>신분 변경(?)</h3>
<p>다가오는 3월 첫째 주에는 해외 여행도 맘대로 못 가던 신분을 탈피하게 된다. 길고 긴 1096일?</p>
<h3>책읽기</h3>
<p>최근 책 읽는 시간이 많이 줄었다. 1월달의 프로젝트 압박 탓 + 2월 달에는 설 때문에 앞 뒤로 이거저거 연결되서 귀찮아진듯.</p>
<p>복습의 의미로 두 권의 책을 읽고 있다. 하나는 TCP/IP Illustrated, 나머지 하나는 Linux Network Internals. 전자랑 후자가 다루는 레이어가 거의 안겹치고, 시대도 좀 많이 다른 탓에<sup>[1]</sup> 여러모로 생각할 점이 많아서 좋다.<br />
다만 최근에 집에 오면 피곤해서인지 종이책인 TCP/IP Illustrated는 진도가 더디다&#8230; Orz</p>
<h3>Google Buzz</h3>
<p>트위터의 단순성과는 좀 더 다른 흐름인 느낌. 사실 좀 더 취향? 구글이 뭔가 Google Wave와 FriendFeed, 그리고 gmail 을 잘 믹싱해서 꾸려나가기 시작한듯하다.<br />
초반의  privacy 논란이 좀 안쓰럽긴하지만(&#8230;), 주변 사람들이 뛰어드는 정도(?)는 오히려 트위터 때 보다 빠른 느낌. 아마 메일 클라이언트에서 바로 연결되서 그런듯도 싶고&#8230;</p>
<p>다만 의식적으로(?) 트위터 연동은 좀 느리게 해놨단 느낌도 든다.</p>
<p>최근 글이 각 미디어(?)로 전파된 속도를 비교해보면, 대략</p>
<ol>
<li>트위터 (via Feed Burner)</li>
<li>각 ping 서비스</li>
<li>구글 리더(via ping service)</li>
<li>Google buzz</li>
<li>구글 리더(via Feed Burner)</li>
<li>Twitter -&gt; Buzz</li>
</ol>
<p>순으로 글이 뜨는걸 확인할 수 있었다.</p>
<p>근데 1과 5의 속도 차이는 뭘까?(&#8230;)</p>
<p>Google Buzz 가 블로그를 정확히 어떤 방법으로 인지하는지가 좀 궁굼해지는군&#8230;</p>
<p>Updated: 날짜를 뭔가 엄한 걸 쓰고 있었음&#8230;</p>
<ol class="footnotes"><li id="footnote_0_2142" class="footnote">전자는 지금은 유명을 달리한 스티븐슨 아저씨 책이다</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=Nnq7sBe72tY:ldscdPENsIM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=Nnq7sBe72tY:ldscdPENsIM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=Nnq7sBe72tY:ldscdPENsIM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=Nnq7sBe72tY:ldscdPENsIM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/Nnq7sBe72tY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2142/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2142</feedburner:origLink></item>
		<item>
		<title>프로그래머의 일상: 다시 ActionScript 삽질</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/G4-L--_mJZI/2138</link>
		<comments>http://rein.kr/blog/archives/2138#comments</comments>
		<pubDate>Sat, 13 Feb 2010 04:12:55 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2138</guid>
		<description><![CDATA[사실 이건 ActionScript 2.0 이라서 하는 삽질이지만.
예전에 했던 작업을 동면에서 깨워, 다시 진행해야하는 상황이 되었다(이미 2.x주 전의 얘기). 그래서 요즘 C++ + ActionScript(2.0; Flash  으로 작업하고 있는데, 나는 플래시 저작툴 라이센스가 하나도 없어서 MotionTwin 의 툴셋을 쓰고 있다. 덤으로 ASUnit 2.5 도 다시 끄집어 내서 사용 중.
예전에 Flex 로 액션스크립트 테스트를 한다는 글을 읽고, [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #ff0000;">사실 이건 ActionScript 2.0 이라서 하는 삽질이지만.</span></strong></p>
<p>예전에 했던 작업을 동면에서 깨워, 다시 진행해야하는 상황이 되었다(이미 2.x주 전의 얘기). 그래서 요즘 C++ + ActionScript(2.0; Flash <img src='http://rein.kr/blog/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> 으로 작업하고 있는데, 나는 플래시 저작툴 라이센스가 하나도 없어서 <a href="http://www.mtasc.org/">MotionTwin 의 툴셋</a>을 쓰고 있다. 덤으로 ASUnit 2.5 도 다시 끄집어 내서 사용 중.</p>
<p><a href="http://rein.kr/blog/archives/1428">예전에 Flex 로 액션스크립트 테스트를 한다는 글을 읽고, 다음에 이 쪽을 또하면 이용해보자란 생각을 했었다</a>. 그렇지만 여전히 ActionScript 2.0 (≠Flex SDK)라서, 이걸 사용하는건 불가능.</p>
<p>일단 현재 테스트하는 환경/상태는 다음과 같다.</p>
<ul>
<li>수 개의 .as 파일에 대해, 이 파일 중 변경 사항이 있으면<sup>[1]</sup> , msbuild 를 실행시켜서 .swf 를 빌드해낸다.</li>
<li>msbuild는 .swf를 빌드하고, 이걸 특정 디렉토리로 복사한다.</li>
<li>python으로 작성한 웹 서버는 특정 디렉토리에 있는 파일들을 서비스하게 동작.</li>
<li>웹 페이지 하나에 .swf 들을 embed 로 연결하고, 이 페이지에 http meta tag 중 refresh 태그를 이용해서 30초마다 다시 실행</li>
</ul>
<p>그리고 조그맣게 띄워놓은 웹 브라우져로 실행 결과를 지켜보고 있다. 그러니까 아직 CI 툴에 붙일 수 없는 상태(=커맨드라인 실행이 불가능한 수준).</p>
<p>이에 대한 앞으로의 개선책(?)은 아래 정도. <a href="http://twitter.com/oscarplex/status/8929909541">처음 두 개는 @oscarplex 님의 조언을 듣고 정리한 것</a>.</p>
<ul>
<li>테스트 결과를 받는 (python) 웹 서버를 하나 짜고, 이 서버가 정해진 형태로 유닛테스트 이름과, 결과를 받아서 (xml) 파일로 내보내는 방법</li>
<li>(웹브라우져에서) 출력하는 부분을 API hooking해서 내보내는 방법</li>
<li>웹브라우져에서 드래그&amp;복사는 되는걸로 봐서, 이걸 어떻게 자동화해버리는 방법</li>
</ul>
<p>사실 1이 간단해보이는데(AS 2.0 통신용의 각종 모듈은 다 짜놨으니), 이거 다음주에 전달해주고나면 끝날지도 모르는데?<sup>[2]</sup></p>
<p>고향에 놋북 들고왔으면 후다닥 짜버리면 땡인데 안들고왔으니 Orz.</p>
<p>ps. 사실 시간이 한 4주쯤 여유가 있으면 Python으로 ActionScript 코드 토해내게 짜버리고 싶다(&#8230;).</p>
<ol class="footnotes"><li id="footnote_0_2138" class="footnote">사실 파일 변경 시간(mtime)이 정해진 몇 개의 .swf 보다 최신인 파일이 있다면</li><li id="footnote_1_2138" class="footnote">하지만 난 2 년 쯤 전에도 이 생각을 했지</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=G4-L--_mJZI:O66pdL1uwTI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=G4-L--_mJZI:O66pdL1uwTI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=G4-L--_mJZI:O66pdL1uwTI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=G4-L--_mJZI:O66pdL1uwTI:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/G4-L--_mJZI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2138/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2138</feedburner:origLink></item>
		<item>
		<title>Project DarkStar 는 왜 실패했을까?</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/TOTu1qfJ-kA/2131</link>
		<comments>http://rein.kr/blog/archives/2131#comments</comments>
		<pubDate>Thu, 04 Feb 2010 01:50:02 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2131</guid>
		<description><![CDATA[SUN의 Java 기반의 게임 서버 프레임웍인 Project DarkStar 는 왜 실패했을까? 내가 예전에 생각했던 것과, 요즘 들어 든 생각들을 모아서 요약해봤다.]]></description>
			<content:encoded><![CDATA[<h2>1. 게임 서버는 게임 제작 기간의 임계 경로(critical path)가 아니다</h2>
<p>게임 서버는 대부분의 경우 “게임 제작 시작”과 동시에 작성되기 시작하는 경우는 거의 없다. 그래서 엔진을 사서 얻을 수 있는 이익 중 하나인 “시간 단축”으로 인한 효과가 적거나 없다. 물론 상대적으로 안정화된 코드 베이스를 빨리 얻을 수 있다는 이점은 존재 한다.</p>
<h2>2. 게임 서버 구조에 대한 컨센서스가 없다.</h2>
<p>게임 클라이언트는 각 모듈들 – 게임 로직, 렌더링, AI, … – 이 어느 정도 잘 분해되어 있다 – 적어도 그런 종류의 고민이 많이 끝난 상태다. 하지만 서버의 경우 게임 로직과 게임 서버 자체의 구동을 위한 아랫 단의 구분이 성능 저하없이 잘 이루어져 있는 경우가 드물다. 그래서 이런 서버용 게임 엔진은 시장에 나와 있는 예가 거의 없다. 내가 아는 범위 내에서는 DarkStar 프로젝트와, <a href="http://www.bigworldtech.com/technology/server.php">BigWorld Technology의 BigWorld Server</a> 정도 밖에 없다. 그리고 이 범위 내에서, 상업적으로 충분한 성공을 거둔 게임(eg: 연간 1m USD 이상의 매출)은 없다.</p>
<p>그리고 각 프로젝트마다 실제 서버 구조 차이는 꽤나 컸다 – 내가 본 사용 서버 코드만 4개가 넘는데, 각자 다른 구조를 차용하고 있고, 기본적인 도구 수준에서나 같은 모습을 볼 수 있다. 하지만 DarkStar 는 일단 단일 구조로 나왔고, 커스터마이징이 가능하긴하지만 전체 구현 자체는 MMORPG 를 노린 것으로 보인다. 그렇기에 충분히 큰 시장을 가지지 못했다고 생각된다.</p>
<h2>3. Java 사용의 문제</h2>
<p>* <strong>Java GC가 신뢰할 정도로 빠른가?</strong> 분명히 Java는 서버 어플리케이션의 throughput 면에서는 만족할 만한 성능을 내고 있고, 이런 분야 – 각종 트랜잭션 기반 금융 업무, 웹 페이지 렌더링 … – 에서는 거대한 시장을 이끌고 있다.</p>
<p>하지만 반응 속도 면에서, 최소한 일정 수준 이상의 반응 속도가 필수적인 게임 서버에서도 이게 보장되는가?<sup>[1]</sup>  게임 서버에 가장 많은 부하가 걸릴 시간 – 메모리가 가장 모자라서 GC가 강제화라도 되어야할 시점 – 에 GC가 “한꺼번에” 일어나면 반응성의 문제가 생길 수 밖에 없다.</p>
<p>이건 약간 샛길로 새는 얘긴데, GC 문제는 C#에서도 역시 나타날 수 있다. 최근 런칭한 마비노기 영웅전 서버가 어느 정도 예측가능한 주기(&lt;1일)로 비정기 점검(…을 가장한 서버 셧다운 넘기기)하는게 GC문제가 아닐까 의심 중이다. GC로 메모리가 모자라면 아주 일정한 수순을 거쳐서 서버가 죽게 된다.</p>
<blockquote><p>1. GC로 반응(지연) 시간 증가</p>
<p>2. 큐에 작업이 쌓임</p>
<p>3. 더욱더 메모리가 필요해져서 GC 가 필요해짐</p>
<p>4. 악순환 시작. 실제 작업 로드를 내리는데 CPU가 사용되는게 아니라 GC에 들어감</p>
<p>5. 서버 사망</p></blockquote>
<p>* 예전에 Rica 가 언급했던 <strong>서버/클라이언트 코드 공유 문제</strong>. 코드 생성기로 “우회”할 수는 있지만, 서버/클라이언트 코드 공유로 시스템 전체에서 중복을 제거하는 것도 무시못할 부분인데, 이 부분에서는 Java로 게임 클라이언트를 짜는게 거의 불가능한 상황<sup>[2]</sup> 을 생각하면 좀 암울하다.</p>
<p>* Java 나 C# 류의 언어는 확실히 생산성이 높다. <a href="http://www.codinghorror.com/blog/archives/000299.html">http://www.codinghorror.com/blog/archives/000299.html</a> 참고. 하지만 여기서 말하는 “Write his own” 항들을 게임 서버에서는 <em>적어도 현재로는 필요하기에</em> 사실상 다 하고 있다. 혹은 게임 서버/서버 용 라이브러리가 있거나..</p>
<h2>4. Java 가 새 하드웨어 기술을 잘 따라잡고는 있는가?</h2>
<p>적어도 게임 쪽에서는 아니라고 생각한다. 게임 서버는 그렇게 “현재의 기술”만 가지고 만들어지질 않는다. 한 예로 DarkStar 가 타겟으로 잡았던 MMO 시장의 한 게임을 들어보자. EVE Online 이라는 게임이 있는데, 이 게임의 서버 구조는 어느 정도 알려져 있다 (참조: <a href="http://www.massively.com/2008/09/28/eve-evolved-eve-onlines-server-model/">EVE Online’s Server Model</a>)</p>
<p>이 게임은 서버 군(혹은 shard 란 명칭으로 흔히 부르는 그것)이라는 개념이 없다. 모든 사용자는 “하나의 논리적인 서버”에 들어가는 형태다. 이걸 가능하게 한 기술은 InfiniBand 라고 부르는 네트웍 기술덕인데, CPU 버스 수준의 통신 속도+지연 시간을 보장하는 네트웍 장치다(다만 point-to-point). 이런 상대적으로 low-level 한 기술을 나오는 즉시 사용하기에는 Java 언어 자체의 변경 속도가 느리다. 그렇다고 이걸 C/C++ 로 만든 드라이버를 작성하고, 이걸 DarkStar 같은 녀석 밑단에 JNI 연결하기엔 배보다 배꼽이 커질 것 같다. 게다가 이쯤 되면 프로그래밍 모델이 우리가 흔히 보는 UMA가 아니라 NUMA 모델에 가까워진다. 그것도 non-cc NUMA… Java는 아직 NUMA 에서 GC 구현조차 실험적 상태(experimental) 이다.</p>
<p>또다른 예로, 32bit –&gt; 64 bit 넘어가던 시절에 만들어진 모 게임이 있다. 이 게임의 경우 64bit 운영체제가 시장에 나올 즈음을 타겟팅해서 작성되었는데, 출시가 늦어지면서(…), .dll 의 메모리 모델이 좀 다른 점을 이용해서, 공유 메모리 비슷한 형태로(…) 32bit 응용 프로그램이 쓸 수 있는 물리 메모리보다 더 많은 물리 메모리를 쓸 수 있게 수정해서 출시했다고 한다.<sup>[3]</sup> 이런 low-level 한 시스템 프로그래밍을 DarkStar 같은데 연동하는건 절대로 쉬운 일이 아닐 거다.</p>
<p>물론 Java 가 새 기술을 따라잡으면, Java codebase 전체가 쉽게 이동한다는 장점은 있다. 그렇지만 Java 의 현재 가장 큰 시장은 게임 서버가 아니기에, 이 쪽으로의 이동이 빠를리는 없다 – 적어도 현재 시점에선 그렇게 보인다.</p>
<h2>5. 이식성 문제나 하드웨어 호환성 문제는 서버 프로그래밍에서는 큰 이슈가 아니다</h2>
<p>타겟 하드웨어와 타겟 OS를 정해놓고 작업할 수 있기에, Java 의 장점이라는 이식성/호환성 문제는 아예 이슈거리가 되질 않는다. 오히려 타겟 하드웨어에 맞는 최적화를 “손 쉽게” 쓸 수 없는 Java 의 문제가 생긴다.</p>
<h2>6. DarkStar 는 모든걸 만들어야 했다</h2>
<p>DarkStar 의 실패 원인 중 하나는, DarkStar 의 “기능”으로 소개한 것 중 중요한 것들은 3rd party library로 있는 애들이 많다는 거다. 혹은, 시장이 될만한 MMOG 제작사들이 이미 인-하우스 툴이 갖춰졌을 시점이라는 것.</p>
<p>DISCLAIMER: 이 글은 rein 의 개인적인 견해이며, 소속 기관 어디와의 연관성도 없음을 밝혀둔다. 또한 이 글의 각 사실 관계에 관해서는 현재 알고 있는 바에만 기초했으며, 이걸 사용해서 얻어지는 직/간접적인 결과에 대해서는 rein은 아무런 책임이 없음을 밝힌다.</p>
<ol class="footnotes"><li id="footnote_0_2131" class="footnote">물론 클라이언트에서 이런 반응 속도를 속이기 위한 각종 테크닉을 사용한다. 사용자의 입력에 대한 일단의 액션을 보여주고, 최종적인 결과 처리는 서버의 판단 후에 반영된다거나(이럼 RTT 만큼의 시간은 걸린다). </li><li id="footnote_1_2131" class="footnote">Java 용 게임 클라이언트 라이브러리의 수는 C++용 게임 클라이언트 라이브러리 수와 order-of-magnitude 의 차이가 난다. 질 적인 면에서는 그 성숙도에서 엄청난 차이가 날 게 틀림이 없음에야…</li><li id="footnote_2_2131" class="footnote">이건 PAE 같은 CPU 확장 기능을 이용하면 32 bit OS 라도 16GiB~32GiB 수준의 메모리를 쓸 수 있어서 가능한 것</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=TOTu1qfJ-kA:ie9AQfQrCM0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=TOTu1qfJ-kA:ie9AQfQrCM0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=TOTu1qfJ-kA:ie9AQfQrCM0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=TOTu1qfJ-kA:ie9AQfQrCM0:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/TOTu1qfJ-kA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2131/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2131</feedburner:origLink></item>
		<item>
		<title>Project Dark Star 개발 중단 및 오픈 소스화</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/W-Tu7RLtEoE/2126</link>
		<comments>http://rein.kr/blog/archives/2126#comments</comments>
		<pubDate>Wed, 03 Feb 2010 21:45:32 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2126</guid>
		<description><![CDATA[Project DarkStar 혹은 Sun game server 프로젝트의 개발 중단 공지. 제 3의 오픈소스 저장소로 이전해서 "유지"는 된다는 모양.]]></description>
			<content:encoded><![CDATA[<p>Sun Microsystems 의 Java 기반 MMORPG 서버 프로젝트인 Project Dark Star 가 개발 중단되고, github 와 구글 포럼으로 소스 저장소/포럼을 이전한다고 공지되었다 – via <a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=561113">gamedev.net</a></p>
<p><a href="http://www.projectdarkstar.com/forum/?topic=1540.msg10397">Project Dark Star 의 포럼 공지</a>에 따르면,</p>
<blockquote><p>Today is a difficult day for all of us associated with Project Darkstar. Regretfully, we must inform our community members that Sun Labs engineering effort is no longer being applied to Darkstar development. You will hear from the individual engineers about what this means for them, but the organized lab project will not be moving forward.</p>
<p>One of the reasons that we developed Project Darkstar as an open source project was to allow the community to continue if the research objectives of the core team were changed. We will be maintaining the source repositories and the projectdarkstar.com site for as long as we can, but we are also investigating other homes for both the code and the supporting content.</p>
<p>As interesting as the technology development has been with Project Darkstar, I must say that I found the building of the community around that technology one of the most satisfying and interesting experiences of my professional life. I hope that the community will continue, and personally plan on at least observing and perhaps contributing (as an individual) to that continuation. Thank you all, and my very best wishes going forward. To the core team, I can only say that it was an honor and a privileged to work with you on this project and this technology.</p></blockquote>
<p>간략히 요약하자면, “썬 에서는 더 이상 다크스타에 자원을 투입하지 않을 예정. 공시적인 개발은 더 없다. 웹 사이트와 소스 저장소는 가능한 유지 할 것이며, 코드와 지원 자료를 위한 공간을 찾는 중이다.”.</p>
<p><a href="http://rein.kr/blog/archives/472">예전에 이 프로젝트 다크스타의 테크 데모를 봤지만</a> 그 때 느낌으로도 “이거 망하겠네”였는데, 약 2년 반 정도 지난 지금, 프로젝트가 내려지는걸 보고있으니 기분이 좀 묘하긴하다.</p>
<p>내가 생각하는 실패 이유에 관해선 곧 글을 하나 더 써보기로 하겠다.</p>
<p>ps. 프로젝트 다크스타의 github 이름은 red-dwarf. Dark star 가 (겨우) red-dwarf가 되어버리다니… 참 의미심장하다?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=W-Tu7RLtEoE:sZQQh7TF5kc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=W-Tu7RLtEoE:sZQQh7TF5kc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=W-Tu7RLtEoE:sZQQh7TF5kc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=W-Tu7RLtEoE:sZQQh7TF5kc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/W-Tu7RLtEoE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2126/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2126</feedburner:origLink></item>
		<item>
		<title>Blog 이사 아닌 이사</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/lUAmsWSmvns/2116</link>
		<comments>http://rein.kr/blog/archives/2116#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:48:52 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2116</guid>
		<description><![CDATA[도메인 주소 구입 + 블로그 디렉토리 이전으로 몇 가지 삽질을 했다. 아래는 이틀 간의 삽질 기록.
1. 2009년 12월 27일을 끝으로 만료된 rein.kr 도메인을 구입했다 – 물론 만료 후 한 달이 지나야 다른 사람이 등록할 수 있기에 어제 구입. 구매할 때 상당히 많은 개인정보를 요구하는건 유감이지만 &#8212; .kr 도메인이 아니고서야 한국 내에서 살 이유가 없으니 – [...]]]></description>
			<content:encoded><![CDATA[<p>도메인 주소 구입 + 블로그 디렉토리 이전으로 몇 가지 삽질을 했다. 아래는 이틀 간의 삽질 기록.</p>
<p>1. 2009년 12월 27일을 끝으로 만료된 rein.kr 도메인을 구입했다 – 물론 만료 후 한 달이 지나야 다른 사람이 등록할 수 있기에 어제 구입. 구매할 때 상당히 많은 개인정보를 요구하는건 유감이지만 &#8212; .kr 도메인이 아니고서야 한국 내에서 살 이유가 없으니 – 어쨌든 도메인 주소가 대폭 짧아졌다.</p>
<p>여기까지 해서 <a href="http://rein.upnl.org/wordpress">http://rein.upnl.org/wordpress</a> 를 <a href="http://rein.kr/wordpress/">http://rein.kr/wordpress/</a> 로 이전.</p>
<p>2. 도메인 주소가 짧아지고나니, wordpress 라는 블로그 디렉토리 이름이 묘하게 길어보이기 시작(…).</p>
<p>집에 돌아와서 mod_rewrite 를 열어 수정을 했다. 뭐가 문제였는지는 모르겠지만, top-level 주소는 제대로 redirection<sup>[1]</sup> 되던데, 나머지 주소들 – 그러니까 WordPress 에서 사용하는 archives/post-name tags/tagname 같은 대부분의 주소들 – 은 제대로 redirection 이 안되서 어젯밤은 GG 치고 자러 갔다.</p>
<p>3. 오전에 병원가려고 준비하다가 mod_rewrite 대신에 mod_alias 를 쓰면 되겠다 싶어서 간단히 proof-of-concpets 코드만 짜고 병원 행.</p>
<p>오후에 잠시 난 짬을 써서 주소를 옮겼다.</p>
<p>설정은 다음 코드를 이용.</p>
<div id="scid:2EC9848E-067D-4e79-BAB7-06CA927DB962:79d061ac-ec6d-4341-abaf-f80eba0c3c14" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div style="font-family: consolas,lucida console,courier,monospace;"><span style="color: #008000;"><strong>&lt;IfModule</strong></span> <span style="color: #7d9029;">mod_alias</span>.<span style="color: #7d9029;">c</span><span style="color: #008000;"><strong>&gt;</strong></span><br />
Redirect 301 /wordpress /blog<br />
<span style="color: #008000;"><strong>&lt;/IfModule&gt;</strong></span></div>
</div>
<p>이걸로  <a href="http://rein.kr/wordpress">http://rein.kr/wordpress</a> 를 <a href="http://rein.kr/blog">http://rein.kr/blog</a> 로 전환. 하지만 rein.upnl.org/blog 로 직접 접근해오는 경우는 웹 브라우져 주소창에는 여전히 이전 주소로 찍힌다.</p>
<p>4. 301 redirect 될 주소에 도메인 주소까지 명시적으로 줘봤다. 잘 된다!</p>
<p>이제 rein.upnl.org/wordpress 로 접속해와도 rein.kr/blog 로 간다</p>
<div id="scid:2EC9848E-067D-4e79-BAB7-06CA927DB962:e43a6607-9a08-40c3-922b-89aff1b0f128" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">
<div style="font-family: consolas,lucida console,courier,monospace;"><span style="color: #008000;"><strong>&lt;IfModule</strong></span> <span style="color: #7d9029;">mod_alias</span>.<span style="color: #7d9029;">c</span><span style="color: #008000;"><strong>&gt;</strong></span><br />
Redirect 301 /wordpress http://rein.kr/blog<br />
<span style="color: #008000;"><strong>&lt;/IfModule&gt;</strong></span></div>
</div>
<p>이제 블로그 내부 데이터에 박혀있는 – 그러니까 각 글들의 링크, 사진 주소 등등 – 데이터를 rein.kr 기반으로 옮기면 끝.</p>
<p>여기까지가 현재 상태.</p>
<p>남은 문제:</p>
<ul>
<li>Google 검색 정보 옮기기: WebMaster 툴에서 내가 upnl.org 는 소유하고 있는게 아니라고 거부한다</li>
<li>upnl.org 를 내껄로 위장(?)하기?</li>
<li>구글 커스텀 검색이 rein.upnl.org 기반 페이지로 가려고 시도함. 어디서 바꾸지?<sup>[2]</sup></li>
</ul>
<p>과연 언제다 해결?</p>
<p>2010-01-31 13:42 &#8211; 블로그 각 글에서 rein.upnl.org 사용되는 것 rein.kr 로 이동. 이제 메타데이터 테이블 고쳐야?</p>
<ol class="footnotes"><li id="footnote_0_2116" class="footnote">HTTP 301 응답; permanently moved 이용</li><li id="footnote_1_2116" class="footnote">물론 저기로 가봐야 다시 돌아오게 아파치 설정을 고쳐서 별 문제는 안생김</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=lUAmsWSmvns:cw0W76mhJWA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=lUAmsWSmvns:cw0W76mhJWA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=lUAmsWSmvns:cw0W76mhJWA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=lUAmsWSmvns:cw0W76mhJWA:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/lUAmsWSmvns" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2116/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2116</feedburner:origLink></item>
		<item>
		<title>iPad 단상</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/i3mJHYNqlmY/2115</link>
		<comments>http://rein.kr/blog/archives/2115#comments</comments>
		<pubDate>Fri, 29 Jan 2010 13:34:42 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[잡담]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2115</guid>
		<description><![CDATA[…시류에 영합한 글을 쓰게되어버린 것 같지만 다 기분 탓.
기대에 비해서 좀 아쉽게 나온듯 해서 간단히 글로 정리해보겠다.
Pros.
생각보다 더 큰 화면이다. 7~8” 수준일 거라고 생각했는데 좀 더 큰 기계가 나온듯. 이 정도 크기에 애플 데모처럼 웹 서핑이 충분히 빠르다면 “집에서 쓰겠다고” 넷북 살 일은 적어도 나에겐 안생기겠다.
프로그래밍을 할 수 있을 정도로 serious 한 장비를 사거나, 아예 [...]]]></description>
			<content:encoded><![CDATA[<p>…시류에 영합한 글을 쓰게되어버린 것 같지만 다 기분 탓.</p>
<p>기대에 비해서 좀 아쉽게 나온듯 해서 간단히 글로 정리해보겠다.</p>
<h3>Pros.</h3>
<p><strong>생각보다 더 큰 화면이다</strong>. 7~8” 수준일 거라고 생각했는데 좀 더 큰 기계가 나온듯. 이 정도 크기에 애플 데모처럼 웹 서핑이 충분히 빠르다면 “집에서 쓰겠다고” 넷북 살 일은 적어도 나에겐 안생기겠다.</p>
<p>프로그래밍을 할 수 있을 정도로 serious 한 장비를 사거나, 아예 딱 가볍게 나온 장비(=iPad)를 살 듯</p>
<p><strong>빠르고 3G 연결을 지원한다</strong>. 전용 프로세서를 만들어버린 애플. 2D 가속이 좀 더 쎄다는데, 3D 는 솔직히 모바일 장비에서 사용하기엔 아직 시간이 더 필요할 것 같다.<sup>[1]</sup> 웹서핑 + 이북리더 + …아이폰 기능 일부를 합친 건 멋있음.</p>
<p><strong>싸다</strong>. 정말 싸다. 물론 액세서리가 꽤나 많이 필요할 것 같긴하지만, 기본 가격만 놓고보면 소득이 있고/전자제품에 조금이라도 익숙한 직장인은 거의 부담가지 않을 수준에 가까운 듯 하다.</p>
<p><strong>잡지류에 대한 (현재 상태로는) 최상의 플랫폼이다</strong>. 컬러가 되고, 무선 통신이 된다는 점에서 최고. Kindle DX를 쓰면서 아마존에 구독가능한 잡지 리스트가 꽤나 제한적인거에 의아해했는데, Kindle/Kindle DX가 컬러를 지원하지 않아서 무의미한 잡지가 많아서라고 생각된다. 그런 점에서 iPad가 좋긴한듯…</p>
<h3>Cons.</h3>
<p><strong>UI를 이해할 수 없다</strong>. 10”나 되어버리면 한 손으로 잡고 다른 한 손으로 조작하는게 전혀 쉽지 않다. 지금 내가 사용 중인 Kindle DX랑 거의 같은 form factor로 나오게 되는데(다만 iPad 가 100g쯤 더 무겁다), 킨들 DX도 한 손으로 오래 보고 있으면 – 특히 왔다갔다거리는 시내버스 안 같은 곳 – 꽤나 힘들어서 손을 바꾸게 된다. 근데 과연 여기서 iPhone / iPod touch 에서 보여줬던 양손 + 멀티터치의 장점을 살릴 수 있을까? 10”나 되는 대화면은 절대 양손으로 잡은채로 전 영역을 다 사용하면서 커버할 수 있는 영역이 아니다.</p>
<p>차라리 <a href="http://www.youtube.com/watch?v=pFQWc79TYcU">MS Courier 데모 영상</a>이 UI 면에선 더 끌림 – 거의 고정된 공간에서 한 손으로만 사용하는 예시. 다만 MS Research 는 정말 최고의 연구(결과)를 내지만, MS 구현에서 엄해지는 꼴을 워낙 많이 봐서…(심지어 youtube 댓글에도 그런게 보이더라…)</p>
<p><strong>여전히 Adobe Flash 를 지원하지 않는다</strong>. 이건 여러모로 “정략적”이라고 생각되지만. 왜냐하면 웹 앱 수준 말고는 전부 “설치해서” 사용해야하는데, 그 경계에 있는 플래시를 애플이 전략적/정량적으로 막아놓은 거라고 생각한다. CPU 파워를 생각하면(적어도 데모에서) 플래시를 지원못할리가 없는데 <strong>지원 안하는 것</strong>이 애플의 전략이라고 생각한다. 그래야 애플이 직접 통제할 수 없는 애플리케이션 마켓(여러가지 의미로)이 안 생기거든…</p>
<p><a href="http://barosl.com/blog/entry/google-voice-bypasses-apples-app-store">“랜덤여신의 폐인 모드”의 최근 글에 따르면</a>, 구글처럼 창의적인 회사는 이걸 뚫고 VoIP 지원(…이라기엔 좀 미약해도)을 시작했다고 한다.</p>
<p>다만 애플이 XBox 나 PlayStaion 같은 현재의 정책 &#8212; 하드웨어는 싸게 팔고, 소프트웨어 판매 이윤의 일부를 가져가는 형식 &#8212; 을 쓴다면, 이건 한동안 지원되지 않을 거다. 그래서 Adobe 는 아이폰 앱을 바로 만드는 기능을 추가하고있고 / 이건 애플에서도 반대하기는 커녕 환영할듯&#8230;</p>
<p><strong>출판사들은? 잡지사들은? </strong>내가 얘네 런칭 행사에 당연히 할 거라고 생각한 것 중에 하나는 “우리는 이 출판사, 이 잡지사와 계약해서  … 들을 바로 구독할 수 있습니다!” 같은 멘트였다. 하지만 이런건 없음. 이북리더로(특히 잡지와 주간지류)도 꽤나 훌륭한 플랫폼이 될꺼라고 생각했는데, 명확히 지지하는? 대형 출판사/잡지사가 없는듯하다? 직접 빛을 생성하는 디스플레이라 오래 보는게 편할 것도 아닌데, 당장 어떤 잡지를 볼 수 있게 해주는 지도 얘기 안하는건 좀 실망.</p>
<p><strong>4:3 화면. </strong>아직 4:3 화면을 고수하는 이유가 뭘까? form factor가 미적이지 못한가? 아니면 16:9 로 화면을 출력하고 나머지는 UI에 할당하라는 배려냐?</p>
<p><strong>App 지원</strong>. Legacy 지원을 단박에 자르길 잘하는 애플이지만, 이번엔 iPhone 앱을 업고 간다. 근데 아이폰 앱 중에서 iPad 에도 유용할 녀석이 얼마나 될지는 좀 의문. 개발자들의 “개발 부하”만 올려놨다는 느낌이다.</p>
<ol class="footnotes"><li id="footnote_0_2115" class="footnote">3D 성능을 올리기위한 각종 기술이 상대적으로 전력/계산량 비가 안좋다</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=i3mJHYNqlmY:9dq81E90qjc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=i3mJHYNqlmY:9dq81E90qjc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=i3mJHYNqlmY:9dq81E90qjc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=i3mJHYNqlmY:9dq81E90qjc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/i3mJHYNqlmY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2115/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2115</feedburner:origLink></item>
		<item>
		<title>Blog 도메인 이전 및 기타 등등</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/r_efn_O43ig/2112</link>
		<comments>http://rein.kr/blog/archives/2112#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:30:27 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2112</guid>
		<description><![CDATA[rein.upnl.org –&#62; rein.kr 이전 + /wordpress/ –&#62; /blog/ 이전이 진행 중.
일부 디렉토리가 접근이 안된다거나, 특정 그림/사진이 안보인다거나, 링크가 잠시(?) 접근이 안된다거나 할 수 있는 상황.
주말까지 간헐적으로 문제가(혹은 폭발적으로?) 생길 예정..

&#60;IfModule mod_alias.c&#62;
    Redirect 301 /wordpress /blog
&#60;/IfModule&#62;

로 일단 수정. 과연 이걸로 끝?
]]></description>
			<content:encoded><![CDATA[<p>rein.upnl.org –&gt; rein.kr 이전 + /wordpress/ –&gt; /blog/ 이전이 진행 중.</p>
<p>일부 디렉토리가 접근이 안된다거나, 특정 그림/사진이 안보인다거나, 링크가 잠시(?) 접근이 안된다거나 할 수 있는 상황.</p>
<p>주말까지 간헐적으로 문제가(혹은 폭발적으로?) 생길 예정..</p>
<p><pre>
&lt;IfModule mod_alias.c&gt;
    Redirect 301 /wordpress /blog
&lt;/IfModule&gt;
</pre>
<p>로 일단 수정. 과연 이걸로 끝?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=r_efn_O43ig:5smwsv4L_oc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=r_efn_O43ig:5smwsv4L_oc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=r_efn_O43ig:5smwsv4L_oc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=r_efn_O43ig:5smwsv4L_oc:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/r_efn_O43ig" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2112/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2112</feedburner:origLink></item>
		<item>
		<title>Adobe FlashSocketPolicyDaemon (python) 코드의 버그</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/Ux1HyAiNlxw/2104</link>
		<comments>http://rein.kr/blog/archives/2104#comments</comments>
		<pubDate>Thu, 21 Jan 2010 22:58:46 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2104</guid>
		<description><![CDATA[예~~~~전에 작성한 ActionScript 코드 및 이것과 통신하는 C++ 서버 코드가 있는데, 이걸 다시 창고(…)에서 꺼낼 일이 생겼다. 전부 다시 빌드하고 – 그동안 라이브러리는 업데이트 되었는데, 이 녀석은 손 안 대서 수정할 게 좀 있더라 – 테스트 코드를 돌리기 위해서 python 서버들을 띄우고, C++ 서버를 띄우고, 테스트 클라이언트(.swf)를 연결했다.
그런데 소켓 정책 파일(flash socket policy file)을 얻어오지 [...]]]></description>
			<content:encoded><![CDATA[<p>예~~~~전에 작성한 ActionScript 코드 및 이것과 통신하는 C++ 서버 코드가 있는데, 이걸 다시 창고(…)에서 꺼낼 일이 생겼다. 전부 다시 빌드하고 – 그동안 라이브러리는 업데이트 되었는데, 이 녀석은 손 안 대서 수정할 게 좀 있더라 – 테스트 코드를 돌리기 위해서 python 서버들을 띄우고, C++ 서버를 띄우고, 테스트 클라이언트(.swf)를 연결했다.</p>
<p>그런데 소켓 정책 파일(flash socket policy file)을 얻어오지 못하는 게 아닌가?<sup>[1]</sup></p>
<p>한참 고민하고 + 코드 리뷰하고 나서야 문제를 파악했는데, 내 C++ 코드나, ActionScript 적응단 문제가 아니라 <a href="http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html">Adobe 에서 제공하는 flashsocketpolicyd 의 python 구현체 일부에</a> 문제가 있는 코드가 있었다.</p>
<div class="wlWriterEditableSmartContent" id="scid:2EC9848E-067D-4e79-BAB7-06CA927DB962:846f3a19-a02a-478a-8d16-f8f6cd8f6d7b" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<div style="font-family:consolas,lucida console,courier,monospace">
<span style="color:#008800"><b>class</b></span>&#160;<span style="color:#bb0066"><b>policy_server</b></span>(<span style="color:#003388">object</span>):<br />
&#160;&#160;<span style="color:#008800"><b>def</b></span>&#160;<span style="color:#0066bb"><b>__init__</b></span>(<span style="color:#003388">self</span>,&#160;port,&#160;path):<br />
&#160;&#160;&#160;&#160;<span style="color:#003388">self</span>.port&#160;=&#160;port<br />
&#160;&#160;&#160;&#160;<span style="color:#003388">self</span>.path&#160;=&#160;path<br />
&#160;&#160;&#160;&#160;<span style="color:#003388">self</span>.policy&#160;=&#160;<span style="color:#003388">self</span>.read_policy(path)<br />
&#160;&#160;&#160;&#160;<span style="color:#003388">self</span>.log(<span style="color:#dd2200">&#8216;Listening&#160;on&#160;port&#160;</span><span style="color:#3333bb">%d</span><span style="color:#0044dd">\n</span><span style="color:#dd2200">&#8216;</span>&#160;%&#160;port)<br />
&#160;&#160;&#160;&#160;<span style="color:#008800"><b>try</b></span>:<br />
&#160;&#160;&#160;&#160;&#160;&#160;<span style="color:#003388">self</span>.sock&#160;=&#160;socket.socket(socket.AF_INET6,&#160;socket.SOCK_STREAM)<br />
&#160;&#160;&#160;&#160;<span style="color:#008800"><b>except</b></span>&#160;<span style="color:#bb0066"><b>AttributeError</b></span>,&#160;socket.error:<br />
&#160;&#160;&#160;&#160;&#160;&#160;<span style="color:#888888">#&#160;AttributeError&#160;catches&#160;Python&#160;built&#160;without&#160;IPv6</span><br />
&#160;&#160;&#160;&#160;&#160;&#160;<span style="color:#888888">#&#160;socket.error&#160;catches&#160;OS&#160;with&#160;IPv6&#160;disabled</span><br />
&#160;&#160;&#160;&#160;&#160;&#160;<span style="color:#003388">self</span>.sock&#160;=&#160;socket.socket(socket.AF_INET,&#160;socket.SOCK_STREAM)
</div>
</div>
<p>IPv6 (AF_INT6) 로 소켓을 열어보고, <strong>안되면 </strong>IPv4 (AF_INET) 로 소켓을 여는 구현인데, 문제는 Windows 나&#160; 일부 UNIX 구현체 들 중 일부는, IPv6 소켓이 IPv6 스택만 지원하는 형태로 여는 게 기본 값이라는 것. 덕분에 IPv4 스택을 이용하는 클라이언트 프로그램(=flash player) 랑 통신 못하는 것. 야 임마 ㅠㅠ</p>
<p>이게 예전에는 잘 되었던 이유는, WinSock을 사용하는 경우, 듀얼 스택 자체를 XP/2003 서버까지 지원하지 않았고 예전에는 Windows Server 2003(x64) 에서 작업했기 때문. 덕분에 try 에서 항상 예외가 나서 IPv4 소켓을 생성했기에 잘 돌았지만, Vista x64를 쓰는 지금에 와서 빵 터진 듯 Orz</p>
<p>듀얼 스택 지원 부분을 저렇게 안일하게 구현하면 안되지. 아무리 reference code 수준이 될까 말까한 거라곤 해도 이건 좀 아니지 않나?</p>
<ol class="footnotes"><li id="footnote_0_2104" class="footnote">게다가 <a href="http://rein.kr/blog/archives/1213">예전에도 언급했지만, 소켓 정책 서버에서 파일을 못 가져오면, 처음 붙는 소켓에 또 요청을 날리기에</a> C++ 서버는 예상치 못한 XML 요청을 받게 된다. =_= </li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=Ux1HyAiNlxw:0Pflh7KKr3E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=Ux1HyAiNlxw:0Pflh7KKr3E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=Ux1HyAiNlxw:0Pflh7KKr3E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=Ux1HyAiNlxw:0Pflh7KKr3E:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/Ux1HyAiNlxw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2104/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2104</feedburner:origLink></item>
		<item>
		<title>프로그래머의 일상: C++ 삽질, Python 삽질</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/LUzVvinQ_2g/2102</link>
		<comments>http://rein.kr/blog/archives/2102#comments</comments>
		<pubDate>Thu, 21 Jan 2010 15:05:31 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2102</guid>
		<description><![CDATA[연말에 10일간의 휴가가 꿈결처럼 지나가고 나서, 2주간의 야근, 그리고 이번 주에도 업무량이 많아서 괴로워하고 있다.
이번 주 업무량에 + α를 더해준 버그들을 소개해보겠다.
C++ 삽질
작년 끝 무렵에 팀에 합류한 후배 i 군이 서버 군을 대상으로 테스트를 돌리는 툴을 만들었다. 이걸로 몇몇 서버를 테스트했는데, 타이머 이벤트 처리하는 부분에서 메모리 릭이 생기거나 크래쉬가 나는 것이다 Orz. 덕분에 어제 야근.
삽질했던 [...]]]></description>
			<content:encoded><![CDATA[<p>연말에 10일간의 휴가가 꿈결처럼 지나가고 나서, 2주간의 야근, 그리고 이번 주에도 업무량이 많아서 괴로워하고 있다.</p>
<p>이번 주 업무량에 + α를 더해준 버그들을 소개해보겠다.</p>
<h3>C++ 삽질</h3>
<p>작년 끝 무렵에 팀에 합류한 후배 i 군이 서버 군을 대상으로 테스트를 돌리는 툴을 만들었다. 이걸로 몇몇 서버를 테스트했는데, 타이머 이벤트 처리하는 부분에서 메모리 릭이 생기거나 크래쉬가 나는 것이다 Orz. 덕분에 어제 야근.</p>
<p>삽질했던 이유는, 기존에 별도 라이브러리였던 타이머 구현체를, 기본 라이브러리 안으로 가져오면서 boost 의존성을 뺐는데, 이때 boost::shared_ptr 를 코어에서 빼내었다. 근데 이 새 구현체에서 스마트 포인터의 의미적인 부분(semantics)을 완전히 동등하게 구현한 게 아니라서 특정 경우엔 메모리가 새거나, 프로그램이 죽거나 한 것.</p>
<p>결국 긴 시간의 코드 리뷰 + 약간의 의미 바로잡기 + 약간 긴 테스트로 수정 완료.</p>
<h3>Python 삽질</h3>
<p>내가 작업하는 프로젝트 하나의 결과물인 바이너리와 몇 가지 도구를 다른 팀에 건sp주게 되었다. 근데 여기에는 Python 으로 작성한 몇 가지 도구가 있는데, 이걸 그냥 주자니 파일이 너무 많아서, py2exe 로 하나로 합쳐봤다. 이제 일어난 문제…</p>
<ol>
<li>툴 중에 다른 프로그램들을 로컬 혹은 리모트에 띄워 주는 툴이 있다</li>
<li>이 툴을 실행 시켰 더니 프로세스를 계속해서 실행해서 윈도우즈 서버가 사망<sup>[1]</sup></li>
<li>문제를 찾아보니 py2exe 결과물에선 sys.executable 이 py2exe 의 출력과 동등하게 되고</li>
<li>내가 짠 툴에서는 .py 확장자인 녀석을 실행할 때, 실행 바이너리를 sys.executable 을 썼고</li>
<li>덕분에 py2exe 결과물은 자기 자신을 무한 fork()…</li>
</ol>
<p>Orz.</p>
<p>사실 이 문제는 python subprocess의 win32 구현체가 CreateProcess를 써서 생기는 건데 흑흑. 그냥 ld 처럼 해주면 안 되겠니?</p>
<p>이건 아직 해결은 안 하고 미뤄뒀지만, 해결하려면 i 군 말마따나 python.exe 로 .py 를 실행하게 하지 말고, 저것도 py2exe로 바꿔놓고 해야 할듯함?</p>
<p>덤으로, 이제까지 이런게 있는 줄도 몰랐는데(…), isinstance 란 내장 함수가 있더라. 나 이거 때문에 try: … except: 로 짠거 몇 개 있는데…</p>
<p>이게 프로그래머의 삽질 + 인생인가? 흑흑</p>
<p><a href="http://rein.kr/blog/wp-content/uploads/2010/01/cest_la_vie.jpg"><img style="display: inline; border: 0px;" title="C'est la vie" src="http://rein.kr/blog/wp-content/uploads/2010/01/cest_la_vie_thumb.jpg" border="0" alt="C'est la vie" width="640" height="360" /></a></p>
<ol class="footnotes"><li id="footnote_0_2102" class="footnote">이건 결과적으론 *nix 류에서 결과 검사 없이 fork() 하는 코드 비슷하게 되어버렸다</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=LUzVvinQ_2g:sNGzRmpVLGA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=LUzVvinQ_2g:sNGzRmpVLGA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=LUzVvinQ_2g:sNGzRmpVLGA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=LUzVvinQ_2g:sNGzRmpVLGA:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/LUzVvinQ_2g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2102/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2102</feedburner:origLink></item>
		<item>
		<title>간만에 한가한 주말</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/gHzm7jcH3GI/2096</link>
		<comments>http://rein.kr/blog/archives/2096#comments</comments>
		<pubDate>Sun, 17 Jan 2010 15:01:09 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[일상]]></category>
		<category><![CDATA[잡담]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2096</guid>
		<description><![CDATA[사실 주말에 한가하지 않았던 적은 별로 없지만, 지난 주말과 지난 2주 간의 일상은 일로 점철되서(…) 괴로웠는데, 간만에 한가하고 즐거운 주말을 보냈다.
일단 토요일은 잤고 Orz, 일요일엔 집 근처에 “커피와글”이란 이름의 작은 카페를 갔다. 여러 우여곡절끝에 닫았다가 다시 개장한거라 원두가 종류별로 있는게 아니어서 아쉬웠지만, 아내랑 아들이랑 같이 다녀왔음.

여전히 아기자기한 소품에, 괜찮은 드립 커피를 마실 수 있어서 좋았음. [...]]]></description>
			<content:encoded><![CDATA[<p>사실 주말에 한가하지 않았던 적은 별로 없지만, 지난 주말과 지난 2주 간의 일상은 일로 점철되서(…) 괴로웠는데, 간만에 한가하고 즐거운 주말을 보냈다.</p>
<p>일단 토요일은 잤고 Orz, 일요일엔 집 근처에 “커피와글”이란 이름의 작은 카페를 갔다. 여러 우여곡절끝에 닫았다가 다시 개장한거라 원두가 종류별로 있는게 아니어서 아쉬웠지만, 아내랑 아들이랑 같이 다녀왔음.</p>
<p><a href="http://rein.kr/blog/wp-content/uploads/2010/01/coffe_waggle.jpg"><img style="display: inline; border: 0px;" title="coffe_waggle" src="http://rein.kr/blog/wp-content/uploads/2010/01/coffe_waggle_thumb.jpg" border="0" alt="coffe_waggle" width="640" height="360" /></a></p>
<p>여전히 아기자기한 소품에, 괜찮은 드립 커피를 마실 수 있어서 좋았음. 간만에 와플(와플 + 생크림 + 바닐라 아이스크림) 도 먹었음…</p>
<p>아들은 유모차를 처음으로 타서 신기한듯하다가 가는 사이(약 15분?)에 잠들어버렸더라;;; 근데 도착하더니 깨서 두리번두리번; 작년 봄~여름 사이에 한창 갔던 카페라 그런지, 바리스타 한 분이 아내를 알아보고</p>
<blockquote><p>“그 때 뱃속에 있던 애네요~”</p></blockquote>
<p>하고 맞이해주더라. 역시 이런 점에서 동네 카페가 좋은가?</p>
<p>가서 간단한 개념 증명(proof of concept) 코드를 짜고 / 간단한 서베이를 한 듯… 근데 책은 읽으려고보니 안가져왔더라 /먼산</p>
<p>아들내미는 얌전히 앉아있다가, 잉잉대서 가서 좀 안아주고 하다가 결국 집으로 갔다. 근데 한 한 시간은 얌전히 앉아있던듯? 하지만 나중에 사진을 찍은걸 보니 뚱한 표정이긴 하다 흐흐.</p>
<p><a href="http://rein.kr/blog/wp-content/uploads/2010/01/hyunu_2010_0117.jpg"><img style="display: inline; border: 0px;" title="hyunu_2010_0117" src="http://rein.kr/blog/wp-content/uploads/2010/01/hyunu_2010_0117_thumb.jpg" border="0" alt="hyunu_2010_0117" width="640" height="360" /></a></p>
<p>다음 주 모 프로젝트 허들이랑, 모’ 프로젝트 결과물 이전이랑, 모’’ 프로젝트 수정작업이 남아있지만 뭐 적당히 재충전은 된듯하니 어떻게 되겠지(…)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=gHzm7jcH3GI:YDLJ7KvJm7U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=gHzm7jcH3GI:YDLJ7KvJm7U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=gHzm7jcH3GI:YDLJ7KvJm7U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=gHzm7jcH3GI:YDLJ7KvJm7U:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/gHzm7jcH3GI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2096/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2096</feedburner:origLink></item>
		<item>
		<title>프로그래머의 책상 위 모습이 궁굼합니다</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/l79X5j973Dg/2087</link>
		<comments>http://rein.kr/blog/archives/2087#comments</comments>
		<pubDate>Tue, 12 Jan 2010 00:27:03 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[회사]]></category>
		<category><![CDATA[잡담]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2087</guid>
		<description><![CDATA[…에 트랙백.
jacking 님이 &#8220;책상 위 모습을 사진 찍어서 트랙백을 쏴보자&#8221;는 글을 썼다. (아래는 그 글 인용)
어제 트위터에 올라온 글을 보니 그래픽 디자이너의 일하는 자리를 찍은 사진을 투고하는 이벤트를 하더군요.
그 글을 보니 회사에서 프로그래머의 책상 위는 어떤 모습을 하고 있을지 궁금하더군요.
혹시 자신의 자리를 사진을 찍어서 올릴 수 있는 분들은 트랙백이나 덧글을 통해서 자신의 자리를 구경 시켜주세요
라 [...]]]></description>
			<content:encoded><![CDATA[<p>…에 트랙백.</p>
<p><a href="http://jacking.tistory.com/554">jacking 님이 &#8220;책상 위 모습을 사진 찍어서 트랙백을 쏴보자&#8221;는 글을</a> 썼다. (아래는 그 글 인용)</p>
<blockquote><p>어제 트위터에 올라온 글을 보니 그래픽 디자이너의 일하는 자리를 찍은 사진을 투고하는 이벤트를 하더군요.<br />
그 글을 보니 회사에서 프로그래머의 책상 위는 어떤 모습을 하고 있을지 궁금하더군요.<br />
혹시 자신의 자리를 사진을 찍어서 올릴 수 있는 분들은 트랙백이나 덧글을 통해서 자신의 자리를 구경 시켜주세요</p></blockquote>
<p>라 쓰셨길래 <a href="http://rein.kr/blog/archives/1783">예전에 찍은 사진이지만 링크</a>.<sup>[1]</sup></p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto;" src="http://rein.kr/blog/wp-content/uploads/2009/08/myDesk1.jpg" alt="" /></p>
<p>작년 8월(2009/08)에 찍은 사진인데, 지금은 왼쪽 안 보이는 부분에 앉은뱅이 책장을 올려버리고, 그 밑에 데탑을 보관 중.<br />
저 사진에서 살짝 보이는 베어본을 없애버리고(…), 데스크탑 머신이 3 대가 되어버려서 –_- 어쩔 도리 없이 책상 밑 공간 늘리고(이건 PP 할 때도 편함) 데스크탑 컴퓨터 들을 주욱 늘어놓았다.</p>
<p>그리고 왼쪽에 보이는 17” 모니터는 모니터 높이가 안 맞아서 모니터 바꿔가면 볼 때 “시각적으로 덜컹” 하는 느낌을 받아서 밑에 책 몇 권 깔고 윗쪽 높이를 맞춰놓았다. 예전 사진이라 없지만 아내 사진도 책상 위에 하나 있고, 아기 용품 두느라(…) 집에서 회사로 옮긴 피규어도 올라가있고, 연필 꽂이용으로 쓰고 있는 알라딘 머그컵도 올라가 있다(…). 그거 빼곤 그대로임…</p>
<p>프로그래머라고 해도 모니터만 보면 사는건 아니고, 생각을 정리하거나, 다른 프로그래머랑 얘기할 때는 종이와 연필이 더 편할 때도 많아서 텍스트 패드 하나 올려놓고 쓰고 있다. 여튼 내가 쓰는 도구는 (물리적으로는),</p>
<ul>
<li>컴퓨터 2 대 (1 대는 사무용)</li>
<li>17” + 24” 모니터 (1대는 역시 사무용)</li>
<li>KVM으로 물린 리얼포스 101키(영문) + 로지텍 MX510</li>
<li>약간의 종이와 연필(…), 벽에 가끔 달아놓는데 쓰는 자석</li>
</ul>
<p>으로 끝인듯하다.</p>
<p>다른 프로그래머 분들의 사진도 매우 보고싶은 상태가 되었음. 여러분, 어서 트래백을 쏩시다!(…)</p>
<ol class="footnotes"><li id="footnote_0_2087" class="footnote">사진은 이전 사진 그대로 게재</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=l79X5j973Dg:ZvdzyqUDbtE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=l79X5j973Dg:ZvdzyqUDbtE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=l79X5j973Dg:ZvdzyqUDbtE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=l79X5j973Dg:ZvdzyqUDbtE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/l79X5j973Dg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2087/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2087</feedburner:origLink></item>
		<item>
		<title>2010년 새해 목표</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/NZyKkJoOmUM/2086</link>
		<comments>http://rein.kr/blog/archives/2086#comments</comments>
		<pubDate>Mon, 11 Jan 2010 16:01:46 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[일상]]></category>
		<category><![CDATA[회사]]></category>
		<category><![CDATA[잡담]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2086</guid>
		<description><![CDATA[
GTD 로 업무처리하기. 일반적인 업무(메일 기반으로) + 작업 관리(issue 기반?)을 “손에 쥐고 있는걸 잘 정렬해서” 해보려함
erlang 이나 Go! 로 서버 하나 짜 보기. 실제로 서비스까지 끌고갈 수 있을지는 모르겠지만 한 번 해봐야
mock framework 을 써서 테스트를 좀 더 잘 짜보자
아들에게 책 10권 읽어주기. 왠지 이게 제일 힘들어 보임(…)

…를 올해 목표로 하고 진행해보려 한다. 왠지 좀 [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>GTD 로 업무처리하기. 일반적인 업무(메일 기반으로) + 작업 관리(issue 기반?)을 “손에 쥐고 있는걸 잘 정렬해서” 해보려함</li>
<li>erlang 이나 Go! 로 서버 하나 짜 보기. 실제로 서비스까지 끌고갈 수 있을지는 모르겠지만 한 번 해봐야</li>
<li>mock framework 을 써서 테스트를 좀 더 잘 짜보자</li>
<li>아들에게 책 10권 읽어주기. 왠지 이게 제일 힘들어 보임(…)</li>
</ul>
<p>…를 올해 목표로 하고 진행해보려 한다. 왠지 좀 많아보이지만(…) 처음 두 개는 지금도 적당히 하고 있으니까 잘 되야하겠지?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=NZyKkJoOmUM:LsSpZgySB34:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=NZyKkJoOmUM:LsSpZgySB34:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=NZyKkJoOmUM:LsSpZgySB34:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=NZyKkJoOmUM:LsSpZgySB34:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/NZyKkJoOmUM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2086/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2086</feedburner:origLink></item>
		<item>
		<title>rein’s world 2009 통계</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/FIHU3jPWGqU/2084</link>
		<comments>http://rein.kr/blog/archives/2084#comments</comments>
		<pubDate>Thu, 31 Dec 2009 13:06:44 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/archives/2084</guid>
		<description><![CDATA[2009년 한 해는 블로깅을 (적어도 작년에 비해서) 소홀히 한 한 해. 그렇지만 나름대로 글은 썼다고 자평하고 맺고 싶다.
올해에도 예전에 만들어놓은 WordPress Annual Stats 를 가지고 글감으로 써 먹었다.
일단 쓴 글 수 총 108개.
 
1, 2 월 날려먹고, 그 이후로는 거의 10~14개 수준의 글을 썼다. 
다만 댓글 수(615개)는 그에 비례하지 않는다는게 문제지만;;
 
9월에 아이가 태어난 덕에 [...]]]></description>
			<content:encoded><![CDATA[<p>2009년 한 해는 블로깅을 (적어도 작년에 비해서) 소홀히 한 한 해. 그렇지만 나름대로 글은 썼다고 자평하고 맺고 싶다.</p>
<p>올해에도 <a href="http://rein.kr/blog/archives/498">예전에 만들어놓은 WordPress Annual Stats</a> 를 가지고 글감으로 써 먹었다.</p>
<p>일단 쓴 글 수 총 108개.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="reins_world_2009_stats_posts" border="0" alt="reins_world_2009_stats_posts" src="http://rein.kr/blog/wp-content/uploads/2009/12/reins_world_2009_stats_posts.png" width="480" height="240" /> </p>
<p>1, 2 월 날려먹고, 그 이후로는 거의 10~14개 수준의 글을 썼다. </p>
<p>다만 댓글 수(615개)는 그에 비례하지 않는다는게 문제지만;;</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="reins_world_2009_stats_comments" border="0" alt="reins_world_2009_stats_comments" src="http://rein.kr/blog/wp-content/uploads/2009/12/reins_world_2009_stats_comments.png" width="480" height="240" /> </p>
<p>9월에 아이가 태어난 덕에 잠시 댓글 수가 폭주하고(…) 올해는 전체적으로 잠잠했다 – 그러니까 변방 웹로그.</p>
<p>&#160;</p>
<p>작년과 비교해보면 비참한 현실을 볼 수 있다. 글 수 309 개 vs. 108 개, 댓글 수 1522개 vs. 615개.</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="reins_world_2009_stats_posts_vs_2008" border="0" alt="reins_world_2009_stats_posts_vs_2008" src="http://rein.kr/blog/wp-content/uploads/2009/12/reins_world_2009_stats_posts_vs_2008.png" width="500" height="240" /> </p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="reins_world_2009_stats_comments_vs_2008" border="0" alt="reins_world_2009_stats_comments_vs_2008" src="http://rein.kr/blog/wp-content/uploads/2009/12/reins_world_2009_stats_comments_vs_2008.png" width="500" height="240" /> </p>
<p>전체적으로 작년 보다 글도 적게 썼고, 그에 따라 댓글도 적게 달렸다 정도? 내년에는 2009년 보다는 많이 써야겠지;;</p>
<p>&#160;</p>
<p>그리고 내가 쓴 글들은 다음과 같은 태그를 주로 달았다.</p>
<p><a href="http://rein.kr/blog/wp-content/uploads/2009/12/reins_world_2009_tags.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="reins_world_2009_tags" border="0" alt="reins_world_2009_tags" src="http://rein.kr/blog/wp-content/uploads/2009/12/reins_world_2009_tags_thumb.png" width="540" height="200" /></a> </p>
<p>Programming, 잡담, C++, 책, Windows 관련된 글을 주로 쓴 듯 하다. 결국엔 프로그래밍? 인 듯.</p>
<p>실질적으론 이런 모양.</p>
<ul>
<li>Programming&#160;&#160;&#160; 54</li>
<li>잡담&#160;&#160;&#160; 31 </li>
<li>C++&#160;&#160;&#160; 19 </li>
<li>책&#160;&#160;&#160; 15 </li>
<li>Windows&#160;&#160;&#160; 11 </li>
<li>Web, Blog, 회사 각&#160; 10 </li>
<li>멀티스레딩, Test, WordPress&#160;&#160;&#160; 8 </li>
<li>Google, twitter&#160; 7 </li>
<li>Kindle, svn&#160;&#160;&#160; 6 </li>
<li>Python&#160;&#160;&#160; 5 </li>
<li>git, 다국어&#160;&#160;&#160; 4 </li>
<li>Mac, live writer&#160;&#160;&#160; 3 </li>
<li>기타&#160;&#160;&#160; 33 </li>
</ul>
<p>결국 프로그래머의 잡담 로그라는 본연의 이미지대로(…)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=FIHU3jPWGqU:xiWMEE9jVpM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=FIHU3jPWGqU:xiWMEE9jVpM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=FIHU3jPWGqU:xiWMEE9jVpM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=FIHU3jPWGqU:xiWMEE9jVpM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/FIHU3jPWGqU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2084/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2084</feedburner:origLink></item>
		<item>
		<title>2009년 결산</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/bTLMlWmLggA/2076</link>
		<comments>http://rein.kr/blog/archives/2076#comments</comments>
		<pubDate>Thu, 31 Dec 2009 12:55:47 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[일상]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2076</guid>
		<description><![CDATA[정말로 많고 많은 일들이 있었던 2009년이 이제 끝나 간다.
개인적으로는 결혼식을 했고, 신혼 여행도 다녀오고, 아들이 태어났다. 그리고 오늘 아들이 100일을 맞았다.
회사에서는 프로젝트 2개를 추가로 하게 되었고, 하나는 일단 끝맺음했음. 개인적으로 현재는 10일 연휴의 7일차(&#8230;).
그리고 수 많은 아쉬운 일들 &#8212; 내가 지지 했던 두 명의 대통령이 사망한 것 &#8212; 을 포함해서, 입에 담기도 싫은 몇 가지 [...]]]></description>
			<content:encoded><![CDATA[<p>정말로 많고 많은 일들이 있었던 2009년이 이제 끝나 간다.</p>
<p>개인적으로는 결혼식을 했고, 신혼 여행도 다녀오고, 아들이 태어났다. 그리고 오늘 아들이 100일을 맞았다.</p>
<p>회사에서는 프로젝트 2개를 추가로 하게 되었고, 하나는 일단 끝맺음했음. 개인적으로 현재는 10일 연휴의 7일차(&#8230;).</p>
<p>그리고 수 많은 아쉬운 일들 &#8212; 내가 지지 했던 두 명의 대통령이 사망한 것 &#8212; 을 포함해서, 입에 담기도 싫은 몇 가지 정책들을 보면서 괴로워하고, 앞으로 뭐가 일어날지 머리가 아프다.</p>
<p><a href="http://rein.kr/blog/archives/1424">1월에 세웠던 한 해 목표를 보고 생각하자면</a>,</p>
<p>legacy code를 가지고 TDD 하는건 절반의 성공 절반의 실패. 하나는 어느 정도 진행했으나, 하나는 결국 포기하고 갈아엎어버렸음(&#8230;).</p>
<p>제대로된 mock framework을 붙이는건 결국 개인적인 수준에서 끝났고, 팀 코드 수준에서는 아직 멀었음.</p>
<p>결국 내년에도 계속해야?</p>
<p>이제 몇 시간 남지 않은 시간이지만, 본 블로그에 방문하는 여러분들에게도 지난 한 해 괴로웠던 일, 슬펐던 일 갈무리하시고, 즐거웠던 일 떠올리면서 새 해를 맞이해봅시다 <img src='http://rein.kr/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=bTLMlWmLggA:tTlzOVUbFKs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=bTLMlWmLggA:tTlzOVUbFKs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=bTLMlWmLggA:tTlzOVUbFKs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=bTLMlWmLggA:tTlzOVUbFKs:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/bTLMlWmLggA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2076/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2076</feedburner:origLink></item>
		<item>
		<title>Mac + Chrome으로 알라딘에서 결제하기</title>
		<link>http://feedproxy.google.com/~r/reinblog/~3/43KsZ9M_9XY/2074</link>
		<comments>http://rein.kr/blog/archives/2074#comments</comments>
		<pubDate>Thu, 31 Dec 2009 02:15:38 +0000</pubDate>
		<dc:creator>rein</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[일상]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rein.kr/blog/?p=2074</guid>
		<description><![CDATA[알라딘이 참 트렌디한 기업이라고 생각했는데, 이번에도 보기좋게 yes24/교보문고보다 한 발 앞서 나갔다.
알라딘 밀어주기란 글을 읽고[1] 바로 결제를 시도해보니 잘 된다. 덕분에 5.6만어치의 책을 샀다는건 비밀
플랫폼 다양성이 커지면서, 그러니까 단순히 PC 용 OS 다변화나 웹 브라우져 다변화 이상으로, 일반적인 사람들 &#8212; IT 종사자들이 좀 더 트렌디하기야 하겠지만 &#8212; 이 쓰는 플랫폼 (하드웨어 + OS + Web [...]]]></description>
			<content:encoded><![CDATA[<p>알라딘이 참 트렌디한 기업이라고 생각했는데, 이번에도 보기좋게 yes24/교보문고보다 한 발 앞서 나갔다.</p>
<p><a href="http://openweb.or.kr/?p=1913">알라딘 밀어주기</a>란 글을 읽고<sup>[1]</sup> 바로 결제를 시도해보니 잘 된다. <em>덕분에 5.6만어치의 책을 샀다는건 비밀</em></p>
<p><em><span style="font-style: normal;">플랫폼 다양성이 커지면서, 그러니까 단순히 PC 용 OS 다변화나 웹 브라우져 다변화 이상으로, 일반적인 사람들 &#8212; IT 종사자들이 좀 더 트렌디하기야 하겠지만 &#8212; 이 쓰는 플랫폼 (하드웨어 + OS + Web Browser 일체) 이 다양해지고 있다는건 요즈음 들어 대부분의 사람들이 &#8220;느끼게&#8221;되는 일이다. 근데 알라딘은 예전의 검색 API 공개나, TTB  및 TTB2 를 놓고 볼 때 정말 &#8220;기술적인&#8221; 트렌드는 잘 따라가는 느낌이다.</span></em></p>
<p><em><span style="font-style: normal;">집에서 노트북으로 책 고르고 PC에서 결제하려면 무진장 귀찮았는데, 게다가 요즘은 Windows 7쓴다고 VM 띄우고 XP  에서 결제하느라 귀찮음 3배 모드였는데 참으로 좋은 일인듯. 예전에 Yes24 에서 알라딘으로 넘어갔던게  &#8221;Firefox 에서 페이지 렌더링이 개판&#8221;이라는 이유였는데 &#8212; 물론 지금은 yes24도 IE  외에서도 잘 렌더링함 &#8212; 이젠 더더욱 알라딘 쓸 이유가 늘어가네요. 요즘 아마존에서 질러대서 상대적으로 덜 지르고 있지만&#8230;</span></em></p>
<p>웹 표준성이나 웹 접근성 이슈랑은 별개로, &#8220;편하게 쓰게 해준다&#8221;는 이유 하나만으로 알라딘의 이번 non-active-x 접근법을 매우 환영한다!</p>
<p>ps. 사실 비슷한 이유에서 cgv 안가고 메가박스를 가고 있기도 함. 회사에서 코엑스가 매우 가깝기도 하지만;;</p>
<ol class="footnotes"><li id="footnote_0_2074" class="footnote">해당 블로그 글의 논조는 나랑 좀 안맞지만 그건 별개로 치고</li></ol><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/reinblog?a=43KsZ9M_9XY:Z_JGl9iyRKM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/reinblog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=43KsZ9M_9XY:Z_JGl9iyRKM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/reinblog?i=43KsZ9M_9XY:Z_JGl9iyRKM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/reinblog?a=43KsZ9M_9XY:Z_JGl9iyRKM:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/reinblog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/reinblog/~4/43KsZ9M_9XY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rein.kr/blog/archives/2074/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://rein.kr/blog/archives/2074</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 2.618 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-10 14:37:56 --><!-- Compression = gzip -->
