<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Rhea's Package</title>
		<link>http://rhea.pe.kr/</link>
		<description>여기는 손님없는 좆망 블로그로 변태가 운영합니다. 더럽다고 생각되면 브라우저를 종료합니다.                                  Rhea's Package</description>
		<language>ko</language>
		<pubDate>Tue, 15 May 2012 16:33:56 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>Rhea君</managingEditor>
		<image>
			<title>Rhea's Package</title>
			<url>http://cfile3.uf.tistory.com/image/192CEA4D4F32CCE3132C40</url>
			<link>http://rhea.pe.kr</link>
			<description>여기는 손님없는 좆망 블로그로 변태가 운영합니다. 더럽다고 생각되면 브라우저를 종료합니다.                                  Rhea's Package</description>
		</image>
		<item>
			<title>하라는 디아블로3는 안하고...</title>
			<link>http://rhea.pe.kr/513</link>
			<description>&lt;br /&gt;
또 언제나처럼 분석과 뜯기에 들어간 나란 돼지... .&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/126B893A4FB2066626F8A6&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/126B893A4FB2066626F8A6&quot; alt=&quot;이러니 PC게임을 못하는 이유...&quot; filemime=&quot;&quot; filename=&quot;cfile23.uf@126B893A4FB2066626F8A6.png&quot; height=&quot;439&quot; width=&quot;780&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;이러니 PC게임을 못하는 이유...&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
1) 저사양에서 돌아가는 것은 당연하다, 트릭과 노가다의 결정체.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 정공법으로 들어간 그래픽 수준은 10여년전 Age of Mythology 수준+.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;하지만 트릭들이 ㅎㄷㄷ&lt;br /&gt;
&lt;br /&gt;2) 배틀넷 프록시 서버와 소켓을 2개 물고 있다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 포탈 타고 들어갈때마다 데이터 주고 받는 경로가 바뀐다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;서버 입장에서는 동접 x 2 에 가까운 리소스가 들어간다, 아마 디아2 때 처참했던 배틀넷 때문에 엄청 투자한 듯 보인다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 메신저 기능도 같은 서버를 이용한다.&lt;br /&gt;
&lt;br /&gt;3) 로긴 이후, 로컬에서 127.0.0.1이 3개 있다. 각 용도가 어디서 무엇일까?&lt;br /&gt;
&lt;br /&gt;4) UDP를 열어두었지만 파티 플레이를 해도 사용하지는 않는다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;서버 접속 2개 연것과 상관있을까?&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 방화벽이 없는 집에서 파티 플레이를 해봐야겠다.&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-513-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-513-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/513</guid>
			<comments>http://rhea.pe.kr/513#entry513comment</comments>
			<pubDate>Tue, 15 May 2012 16:23:47 +0900</pubDate>
		</item>
		<item>
			<title>캄보디아 잘 다녀왔습니다.</title>
			<link>http://rhea.pe.kr/512</link>
			<description>&lt;P&gt;언제나처럼 무사히 잘 다녀왔습니다.&lt;br /&gt;
된장틱한 여행기는 적지 않겠고 스스로 까먹을까봐 생각한 것들만 정리합니다.&lt;br /&gt;
&lt;br /&gt;- 불교 국가이고&amp;nbsp;항상 가짜 스님인것을 알면서도 시주를 하던 외할머니가 생각나 바가지를 어느 정도 당해주겠다고 생각했다.&lt;br /&gt;
&amp;nbsp; 그래도 그게 다 업이다라고 하신 말씀이 생각나서.&lt;br /&gt;
&amp;nbsp; 물론 분명 옳은 건 아니다. 이제 이렇게 한번 해봤으니 다시 동남아를 가면 항상 흥정하고 구걸에 응할 생각은 없다.&lt;br /&gt;
&lt;br /&gt;- 동지나해로 곧장 간다. 도중엔 전부 바다가 경치는 볼게 없다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;인도차이나 반도로 들어가자마자 갑자기 불빛이 잔뜩 보이는데 바로 베트남 다냥이다.&lt;br /&gt;
&amp;nbsp; 인천 공항과 씨엠립 공항 사이 가장 불빛이 많이 보이는 곳인데 마침 아시아나 항공사 기내 잡지에 다냥행 증편과 함께 기사가 실렸다.&lt;br /&gt;
&amp;nbsp; 다냥 여행에 관심이 간다.&lt;br /&gt;
&lt;br /&gt;- 비행기 날개 아래로 별이 보였는데 그게 정말 별인지 배 불빛인지 확신은 들지 않았다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;11km&amp;nbsp;상공에는 자기 시선 밑에 별도 보이나? 더 알아봐야지.&lt;br /&gt;
&amp;nbsp; 그래서 일부러 올때도 창측에 앉아 계속 관찰했는데 방향이 반대라서 북두칠성만 내내 봤다.&lt;br /&gt;
&amp;nbsp; 대신 운좋게고 유성을 목격.&lt;br /&gt;
&lt;br /&gt;- 4월이 가장 더운 시즌이라고 하지만&amp;nbsp;생각보다는 덥지 않았다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;이건 여름을 좋아하는 성격이기도 하다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;공항을 나서자마자 공군 시절 여름 활주로 냄새와 풀냄새가 났다. 습도가 높지만 대구의 여름이랑 비슷한 느낌이다.&lt;br /&gt;
&amp;nbsp; 개구리가 반겨줬다. 도마뱀도 반갑다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile9.uf.tistory.com/original/121D68504FA019F4130A36&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile9.uf.tistory.com/image/121D68504FA019F4130A36&quot; alt=&quot;앙코르 와트&quot; filemime=&quot;&quot; filename=&quot;cfile9.uf@121D68504FA019F4130A36.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;앙코르 와트&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/P&gt;
&lt;P&gt;- 시엠립 공항은 승강장이 건물과 연결된 것이 아니라 활주로에 승강차가 올라온다.&lt;br /&gt;
&amp;nbsp; 처음으로 승강차를 타고 비행기에 오르고 내렸다.&lt;br /&gt;
&lt;br /&gt;- 여행비가 다른 나라에 비해 비교적 저렴한만큼, 그리고 개인적인 욕심으로 돈을 좀 쓰겠다고 생각했다.&lt;br /&gt;
&amp;nbsp; 4성급 호텔에 묵었는데 수영장도 있고 아주 훌륭했다.&amp;nbsp;5성급은 솔직히 너무 아깝다. 호텔에 거의 있지도 않은데.&lt;br /&gt;
&amp;nbsp; 아침 부폐는 아주아주 좋았다. 특히 국수는 단연 압권!&lt;br /&gt;
&amp;nbsp; 물론 식사는 딱 1번 했다, 원래 아침을 안먹는 습관과 늦잠&amp;nbsp;때문.&lt;br /&gt;
&lt;br /&gt;- 앙코르와트의 모든 유적은 훌륭하다.&lt;br /&gt;
&amp;nbsp; 그러나 그 자체로 어떤 해답이나 영감을 주진 않는다.&lt;br /&gt;
&amp;nbsp; 이제껏 이 여행을 미뤄놨던 것은, 진짜 엄청난 고민이 있어 답을 찾지 못할때 어떤 해답을 찾기 위해서였었다.&lt;br /&gt;
&amp;nbsp; 큰 고민없이 이곳에 왔기 때문일까? 저절로 어떤 깨닮음을 주진 않는다.&lt;br /&gt;
&amp;nbsp; 역시 그런 답은 평소에 찾아야 한다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/164C654B4FA016FE1A049C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/164C654B4FA016FE1A049C&quot; alt=&quot;앙코르 톰의 바이욘 사원&quot; filemime=&quot;&quot; filename=&quot;cfile25.uf@164C654B4FA016FE1A049C.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;앙코르 톰의 바이욘 사원&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
- 밤 11시만 되면 모든 가게가 문닫는다. 이건 법규가 아니라 문화인듯 하다. 그리고 호텔 주변 톡톡 기사들의 호객도 장난 아니다.&lt;br /&gt;
&lt;br /&gt;- 밤문화 따윈 기대말것. 없다고 생각하는게 속편하고 미리 마트에서 술사서 호텔에서 마시는게 낫다.&lt;br /&gt;
&lt;br /&gt;- &quot;오빠&quot;, &quot;안녕하세요&quot;, &quot;감사합니다.&quot;. 이 세마디는 이 나라 사람들 대부분이 알고 있는 듯.&lt;br /&gt;
&lt;br /&gt;- 오로지 외국어를 공부하고 외국인을 상대하는&amp;nbsp;것이 이 사람들이 가난에서 탈피하는 유일한 방법이었다.&lt;br /&gt;
&amp;nbsp; 운전기사, 호텔직원, 공항직원...&lt;br /&gt;
&amp;nbsp; 어쩌면 우리의&amp;nbsp;목적없는 영어 공부 역시, 그런 후진국 습성에서 기인한게 아닐까?&lt;br /&gt;
&lt;br /&gt;- 그럼 난 그런 윤회에서 벗어났을까? 최소한 오덕짙은 게임 프로그래머로 살겠다고 생각하고 행동하는 순간,&lt;br /&gt;
&amp;nbsp; 약간은 벗어났다고 생각한다.&lt;br /&gt;
&lt;br /&gt;- 수천년간 힌두와 불교를 믿고산 이들이 왜 계속 가난이란 윤회에서 벗어나지 못하는 것일까?&lt;br /&gt;
&lt;br /&gt;- 따 쏨에서 만난 애. 여행객에게 어디서 왔냐고 묻고 그 나라별로 숫자 세어주며 엽서를 팜.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;이 애들에게 돈주는건 학교 다닐 기회를 뺏는 것이지만 한국말로 &quot;하나둘셋넷...&quot;하면서 조르기에 사줄수 밖에 없었었다,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/153B814B4FA016FE29AC92&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/153B814B4FA016FE29AC92&quot; alt=&quot;따 쏨에서 만난 애. 이 애 동생으로 보이는 애에게 엽서를 샀다.&quot; filemime=&quot;&quot; filename=&quot;cfile29.uf@153B814B4FA016FE29AC92.jpg&quot; height=&quot;853&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;따 쏨에서 만난 애. 이 애 동생으로 보이는 애에게 엽서를 샀다.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
- 그외 내 목욕가방(아주 흔한 동네 스파에서 주는 비닐백)을 보고 너무 좋다고 달라던 22살 아가씨, MP3랑 디카 달라고 조르던 소년...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;비싼 양주 한병 도둑 맞았지만 너무나 가난하기에 용서할수 밖에 없었다...&lt;br /&gt;
&lt;br /&gt;-&amp;nbsp;입장료라던가 여러가지 물가가 외국인에게 비쌈. 문제는 그 돈을 중간에서 다 가져간다는 것...&lt;br /&gt;
&amp;nbsp;&amp;nbsp;어디서나 중간관리자, 중간상인...중간이 문제다.&lt;br /&gt;
&lt;br /&gt;- 돈이 생기면 저축하는게 아니라 쓰고 다시 구걸하거나 일하는&amp;nbsp;것 같다.&lt;br /&gt;
&lt;br /&gt;- 너무 슬프게도 앙코르와트라는 엄청난 관광자원이 있어 이들은 계속 가난할 수밖에 없다.&lt;br /&gt;
&amp;nbsp; 한때 훌륭한 문화유산도 많고 산업도 발전한 유럽의 강대국들이 부러웠지만 과거의 역사는 현재에게 저절로 도움을 주진 않는다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;우리는 세계에 자랑할만한 문화유산이 없었기 때문에 그 쟂더미 속에서 급속도로 발전한 것인지 모른다.&lt;br /&gt;
&amp;nbsp; 그리고 중국/러시아를 막기 위한 기지로써의 미국의 원조... 그리고 원조가카쨔응.&lt;br /&gt;
&lt;br /&gt;- 석굴암을 제외하곤 세계에 자랑할만한 문화유산이 없다고 우리나라가 안타까워했었는데 그런게 있었다면&lt;br /&gt;
&amp;nbsp; 우리는 전부 1 달라~ 거리면서 외국인 쫓아다니고&amp;nbsp;남자애는 오토바이 운전하고 여자애들은 전부 몸팔고 있었을듯.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile7.uf.tistory.com/original/1235964B4FA016FF315F9D&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile7.uf.tistory.com/image/1235964B4FA016FF315F9D&quot; alt=&quot;가장 가보고 싶던 곳이었던 따 프롬&quot; filemime=&quot;&quot; filename=&quot;cfile7.uf@1235964B4FA016FF315F9D.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;가장 가보고 싶던 곳이었던 따 프롬&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
- 여행책에서 본 것보다 톡톡 대여값이 비쌌지만 밤에도 계속 서비스 가능했다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;톡톡 기사에게 아침부터 저녁까지가 아닌, 몇달러 더주고 밤 12시 너머서까지 이용하는 것도 괜찮겠다.&lt;br /&gt;
&lt;br /&gt;- 앙코르와트, 앙코르톰.... 모든 유적은 엄청나게 훌륭하다.&lt;br /&gt;
&amp;nbsp; 힌두 신화를 미리 공부할 것. 그런데 힌두 신화는 생각보다 잔인한 면이 있다.&lt;br /&gt;
&amp;nbsp; 물론 인간이 아닌 신의 섭리에 맞춰 사는것인데 이것이 당시 지도층에게 어떤 도구로 사용했는지 더 봐야겠다.&lt;br /&gt;
&amp;nbsp; 전부터 도교 문화를 공부해야지...라는 생각을 했는데 힌두교-&amp;gt;불교-&amp;gt;도교 순으로 공부해야겠다.&lt;br /&gt;
&amp;nbsp; 수메르 문명을 공부한 이후, 그리스/기독교가 더 쉽게 이해된 것 처럼.&lt;br /&gt;
&lt;br /&gt;- 크메르어를 공부해야겠다. 톡톡 기사(Mr.Bun)에게는 팁대신 한국어 회화책을 하나 선물했다. 나는 크메르어 사전을 하나 샀다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;사실 돈도 후하게 줬고 Mr.Bun이 추천하는 가게들을 많이 갔다. 커미션 꽤나 두둑히 받았을 것이다.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;비싼 술도 사줬고. 오죽했으면 뚜레샵 호수에서는 자기가 쏜다며 내게 물을 사줬겠는가?&lt;br /&gt;
&amp;nbsp; 몇일간 후하게 벌었으면 잘 저축하고 계속 일했으면 한다. 아마 돈 벌었다고 또 한창 쉬겠지만 말이다.&lt;br /&gt;
&lt;br /&gt;- 서점을 둘러보며 금방 이 나라가 빨리 발전하진 못하리라는 확신이 들었다.&lt;br /&gt;
&amp;nbsp; 책의 대부분은 동인지 수준의 통속 소설들이며 학술책은 거의 없고 수준도 너무 낮았다.&lt;br /&gt;
&amp;nbsp; 이미 일본이 한차례 왔다가 간지라 한국어 회화책들이 많았다.&lt;br /&gt;
&amp;nbsp; 하지만 회화의 대부분은 한국으로 일하러 가서 꼭 필요한 회화들이 대부분이었다.&lt;br /&gt;
&amp;nbsp; 앞서 말한, 선물용 회화책은 최대한 그런 내용이 없고 평범한 회화로&amp;nbsp;적힌&amp;nbsp;책으로 골랐다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile7.uf.tistory.com/original/187659504FA019F129D029&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile7.uf.tistory.com/image/187659504FA019F129D029&quot; alt=&quot;똔레쌉 학교에서 만난 애. 이미 구걸과 기증이 하나의 관광 상품으로 자리 잡아 가슴아팠다.&quot; filemime=&quot;&quot; filename=&quot;cfile7.uf@187659504FA019F129D029.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;똔레쌉 학교에서 만난 애. 이미 구걸과 기증이 하나의 관광 상품으로 자리 잡아 가슴아팠다.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
- 역시 앙코르 와트에서도 잠자리 선글라스와 원피스로 싸이용 사진을 찍는 된장녀를 목격할 수 있었다.&lt;br /&gt;
&amp;nbsp; 로마 이후 간만이다.&lt;br /&gt;
&amp;nbsp; 하지만 어딜가든 역시 일본인 여자 관광객이 젤 이쁘다.&lt;br /&gt;
&lt;br /&gt;- 자취생은 흰옷 입고 가지 말것!&lt;br /&gt;
&amp;nbsp;&amp;nbsp;대부분 황토인데 한국 황토보다 더 진하다. 세탁기 돌려도 안빠짐.&lt;br /&gt;
&amp;nbsp; 덕분에 나물은 무척 맛있다. 하지만 전기에 이어 과일까지도 태국에서 수입산이라니.&lt;br /&gt;
&lt;br /&gt;- 조선 된장녀들이 한국 남자들과 인터넷에서 싸울때 니네는 동남아 여자 밖에 만날 수 없지~라면서&amp;nbsp;딸치는데,&lt;br /&gt;
&amp;nbsp; 그곳도 이쁜 애들은 이뻤다. 그 비율도 한국보다 결코 낮지 않다. 한국식 화장한 여자는 피부도 하얗고 김치 된장년 싸대기 날린다.&lt;br /&gt;
&amp;nbsp; 보지도 않고 함부로 말하지 마라. 뭣보다 비만 돼지는 한국보다 확실히 적다.&lt;br /&gt;
&lt;br /&gt;- 또가고 싶다. 그때에는 그냥 숲속에서 가만히 누워만 있다가 오고 싶다.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
- 다음은 카프카를 찾아 동유럽 or 남십자성과 마젤란 성운을 보러 남반부로 갈 예정이다.&lt;br /&gt;
&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-512-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-512-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<category>앙코르와트 여행</category>
			<category>캄보디아</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/512</guid>
			<comments>http://rhea.pe.kr/512#entry512comment</comments>
			<pubDate>Sun, 29 Apr 2012 22:16:18 +0900</pubDate>
		</item>
		<item>
			<title>캄보디아 다녀옵니다.</title>
			<link>http://rhea.pe.kr/511</link>
			<description>&lt;br /&gt;
꼬꼬마 시절, 패트레이버2를 보고 언젠가 앙코르와트에 가봐야지...했었는데 지금에서야 가게 되었네요.&lt;br /&gt;
&lt;br /&gt;...실은 원래 동유럽 준비중이었습니다만 예약이 안되어서 캄보디아로 변경했습니다.&lt;br /&gt;
그래도 원래 가고 싶던 곳이었기 때문에 괜찮습니다. 다만 좀더 오래 나가있고 싶었는데 금방 돌아오네요.&lt;br /&gt;
기대하던 레이디 가가느님의 콘서트를 보지 못하는게 또 아쉽기도 합니다.&lt;br /&gt;
&lt;br /&gt;지금이 제일 더울 시즌이라던데 얼마나 더운지 몸소 체험하고 오겠습니다.&lt;br /&gt;
&lt;br /&gt;다녀와서 뵙겠습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile1.uf.tistory.com/original/1511273E4F968E112AA05C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile1.uf.tistory.com/image/1511273E4F968E112AA05C&quot; alt=&quot;이미지 출처 : http://www.sacred-destinations.com/cambodia/angkor-wat-photos/slides/sunrise-cc-stuck-in-customs&quot; filemime=&quot;&quot; filename=&quot;cfile1.uf@1511273E4F968E112AA05C.jpg&quot; height=&quot;387&quot; width=&quot;550&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;이미지 출처 : http://www.sacred-destinations.com/cambodia/angkor-wat-photos/slides/sunrise-cc-stuck-in-customs&lt;/p&gt;&lt;/div&gt;&lt;/P&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-511-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-511-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/511</guid>
			<comments>http://rhea.pe.kr/511#entry511comment</comments>
			<pubDate>Tue, 24 Apr 2012 20:27:42 +0900</pubDate>
		</item>
		<item>
			<title>NDC 2012 다녀왔습니다.</title>
			<link>http://rhea.pe.kr/510</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile1.uf.tistory.com/original/1567CD434F9687EC015A58&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile1.uf.tistory.com/image/1567CD434F9687EC015A58&quot; alt=&quot;날씨보소, 너무 좋아 지리것소&quot; filemime=&quot;&quot; filename=&quot;cfile1.uf@1567CD434F9687EC015A58.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;날씨보소, 너무 좋아 지리것소&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
어제는 다른 일로 불참, 내일은 출국인지라 오늘 하루 NDC 2012를&amp;nbsp;다녀왔습니다.&lt;br /&gt;
모두 듣고 싶은 세션들이었지만 어제의 숙취가 가시지 못한 탓에&amp;nbsp;고르고 골라 가장 듣고 싶은 세션 두개만 들었습니다.&lt;br /&gt;
&lt;br /&gt;먼저 주복님의 세션, &quot;완벽한 MMO 클라이언트 설계에의 도전&quot;.&amp;nbsp;&amp;nbsp;... Aㅏ... 고민의 흔적이 많이 보입니다.&lt;br /&gt;
항상 새로운 시도로 전에 없던 것을 만드시는 팀이시고&lt;br /&gt;
개발자로서의 수많은 실험을 해보이시는 팀이니 분명 고민하시던 답을 얻게 되리라 믿습니다.&lt;br /&gt;
무엇보다 모두들 그 답을 기대하고 있으니 어깨가&amp;nbsp;살짝 무거우실테지만 분명 찾으실겁니다.&lt;br /&gt;
&lt;br /&gt;두번째는 곧 결혼하시는 승명님의 &quot;마비노기 영웅전 자이언트 서버의 사례로 본 다음 세대 크로스플랫폼 MMORPG&quot;.&lt;br /&gt;
네, 본격적인 웹서버의 게임 서버화가 시작되었었습니다. 저도 Game4U(KGC 2011때 발표했었죠.)를 만들며 2년전부터 시도한 아키텍쳐죠.&lt;br /&gt;
대학 다닐때 ASP 2.0으로 격투게임 서버를&amp;nbsp;만든 기억은 요즘 들어 특히나 새롭습니다.&lt;br /&gt;
&lt;br /&gt;Game4U 때는 node.js 가 아직 세상에 나오기 전인지라 REST API에는 IIS를, GRAPH API에는&amp;nbsp;C++&amp;nbsp;소켓서버를 이용했습니다.&lt;br /&gt;
이제는 뭘로 할런지 모르죠, 하지만 한가지 확실한건 앞으로 많은 실험과 벤치마킹이 필요하다는 것입니다.&lt;br /&gt;
&lt;br /&gt;저부터라도 node.js의 재빌드, 매일매일 각 서버들의 I/O 벤치마킹, 프로토콜/압축율/배터리 벤치마킹이 필요합니다.&lt;br /&gt;
&lt;br /&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt;&lt;STRONG&gt;그러니 우리 모두 나눠서 합시다!!!!!!!!! -_-;;;;;&lt;br /&gt;
외국에서 실험한 것만 트위터에서 맨날 리트윗하지 말구요.&lt;br /&gt;
&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;br /&gt;
저는 현재 node.js에 셰이더 올리는 것까지 고민중입니다.&lt;br /&gt;
딱히 쓸때는 없더라도 재미있는 떡밥이 되리라 생각합니다.&lt;br /&gt;
&lt;br /&gt;모두들 같은 고민인데 스마트폰, 자바스크립트 서버, NoSQL 등이 나오며&lt;br /&gt;
그 자체뿐만 아니라 그들을 위한 많은 기술들이 선보이고 있습니다.&lt;br /&gt;
이는 분명 고전적인 &quot;C++ 게임서버 + 로직 | 분산 아키텍쳐 | 관계형 DBMS&quot;로 대표되는 이전과는 꽤 다릅니다.&lt;br /&gt;
원하는 퍼포먼스 &amp;amp; 생산성 &amp;amp; 빠른 유지보수를&amp;nbsp;내기도 생각보다&amp;nbsp;쉽지 않고요.&lt;br /&gt;
&lt;br /&gt;하지만 Native C/C++을 익혀온 게임 개발자들에게는 도전해볼만하고 발전시켜볼만한 재미는 넘칩니다.&lt;br /&gt;
저두 원래 그런 솔루션이&amp;nbsp;있던 회사 출신에다가 남들보다 일찍 시도한 덕분에 꽤 많은 답을 얻었지만 여전히 배가 고픕니다.&lt;br /&gt;

&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;재미있는 것은 기존 웹개발자들에게 분명 새로운 기술 시장이 열렸는데 별로 관심이 없다는 사실입니다.&lt;br /&gt;
jQuery 이상 별로 찾지 않는 것 같습니다.&lt;br /&gt;
하지만 약간의 관심을 가진다면 웹게시판 코더에서 분산서버 전문가로 성장할 수 있는 시기이기도 합니다.&lt;br /&gt;
&lt;br /&gt;혹자는 &quot;그게 바로 Native를 모르는 웹개발자의 한계다&quot;라고 하는 사람도 있습니다만,&lt;br /&gt;
분명 웹개발자분들에게 지금이야말로 더 깊은 곳까지 들어가보기 위한(?)&amp;nbsp;최고의 기회입니다.&lt;br /&gt;
저도 그랬었고 조만간 웹개발팀이 아닌 게임서버팀에서 웹개발자와 웹서버 SE를&amp;nbsp;구인할 것 입니다.&lt;br /&gt;
&lt;/DIV&gt;특히, 짧게 언급하셨지만 가로로 나뉜 서버(아이템, 스토리 등 성격별로 나뉜 서버)를 다시 합쳤다는 것이 아주 재미있었습니다.&lt;br /&gt;
다이어그램을 보니 복잡하더군요. 요청/응답에서 시간 다 잡아먹는게 보임요.&lt;br /&gt;
따라서 개발중이라도 매일매일 라이브 상황을 재연하는게 서버 개발자에게 가장 중요합니다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/1413013F4F96885E1E0B7D&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/1413013F4F96885E1E0B7D&quot; alt=&quot;백수의 위엄. 직급인 &quot;자택경비실장&quot;은 안나왔음.&quot; filemime=&quot;&quot; filename=&quot;cfile25.uf@1413013F4F96885E1E0B7D.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;백수의 위엄. 직급인 &quot;자택경비실장&quot;은 안나왔음.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
좋은 계절에 좋은 시간을 만들어주신 NDC 관계자분들께 진심 감사드리며,&lt;br /&gt;
이번에 발표하신 넥슨 분들은 내년도 GDC 티켓을 모두들 거머쥐시길 바랍니다. ^--^&lt;br /&gt;
&lt;br /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-510-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-510-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<category>NDC2012</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/510</guid>
			<comments>http://rhea.pe.kr/510#entry510comment</comments>
			<pubDate>Tue, 24 Apr 2012 20:13:24 +0900</pubDate>
		</item>
		<item>
			<title>모 IT기업 사태와 Hudson, 그리고 평가.</title>
			<link>http://rhea.pe.kr/509</link>
			<description>&lt;P&gt;&lt;br /&gt;
아직도 머리가 띵하다, 어제 너무 많이 마신 탓이다.&lt;br /&gt;
갑자기 급음주한 이유는 요즘 트위터와 뉴스를 통해 개발자들 사이에 꽤나 시끄러운&lt;br /&gt;
정자동 &lt;STRIKE&gt;조기축구단&lt;/STRIKE&gt; 모 IT 회사 다니시는 형님을 뵈었기 때문이다.&lt;br /&gt;
&lt;br /&gt;단도직입적으로 안짤리냐고 여쭈었지만&lt;br /&gt;
다행히도 아직 정리해고 되신 분은 없다고 하며 그럴 일은 없을 것이라 하셨다. 정말 다행이다.&lt;br /&gt;
대신 알려진대로 출퇴근 버스가 사라지는 것과 휴게실 등에 대한 이야기는 사실이라고 하셨다.&lt;br /&gt;
&lt;br /&gt;그 복지 좋기로 유명했던 초대형 IT 기업(CSO님은 대기업이 아니라고 하시지만)이&lt;br /&gt;
갑자기 구설수에 오른게 참 안타까운데 술자리답게 그렇게&amp;nbsp;될수 밖에 없었던&amp;nbsp;이야기들이 무척 많이 나왔다.&lt;br /&gt;
&lt;br /&gt;그중 술이 확깬 이야기는 바로 Hudson(&lt;A href=&quot;http://hudson-ci.org/&quot;&gt;&lt;A title=&quot;[http://hudson-ci.org/]로 이동합니다.&quot; href=&quot;http://hudson-ci.org/&quot; target=_blank&gt;http://hudson-ci.org/&lt;/A&gt;&lt;/A&gt;&amp;nbsp;허드슨)이었다.&lt;br /&gt;
허드슨은 소스의 지속적인 통합(Contunuous Integration)관리를 위해 사용하는 툴이다.&lt;br /&gt;
무엇보다, 그 기업에서 자사의 코드를 허드슨으로 관리한다고 밝혀 더욱 유명해졌다.&lt;br /&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile30.uf.tistory.com/original/1504A2504F9675B3049802&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile30.uf.tistory.com/image/1504A2504F9675B3049802&quot; alt=&quot;나도 샀었다... .&quot; filemime=&quot;&quot; filename=&quot;cfile30.uf@1504A2504F9675B3049802.PNG&quot; height=&quot;601&quot; width=&quot;688&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;나도 샀었다... .&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
분야가 다르기에 게임 쪽에서는 이런 툴을 잘 쓰지 않는다. 그리고 반드시 이런 툴을 써야 된다고 할수도 없다.&lt;br /&gt;
(추가 : 민군은 이걸 썼고 지금도 쓰고 있다고함.)&lt;br /&gt;
&lt;br /&gt;하지만 JSP를 이용하는 웹개발&amp;nbsp;환경이고 많은 수의 개발자가 있다면 반드시 필요할지도 모르겠다.&lt;br /&gt;
&lt;br /&gt;그런데 이 툴은 그 기업에서, 개발자들의 &quot;업무평가&quot;에 사용되었다고 한다.&lt;br /&gt;
즉, 그 사람이 일을 열심히 했는지 안했는지, 좋은 코드를 짰는지 못짰는지, 결론적으로 잘했는지 못했는지를 이 툴로 평가하였다고 한다.&lt;br /&gt;
결국 사람들은 기술적으로 좋은 코드, 사업적으로 좋은 코드가 아닌 오로지 허드슨에 맞추기 위해 일을 했다고 한다.&lt;br /&gt;
&lt;br /&gt;그러니 100여명 개발자 조직이&amp;nbsp;5명으로 돌아가는 조직보다 더 효율이 떨어지는 기현상이 나왔고&lt;br /&gt;
지금의 사태에 아주 큰 영향을 끼쳤다고 한다.&lt;br /&gt;
&lt;br /&gt;정말이지&amp;nbsp;S/W가 사람을 지배하는 엄청난 현상이 나타난 것이다.&lt;br /&gt;
기계가 사람을 지배했고 기업을 지배해버렸다. 술 마시다가 한기를 느낄 정도로 오싹했다.&lt;br /&gt;
&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;추가 : &quot;허드슨이 아무리 똑똑해도 그게 재미있는 게임인지 아닌지까지 답해줄까?&quot; 라고 하심. 돋음.&lt;br /&gt;
&lt;/DIV&gt;
&lt;P&gt;물론 처음 이 툴을 도입할때는 그런 의도는 아니었을 것이다. 정확한 규칙의 적용과 효율성과 측정이 목표였을 것이다.&lt;br /&gt;
하지만 뛰어난 툴이 있었지만 커뮤니케이션의 부재, 신뢰의 부재,&lt;br /&gt;
그리고 개발자들의 작업을 공감하는 능력을 가진 중간관리자가 부재했다고 생각한다.&lt;br /&gt;
비단&amp;nbsp;개인 평가를 위해서만이 아니라 기술직군에 있다면 작업의 흐름과 팀원들의 마음을 공감해야 한다.&lt;br /&gt;
그게 관리하는&amp;nbsp;능력이라 믿는다.&lt;br /&gt;
&lt;br /&gt;그걸 툴에게만 맡긴다면... 실로 끔찍하다, 디스토피아의 현장이 SF영화가 아니라 바로 코앞의 정자동에서 벌여졌다.&lt;br /&gt;
&lt;br /&gt;모든 일이 허드슨 하나 때문에 일어난 것은 아닐 것이지만 술먹다가 한기를 느낀 적은 처음이다.&lt;br /&gt;
그래서 아직도 머리가 띵한 이유이지 싶다.&lt;br /&gt;
&lt;br /&gt;또 이런 무관한 일로, 더 이상 바닥이 없던 JAVA에 대한 나의 호감도는 더더욱 심연의 구렁텅이로&amp;nbsp;떨어졌다.&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/161FBB434F967D4B2CE3EF&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/161FBB434F967D4B2CE3EF&quot; alt=&quot;계속 떨어지는 JAVA에 대한 호감도&quot; filemime=&quot;&quot; filename=&quot;cfile25.uf@161FBB434F967D4B2CE3EF.gif&quot; height=&quot;200&quot; width=&quot;280&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;계속 떨어지는 JAVA에 대한 호감도&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;이 포스트를 적으며 다른 CI툴을 검색하다가 또다른 기사를 볼수 있었다.&lt;br /&gt;
CI&amp;nbsp;툴은 &quot;사람을 위한 자동화&quot;라고 한다.&lt;br /&gt;
이번 사태는 CI툴이 사람을 죽였다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/1861784C4F967A5C23B407&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/1861784C4F967A5C23B407&quot; alt=&quot;&quot; filemime=&quot;image/png&quot; filename=&quot;사람을.PNG&quot; height=&quot;313&quot; width=&quot;780&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;
&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #dbe8fb 1px solid; BORDER-LEFT: #dbe8fb 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #dbe8fb 1px solid; BORDER-RIGHT: #dbe8fb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;PS) 정자동 N모사 따라쟁이 오리역 모회사에서도 현재 비슷한 일이 일어나 200여명이 인력풀에 있다고 한다.&lt;br /&gt;
정말이지 항상 비슷한 괘적으로 그리는 것을 보면&amp;nbsp;신기한 일이 아닐 수 없다. 일부러 따라하라고 해도 못하겠다.&lt;br /&gt;
&lt;br /&gt;또하나, 그 형님은 이번 일과 관련하여 그런 식으로 말씀하실수 밖에 없었던 CSO님도 이해된다고 하셨다.&lt;br /&gt;
&lt;br /&gt;하지만 무엇보다 가장 큰 피해자는, &quot;굴지의 그 기업도 그러니, 우리도 허리띠를 졸라매고 조기출근에 야근을 한다!&quot; 식으로 결정짓는 분 밑에서 일하는 직원들일 것이다.&lt;br /&gt;
그런 개념없는 일, 이젠 없겠지? 물론 나는 어릴떄&amp;nbsp;겪어봄... .&lt;br /&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-509-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-509-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/509</guid>
			<comments>http://rhea.pe.kr/509#entry509comment</comments>
			<pubDate>Tue, 24 Apr 2012 19:14:24 +0900</pubDate>
		</item>
		<item>
			<title>네트워크 게임 튜터리얼 5 - 드디어 직렬화</title>
			<link>http://rhea.pe.kr/508</link>
			<description>&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;안녕하세요? Rhea입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;누군지 모르신다고요?&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;아...흠....그러니까..... (;゜∇゜);;;;;;;;&lt;/P&gt;
&lt;P&gt;한때 네트워크 강좌를 적다가 잠적했던 백수 히키코모리인데요...&lt;/P&gt;
&lt;P&gt;그것도 추가 강좌를 적겠다고 맘먹고 놀기 바빠 사라졌는데요......&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;으으윽 잘못했습니다. ㅠㅠ&lt;/P&gt;
&lt;P&gt;성실하게 살겠습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:400px;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/192BB74D4F8C58B62C6913&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/192BB74D4F8C58B62C6913&quot; alt=&quot;때리시면 맞겠습니다... ㅠㅠ&quot; filemime=&quot;image/gif&quot; filename=&quot;2040920515_d9f175d3_87bd8d3ec0c08598305eeef2f46bc4507aaa62e.gif&quot; height=&quot;225&quot; width=&quot;400&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:400px;&quot;&gt;때리시면 맞겠습니다... ㅠㅠ&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;지난 시간 Serialize, 직렬화에 대해 언급했습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그리고 직렬화를 이뤄지는 라이브러리에는 상용도 있고 공개된 버전도 있다고 하였습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;물론 Boost.Serialization을 잊지 말아야겠죠, 이 강좌에서 사용하는 엔진이 ASIO이고 ASIO는 Boost 답게 Boost.Serialization과 멋진 궁합을 보여줍니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;1. 패킷 정의&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이번에 보내볼 패킷은 다음과 같습니다. 대강 그럴싸하게 만든 엉터리 패킷입니다. (*￣∇￣)/ &lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fefeb8 1px solid; BORDER-LEFT: #fefeb8 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fefeb8 1px solid; BORDER-RIGHT: #fefeb8 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;// 
&lt;P&gt;// MySerializePacket.h&lt;/P&gt;
&lt;P&gt;//&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;class ANS_LOGIN&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;// 로긴성공&lt;br /&gt;&amp;nbsp;BOOL isOK;&lt;br /&gt;&amp;nbsp;// 사용자 식별번호&lt;br /&gt;&amp;nbsp;UINT uUserSerialNumber;&lt;br /&gt;&amp;nbsp;// 사용자 이름&lt;br /&gt;&amp;nbsp;string strName;&lt;br /&gt;&amp;nbsp;// 경험치&lt;br /&gt;&amp;nbsp;long lExp;&lt;br /&gt;&amp;nbsp;// 레벨&lt;br /&gt;&amp;nbsp;UINT uLevel;&lt;br /&gt;&amp;nbsp;// 소유 장비&lt;br /&gt;&amp;nbsp;map&amp;lt;long, long&amp;gt;&amp;nbsp; mapEquipment;&lt;br /&gt;&amp;nbsp;// 친구목록&lt;br /&gt;&amp;nbsp;vector&amp;lt;UINT&amp;gt; vtGuildFriend;&lt;br /&gt;}&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이것은 로비에 접속되었다고 가정했을때, 로긴 성공 메시지로 알려주는 내용입니다. BOOK isOK로 성공했다고 알려주고, UINT uUserSerialNumber 라고 사용자 식별번호도 알려줍니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;UINT uUserSerialNumber 같은 INT형 사용자 식별번호는 시중의 책에서는 거의 나오지 않습니다(아니 그전에 로긴 방법을 소개하는 게임 제작 책이 있던가요?) 예전에 만든 아바타 채팅에서는 단순하게 사용자별 Key값을 단순히 ID로 했습니다. 그러나 실제 서비스되고 있는 상용 서버(게임 이외에도)&amp;nbsp;내에서는 string 형태의 ID를 사용하지 않고 INT형으로 분류합니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;string에서 INT로 바뀌면 개발자에게 상당히 편합니다. 개발자 뿐일까요, string으로 검색하지 않고 INT로 검색하니 컴퓨터에게도 빠르고 좋습니다. &lt;STRONG&gt;&lt;SPAN style=&quot;BACKGROUND-COLOR: #ffe400; COLOR: #000000&quot;&gt;당연히 DB에서도 Primary Key값은 이 UserSerialNumber 같은 INT값입니다!!!&lt;/SPAN&gt;&lt;/STRONG&gt; 이렇게 짤때 따라오는 코딩의 편리함에 대해서는 따로 이야기하지 않겠습니다. 여기에 그치지 않고 서비스의 성격부터 바꿀수 있습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이것에 대한 예로는 트위터를 들까 합니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;트위터는 표시되는&amp;nbsp; 프로필이름(대화명)을 바꿀수 있습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;계정 메뉴에서 아이디를 바꿀수 있습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그리고 무려 이메일 주소도 바꿀수 있습니다!!!&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그럼 사용자 구분은 뭘로 할까요, &amp;lt;ID&amp;gt;라는 별도의 INT형(실은 LONG 정도 되겠죠?) 필드로 따로 관리합니다. 물론 사용자에겐 보여지지 않습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; LINE-HEIGHT: 1.5; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:780px;&quot;&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/130C75424F8C62F0130ED8&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/130C75424F8C62F0130ED8&quot; alt=&quot;JAWITTER = Joint Assault Windows Interface twiTTER 라는 4달째 개발&quot; filemime=&quot;image/jpeg&quot; filename=&quot;자위터1.jpg&quot; height=&quot;636&quot; width=&quot;780&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:780px;&quot;&gt;JAWITTER = Joint Assault Windows Interface for twiTTER 라는 4달째 개발&quot;중&quot;인 툴입니다. 필자의 ID가 보입니다.&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;모든 멤버쉽 서비스는 이렇게 돌아갑니다. 이메일이나 ID를 변경하느냐 못하느냐는 기획과 사업적인 문제이지 개발적인 문제가 아닙니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;다음을 보죠, 드디어 STL string이 나타났습니다. char에 담은게 아닙니다. 그리고 장비목록은 STL map에 담았고 친구리스트는 STL vector에 담았습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;과연 제대로 날라갈수 있을까요?&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;2. Boost.Archive&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;Boost.Serailize의 컨셉은 Boost.Archive란 유틸리티 클래스에 기반합니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;Archive는 직렬화를 하는 text_oarchive 클래스와 풀어주는 text_iarchive 로 구분됩니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이건 코드를 보는 편이 훨씬더 빠릅니다.&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #dbe8fb 1px solid; BORDER-LEFT: #dbe8fb 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #dbe8fb 1px solid; BORDER-RIGHT: #dbe8fb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#include &amp;lt;boost/archive/text_oarchive.hpp&amp;gt; &lt;br /&gt;#include &amp;lt;boost/archive/text_iarchive.hpp&amp;gt; &lt;br /&gt;#include &amp;lt;iostream&amp;gt; &lt;br /&gt;#include &amp;lt;fstream&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;void save() &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; std::ofstream file(&quot;archiv.txt&quot;); &lt;br /&gt;&amp;nbsp; &lt;STRONG&gt;boost::archive::text_oarchive oa(file);&lt;/STRONG&gt; &lt;br /&gt;&amp;nbsp; int i = 1; &lt;br /&gt;&amp;nbsp; oa &amp;lt;&amp;lt; i; &lt;br /&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;void load() &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; std::ifstream file(&quot;archiv.txt&quot;); &lt;br /&gt;&amp;nbsp; &lt;STRONG&gt;boost::archive::text_iarchive ia(file);&lt;/STRONG&gt;&lt;br /&gt;&amp;nbsp; int i = 0; &lt;br /&gt;&amp;nbsp; ia &amp;gt;&amp;gt; i; &lt;br /&gt;&amp;nbsp; std::cout &amp;lt;&amp;lt; i &amp;lt;&amp;lt; std::endl; &lt;br /&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;int main() &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; save(); &lt;br /&gt;&amp;nbsp; load(); &lt;br /&gt;} &amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;간단한 파일 세이브/로드지만 막강합니다. &amp;lt;&amp;lt; 로 파일 스트림으로 쓰고 &amp;gt;&amp;gt;로 파일 스트림에서 읽어왔습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이제는 일반 변수가 아닌 클래스를 갖고 놀아보죠. 왜냐면&amp;nbsp;패킷도 클래스이기 때문입니다.&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #dbe8fb 1px solid; BORDER-LEFT: #dbe8fb 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #dbe8fb 1px solid; BORDER-RIGHT: #dbe8fb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;#include &amp;lt;boost/archive/text_oarchive.hpp&amp;gt; &lt;br /&gt;#include &amp;lt;boost/archive/text_iarchive.hpp&amp;gt; &lt;br /&gt;#include &amp;lt;iostream&amp;gt; &lt;br /&gt;#include &amp;lt;sstream&amp;gt; &lt;br /&gt;&lt;br /&gt;std::stringstream ss; &lt;br /&gt;&lt;br /&gt;class person &lt;br /&gt;{ &lt;br /&gt;public: &lt;br /&gt;&amp;nbsp; person() &lt;br /&gt;&amp;nbsp; { &lt;br /&gt;&amp;nbsp; } &lt;br /&gt;&lt;br /&gt;&amp;nbsp; person(int age) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; : age_(age) &lt;br /&gt;&amp;nbsp; { &lt;br /&gt;&amp;nbsp; } &lt;br /&gt;&lt;br /&gt;&amp;nbsp; int age() const &lt;br /&gt;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return age_; &lt;br /&gt;&amp;nbsp; } &lt;br /&gt;&lt;br /&gt;private: &lt;br /&gt;&lt;STRONG&gt;&amp;nbsp; friend class boost::serialization::access; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; template &amp;lt;typename Archive&amp;gt; &lt;br /&gt;&amp;nbsp; void serialize(Archive &amp;amp;ar, const unsigned int version) &lt;br /&gt;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ar &amp;amp; age_; &lt;br /&gt;&amp;nbsp; } &lt;/STRONG&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; int age_; &lt;br /&gt;}; &lt;br /&gt;&lt;br /&gt;void save() &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; boost::archive::text_oarchive oa(ss); &lt;br /&gt;&amp;nbsp; person p(31); &lt;br /&gt;&amp;nbsp; oa &amp;lt;&amp;lt; p; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;void load() &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; boost::archive::text_iarchive ia(ss); &lt;br /&gt;&amp;nbsp; person p; &lt;br /&gt;&amp;nbsp; ia &amp;gt;&amp;gt; p; &lt;br /&gt;&amp;nbsp; std::cout &amp;lt;&amp;lt; p.age() &amp;lt;&amp;lt; std::endl; &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;int main() &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp; save(); &lt;br /&gt;&amp;nbsp; load(); &lt;br /&gt;} &lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;person이라는 클래스를 직렬화했습니다!!&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이것을 해주는 것이 Boost안의 serailization.hpp의 인라인함수인 serialize()입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #dbe8fb 1px solid; BORDER-LEFT: #dbe8fb 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #dbe8fb 1px solid; BORDER-RIGHT: #dbe8fb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;//&lt;/P&gt;
&lt;P&gt;//&amp;nbsp; serailization.hpp&lt;/P&gt;
&lt;P&gt;//&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;// default implementation - call the member function &quot;serialize&quot;&lt;br /&gt;template&amp;lt;class Archive, class T&amp;gt;&lt;br /&gt;inline void serialize(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Archive &amp;amp; ar, T &amp;amp; t, const BOOST_PFTO unsigned int file_version&lt;br /&gt;){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; access::serialize(ar, t, static_cast&amp;lt;unsigned int&amp;gt;(file_version));&lt;br /&gt;}&lt;br /&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이를 위해서는 person안에 serialize()를 오버라이딩해줘야 합니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이 모습은&amp;nbsp;우리에게 친숙한&amp;nbsp;MFC에서도 발견할수 있습니다. MFC의 맨상위 클래스인 CObject를 보시면 Serialize()이란 가상함수가 존재하고 있음을 발견하게 됩니다. &lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #dbe8fb 1px solid; BORDER-LEFT: #dbe8fb 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #dbe8fb; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #dbe8fb 1px solid; BORDER-RIGHT: #dbe8fb 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;// 
&lt;P&gt;// afx.h&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;virtual void Serialize(CArchive&amp;amp; ar);&lt;br /&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이는 MFC에서 상당히 중요한 의미를 가지는데 MFC의 모든 클래스에서 직렬화를 구현할수 있다는 의미입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;Boost에서는 따로 선언을 해줘야 합니다. 위에서는 friend class boost::serialization::access;로 끌어댕겼습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;여기서 잠깐! 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;참고로 제가 이렇게 가끔 MFC로 설명하는 경우가 있지만 MFC광팬은 아닙니다. 
&lt;P&gt;지금보면 MFC는 Native C++과 생소한 Windows 자료형, 그리고&amp;nbsp;리소스가 당시의 부족했던&amp;nbsp;기술로 조합하거나 너무 큰 기술로 결합되어 있고 지금도 그 Legacy가 제대로 걷혀지지도 못했습니다.&lt;/P&gt;
&lt;P&gt;누군가 제 블로그를 MFC 예제 사이트라고 오래 전에 멋대로 적은 바람에 그 이후엔 블로그에서는 MFC 사용도 안하고 있습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;다만 MFC은 무려 1992년에 나온 거의 최초의 상업용&amp;nbsp;C++ 클래스이자 프레임워크입니다(볼랜드는 OWL).&lt;/P&gt;
&lt;P&gt;그안에 들어간 개념과 철학들은 C++의 역사라고 봐도 무방합니다.&lt;/P&gt;그리고 후대의 많은 프레임워크들에게 엄청난 영향을 주었습니다. 아이폰 앱을 만드는 Cocoa 프레임워크도 MFC의 영향, 엄~~~~~~~~청나게 받았습니다. 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;제가 말씀드리고 싶은 것은&amp;nbsp;바로 코앞에 있는&amp;nbsp;MFC의 개념을 잘 이해하면 자신만의 프레임워크를 만들기도 편하고 다른 프레임워크를 이해하기도 무척 편하다는 말입니다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:285px;&quot;&gt;&lt;a href=&quot;http://cfile30.uf.tistory.com/original/1954243D4F8C6CAA1C1736&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile30.uf.tistory.com/image/1954243D4F8C6CAA1C1736&quot; alt=&quot;MFC가 없었으면 C++도 없었어!!&quot; filemime=&quot;image/jpeg&quot; filename=&quot;2010022611040955330_1.jpg&quot; height=&quot;400&quot; width=&quot;285&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:285px;&quot;&gt;MFC가 없었으면 C++도 없었어!!&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;그러니 광팬은 아니지만 MFC 너무 까지마염 ㅠㅠ 조만간 예제 코드 WTL로 바꿀꺼임.................무슨 말을 할려고 박스까지 쳤지는 까묵!!!&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;3. Asio.Serialization&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;직렬화의 비밀은 Archive에 있다고 알려졌습니다. 이제는 Archive를 ASIO, 즉 소켓으로 보내볼 차례입니다.&lt;/P&gt;
&lt;p id=&quot;more508_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, '508_0','뜬금없지만 평소 적고 싶었던 말','접기'); return false;&quot;&gt;뜬금없지만 평소 적고 싶었던 말&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content508_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;
&lt;P&gt;그전에 잠깐 하고픈 말 하나 할께요,&lt;/P&gt;
&lt;P&gt;파일과 소켓은 엄청 닮았습니다. 아니 둘은 똑같습니다. 원조 OS인 UNIX는 소켓도 파일로 칩니다. 아니, UNIX는 죄다 파일 개념입니다.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;이게 윈도우도 올라와서는 어떨까요?&lt;/P&gt;
&lt;P&gt;넵, 둘다 핸들입니다!!!!&lt;/P&gt;
&lt;P&gt;일단 핸들만 얻게되면 OS는 파일에 쓰듯 데이터 스트림을 보내고(쓰기), 받습니다(읽기).&lt;/P&gt;
&lt;P&gt;혹시 모르시는 분들을 위해 설명드리면 윈속의 send/read 함수 대신 WriteFile/ReadFile을 써도 잘됩니다.&lt;/P&gt;
&lt;P&gt;파일에 대해 비동기로 쓰고 읽는 WriteFileEx()는 어떨까요?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #e7fdb5 1px solid; BORDER-LEFT: #e7fdb5 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #e7fdb5 1px solid; BORDER-RIGHT: #e7fdb5 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;BOOL WINAPI WriteFileEx(&lt;br /&gt;&lt;STRONG&gt;__in HANDLE hFile,&lt;br /&gt;&lt;/STRONG&gt;__in_opt LPCVOID lpBuffer,&lt;br /&gt;__in DWORD nNumberOfBytesToWrite,&lt;br /&gt;&lt;STRONG&gt;__inout LPOVERLAPPED lpOverlapped,&lt;br /&gt;__in_opt LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine&lt;/STRONG&gt;&lt;br /&gt;);&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;왠지 엄청 친숙한 녀석들이 들어있지 않나요?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;비동기 데이터를 보내는 WSASend()를 볼까요?&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #e7fdb5 1px solid; BORDER-LEFT: #e7fdb5 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #e7fdb5 1px solid; BORDER-RIGHT: #e7fdb5 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;int WSASend(&lt;br /&gt;&lt;STRONG&gt;__in SOCKET s,&lt;br /&gt;&lt;/STRONG&gt;__in LPWSABUF lpBuffers,&lt;br /&gt;__in DWORD dwBufferCount,&lt;br /&gt;__out LPDWORD lpNumberOfBytesSent,&lt;br /&gt;__in DWORD dwFlags,&lt;br /&gt;&lt;STRONG&gt;__in LPWSAOVERLAPPED lpOverlapped,&lt;br /&gt;__in LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine&lt;br /&gt;&lt;/STRONG&gt;);&lt;br /&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;인자 하나가 다르고 똑같습니다. 이거 그대로 써도 작동 됩니다.&lt;/P&gt;
&lt;P&gt;첫 강좌에서 말한대로 비동기 입출력은 원래 파일을 위한 것이었습니다. 그 개념 그대로 소켓에 적용시킨 것이죠.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/div&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; LINE-HEIGHT: 1.5; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:360px;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/1721ED4E4F8C83C51DCE4C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/1721ED4E4F8C83C51DCE4C&quot; alt=&quot;코딩에 앞서 뿌니뿌니~♡&quot; filemime=&quot;image/gif&quot; filename=&quot;뿌니뿌니.gif&quot; height=&quot;270&quot; width=&quot;360&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:360px;&quot;&gt;코딩에 앞서 뿌니뿌니~♡&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;먼저 패킷 클래스에 직렬화 함수를 추가합니다.&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fefeb8 1px solid; BORDER-LEFT: #fefeb8 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fefeb8 1px solid; BORDER-RIGHT: #fefeb8 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;// 
&lt;P&gt;// MySerializePacket.h&lt;/P&gt;
&lt;P&gt;//&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;class ANS_LOGIN&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;&amp;nbsp;// 로긴성공&lt;br /&gt;&amp;nbsp;BOOL isOK;&lt;br /&gt;&amp;nbsp;// 사용자 식별번호&lt;br /&gt;&amp;nbsp;UINT uUserSerialNumber;&lt;br /&gt;&amp;nbsp;// 사용자 이름&lt;br /&gt;&amp;nbsp;string strName;&lt;br /&gt;&amp;nbsp;// 경험치&lt;br /&gt;&amp;nbsp;long lExp;&lt;br /&gt;&amp;nbsp;// 레벨&lt;br /&gt;&amp;nbsp;UINT uLevel;&lt;br /&gt;&amp;nbsp;// 소유 장비&lt;br /&gt;&amp;nbsp;map&amp;lt;long, long&amp;gt;&amp;nbsp; mapEquipment;&lt;br /&gt;&amp;nbsp;// 친구목록&lt;br /&gt;&amp;nbsp;vector&amp;lt;UINT&amp;gt; vtGuildFriend;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;template &amp;lt;typename Archive&amp;gt;&lt;br /&gt;&amp;nbsp;void serialize(Archive&amp;amp; ar, const unsigned int version)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; isOK;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; uUserSerialNumber;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; strName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; lExp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; uLevel;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; mapEquipment;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ar&amp;amp; vtGuildFriend;&lt;br /&gt;&amp;nbsp;}&lt;/STRONG&gt;&lt;br /&gt;};&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;후훗, 추가되었습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;다음은 핵심인 직렬화 과정입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이번 회의 소스는 ASIO 예제사이트인 &lt;A class=tx-link href=&quot;http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio/examples.html&quot; target=_blank&gt;http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio/examples.html&lt;/A&gt;&amp;nbsp;에 있는 Serialization 항목에서 가져왔습니다. 그런데 해당 예제는 서버에 Session 클래스가 없습니다. 실제 세션을 열어 데이터를 주고 받을 수 없기 때문에 &lt;A class=tx-link href=&quot;http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio/example/serialization/connection.hpp&quot; target=_blank&gt;http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio/example/serialization/connection.hpp&lt;/A&gt;&amp;nbsp;을 가져와 CSerializeEngine이라는 이름을 붙였습니다. 무려 클래스명에 Engine씩이나 붙인 이유는 이 정도 작업을 해주는 클래스는 정말로 서버 Engine 레이어이기 때문입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;다음은 실제 패킷을 직렬화하고 소켓으로 보내는 부분입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fefeb8 1px solid; BORDER-LEFT: #fefeb8 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fefeb8 1px solid; BORDER-RIGHT: #fefeb8 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;&amp;nbsp; /// Asynchronously write a data structure to the socket.&lt;br /&gt;&amp;nbsp; template &amp;lt;typename T, typename Handler&amp;gt;&lt;br /&gt;&amp;nbsp; void async_write(const T&amp;amp; t, Handler handler)&lt;br /&gt;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Serialize the data first so we know how large it is.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;std::ostringstream archive_stream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; boost::archive::text_oarchive archive(archive_stream);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; archive &amp;lt;&amp;lt; t;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outbound_data_ = archive_stream.str();&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Format the header.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::ostringstream header_stream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; header_stream &amp;lt;&amp;lt; std::setw(header_length)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&amp;lt; std::hex &amp;lt;&amp;lt; outbound_data_.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!header_stream || header_stream.str().size() != header_length)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Something went wrong, inform the caller.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; boost::system::error_code error(boost::asio::error::invalid_argument);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; socket_.get_io_service().post(boost::bind(handler, error));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outbound_header_ = header_stream.str();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Write the serialized data to the socket. We use &quot;gather-write&quot; to send&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // both the header and the data in a single write operation.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::vector&amp;lt;boost::asio::const_buffer&amp;gt; buffers;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffers.push_back(boost::asio::buffer(outbound_header_));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffers.push_back(boost::asio::buffer(outbound_data_));&lt;br /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp; boost::asio::async_write(socket_, buffers, handler);&lt;br /&gt;&lt;/STRONG&gt;&amp;nbsp; }&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이제까지와 마찬가지로 앞부분에 헤더를 붙이는 과정을 일단 생략하면 Boost.Serialzation 예제와 똑같습니다. &lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;직렬화로 보내고 받는 함수는 Session 클래스에 있던 함수 대신 CSerializeEngine에 있는 함수들을 써야 합니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그래서 실제로 이 부분은 서버의 Engine 레이어라는 것입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;ANS_LOGIN 패킷을 꼭꼭 채워봅시다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fefeb8 1px solid; BORDER-LEFT: #fefeb8 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fefeb8 1px solid; BORDER-RIGHT: #fefeb8 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;// 
&lt;P&gt;//&amp;nbsp; RheaGameSession.cpp&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;ANS_LOGIN ansLogin;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;ansLogin.isOK = TRUE;&lt;br /&gt;&amp;nbsp;ansLogin.uUserSerialNumber = 10001;&lt;br /&gt;&amp;nbsp;ansLogin.strName = _T(&quot;레아스트라이크&quot;);&lt;br /&gt;&amp;nbsp;ansLogin.lExp = 68000L;&lt;br /&gt;&amp;nbsp;ansLogin.uLevel = 99;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;ansLogin.mapEquipment.insert(Long_Pair(1, 101));&lt;br /&gt;&amp;nbsp;ansLogin.mapEquipment.insert(Long_Pair(2, 102));&lt;br /&gt;&amp;nbsp;ansLogin.mapEquipment.insert(Long_Pair(3, 103));&lt;br /&gt;&amp;nbsp;ansLogin.mapEquipment.insert(Long_Pair(4, 104));&lt;br /&gt;&amp;nbsp;ansLogin.mapEquipment.insert(Long_Pair(5, 105));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;ansLogin.vtGuildFriend.push_back(10011);&lt;br /&gt;&amp;nbsp;ansLogin.vtGuildFriend.push_back(10012);&lt;br /&gt;&amp;nbsp;ansLogin.vtGuildFriend.push_back(10013);&lt;br /&gt;&amp;nbsp;ansLogin.vtGuildFriend.push_back(10014);&lt;br /&gt;&amp;nbsp;ansLogin.vtGuildFriend.push_back(10015);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;AnsLoginVector.push_back(ansLogin);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;m_connection.async_write&lt;/STRONG&gt;(AnsLoginVector, boost::bind(&amp;amp;CRheaGameSession::handle_write_serialization, this, boost::asio::placeholders::error ));&lt;br /&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;string은 변환없이 string으로 채웠고 map과 vector에도 데이터를 넣었습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;앞서 말한대로 CSerializeEngine::async_write()를 통해 데이터를 보냅니다. ASIO에서는 데이터를 보낼때 기본적으로 vector에 담아 보냅니다. 이는 대단히 편리한데 만약 여러사용자에 대한 데이터를 보낸다면 그대로 vector에 담아 보낼수 있겠죠.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;STL 컨테이너들의 실제 Archive는 여러 파일에 나눠져 있습니다. \boost\boost_1_47\boost\serialization 폴더에 보시면 보낼수 있는 컨테이너들이 들어있습니다. 정말이지 이런 것을 공짜로 작업하신 훌륭하신 분들에게 감사의 말씀을 드립니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; LINE-HEIGHT: 1.5; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:461px;&quot;&gt;&lt;a href=&quot;http://cfile5.uf.tistory.com/original/162369334F8C78F21B383E&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile5.uf.tistory.com/image/162369334F8C78F21B383E&quot; filemime=&quot;image/png&quot; filename=&quot;캡처.PNG&quot; height=&quot;707&quot; width=&quot;461&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;실제로 데이터가 갈까요?&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;결과를 확인해보죠.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fefeb8 1px solid; BORDER-LEFT: #fefeb8 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fefeb8; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fefeb8 1px solid; BORDER-RIGHT: #fefeb8 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;// 
&lt;P&gt;// ClientSocket.h&lt;/P&gt;
&lt;P&gt;//&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;void handle_read(const boost::system::error_code&amp;amp; e)&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (!e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Print out the data that was received.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (std::size_t i = 0; i &amp;lt; &lt;STRONG&gt;AnsLoginVector&lt;/STRONG&gt;.size(); ++i)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BOOL bIsOK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = AnsLoginVector[i].isOK;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UINT uUSN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = AnsLoginVector[i].uUserSerialNumber;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string strName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = AnsLoginVector[i].strName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int iEquipmentSize&amp;nbsp;&amp;nbsp; = AnsLoginVector[i].mapEquipment.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int iFriendsSize&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = AnsLoginVector[i].vtGuildFriend.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// An error occurred.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.message();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnClose();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;}&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;귀찮습니다, 그냥 Watch창으로 확인해보죠!&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; LINE-HEIGHT: 1.5; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:780px;&quot;&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/1923AC334F8C79AC1A3525&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/1923AC334F8C79AC1A3525&quot; filemime=&quot;image/jpeg&quot; filename=&quot;Untitled-1 copy.jpg&quot; height=&quot;367&quot; width=&quot;780&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; LINE-HEIGHT: 1.5; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:350px;&quot;&gt;&lt;a href=&quot;http://cfile27.uf.tistory.com/original/1519CB4B4F8C82622447FB&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile27.uf.tistory.com/image/1519CB4B4F8C82622447FB&quot; filemime=&quot;image/gif&quot; filename=&quot;a`p_11.gif&quot; height=&quot;262&quot; width=&quot;350&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;넵, 그대로 날라왔습니다. type값 역시 그대롭니다. 클라이언트에도 같은 클래스로 Archive하여 그대로 나왔습니다만,&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;마치 마법과도 같습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;우리는 string과 map과 vector를 그대로 소켓에도 쏘고 그대로 받은 것입니다!!!!!&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;4. 직렬화가 가져온 것&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;지난 강좌에도 말씀드렸지만 이런 네트워크 직렬화는 결코 쉬운게 아니었습니다. 엄청난 노가다의 결실입니다. MFC의 CSocket도 물론 네트워크 직렬화를 해줍니다만, WSAAsyncSelect 모델이라 서버로 사용할만한 것은 아니었습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그러나 아직까지 개선해볼 사항이 있습니다. 역시 지난 강좌에 소개한 IDL 컴파일러 같은 것이죠.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이 과정들이 자동화 될 부분이 있습니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;1) 빌드시 패킷 클래스에 자동으로 직렬화 함수 넣어주기&lt;br /&gt;보셨겠지만 직렬화 함수는 단순합니다. 패킷 클래스의 멤버들을 파싱하여 자동으로 직렬화 함수를 만들수 있지 않을까요?&lt;br /&gt;혹은 애시당초 별도의 자신만의 스크립트 형태로 만들어 빌드가능한 클래스로 자동 생성시키는 방법이 있습니다. 
&lt;P&gt;&lt;br /&gt;2) 각 패킷별 데이터 수신 함수를 자동으로 만들어주기&lt;br /&gt;1)에 연장하여 각 패킷 이름을 파싱해 수신 핸들러 함수를 만드는 것입니다.&lt;br /&gt;OnAnsLogin() 식으로 만들수 있을 것입니다.&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이는 결코 어렵지 않습니다, 힌트 다 드렸잖아요.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그리고 우리는 여기서 아주 중요한 아키텍트를 하나 추리해 낼수 있습니다.&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;
&lt;P&gt;게임에 사용되는 사용자 클래스를 그대로 네트워크로 내보낼 수 있으니 게임용 클래스와 네트워크 패킷을 따로 만들지 않아도 된다는 것과&lt;/P&gt;
&lt;P&gt;독립된 서버 I/O 모듈과 게임 엔진이&amp;nbsp;잘 작동한다면 클라이언트 개발자, 혹은 서버 개발자가 아닌 컨텐츠 개발자가 혼자 게임 로직을 만들수 있게 된다는 점입니다.&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이는 생산 측면에서 아주 유용합니다. 이런 모델을 추천합니다. &lt;SPAN style=&quot;BACKGROUND-COLOR: #ffe400; COLOR: #000000&quot;&gt;하지만 제가 이 컨텐츠 개발자라면 클라이언트와 서버 코드, 둘다 제것으로 만들고 공부할 것입니다.&lt;/SPAN&gt;&amp;nbsp;이런 개발 모델은 편한 작업 환경에서 팀생산성을 위한 것이지 개발자에게 서로 독립된 레이어니까 전혀 몰라도 된다~라는 의미는 아니라고 생각합니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;5. 더 생각해볼 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;꺼리&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;평소에 자신의 소스는 항상 너무 빨리 빌드가 되어 불만이셨던 분 계십니까?&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;상용 게임 빌드는 몇시간씩 걸린다는데 나는 언제 그런 빌드 타임 걸려보냐라구요?&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;그런 고민, 이번 강좌를 통해 말끔히 해결됩니다,&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;아마 Boost.Serialize가 추가된 순간부터 눈에 띄는 빌드 속력 저하를 느끼셨을 것입니다.&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;이 짧은 소스도 앗! 하는 느낌이 올껍니다!&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #e7fdb5 1px solid; BORDER-LEFT: #e7fdb5 1px solid; PADDING-BOTTOM: 10px; LINE-HEIGHT: 1.5; BACKGROUND-COLOR: #e7fdb5; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #e7fdb5 1px solid; BORDER-RIGHT: #e7fdb5 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;갑자기 빌드가 느려진 이유를 찾아보세요. 
&lt;P&gt;그리고 어떻게 하면 극복할 것인지 생각해보시길 바랍니다.&lt;/P&gt;&lt;/DIV&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;
&lt;P&gt;직렬화 관련 참고자료 : &lt;A class=tx-link href=&quot;http://en.highscore.de/cpp/boost/serialization.html&quot; target=_blank&gt;http://en.highscore.de/cpp/boost/serialization.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style=&quot;LINE-HEIGHT: 1.5&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;내용은 맘대로 퍼갈수 있지만 동의없는 수정은 안되며 출처(&lt;/SPAN&gt;&lt;A href=&quot;http://www.gamedevforever.com/&quot;&gt;&lt;/A&gt;&lt;A class=tx-link title=&quot;[http://www.gamedevforever.com/]로 이동합니다.&quot; href=&quot;http://www.gamedevforever.com/&quot; target=_blank&gt;&lt;FONT color=#5a5194 size=3&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;U&gt;http://www.gamedevforever.com/&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt; , &lt;/SPAN&gt;&lt;/FONT&gt;&lt;A href=&quot;http://rhea.pe.kr/&quot;&gt;&lt;/A&gt;&lt;A class=tx-link title=&quot;[http://rhea.pe.kr/]로 이동합니다.&quot; href=&quot;http://rhea.pe.kr/&quot; target=_blank&gt;&lt;FONT color=#5a5194 size=3&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;&lt;U&gt;http://rhea.pe.kr/&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;SPAN style=&quot;FONT-SIZE: 9pt&quot;&gt;)를 명시해주세요.&lt;br /&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-508-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-508-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>General</category>
			<category>rhea</category>
			<category>socket</category>
			<category>winsock</category>
			<category>네트워크</category>
			<category>소켓</category>
			<category>온라인</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/508</guid>
			<comments>http://rhea.pe.kr/508#entry508comment</comments>
			<pubDate>Tue, 17 Apr 2012 05:53:30 +0900</pubDate>
		</item>
		<item>
			<title>며칠 전 이야기</title>
			<link>http://rhea.pe.kr/507</link>
			<description>&lt;P&gt;며칠 전의 일이다. 팀장급 정도로 함께 일할 수 있는 서버 개발자를 면접보게 되었다.&lt;/P&gt;
&lt;P&gt;(NEET 주제에 왠 면접을 보냐고 묻진 말고... .)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그분의 경력은 나름 화려하셨다.&lt;/P&gt;
&lt;P&gt;6년 이상되는 경력에 컴퓨터 공학을 전공하셨고 누구나 알듯한 MMORPG의 서버 개발자셨고 그 회사를 나와서도 이름있는 게임 회사들에서 서버 작업을 하셨다. 팀장급 연봉 경력과 사용할줄 아는 기술에도 IOCP를 비롯하여 서버 개발자면 누구나 적는 그렇고 그런 서버쪽 기술명들이 적혀있었다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;초반의 내&amp;nbsp;질문은 서버의 유령사용자(접속 해제 이후에도 서버에선 살아있는 세션)에 대해 어떤 문제를 겪어보았고 해결책을 만드셨나를 여쭤보였다. 놀라운 답변을 들었는데 유령사용자가 무엇인지 모른다는 것과 그런 현상을 한번도 겪어보지 않았다는 것이었다.&lt;/P&gt;
&lt;P&gt;아주 실력이 좋으셔서 쓰레드 관리에 탁월한 능력이 있는가보다 싶었고 다른 면접관들에게 맡기고 별다른 질문은 하지 않았다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그러나 점점 면접을 보며 무언가 이상한 느낌이 들었다.&lt;/P&gt;
&lt;P&gt;그래서 여쭤본 것은 Virtual function. 제대로 대답을 하지 못하셨다.&lt;/P&gt;
&lt;P&gt;이 질문과 답변에 감이 잡혀 OOP의 기본 개념인 Encapsulation과 Polymorphism에 대해 다시 여쭤봤다. 이 개념들을 적용시켜 실전에서 사용해본 경험이 있으시냐고. 처음 듣는다고 하셨다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;마지막 질문을 드렸다, 쓰레드 잘 쓰시냐고.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:300px;&quot;&gt;&lt;a href=&quot;http://cfile2.uf.tistory.com/original/20098A344F8C4070155F77&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile2.uf.tistory.com/image/20098A344F8C4070155F77&quot; alt=&quot;10개의 쓰레드를 돌리는 바다생물.&quot; filemime=&quot;image/gif&quot; filename=&quot;1298622155_201102251722588906209001_0.gif&quot; height=&quot;169&quot; width=&quot;300&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:300px;&quot;&gt;10개의 쓰레드를 돌리는 바다생물.&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;한번도 쓰레드를 써본적이 없다고 하셨다.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:448px;&quot;&gt;&lt;a href=&quot;http://cfile30.uf.tistory.com/original/1476AA344F8C405C2BBCE1&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile30.uf.tistory.com/image/1476AA344F8C405C2BBCE1&quot; alt=&quot;쿠쿵!!!!&quot; filemime=&quot;image/jpeg&quot; filename=&quot;충격과_공포다!!.jpg&quot; height=&quot;336&quot; width=&quot;448&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:448px;&quot;&gt;쿠쿵!!!!&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;......이쯤에서 충격을 먹을 분들이 꽤나 되실 것이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그러면 한번 더 충격을 드린다, &lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;STRONG&gt;이런 분들 의외로 굉장히 많으시다.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display:inline-block;width:320px;&quot;&gt;&lt;a href=&quot;http://cfile29.uf.tistory.com/original/14368B384F8C40C003357A&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile29.uf.tistory.com/image/14368B384F8C40C003357A&quot; alt=&quot;2nd Impact&quot; filemime=&quot;image/jpeg&quot; filename=&quot;e0029486_4707e3167ac99.jpg&quot; height=&quot;240&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;span class=&quot;cap1&quot; style=&quot;display:block;width:320px;&quot;&gt;2nd Impact&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이제부터 본론.&lt;/P&gt;
&lt;P&gt;보통 사람들이 말하는 좋은 직장이란 무엇일까? 너무 크니까 개발자 지망생으로 옮긴다.&lt;/P&gt;
&lt;P&gt;개발자 지망생들이 원하는 좋은 직장이란 아마,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;-&amp;nbsp;네임드 회사는 연봉을 많이 주니까 그런 곳에서&lt;/P&gt;
&lt;P&gt;-&amp;nbsp;이미 서비스 운영 중인 네임드 프로젝트를 맡으며&lt;/P&gt;
&lt;P&gt;-&amp;nbsp;어렵고 힘든 일 없이 기존 라이브러리, 코드 위에서 작업하긔&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;...로 귀결될꺼다.&lt;/P&gt;
&lt;P&gt;참으로 달콤하게 보인다. 하지만 여기에는 엄청난 함정이 있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;인생이란 신입 몇년이 전부 다가 아니다.&amp;nbsp; (&amp;lt;-- 잉여 대학생들에게 해주고픈 이야기. 나중에 따로 썰푼다.)&lt;/P&gt;
&lt;P&gt;신입이 지나면 파트장이 되어야 하고 팀장이 되어야 한다.&lt;/P&gt;
&lt;P&gt;언젠가 밑바닥 라이브러리부터 만들어야 할일도 생기고 남을&amp;nbsp;부축하고 신기술을 찾아내 검증하고 적용시켜 동료들을 구해야 한다.&lt;/P&gt;
&lt;P&gt;그때야말로 자신의 가치를 증명시킬수 있다.&lt;/P&gt;
&lt;P&gt;그러한 순간에 일차적으로 믿을수 있는 것은 자신의 실력이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;운좋게 좋은 회사에 갔다면 기존의 좋은 코드를 분석하자.&lt;/P&gt;
&lt;P&gt;그 회사는 그 코드들 덕분에 좋은 회사가 되었다, 이미 증명된 최고의 기술이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;어쩌다보니 나쁜 회사(?)에 갔다면 고생스러워도 직접 많이 실험해보고 올려보자.&lt;/P&gt;
&lt;P&gt;시발스러운 그 작업들이 하나둘 쌓여 그 개고생들이 날개가 되어줄 것이다, 반드시(연봉도 올려줄꺼다.).&lt;/P&gt;
&lt;P&gt;안되면 백수라도 내가 해드린다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이 두 극단의 상황은 모두에게 쉽지 않다.&lt;/P&gt;
&lt;P&gt;후자야 당연한거고, 대기업이라도 서비스 유지를 위해 할일들이 무척 많다.&lt;/P&gt;
&lt;P&gt;라이브팀에서 매달 이벤트&amp;nbsp;작업만 집어넣는 것도 실제 해보면 아주 힘들다. 그것을 하며 실력을 더 쌓는 것 역시 왠만큼 부지런하지 않으면 못한다.&lt;/P&gt;
&lt;P&gt;그러던 중에 남이 만들어 놓은 것이 자신의 실력이라고 착각하기도 한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;하지만 그 울타리를 벗어나면 어떻게 될까?&lt;/P&gt;
&lt;P&gt;자신이 작업한 코드 밑의 코드까지 알지 못한다면, 자신에게 제공해준 함수들과 프레임워크를&amp;nbsp;자신의 손으로 만들수가 없다면,&lt;/P&gt;
&lt;P&gt;그 순간부터는&amp;nbsp;이제까지 한 작업들과 경력은 무용지물이 된다.&lt;/P&gt;
&lt;P&gt;아쉽게도 수많은 사람들이 자신이 어떤 환경 속에서 무엇을 하고 있는지도 모르면서 시키는대로 작업만 하고 있는 상황이다.&lt;/P&gt;
&lt;P&gt;일에 치여 그럴수도 있겠지만 그래선 안된다. 한마디로 갈곳이 없어진다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;예~전 회사에서도 신입으로 입사한지 일년이 넘었거나 이미 팀장급인데도&lt;/P&gt;
&lt;P&gt;&quot;STL의 string이나 map 같은거 그냥 원래 소켓함수로 나가는거 아닌가요?&quot;&lt;/P&gt;
&lt;P&gt;라는 사람들이 꽤 있었다.&lt;/P&gt;
&lt;P&gt;입사 하자마자 라이브러리가 그렇게 되어있었고 그안에서만 작업했으니 모르는거다.&lt;/P&gt;
&lt;P&gt;클라이언트라면 Alt + Tab해도 리소스&amp;nbsp;날라가지 않는 D3D 창생성과 모니터 주파수와 프레임율에 무관하게 스프라이트 띄우지 못하는 사람도 많다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;서두에서 시작해 결론이 자꾸 커지지만,&lt;/P&gt;
&lt;P&gt;결국 경력과 필연적으로 나이가 쌓이면 거기에 맞는 자신의 실력과 포스가 나와야한다.&lt;/P&gt;
&lt;P&gt;&quot;경력이 너무 높아 회사를 못옮긴다&quot;는 분들도 있는데&lt;/P&gt;
&lt;P&gt;경력이 높으면 실력이&amp;nbsp;당연히 좋아지고&amp;nbsp;나이가 많아지면 인성이 좋아지는 거다. 경력 많다고 싫어할 조직 없다.&lt;/P&gt;
&lt;P&gt;경력이 많은게 문제가 아니라 경력에 어울리는 실력과 팀관리 능력 혹은 어른으로써 애들을 보살펴줄 능력이&amp;nbsp;문제인 거다.&lt;/P&gt;
&lt;P&gt;게임 산업도 점점 성장하며 모두가 나이를 먹었고 여전히 개발자 부족이라 분명히 찾는 곳도 많다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;밝힐순 없지만&amp;nbsp;잘나가는 유명 게임 실장으로 있는 후배를 최근 만났는데 새로 입사하신 개발자 분이 자기 아버님이랑 동갑이라고 하였다. 여전히 세상은 살만한 곳이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PS 1) Inheritance, Encapsulation, Polymorphism은 OOP 첫장에서만 보고 잊는게 아닙니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 모든 디자인패턴, 게임내 인공지능, 컴포넌트, 플러그인, 분산서버... 죄다 이거 갖고 노는 것입니다.&lt;/P&gt;
&lt;P&gt;PS 2) Virtual function은 모든 면접관들이 자주 묻는 것입니다. 특히 소멸자에 자주 Virtual function 붙이는 이유도 알아두는게 좋아요.&lt;/P&gt;
&lt;P&gt;PS 3) 개인적으로 보통 쥬니어 급에게는 쓰레드 묻고 그 이상부터는 APC 자주 질문합니다.&lt;/P&gt;
&lt;P&gt;PS 4) 저와 면접보신 분께는 그것도 인연인데 혹시 이 글을 보신다면 공부 테크트리를 알려드리겠습니다. 댓글 부탁 드립니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PS 5) 최근 게임 웹진에서 인터뷰 기사를 보다 신입으로 들어오셔서 PD로 인터뷰 하시는 분을 보니 아~ 나이 드셨구나...싶다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 물론 나부터. ㅠㅠ&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;모든 게임 회사들이 홈페이지에 &quot;저희 회사는 평균 연령 20대 입니다.&quot;라고 광고하던 그 시절 생각하면...정말... ㅠㅠ&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-507-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-507-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>General</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/507</guid>
			<comments>http://rhea.pe.kr/507#entry507comment</comments>
			<pubDate>Tue, 17 Apr 2012 01:10:10 +0900</pubDate>
		</item>
		<item>
			<title>네트워크 게임 튜터리얼 5는 내일이나 모레 올라옵니다.</title>
			<link>http://rhea.pe.kr/506</link>
			<description>&lt;P&gt;지난 번 떡밥도 있고,&lt;br /&gt;
무엇보다 제 자신이 불편해서&lt;br /&gt;
boost:serialize를 이용한 예제로 소스를 수정 중입니다.&lt;br /&gt;
(MFC 클라이언트와 신나는 충돌 중~)&lt;br /&gt;
&lt;/P&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/187603364F66AE632AA0BC&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/187603364F66AE632AA0BC&quot; alt=&quot;&quot; filemime=&quot;&quot; filename=&quot;cfile23.uf@187603364F66AE632AA0BC.gif&quot; height=&quot;141&quot; width=&quot;250&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;굽신굽신&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;원래 제가 사용하던 IDL 컴파일러는 지지난 회사에서 사용하는 것이라&lt;br /&gt;
serialize가 필요한 싯점까지 새로 IDL 컴파일러를 만들어 오픈소스로 공개할려고 했으나...&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;..................언제나처럼 &quot;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;했으나&lt;/SPAN&gt;&lt;/STRONG&gt;&quot;로 끝나는 이 게으름뱅이를 용서해주시길 바랍니다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/14716C364F66ADAB2EDEC5&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/14716C364F66ADAB2EDEC5&quot; alt=&quot;맘같아선 75번째로 달리는 댓글에 시키는대로 해드리고 싶을 정도로 죄송합니다.&quot; filemime=&quot;&quot; filename=&quot;cfile25.uf@14716C364F66ADAB2EDEC5.jpg&quot; height=&quot;603&quot; width=&quot;676&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;맘같아선 75번째로 달리는 댓글에 시키는대로 해드리고 싶을 정도로 죄송합니다.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
후딱 로비편 끝내고 로비편의 백미인 UserPool 같이 쓰기(MO 게임의&amp;nbsp;핵심중 하나) 소개하고&lt;br /&gt;
컨텐츠랑 분산설계로 넘어가고 싶습니다.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/136B553B4F66BDDD2119C2&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/136B553B4F66BDDD2119C2&quot; alt=&quot;아 취업하면 8기가 꽂은 새 PC사고 싶다.&quot; filemime=&quot;&quot; filename=&quot;cfile23.uf@136B553B4F66BDDD2119C2.PNG&quot; height=&quot;244&quot; width=&quot;780&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;아 취업하면 8기가 꽂은 새 PC사고 싶다.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-506-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-506-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>General</category>
			<category>rhea</category>
			<category>socket</category>
			<category>winsock</category>
			<category>게임데브포에버</category>
			<category>네트워크</category>
			<category>소켓</category>
			<category>온라인</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/506</guid>
			<comments>http://rhea.pe.kr/506#entry506comment</comments>
			<pubDate>Mon, 19 Mar 2012 13:02:26 +0900</pubDate>
		</item>
		<item>
			<title>라이브 타일을 이용한 시계를 만들어 보았다.</title>
			<link>http://rhea.pe.kr/505</link>
			<description>오늘 잠에서 깨어 핸드폰(윈폰)을 보니 7시.&lt;br /&gt;
윈폰은 오전/오후가 표시되지 않아(24시간제 지원) 아침 7시인지 밤 7시인지 알수가 없었다.&lt;br /&gt;
&lt;br /&gt;그래서 윈폰의 특징인 Live Tile을 이용해 오전/오후가 표시되는 앱을 만들고 싶었다.&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile27.uf.tistory.com/original/18732B474F6447B3288A23&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile27.uf.tistory.com/image/18732B474F6447B3288A23&quot; alt=&quot;침대를 박차고 나와 라이브 타일 좀 토닥토닥하다가..&quot; filemime=&quot;&quot; filename=&quot;cfile27.uf@18732B474F6447B3288A23.png&quot; height=&quot;800&quot; width=&quot;480&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;침대를 박차고 나와 라이브 타일 좀 토닥토닥하다가...&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
그리고 만들었다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/20294D4B4F64456229FE73&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/20294D4B4F64456229FE73&quot; alt=&quot;이제 낮인지 밤인지 금방 알수 있다.&quot; filemime=&quot;&quot; filename=&quot;cfile23.uf@20294D4B4F64456229FE73.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;이제 낮인지 밤인지 금방 알수 있다.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
반나절 MSDN보고 백그라운드 서비스를 이용하여&amp;nbsp;라이브 타일에 시계를 올릴 수 있었다.&lt;br /&gt;
&lt;br /&gt;나는 실버라이트를 해본적이 없다.&lt;br /&gt;
하지만 C/C++을 잘하면 C#과 확장된 C# 솔루션들은&amp;nbsp;따라오는 플랫폼이라고 항상 말해왔다.&lt;br /&gt;
97년 COM 위에 비쥬얼 베이직 6.0 때부터 내려오는 MS의 훌륭한 전략이다.&lt;br /&gt;
&lt;br /&gt;암튼 덕분에 윈폰의 백그라운드 서비스를 어떻게 만드는지 공부가 되었다.&lt;br /&gt;
백그라운드 서비스는 NT서비스가 생각나&amp;nbsp;힘들거라 생각했지만 너무나 쉽게 만들수 있었고&lt;br /&gt;
LINQ 덕분에 복잡한 클래스 통신도 필요없었다(대신 OOP는 저멀리...).&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile1.uf.tistory.com/original/1979704A4F6446E630638D&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile1.uf.tistory.com/image/1979704A4F6446E630638D&quot; alt=&quot;&quot;주목할 만한&quot;이라니... 너무 친절한 MS, 이것을 보고 넘치는 친절함에 감동했다.&quot; filemime=&quot;&quot; filename=&quot;cfile1.uf@1979704A4F6446E630638D.PNG&quot; height=&quot;321&quot; width=&quot;780&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;&quot;주목할 만한&quot;이라니... 너무 친절한 MS, 이것을 보고 넘치는 친절함에 감동했다.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
아, 놀라운 C#의 생산력이여. Native 코드와 함께 쓸 일이 없으니 정말 쾌적한 환경을 제공한다.&lt;br /&gt;
이제껏 C#을 많이 활용하지 않았던 것은 C/C++이 주력이었고 그것들과 자료형을 맞추는 일이 있다면 도리어 생산성이 더 떨어지기 때문이었다.&lt;br /&gt;
&lt;br /&gt;조금더 강화하고 배터리 소모량을 테스트하고&lt;br /&gt;
트위터에 친구가 이미지를 뽑아주면 하루히를 지우고 자체 캐릭터로&amp;nbsp;정식으로 유료앱으로 올려볼까 한다.&lt;br /&gt;
그리고 XNA 게임들을 만들어 봐야지.&lt;br /&gt;
&lt;br /&gt;Eclipse나 NetBean이 좋다고 칭찬하는 것은 그 동네에는 그것밖에 없기 때문이고&lt;br /&gt;
XCode가 좋다는 것도 감성돋는 개발자들만 가능한 일이지 싶다.&lt;br /&gt;
역시 나에게는 Visual Studio가 최강이다. 아, C++ 11도 봐야 하는데.... .&lt;br /&gt;
&lt;br /&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;추가&lt;br /&gt;
@DEXP_ 님에게 시안이 날라왔다.&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/193E564A4F64F3D50B5185&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/193E564A4F64F3D50B5185&quot; alt=&quot;일회용으로 써먹긴 아까운듯.&quot; filemime=&quot;&quot; filename=&quot;cfile23.uf@193E564A4F64F3D50B5185.jpg&quot; height=&quot;300&quot; width=&quot;600&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;일회용으로 써먹긴 아까운듯.&lt;/p&gt;&lt;/div&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-505-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-505-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<category>WP7.5</category>
			<category>망고</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/505</guid>
			<comments>http://rhea.pe.kr/505#entry505comment</comments>
			<pubDate>Sat, 17 Mar 2012 17:15:45 +0900</pubDate>
		</item>
		<item>
			<title>슬슬 취업을 해야겠다, 그리고 그간을 돌아보자</title>
			<link>http://rhea.pe.kr/504</link>
			<description>&lt;P&gt;&lt;br /&gt;
이번 주말이 지나면 퇴사한지 정확히 3달이 된다.&lt;br /&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;DIV style=&quot;BORDER-BOTTOM: #fedec7 1px solid; BORDER-LEFT: #fedec7 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fedec7; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #fedec7 1px solid; BORDER-RIGHT: #fedec7 1px solid; PADDING-TOP: 10px&quot; class=txc-textbox&gt;지난 회사를 나오자마자 익히 알려진대로 목디스크 치료와 기타 등등의 치료(?)를 하였다.&lt;br /&gt;
그리고 의사 처방대로 당분간 컴퓨터와 그림 등 앉아서 고개를 숙여야 하는 작업을 피하였다.&lt;br /&gt;
그렇게 한달.&lt;br /&gt;
&lt;br /&gt;몸이 낫고 나자 강제 아르바이트(?)를 하였다.&lt;br /&gt;
간단히 말해 트위터/페이스북 연동 서버와 클라이언트의 설계 및 해당 팀원들의 레벨업 교육.&lt;br /&gt;
유유자적하게 회사를 다녀보는 것이 소원이었던지라 정말 유유자적하게 다녔다.&lt;br /&gt;
그렇게 한달반.&lt;br /&gt;
&lt;br /&gt;그리고 3월 1일부터 이제까지 2주간 집에서 잠만 잤다.&lt;br /&gt;
자도 자도 잠은 달콤했다. 평생 밀린 잠을 이번 기회에 뿌리뽑자라는 마음이었다.&lt;br /&gt;
&lt;/DIV&gt;
&lt;P&gt;이렇게 3달을 보내니 건강은 많이 나아졌으며 스트레스성 탈모까지 나았다.&lt;br /&gt;
몸무게도 최근 따로 재어보진 않았지만 분명 빠졌다.&lt;br /&gt;
포만감을 느끼고 싶을때는 콩 삶아 먹었다. 나름 콩 다이어트? 효과는 좋았다.&lt;br /&gt;
&lt;br /&gt;그렇게 시간을 보내고 나니...&lt;br /&gt;
&lt;br /&gt;처음 마음 먹었던 프로젝트와 공부는 거의 하지 못했다.&lt;br /&gt;
3D MAX 공부 포함하여 서버, 클라 개인 엔진도 손대지 않았고&lt;br /&gt;
게임개발 포에러 팀 블로그도 한차례 빼먹었고&lt;br /&gt;
새로 나온 기술들도 원하는 만큼 살펴보지 못했다.&lt;br /&gt;
&lt;br /&gt;Jawitter도 현재 기본적인 기능에서 멈췄고 DC Diver도 HTML 파싱이 귀찮아 멈춘 상태.&lt;br /&gt;
MPL은 맘만 먹고 있고 CUDA는 A당이라 안했고.&lt;br /&gt;
모 애니 온리전에 낼 동인지도 그려야 하는데 해당 애니도 보다만 상태.&lt;br /&gt;
&lt;br /&gt;아 부끄럽다. ㅠㅠ&lt;br /&gt;
그래도 아이폰은 버리고 망고폰으로 갈아탄건 후회없다.&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile5.uf.tistory.com/original/196FD6354F624E080ED7F8&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile5.uf.tistory.com/image/196FD6354F624E080ED7F8&quot; alt=&quot;생산성, 퍼포먼스 모두다 윈폰 만세임.&quot; filemime=&quot;&quot; filename=&quot;cfile5.uf@196FD6354F624E080ED7F8.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;생산성, 퍼포먼스 모두다 윈폰 만세임.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
역시 찔끔찔끔 나오는 시간에 최대한의 집중도/잉여력을 발산하여 그 시간을&amp;nbsp;이용해야 한다.&lt;br /&gt;
생각해보면 이제까지 나름 성공한 것들은 그렇게 나온 것 같다.&lt;br /&gt;
&lt;br /&gt;대신 친목질과 소모성 덕질은... 나름 성과가 있었다. 만족스럽다.&lt;/P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile6.uf.tistory.com/original/1609F3334F62171013DCC1&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile6.uf.tistory.com/image/1609F3334F62171013DCC1&quot; alt=&quot;최대의 덕질 중 하나, PC-9801 UR 확보.&quot; filemime=&quot;&quot; filename=&quot;cfile6.uf@1609F3334F62171013DCC1.jpg&quot; height=&quot;480&quot; width=&quot;640&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;최대의 덕질 중 하나, PC-9801 UR 확보.&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
그리고 이제는 슬슬 취업을 해야겠다.&lt;br /&gt;
잉여력을 모아 터트릴 시기가 된 것 같다.&lt;br /&gt;
&lt;br /&gt;
&lt;p id=&quot;more504_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, '504_0','어떤 잉여의 지원동기','접기'); return false;&quot;&gt;어떤 잉여의 지원동기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content504_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/14573F394F6228A60C657F&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/14573F394F6228A60C657F&quot; alt=&quot;어떤 잉여의 지원동기&quot; filemime=&quot;&quot; filename=&quot;cfile10.uf@14573F394F6228A60C657F.PNG&quot; height=&quot;480&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;어떤 잉여의 지원동기&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;실력이 미천하여 받아주는 곳은 없지만&lt;br /&gt;

&lt;p id=&quot;more504_1&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, '504_1','그래도,','접기'); return false;&quot;&gt;그래도,&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content504_1&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile10.uf.tistory.com/original/191EAC344F622633079461&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile10.uf.tistory.com/image/191EAC344F622633079461&quot; alt=&quot;이런 패기로 이력서나 써보자.&quot; filemime=&quot;&quot; filename=&quot;cfile10.uf@191EAC344F622633079461.jpg&quot; height=&quot;1000&quot; width=&quot;700&quot;/&gt;&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;이런 패기로 이력서나 써보자.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-504-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-504-1&quot; class=&quot;entry-ccl-nd&quot; src=&quot;http://i1.daumcdn.net/cfs.tistory/v/0/static/admin/editor/ccl_black03.png&quot; alt=&quot;변경 금지&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nd/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
&lt;fieldset style=&quot;margin:20px 0px 20px 0px;padding:5px;&quot;&gt;&lt;legend&gt;&lt;span&gt;&lt;strong&gt;크리에이티브 커먼즈 라이선스&lt;/strong&gt;&lt;/span&gt;&lt;/legend&gt;&lt;!--Creative Commons License--&gt;&lt;div style=&quot;float: left; width: 88px; margin-top: 3px;&quot;&gt;&lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Creative Commons License&quot; style=&quot;border-width: 0&quot; src=&quot;http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 92px; margin-top: 3px; text-align: justify;&quot;&gt;이 저작물은 &lt;a rel=&quot;license&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스&lt;/a&gt;에 따라 이용하실 수 있습니다.
			&lt;!-- Creative Commons License--&gt;
			&lt;!-- &lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
			&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; /&gt;
			&lt;/Work&gt;
			&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-nc-nd/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;&lt;prohibits rdf:resource=&quot;http://web.resource.org/cc/CommercialUse&quot;/&gt;&lt;/License&gt;&lt;/rdf:RDF&gt; --&gt;&lt;/div&gt;&lt;/fieldset&gt;</description>
			<category>Diary</category>
			<author>Rhea君</author>
			<guid>http://rhea.pe.kr/504</guid>
			<comments>http://rhea.pe.kr/504#entry504comment</comments>
			<pubDate>Fri, 16 Mar 2012 02:31:04 +0900</pubDate>
		</item>
	</channel>
</rss>
