<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Starting Reiot &#187; Uncategorized</title>
	<atom:link href="http://reiot.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://reiot.com</link>
	<description>PICNEKO Creative</description>
	<lastBuildDate>Wed, 17 Feb 2010 13:30:58 +0000</lastBuildDate>
	<language>ko</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='reiot.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/11ebc99f89defe187e65a6c68b422dde?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Starting Reiot &#187; Uncategorized</title>
		<link>http://reiot.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://reiot.com/osd.xml" title="Starting Reiot" />
	<atom:link rel='hub' href='http://reiot.com/?pushpress=hub'/>
		<item>
		<title>Idogame</title>
		<link>http://reiot.com/2009/05/21/idogame/</link>
		<comments>http://reiot.com/2009/05/21/idogame/#comments</comments>
		<pubDate>Thu, 21 May 2009 13:38:27 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[idogame]]></category>
		<category><![CDATA[lua]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=1149</guid>
		<description><![CDATA[매출 1조짜리 기업 NHN에서 출시한 아이두 게임과 게임 오븐에 대한 짧은 생각: 하루 최고 동접 1000명을 찍으면 한달에 300만원을 지급한다? 한게임 유입자수 풀을 키우려는 전략이겠지만, 너무 짜다. 돈은 현재의 2배 정도로 늘리되, in game ad를 무조건 탑재하도록 하면 윈윈이 되지 않을까. 정말 이걸로 돈을 벌려면, 접속 시간을 최대한 늘이는 게임 또는 특정 시간의 접속 비율을 <a href="http://reiot.com/2009/05/21/idogame/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=1149&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 414px"><img alt="아이두게임" src="http://images.hangame.co.kr/hangame/idogame/img/promotion/img_benefit01.gif" title="IdoGame" width="404" height="221" /><p class="wp-caption-text">동접 1천명 == 3백만원</p></div>
<p>매출 1조짜리 기업 NHN에서 출시한 <a href="http://idogame.hangame.com/">아이두 게임</a>과 게임 오븐에 대한 짧은 생각:</p>
<ol>
<li>하루 최고 동접 1000명을 찍으면 한달에 300만원을 지급한다? 한게임 유입자수 풀을 키우려는 전략이겠지만, 너무 짜다. 돈은 현재의 2배 정도로 늘리되, in game ad를 무조건 탑재하도록 하면 윈윈이 되지 않을까.</li>
<li>정말 이걸로 돈을 벌려면, 접속 시간을 최대한 늘이는 게임 또는 특정 시간의 접속 비율을 높이는 방향으로 게임을 디자인해야 할 것이다. (자꾸만 동접 늘리는 트릭만 구상하는 레이옷..)</li>
<li>게임오븐 IDE은 <del datetime="2009-07-26T20:47:43+00:00">.NET이 아니라</del> Native C++으로 만들어졌고, 루아(luabind)로 서버 및 클라이언트를 개발한다. 놀라운 점은 IDE 자체적으로 스크립트 디버깅이 가능한데, 브레이크 포인트라든지 콜스택, watch를 모두 지원한다는 것. (<a href="http://dev.naver.com/opensource/">dev.naver.com/opensource</a>에다가 이것만 따로 무료로 공개해주면 좋으련만!!!)</li>
<li>네트워킹 역시 루아로 이루어지는데, key-value로 된 메시지를 보내거나 SyncObject라고 해서 자동적으로 테이블을 상대편으로 복제할 수 있다. 얘들도 __newindex 로 루아 테이블 내부 값의 생성, 삭제 및 변동을 추적했을까나~</li>
<li>사실 게임 오븐으로 만든 서버를 어떻게 호스팅하는가? 가 가장 궁금하다. 그냥 서버 exe 를 적당한 서버로 배포해서 실행하지는 않을테니, 여기에 설마 클라우드 개념이 들어갔을까? 흐흠..</li>
</ol>
<br />Posted in Uncategorized Tagged: idogame, lua <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/1149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/1149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/1149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/1149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/1149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/1149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/1149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/1149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/1149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/1149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=1149&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/05/21/idogame/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://images.hangame.co.kr/hangame/idogame/img/promotion/img_benefit01.gif" medium="image">
			<media:title type="html">IdoGame</media:title>
		</media:content>
	</item>
		<item>
		<title>Named Boost Tuple</title>
		<link>http://reiot.com/2009/05/01/named-boost-tuple/</link>
		<comments>http://reiot.com/2009/05/01/named-boost-tuple/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 16:39:07 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[autoexp]]></category>
		<category><![CDATA[boost]]></category>
		<category><![CDATA[serialization]]></category>
		<category><![CDATA[tuple]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=1095</guid>
		<description><![CDATA[프로토콜 객체로 std::pair 나 boost::tuple 을 채택할 때의 문제는 순서가 틀리더라도 타입만 변환이 된다면 컴파일 타임 에러가 나지 않는다는 점과, first/second 라든지 get() 이 한눈에 안들어온다는 점이다. 또 디버거에서도 내부 값을 찾아 보기가 힘들고 컴파일 시간도 길어지기 때문에, boost::preprocessor 나 boost::tuple 기반의 직렬화 기법이 편하고 관리하기도 좋지만, 그냥 구조체로 만들어서 적당히 memcpy로 보내는 걸 다들 <a href="http://reiot.com/2009/05/01/named-boost-tuple/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=1095&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>프로토콜 객체로 std::pair 나 boost::tuple 을 채택할 때의 문제는 순서가 틀리더라도 타입만 변환이 된다면 컴파일 타임 에러가 나지 않는다는 점과, first/second 라든지 get() 이 한눈에 안들어온다는 점이다. 또 디버거에서도 내부 값을 찾아 보기가 힘들고 컴파일 시간도 길어지기 때문에, boost::preprocessor 나 boost::tuple 기반의 직렬화 기법이 편하고 관리하기도 좋지만, 그냥 구조체로 만들어서 적당히 memcpy로 보내는 걸 다들 애용하는 것이리라.</p>
<pre class="brush: cpp;">
boost::tuple&lt;int,short,char&gt; t;
int i = get&lt;0&gt;(t);
int j = get&lt;1&gt;(t);
int k = get&lt;2&gt;(t);
</pre>
<p>그런데, 이걸 코드 생성기에서 이렇게 만들면 어떨까?</p>
<pre class="brush: cpp;">
class login : public boost::tuple&lt;wstring,string,int&gt;
{
public :
	const wstring &amp; userid() const { return get&lt;0&gt;(); }
	void userid( const wstring &amp; v) { get&lt;0&gt;() = v; }
	const string &amp; passwd() const { return get&lt;1&gt;(); }
	void passwd( const string &amp; v) { get&lt;1&gt;() = v; }
	int key() const { return get&lt;2&gt;(); }
	void key( int v ) { get&lt;2&gt;() = v; }
};

login msg;
msg.userid(L&quot;reiot&quot;);
msg.passwd(&quot;.com&quot;);
msg.key(1975);

wstring userid = msg.userid();
string passwd = msg.passwd();
int key = msg.key();
</pre>
<p>이 정도면 읽기도 쉽고 직렬화하기도 편한 객체처럼 보일 것 같은데&#8230; (여전히 디버거에서는 보기가 귀찮지만.. <a href="http://minjang.egloos.com/468834">autoexp.dat</a> 를 잘 고치면 해결할 수 있지 않을까나~)</p>
<br />Posted in Uncategorized Tagged: autoexp, boost, serialization, tuple <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/1095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/1095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/1095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/1095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/1095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/1095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/1095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/1095/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/1095/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/1095/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=1095&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/05/01/named-boost-tuple/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>
	</item>
		<item>
		<title>first chance exception : The tag is invalid</title>
		<link>http://reiot.com/2009/05/01/first-chance-exception-the-tag-is-invalid/</link>
		<comments>http://reiot.com/2009/05/01/first-chance-exception-the-tag-is-invalid/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 15:11:13 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=919</guid>
		<description><![CDATA[요즘은 디버깅할 때 Ctrl+Alt+E를 눌러서 first chance exception이 발생할 때에도 브레이크포인트가 걸리게 하는 편이다. 뭔가 내가 모르는 문제가 저 안에서 벌어지고 있다는 게 못마땅하기 때문인데, 언젠가부터 64비트 OS에서 32비트 서버 어플리케이션에서 소켓 연결을 할 때, First chance exception 0x000006C5 : The tag is invalid 라는 예외가 던져져서 디버깅할 때 짜증이 솟구치는 나날들이 계속되었다. 더군다나 현재 <a href="http://reiot.com/2009/05/01/first-chance-exception-the-tag-is-invalid/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=919&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://boxcatstudio.files.wordpress.com/2009/07/add_exception.jpg"><img src="http://boxcatstudio.files.wordpress.com/2009/07/add_exception.jpg?w=500" alt="add_exception" title="add_exception" width="500" class="aligncenter size-full wp-image-1082" /></a></p>
<p>요즘은 디버깅할 때 Ctrl+Alt+E를 눌러서 first chance exception이 발생할 때에도 브레이크포인트가 걸리게 하는 편이다. 뭔가 내가 모르는 문제가 저 안에서 벌어지고 있다는 게 못마땅하기 때문인데, 언젠가부터 64비트 OS에서 32비트 서버 어플리케이션에서 소켓 연결을 할 때, <strong>First chance exception 0x000006C5 : The tag is invalid</strong> 라는 예외가 던져져서 디버깅할 때 짜증이 솟구치는 나날들이 계속되었다. 더군다나 현재 채택한 DB 쿼리 방식이 필요할 때마다 재연결하는 connection pooling 이라서 디버거를 좀 오래 잡고만 있어도 계속 예외가 던져져서 집중이 자꾸 깨지곤 했었다.</p>
<p><a href="http://mhaggag.wordpress.com/2006/11/04/gethostbyname-first-chance-exception-0x000006c5-the-tag-is-invalid/">조사해보니</a> 마이크로소프트도 포기한 예외였는데, 도무지 이걸 무시할 방법을 찾지 못하다가 (Win32 예외 목록에 없으니까!) 그저께 커스텀 예외도 추가할 수 있다는 것을 우연찮게 <del datetime="2009-04-30T15:10:21+00:00">겨우 이제서야</del> 알게 되었다.</p>
<p>지금은&#8230; 마음이 편하다.</p>
<br />Posted in Uncategorized Tagged: exception, visual studio <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/919/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=919&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/05/01/first-chance-exception-the-tag-is-invalid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://boxcatstudio.files.wordpress.com/2009/07/add_exception.jpg" medium="image">
			<media:title type="html">add_exception</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2005 Intellisense Hotfix</title>
		<link>http://reiot.com/2009/04/23/visual-studio-2005-intellisense-hotfix/</link>
		<comments>http://reiot.com/2009/04/23/visual-studio-2005-intellisense-hotfix/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 23:19:24 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hotfix]]></category>
		<category><![CDATA[intellisense]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=1075</guid>
		<description><![CDATA[비주얼 스튜디오 2005에서 어떤 솔루션만 열면 인텔리센스가 멈추지 않는 현상을 만나서 검색해니, SP1 이후로 한글판 핫픽스 하나와 영문판 핫픽스 하나가 나와 있었다. 둘 중에서 후자만 깔아도 된다고는 하는데, 영문판 핫픽스는 한글판에서는 설치가 안된다는 것이 문제였다. 다행히도 쉬귀군의 팀은 영문판을 쓰고 있었기에 강제로 원격 설치(-_-)를 해서 관련 dll 들을 받아서 그냥 덮어씌워보니 그럭저럭 잘 돌아가는 것 <a href="http://reiot.com/2009/04/23/visual-studio-2005-intellisense-hotfix/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=1075&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://msdn.microsoft.com/en-us/library/ms379615.vcintellisense01l(en-US,VS.80).gif" alt="" width="500" /></p>
<p>비주얼 스튜디오 2005에서 어떤 솔루션만 열면 인텔리센스가 멈추지 않는 현상을 만나서 검색해니, SP1 이후로 <a href="http://code.msdn.microsoft.com/KB943969">한글판 핫픽스 하나</a>와 <a href="http://code.msdn.microsoft.com/KB947315">영문판 핫픽스 하나</a>가 나와 있었다.</p>
<p>둘 중에서 후자만 깔아도 된다고는 하는데, 영문판 핫픽스는 한글판에서는 설치가 안된다는 것이 문제였다. 다행히도 쉬귀군의 팀은 영문판을 쓰고 있었기에 강제로 원격 설치(-_-)를 해서 <a href="http://blog.naver.com/PostView.nhn?blogId=dexylitol&amp;logNo=20045702640">관련 dll 들을 받아서</a> 그냥 덮어씌워보니 그럭저럭 잘 돌아가는 것 같았다. 조금 걱정이라면 디버그-릴리즈 전환할 때마다 인텔리센스가 돌아간다는 점이랄까.</p>
<p>정리하자면, 영문판 사용자에게 부탁해서 다음 dll 들을 덮어쓰면 된다!</p>
<ul>
<li>VC/packages/vcpkg.dll</li>
<li>VC/packages/VCProjectEngine.dll</li>
<li>VC/packages/VCProject.dll</li>
</ul>
<p>참고로, VC/bin/amd64 또는 x86_amd64 아래에도 버전은 같지만 크기가 다른 VCProjectEngine.dll 파일이 있긴 한데 얘네들은 안덮어써도 돌긴 돌아갔다&#8230;</p>
<p>ps. <a href="http://kaistizen.net/EE/index.php/weblog/comments/visual_studio_2005_hotfixes/">컴파일이 빨라진다는 핫픽스</a>도 있구나..</p>
<br />Posted in Uncategorized Tagged: hotfix, intellisense, visual studio <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/1075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/1075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/1075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/1075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/1075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/1075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/1075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/1075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/1075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/1075/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=1075&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/04/23/visual-studio-2005-intellisense-hotfix/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://msdn.microsoft.com/en-us/library/ms379615.vcintellisense01l(en-US,VS.80).gif" medium="image" />
	</item>
		<item>
		<title>Change the Battle Field</title>
		<link>http://reiot.com/2009/01/27/change-the-battle-field/</link>
		<comments>http://reiot.com/2009/01/27/change-the-battle-field/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 14:17:00 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=851</guid>
		<description><![CDATA[MS, Google, Intel, IBM, Adobe, Dell, Sony, Sanyo&#8230; 놀라운 감원 쯔나미는 겨우 시작일 뿐이다. 성장 동력이 없거나 멈춘 국내 게임 회사들이, 직원 월급을 못주고 있다는 첩보가 속속 입수되고 있다.  정말 대충 예상해본 것들이 슬슬 현실로 다가 오고 있다는 이야기다. 그나마 반가운 소식은 게임이 불황에도 웃음지을 수 있는 몇 안되는 산업이라는 뉴스 정도다.   혹자는 힘들 때일수록 몸집을 줄이고 직원 <a href="http://reiot.com/2009/01/27/change-the-battle-field/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=851&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>MS, Google, Intel, IBM, Adobe, Dell, Sony, Sanyo&#8230; <a href="http://itviewpoint.com/98855">놀라운 감원 쯔나미</a>는 겨우 시작일 뿐이다.</p>
<p>성장 동력이 없거나 멈춘 국내 게임 회사들이, 직원 월급을 못주고 있다는 첩보가 속속 입수되고 있다.  정말 <a href="http://reiot.cafe24.com/2008/11/16/prepare-the-battle/">대충 예상해본 것</a>들이 슬슬 현실로 다가 오고 있다는 이야기다. 그나마 반가운 소식은 <a href="http://qu2ik.tistory.com/297">게임이 불황에도 웃음지을 수 있는 몇 안되는 산업이라는 뉴스 </a>정도다.  </p>
<p>혹자는 힘들 때일수록 몸집을 줄이고 직원 교육에 투자하라고 조언하지만, 내가 사장이라도 그건 쉽지 않은 일이다.  마구 사람을 잘라내고 있는 서구 기업들은 과연 바보라서 그러는 걸까. 그럼 우리는 이 추운 겨울을 어떻게 견디어내야 할까? 개인적으로도 <a href="http://blog.daum.net/tudler/15659618">선 거두절미 후 줄탁동시</a>를 시행해야 한다고 본다. 즉,</p>
<ul>
<li>무엇보다도 가장 먼저 <span style="text-decoration:line-through;">바보</span> C급 인재들을 내보낸다. 기회 비용을 고려해 봤을 때, 무작정 열심히 일하는 C급 인재야말로 회사의 최대 적이다. 덤으로 불만분자들도 함께 처분하면 더욱 좋다. (뜨끔!!)</li>
<li>A급 리더들은 쓰다듬어주기만 해도 알아서 잘 할테니, 웅크리고 있는 B급 인재들에게는 인센티브 강화 같은 당근과 **** 등의 채찍을 제공한다. 개인적으로 테라의 공개된 영상에 많은 감명을 받았는데, 외부의 공격(?)이 내부의 결속을 강화시킨 좋은 예가 아닐까 한다. </li>
<li>돈, 지식, 노하우, 그리고 열정적인 핵심 인재들 등 축적할 수 있는 모든 리소스들을 아껴서, 더욱 더 길어질 겨울에 대비한다. 아무리 생각해도, 이번 겨울은 10년짜리다. </li>
<li>부동산 난개발과 같은 불필요한 중복 개발을 자제하고, 제대로된 게임을 최대한 빨리 출시할 수 있는 프로세스를 다진다. 이걸 갖춘 회사만이 10년을 살아남을 게다. 결과적으로 개발을 투명하게 바라볼 수 있게 해주는, 애자일 프로세스의 전사적 도입도 좋은 방법이 되겠지만, 준비되지 않은 상태에서는 오히려 반감만 불러일으킬 확률이 99.999% 되겠다.</li>
<li>무엇보다도 <span style="text-decoration:line-through;">전장</span> 플랫폼을 바꾼다. 살아남는 자가 강한 것처럼, 하고 싶어 하는 것보다는 잘하는 분야를 계속 파나가고, 그걸 다른 플랫폼으로 옮겨가는 전략은 어떨까. 돈먹는 하마인 MMO, 다 비슷비슷한 캐주얼, 횡스크롤 액션..  새로운 성장 동력 찾기가 쉽지 않은 건 알고 있는데, 너무 멀리서 찾다가 피같은 돈을 다 날려먹으면 곤란하다. 물론 와우를 능가하는 MMO를 만들어서 년간 1조씩 벌어들여도 되겠지만. </li>
</ul>
<p>뻔한 이야기를 시니컬하게 쓰면 다들 우러러 보는 게 요즘 트렌드이길래, 나도 덩달아서 비스무리하게 써 봤다. 그러나 요즘은 불유쾌한 예언을 하는 자가 잡혀 들어가는 세상인지라, 또 쓸데없이 오해 크리나 받지나 않을까 해서 고이 모셔뒀었는데, 오늘 또<a href="http://news.bbc.co.uk/2/hi/business/7851481.stm"> ING 7천, 필립스 6천, GM 2천 등 총 7만명짜리 GLOBAL JOB CUTS</a> 이 있었다길래 어째 으스스해서 공개해본다.</p>
<br />Posted in Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/851/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=851&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/01/27/change-the-battle-field/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>
	</item>
		<item>
		<title>Erlide</title>
		<link>http://reiot.com/2009/01/27/erlide/</link>
		<comments>http://reiot.com/2009/01/27/erlide/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 07:51:35 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[erlang]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=877</guid>
		<description><![CDATA[  이클립스의 얼랭 개발환경(perspective)인 erlide를 사용하면, 매번마다 c(module) 로 컴파일하는 번거로움에서 벗어날 수 있다. 그냥 Save 만 하면, 알아서 코드를 컴파일하고 경고나 오류를 보여주기 때문이다. 일단 매뉴얼에 써 있는 대로 설정하고 나면, 이클립스 IDE의 기능들을 간단히 쓸 수 있으므로, 얼랭 초보라면 반드시 eclipse 부터 설치하기를 권장한다. 어차피 매뉴얼에 다 나오는 내용인데, 핵심 기능들만 간단하게만 소개하자면 gen_server, gen_fsm <a href="http://reiot.com/2009/01/27/erlide/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=877&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.erlang.org/"><img src="http://erlide.sourceforge.net/img/erlang110.gif" alt="Erlang logo" width="110" height="96" /></a><a href="http://www.eclipse.org/"> </a><a href="http://www.eclipse.org/"><img src="http://erlide.sourceforge.net/img/rea_eclipse_pos_logo_fc_sm.jpg" alt="Eclipse logo" width="128" height="75" /></a></p>
<p><a href="http://www.eclipse.org/">이클립스</a>의 얼랭 개발환경(perspective)인 <a href="http://erlide.sourceforge.net/">erlide</a>를 사용하면, 매번마다 c(module) 로 컴파일하는 번거로움에서 벗어날 수 있다. 그<strong>냥 Save 만 하면, 알아서 코드를 컴파일하고 경고나 오류를 보여주기 때문이다. </strong>일단 <a href="http://erlide.sourceforge.net/erlide.html">매뉴얼</a>에 써 있는 대로 설정하고 나면, 이클립스 IDE의 기능들을 간단히 쓸 수 있으므로, 얼랭 초보라면 반드시 eclipse 부터 설치하기를 권장한다.</p>
<p>어차피 매뉴얼에 다 나오는 내용인데, 핵심 기능들만 간단하게만 소개하자면</p>
<ul>
<li>gen_server, gen_fsm 등 OTP 기본 템플릿 제공</li>
<li>F3 &#8211; 함수 정의/선언으로 바로가기</li>
<li>Ctrl + I &#8211; 자동 들여쓰기</li>
<li>Ctrl + Space &#8211; 자동 완성</li>
<li>Alt + O &#8211; 개요 보기</li>
<li>Ctrl + Up/Down &#8211; 콘솔창에서 히스토리 기능</li>
<li>브레이크 포인트는 라인 맨 앞을 더블클릭</li>
<li>디버깅 끝낼 때에는 perspective 를 다시 얼랭으로 전환할 것</li>
</ul>
<p>특히 놀라운 것은, (사실 erl 콘솔에서도 볼 수 있지만) Process List View 에서 보면 무려 36개의 얼랭 프로세스들이 떠 있다는 점이다. 루아나 파이썬처럼 그냥 달랑 스크립트만 실행되는 게 아니라는 건 짐작하고 있었지만, 조금은 부하가 걱정될 정도로많이 떠 있긴 하다.</p>
<br />Posted in programming, Uncategorized Tagged: erlang <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/877/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=877&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/01/27/erlide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://erlide.sourceforge.net/img/erlang110.gif" medium="image">
			<media:title type="html">Erlang logo</media:title>
		</media:content>

		<media:content url="http://erlide.sourceforge.net/img/rea_eclipse_pos_logo_fc_sm.jpg" medium="image">
			<media:title type="html">Eclipse logo</media:title>
		</media:content>
	</item>
		<item>
		<title>boost tuple based serialization</title>
		<link>http://reiot.com/2009/01/20/boost-tuple-based-serialization/</link>
		<comments>http://reiot.com/2009/01/20/boost-tuple-based-serialization/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 14:42:11 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[boost]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=847</guid>
		<description><![CDATA[boost serialization를 사용하려면 이모저모로 귀찮은 점이 많아서, 생각해본 것이 파이썬의 struct 라이브러리와 같은 느낌으로 프로토콜 포맷을 정의하고, 이걸 boost tuple 코드로 뽑아낸다는 아이디어이다. 대강의 포맷은 Format C Type Python Notes x pad byte no value   c char string of length 1   b signed char integer   B unsigned char integer   ? _Bool <a href="http://reiot.com/2009/01/20/boost-tuple-based-serialization/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=847&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>boost serialization를 사용하려면 이모저모로 귀찮은 점이 많아서, 생각해본 것이 <a href="http://docs.python.org/library/struct.html?highlight=pack">파이썬의 struct 라이브러리</a>와 같은 느낌으로 프로토콜 포맷을 정의하고, 이걸 boost tuple 코드로 뽑아낸다는 아이디어이다.</p>
<p>대강의 포맷은</p>
<table border="1" cellspacing="0" cellpadding="1">
<tbody></tbody>
<thead>
<tr>
<th class="head">Format</th>
<th class="head">C Type</th>
<th class="head">Python</th>
<th class="head">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td><tt class="docutils literal"><span class="pre">x</span></tt></td>
<td>pad byte</td>
<td>no value</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">c</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">char</span></tt></td>
<td>string of length 1</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">b</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">signed</span> <span class="pre">char</span></tt></td>
<td>integer</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">B</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">unsigned</span> <span class="pre">char</span></tt></td>
<td>integer</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">?</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">_Bool</span></tt></td>
<td>bool</td>
<td>(1)</td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">h</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">short</span></tt></td>
<td>integer</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">H</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">unsigned</span> <span class="pre">short</span></tt></td>
<td>integer</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">i</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">int</span></tt></td>
<td>integer</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">I</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">unsigned</span> <span class="pre">int</span></tt></td>
<td>integer or long</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">l</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">long</span></tt></td>
<td>integer</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">L</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">unsigned</span> <span class="pre">long</span></tt></td>
<td>long</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">q</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">long</span> <span class="pre">long</span></tt></td>
<td>long</td>
<td>(2)</td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">Q</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">unsigned</span> <span class="pre">long</span><br />
<span class="pre">long</span></tt></td>
<td>long</td>
<td>(2)</td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">f</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">float</span></tt></td>
<td>float</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">d</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">double</span></tt></td>
<td>float</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">s</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">char[]</span></tt></td>
<td>string</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">p</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">char[]</span></tt></td>
<td>string</td>
<td> </td>
</tr>
<tr>
<td><tt class="docutils literal"><span class="pre">P</span></tt></td>
<td><tt class="xref docutils literal"><span class="pre">void</span> <span class="pre">*</span></tt></td>
<td>long</td>
<td> </td>
</tr>
</tbody>
</table>
<p>가령 로그인 메시지를 &#8220;ppl&#8221; 이라는 포맷으로 정의하면, 파서는 이걸 읽고</p>
<p>typedef boost::tuple&lt;string,string,long&gt; msgLogin;</p>
<p>이라는 클래스를 정의한다는 거다. 요기에 좀 더 기능을 첨부하자면,</p>
<ul>
<li>64 bit integer</li>
<li>datetime, smalldatetime 등 T-SQL 타입 지원(또는 매핑)</li>
<li>STL 지원 : list, vector, map, set</li>
<li>비트 연산 지원 : B3은 바이트 타입인데 3비트만 읽고 쓴다는 뜻이 된다.</li>
</ul>
<p>단점이라면 내부 멤버 접근을 userid, passwd 같은 이름 기반이 아니라 get&lt;1&gt;, get&lt;2&gt; 처럼 해야 한다는 점인데, 이건 좀 심하게 귀찮긴 하겠다. 역시 이름 기반 접근이 그나마 컴파일러가 검증해주니 제일 좋은 방법인가.</p>
<p>자. 만들어주세요.</p>
<br />Posted in Uncategorized Tagged: boost <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/847/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/847/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/847/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/847/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/847/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/847/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/847/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/847/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/847/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/847/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=847&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2009/01/20/boost-tuple-based-serialization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>
	</item>
		<item>
		<title>Networking Metaphor</title>
		<link>http://reiot.com/2008/12/27/networking-metaphore/</link>
		<comments>http://reiot.com/2008/12/27/networking-metaphore/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 14:39:55 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=810</guid>
		<description><![CDATA[네트워크 프로그래머가 클라이언트 서버간 통신(혹은 P2P 통신)을 바라보는 메타포에 대해서 갑자기 궁금해졌다. 가장 흔한 개념은 바로 패킷이다. 만약 컨텐트 코드에서 Packet 이나 Command, Message 같은 객체와, Send 와 Receive 같은 함수가 노출되어 있다면, 그걸 만든 사람은 데이터 통신을 바이트의 전송이라는 개념으로 인지하는 것이 아닐까? 데이터를 던지고 받는다는 개념의 네트워킹은 아마도 귀찮은 하드코딩 노가다 작업일 확률이 <a href="http://reiot.com/2008/12/27/networking-metaphore/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=810&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/jasoncross/1260110610/"><img class="  " title="http://www.flickr.com/photos/jasoncross/1260110610/" src="http://farm2.static.flickr.com/1304/1260110610_4e110ad3f5.jpg" alt="" width="500" height="334" /></a><p class="wp-caption-text">http://www.flickr.com/photos/jasoncross/1260110610/</p></div>
<p>네트워크 프로그래머가 클라이언트 서버간 통신(혹은 P2P 통신)을 바라보는 메타포에 대해서 갑자기 궁금해졌다.</p>
<p>가장 흔한 개념은 바로 패킷이다. 만약 컨텐트 코드에서 Packet 이나 Command, Message 같은 객체와, Send 와 Receive 같은 함수가 노출되어 있다면, 그걸 만든 사람은 데이터 통신을 바이트의 전송이라는 개념으로 인지하는 것이 아닐까? 데이터를 던지고 받는다는 개념의 네트워킹은 아마도 귀찮은 하드코딩 노가다 작업일 확률이 높다. 흐흐.</p>
<p>조금 높은 레벨(?)로 올라간다면 원격 함수 호출(RPC)이 있겠다. 무언가를 상대방에게 요청(request)하면, 상대방은 그걸 처리한 후 성공이나 실패 같은 결과(response)를 보내준다. 이런 메타포에서는 동기/비동기라든지, 타임아웃 같은 처리들이 따라오게 된다. 만약 네트워크로 무언가를 요청하는 행위가 함수 호출 인터페이스처럼 잘 래핑되어 있다면, 대략 1초간 으쓱해도 무방하겠다. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p style="text-align:center;"><img class="aligncenter" src="http://ou800doc.caldera.com/en/SDK_netapi/graphics/rpc.gif" alt="" width="433" height="519" /></p>
<p>추가적으로, 결과가 없는 요청은 특별히 이벤트(event) 혹은 통지(notification)라는 메타포라고 부를 수 있겠다. 사실 매번 렌더링을 해야 하는 게임 클라이언트나, 항상 빠른 응답 속도를 보장해야 하는 서버가 동기적 요청을 하는 일은 정말 드문 경우이다. 이런 이유로 비동기적인 통신이 대부분이기 때문에 적당히 현재 상황을 알려주고 잊어버리고 있다가, 혹시나 결과(보통은 에러)가 오면 음..그런가? 하고 처리하는 느낌으로 코드를 만들 때가 있다. 시간이 나면 Notify 같은 이름들이 있는지 한번 체크해보시라.</p>
<p>위에 나온 것들은 대체로 즉각적인 처리를 필요로 하는 반면, 어떤 이벤트들은 시간축으로 늘어질 때가 있다. 무슨 말이냐 하면 이동, 공격, 물리 같이 float 단위의 정밀한 사건들은 공간 뿐만 아니라 시간과도 밀접한 관계가 있기 때문이다. 이런 상황을 아름답게 처리하려면, 받는 족족 무언가를 처리하기보다는, 데이터를 시간순으로 쌓아두고 예측, 보간을 통해 그럴듯하게 보여줄 필요가 있다. 이런 걸 보통 동기화(synchronization) 또는 복제(replication)이라고 부른다. 보통 이런 코드들은 네트워크를 넘어선 상위 로직 레벨에 존재하는 경우가 많은데, 어떤 네트워크 라이브러리들은 이런 수준도 알아서 잘 처리하기도 한다.</p>
<div class="wp-caption aligncenter" style="width: 310px"><a href="http://www.problogger.net"><img title="from http://www.problogger.net" src="http://www.problogger.net/wp-content/uploads/2007/08/rss-buttons.gif" alt="" width="300" height="223" /></a><p class="wp-caption-text">from http://www.problogger.net</p></div>
<p>좀 억지스럽긴 하나, 이메일이나 RSS 등에서 주로 쓰이는 발행(publish)과 구독(subscribe)이라는 메타포는 어떨까?  채팅 채널 같이 지속적인 이벤트가 간간히 발생하는 논리적인 영역에 참가하면, 꾸준히 어떤 이벤트들이 날아오게 된다. 사람들이 바글바글 거리는 지역에 발생하는 수많은 이벤트들을 클라이언트에게 알려줄 때 즉각적인 브로드캐스팅 대신, 이런 개념을 사용한다면 필터링을 통해 트래픽 절감의 효과를 손쉽게 얻을 지도 모르겠다. 후후.</p>
<p>이렇게 단순한 이야기를 현학적으로 어렵게 쓴 이유는, 사실 며칠 전 XML로 프로토콜을 정의하고 코드를 만드는 걸 한번 해볼까 하고, <a href="http://www.codalogic.com/lmx/xsd-overview.html">스키마 튜토리얼</a>을 살펴 보다가, 프로토콜은 XML이 아니라 XSD에 들어가는게 맞지 않냐는 생각이 들어서였다. 물론 XSD도 사실 XML이니까, 쓸데없는 고민 없이 그냥 해도 될 것 같기도 한데&#8230; 그러다보니 또 굳이 요즘 세상에 트래픽이 많은 게임이 아니라면 XML 프로토콜을 쓰고, 파싱 및 검증을 XSD로 하는 것도 괜찮지 않냐는 망상에서 허우적 거리고 있다.</p>
<p style="text-align:center;"><img class="aligncenter" src="http://upload.wikimedia.org/wikipedia/en/3/32/CheckEmail.png" alt="" width="351" height="349" /></p>
<p>또 한편으로는 클래스 다이어그램과 시퀀스 다이어그램으로 클라이언트/서버간 통신을 표현하고, 그걸 파싱해서 각종 RPC 함수들의 골격을 만들어내면 인생이 좀 수월해지지 않을까 하는 생각도 든다. 물론 프로토콜이 바뀔 때에 기존 코드가 날아가지 않도록 코드 제너레이터를 잘 짜야겠지.</p>
<p>글 시작과 끝의 주제가 다른 걸로 봐서, 아무래도 요즘 스트레스를 많이 받나 보다. ㅋㅋ</p>
<br />Posted in Uncategorized Tagged: protocol, schema, xml <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/810/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/810/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/810/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=810&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2008/12/27/networking-metaphore/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://farm2.static.flickr.com/1304/1260110610_4e110ad3f5.jpg" medium="image">
			<media:title type="html">http://www.flickr.com/photos/jasoncross/1260110610/</media:title>
		</media:content>

		<media:content url="http://ou800doc.caldera.com/en/SDK_netapi/graphics/rpc.gif" medium="image" />

		<media:content url="http://www.problogger.net/wp-content/uploads/2007/08/rss-buttons.gif" medium="image">
			<media:title type="html">from http://www.problogger.net</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/en/3/32/CheckEmail.png" medium="image" />
	</item>
		<item>
		<title>Memory Wall</title>
		<link>http://reiot.com/2008/12/21/memory-wall/</link>
		<comments>http://reiot.com/2008/12/21/memory-wall/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 00:56:57 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[multicore]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=783</guid>
		<description><![CDATA[  9.11 Memory Wall 구글에서 memory wall 을 검색하면 위와 같은 사진들이 나온다. 아마도 기억과 회상을 위한 그림이나 사진, 메모들을 붙이는 벽을  memory wall 또는 remembrance wall 이라고 부르는 모양이다. 훗날 128 코어의 시대가 도래하면 얼랭 게임 서버가 혹시 대세가 되지는 않을까 했는데, 벌써부터 멀티 코어에도 메모리 장벽이라는 한계가 있다는 이야기가 솔솔 들린다. 이로 인해 <a href="http://reiot.com/2008/12/21/memory-wall/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=783&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"> </p>
<p style="text-align:center;"><img class="aligncenter" title="9.11 Memory Wall" src="http://lh6.ggpht.com/_nOquiran9-s/Rur1hp0B7kI/AAAAAAAAALI/rjrpIObJtMo/IMG_1987.JPG" alt="" width="500" /></p>
<p style="text-align:center;">9.11 Memory Wall</p>
<p style="text-align:left;">구글에서 memory wall 을 검색하면 위와 같은 사진들이 나온다. 아마도 기억과 회상을 위한 그림이나 사진, 메모들을 붙이는 벽을  memory wall 또는 remembrance wall 이라고 부르는 모양이다.</p>
<p style="text-align:left;">훗날 128 코어의 시대가 도래하면 얼랭 게임 서버가 혹시 대세가 되지는 않을까 했는데, 벌써부터 <a href="http://minjang.egloos.com/2166350">멀티 코어에도 메모리 장벽이라는 한계가 있다는 이야기</a>가 솔솔 들린다. 이로 인해 <a href="http://devnote.net/86">8-16코어를 넘어서기가 힘들다고 해서 널티코어 효과(Nulticore Effect)</a>라고 부른다니.. <a href="http://xeraph.egloos.com/4781141">xeraph님이 GG하신 게</a> 정답이지도? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align:left;">보통 물리적/논리적으로 서버 프로세스가 늘어날수록 디버깅이 어려워지고, 관리 비용도 증가한다고 한다. 그래서 요즘은 분산을 고려해서 모듈끼리도 메시지 통신을 하도록 한 후, 개별 모듈들을 최대한으로 단순하게 구현하려고 노력중이다. 대신 메시지를 만드는게 여간 귀찮은 일이 아니라서, 언제 시간이 나면 후딱 XML 메시지 같은 걸 만들어볼까 싶기도 한데&#8230; 그럴 여유도 없을 뿐더러, 만들어도 같이 감동해줄 전우가 없다는 게 안타깝다. 크흑.</p>
<blockquote>
<p style="text-align:left;"> </p>
</blockquote>
<br />Posted in Uncategorized Tagged: erlang, multicore <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/783/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/783/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/783/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/783/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/783/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/783/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/783/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/783/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/783/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/783/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=783&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2008/12/21/memory-wall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://lh6.ggpht.com/_nOquiran9-s/Rur1hp0B7kI/AAAAAAAAALI/rjrpIObJtMo/IMG_1987.JPG" medium="image">
			<media:title type="html">9.11 Memory Wall</media:title>
		</media:content>
	</item>
		<item>
		<title>Smart People</title>
		<link>http://reiot.com/2008/12/08/smart-people/</link>
		<comments>http://reiot.com/2008/12/08/smart-people/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 12:55:20 +0000</pubDate>
		<dc:creator>Reiot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[erlang]]></category>

		<guid isPermaLink="false">http://reiot.cafe24.com/?p=774</guid>
		<description><![CDATA[  열심히 하는 사람 보다는, 잘하는 사람이 되어라.(Don&#8217;t Work Hard, Work Well) 전문 직장인이 되기 보단, 전문 직업인이 되어라. 예전에 모시던 분들이 즐겨 하시던 말들이다. 과거의 무능하고 나태했던 내 모습을 곳곳에서 찾아낼 때마다, 혹시나 나도 곧 그렇게 무뎌질까 두렵다. 칼날을 더욱 날카롭게 세우기 위해서, 이번 달부터 새벽 영어 회화를 다시 시작했다. 영어 강사에게 리만 브라더스가 왜 <a href="http://reiot.com/2008/12/08/smart-people/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=774&subd=boxcatstudio&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p> </p>
<p style="text-align:center;"><img class="alignnone" src="http://pds9.egloos.com/logo/200804/01/93/f0025793.jpg" alt="" width="400" height="283" /></p>
<ul>
<li><a href="http://agile.egloos.com/2897508">열심히 하는 사람 보다는, 잘하는 사람이 되어라.(Don&#8217;t Work Hard, Work Well)</a></li>
<li>전문 직장인이 되기 보단, 전문 직업인이 되어라.</li>
</ul>
<p>예전에 모시던 분들이 즐겨 하시던 말들이다. 과거의 무능하고 나태했던 내 모습을 곳곳에서 찾아낼 때마다, 혹시나 나도 곧 그렇게 무뎌질까 두렵다.</p>
<p>칼날을 더욱 날카롭게 세우기 위해서, 이번 달부터 새벽 영어 회화를 다시 시작했다. 영어 강사에게 리만 브라더스가 왜 나쁜지를, 왜 미국산 소고기가 나쁜지를 설명하기가 여간 힘들지 않았다. 역시나 함께 듣는 이십대 중반의 젊은 친구들은 정치에 관심이 없었다는 것도 확인했다. 덕분에 의도하지 않게 근무 시간이 한 시간 넘게 늘어나 버렸는데, 나보다 항상 더 일찍 나와서 일하는 사람도 있어서 깜짝 놀랬다. 역시 출근 순서가 회사의 실질적 직급 순라는 이야기가 맞는 걸까 하핫 <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>그리고, 스마트한 회사 친구들과 얼랭 대결(?) 프로젝트도 바야흐로 가동되었다. 주사위를 굴려 2:2 로 짝을 지어 모종의 코딩 대결을 펼치려고 하는 중인데, 역시나 한 마디만으로 열길 사람 속도 알아듣는 친구들이라서 기대가 된다. 반짝이는 후학들의 걸림돌이 되지 않기 위해서라도, 집에서 열심히 예습복습을 해야것다. 클클.</p>
<br />Posted in Uncategorized Tagged: erlang <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/boxcatstudio.wordpress.com/774/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/boxcatstudio.wordpress.com/774/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/boxcatstudio.wordpress.com/774/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/boxcatstudio.wordpress.com/774/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/boxcatstudio.wordpress.com/774/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/boxcatstudio.wordpress.com/774/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/boxcatstudio.wordpress.com/774/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/boxcatstudio.wordpress.com/774/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/boxcatstudio.wordpress.com/774/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/boxcatstudio.wordpress.com/774/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=reiot.com&blog=8724445&post=774&subd=boxcatstudio&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://reiot.com/2008/12/08/smart-people/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8cbde5851aba25cb54556a97037b5e96?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">reiot</media:title>
		</media:content>

		<media:content url="http://pds9.egloos.com/logo/200804/01/93/f0025793.jpg" medium="image" />
	</item>
	</channel>
</rss>