<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Lv.1 Developer&#039;s Blog</title>
		<link>http://hsgames.com/blog/</link>
		<description>1레벨 개발자의 렙업블로그</description>
		<language>ko</language>
		<pubDate>Sat, 27 Feb 2010 16:20:47 +0900</pubDate>
		<generator>Textcube 1.7.6 : Staccato</generator>
		<image>
		<title>Lv.1 Developer&#039;s Blog</title>
		<url>http://hsgames.com/dev/attach/1/1044085908.jpg</url>
		<link>http://hsgames.com/blog/</link>
		<width>152</width>
		<height>210</height>
		<description>1레벨 개발자의 렙업블로그</description>
		</image>
		<item>
			<title>Game Oven</title>
			<link>http://hsgames.com/blog/entry/Game-Oven</link>
			<description>&lt;P&gt;다음 학기 마지막 학기복학을 앞두고 있어&lt;BR&gt;이번 여름이 마지막 방학입니다.&lt;BR&gt;&lt;BR&gt;학생 개발자로서 누릴 수 있는 기쁨 중 하나는 공모전이라 생각됩니다.&lt;BR&gt;일반인도 참가 가능하겠지만, 바쁜 직장생활 중 짬을 내는게 쉬운 일이 아닐 것 같습니다.&lt;BR&gt;&lt;BR&gt;한게임에서 본인들이 내놓은 게임개발 툴인 Game Oven을 이용한 게임을 &lt;BR&gt;공모하는 공모전을 진행중이라 준비 중입니다.&lt;BR&gt;매번 준비만 하다 매듭짓지 못했던 저였기에 이번에는 제출에 의의를 두고 있습니다.&lt;BR&gt;&lt;BR&gt;새 저작권법이 이해가 안되어 캡쳐사진이나 문구를 올리기가 무섭네요.&lt;BR&gt;&lt;BR&gt;몇 일 훑어보니 기존 게임개발자들이 스크립트 개발에 사용하던 루아를 이용하고 있습니다.&lt;BR&gt;기존 게임엔진 처럼 DirectX와 C++를 이용하여 코어를 만들어 놓은 후&lt;BR&gt;툴 사용자들이 코어를 건드리지 않아도 되고&lt;BR&gt;스크립트 언어인 루아에 대한 약간의 지식만 있으면 개발가능하도록 해놓았네요.&lt;BR&gt;레퍼런스를 보니 반갑게도 ClutchTime에서 사용중인 TinyXML과 &lt;BR&gt;A게임회사에서 제 일이었던 FMOD, Boost C++이 보이네요.&lt;BR&gt;&lt;IMG class=comic alt=&quot;primate comparison&quot; src=&quot;http://www.toothpastefordinner.com/061307/primate-comparison.gif&quot;&gt;&lt;BR&gt;&lt;BR&gt;제가 감히 좋고 나쁘고 평을 하긴 무리일 것 같으니 직접 다운받아 튜토리얼을 돌려보시길 권해드립니다.&lt;BR&gt;&lt;A href=&quot;http://idogame.hangame.com/&quot;&gt;http://idogame.hangame.com/&lt;/A&gt;&lt;/P&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=_blank&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=_blank&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>GameProgramming</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/282</guid>
			<comments>http://hsgames.com/blog/entry/Game-Oven#entry282comment</comments>
			<pubDate>Thu, 30 Jul 2009 15:54:08 +0900</pubDate>
		</item>
		<item>
			<title>분할</title>
			<link>http://hsgames.com/blog/entry/%EB%B6%84%ED%95%A0</link>
			<description>블로그를 개발자용, 사생활용 2개로 나누었습니다.&lt;BR&gt;검색에 노출되어 찾아오시는 분들은 제 사생활에 관심없고&lt;BR&gt;몇 안 되는 블로그에 오는 친구들은 제 전공이야기에 관심이 없을 것이라 생각하여&lt;BR&gt;블로그를 나누게 되었습니다.&lt;BR&gt;&lt;BR&gt;잠시 나갔다가 돌아오니 한국의 인터넷속도가 놀라울 뿐입니다.&lt;BR&gt;1년 외출의 목표 중 하나는 성격의 변화였습니다.&lt;BR&gt;스스로 평소 말수가 적은 것이 불만이었는데, 내린 결론은&lt;BR&gt;말하기 전 그것에 대한 너무 많은 생각이 제 입을 닫고 있다는 것입니다.&lt;BR&gt;&lt;BR&gt;포스팅도 마찬가지였습니다.&lt;BR&gt;꽤 긴 블로깅 기간에 비해 포스팅 갯수가 너무 적습니다.&lt;BR&gt;게으름문제가 가장 크겠지만, 이 글을 올릴까 말까하는 고민이 너무 많았던 것 같네요.&lt;BR&gt;이번 분할을 계기로 &#039;지나친&#039; 생각없이 막 올리는 다작 블로거가 되고 싶습니다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG class=comic style=&quot;WIDTH: 549px; HEIGHT: 585px&quot; height=585 alt=&quot;sweatshirt chromatography&quot; src=&quot;http://www.toothpastefordinner.com/121106/sweatshirt-chromatography.gif&quot; width=597&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=_blank&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=_blank&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>Etc_Computing</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/281</guid>
			<comments>http://hsgames.com/blog/entry/%EB%B6%84%ED%95%A0#entry281comment</comments>
			<pubDate>Thu, 30 Jul 2009 15:35:04 +0900</pubDate>
		</item>
		<item>
			<title>Mc Ronaldo</title>
			<link>http://hsgames.com/blog/entry/Mc-Ronaldo</link>
			<description>&lt;P&gt;슬슬 이 곳에서 생활의 끝이 보입니다.&lt;BR&gt;&lt;BR&gt;예상은 했지만 지난 6개월에 대한 후회가 남네요.&lt;BR&gt;남은 3개월은 계획대로 잘 진행되었으면 합니다.&lt;BR&gt;&lt;BR&gt;6개월동안 거의 업데이트도 방문자도 없었는데&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;Mc Donald에서 공짜로 WiFi를 제공하고 있습니다.&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;img src=&quot;http://hsgames.com/dev/attach/1/1184598594.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;160&quot; width=&quot;256&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;하지만 쉽게 올 수 있는 곳이 아니기 때문에&lt;BR&gt;일주일에 한, 두번 정도만 인터넷에 접속하게 됩니다.&lt;BR&gt;&lt;BR&gt;그래도 전혀 사는데 불편함이 없네요.&lt;BR&gt;한국에 돌아가면 다시 중독자마냥 웹에 눌러 앉아 살겠지만&lt;BR&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=_blank&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=_blank&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>Etc_Computing</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/280</guid>
			<comments>http://hsgames.com/blog/entry/Mc-Ronaldo#entry280comment</comments>
			<pubDate>Wed, 29 Apr 2009 19:04:44 +0900</pubDate>
		</item>
		<item>
			<title>28.8k</title>
			<link>http://hsgames.com/blog/entry/288k</link>
			<description>&lt;P&gt;이 곳의 인터넷은 정액제가 아니라 부분종량제입니다.&lt;BR&gt;ADSL2를 사용하지만 달마다 일정 사용량이 넘어서면 속도가 15년전 28.8k모뎀속도로 뚝 떨어집니다.&lt;BR&gt;그나마 그 시절엔 느렸지만 꾸준히 전송이 이루어졌었는데,&lt;BR&gt;그래서 야한사진을 블라인드효과로 천천히 다운받던 추억이 제 또래들은 가지고 있는데&lt;BR&gt;그런데 이 곳 라우터는 무슨 프로토콜을 사용하는 지&lt;BR&gt;페이지를 열려고 끈기있게 기다리고 있으면 &lt;BR&gt;금방 시간초과가 되어 페이지가 열리지도 않은체 완료가 되어버립니다.&lt;BR&gt;그 재밌었다던 WBC도 문자중계도 힘들어 네이버 메인페이지로 결과를 확인했네요.&lt;BR&gt;지금 있는 곳엔 50G정도로 추정되는 ADSL2를 10여명이서 나눠씁니다.&lt;BR&gt;매 달 보름정도가 지나면 15년전 과거로 돌아갑니다.&lt;/P&gt;
&lt;P&gt;몇 주 동안 몇번이나 포스팅을 시도했지만, 제 블로그에 로그인페이지가 뜨지가 않네요.&lt;BR&gt;지금도 메모장에다 이 글을 쓰고 있습니다만 언제쯤 로그인에 성공할 지 모르겠네요.&lt;BR&gt;언제쯤 이 글이 온라인에 올라갈까요?&lt;BR&gt;&lt;BR&gt;&lt;IMG style=&quot;WIDTH: 564px; HEIGHT: 300px&quot; height=298 src=&quot;http://www.toothpastefordinner.com/112908/unpopular-porn.gif&quot; width=600 border=1&gt;&lt;/P&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=_blank&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=_blank&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>Etc_Computing</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/278</guid>
			<comments>http://hsgames.com/blog/entry/288k#entry278comment</comments>
			<pubDate>Wed, 25 Mar 2009 18:41:32 +0900</pubDate>
		</item>
		<item>
			<title>TinyXML을 이용한 간단한 Data Driven 적용 - 3. 내 프로젝트에 적용해보자.</title>
			<link>http://hsgames.com/blog/entry/TinyXML%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-Data-Driven-%EC%A0%81%EC%9A%A9-3-3-%EB%82%B4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-%EC%A0%81%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90</link>
			<description>&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://hsgames.com/dev/attach/1/1187990472.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;267&quot; width=&quot;408&quot; /&gt;&lt;/div&gt;&lt;BR&gt;소스포지의 TinyXML 페이지로 들어가 &lt;A href=&quot;http://sourceforge.net/projects/tinyxml/&quot;&gt;http://sourceforge.net/projects/tinyxml/&lt;/A&gt;&lt;BR&gt;최신판을 다운받는다. (2009년 2월28일 현재 ver. 2.5.3)&lt;BR&gt;압축을 풀어보면 Parser 소스파일과 함께 간단한 Test예제가 들어있지만,&lt;BR&gt;그리 이해하기 쉽게 만들어 놓진 않았다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://hsgames.com/blog/attachment/1366735913.zip&quot;&gt;&lt;img src=&quot;http://hsgames.com/blog/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; DataDriven_TinyXML(NBA).zip&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;프로젝트 적용법의 이해를 돕기 위해 간단한 예제를 만들어 보았다.&lt;BR&gt;위의 링크를 다운받아 풀어보면 2개의 xml파일과 ...Before,After 2개의 cpp 소스를 볼 수 있다.&lt;BR&gt;사실 워낙 단순한 소스라 여기까지 찾아온 분이라면 2개의 소스파일만 비교해보면 &lt;BR&gt;이 포스트를 읽어볼 필요도 없이 사용법을 이해 할 수 있을테지만, &lt;BR&gt;포스팅의 의미를 더하기 위해 간단히 설명을 덧붙혀본다.&lt;/P&gt;
&lt;P&gt;
&lt;p id=&quot;more275_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;275_0&#039;,&#039; TinyXML 적용 전 원본소스 보기 &#039;,&#039; TinyXML 적용 전 원본소스 닫기 &#039;); return false;&quot;&gt; TinyXML 적용 전 원본소스 보기 &lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content275_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;NBA_Player_Before.cpp&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;&lt;BR&gt;&lt;SPAN class=pun&gt;//TinyXML을 이용한 간단한 Data Driven 적용 - Data Driven 사용 전&lt;BR&gt;//http://www.hsgames.com/blog&lt;/SPAN&gt; &lt;BR&gt;&lt;BR&gt;
&lt;P class=tattermoreless more=&quot; TinyXML 적용 전 원본소스 보기 &quot; less=&quot; TinyXML 적용 전 원본소스 닫기 &quot;&gt;&lt;SPAN class=pun&gt;#include &amp;lt;iostream&amp;gt;&lt;BR&gt;using namespace std;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=tattermoreless more=&quot; TinyXML 적용 전 원본소스 보기 &quot; less=&quot; TinyXML 적용 전 원본소스 닫기 &quot;&gt;&lt;SPAN class=pun&gt;#define POSITION_PG  &quot;PG&quot;&lt;BR&gt;#define POSITION_SG  &quot;SG&quot;&lt;BR&gt;#define POSITION_SF  &quot;SF&quot;&lt;BR&gt;#define POSITION_PF  &quot;PF&quot;&lt;BR&gt;#define POSITION_C  &quot;C&quot;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=tattermoreless more=&quot; TinyXML 적용 전 원본소스 보기 &quot; less=&quot; TinyXML 적용 전 원본소스 닫기 &quot;&gt;&lt;SPAN class=pun&gt;class CBasketPlayer&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt; char m_sName[32];&lt;BR&gt; char m_sPosition[16];&lt;BR&gt; float m_fHeight;&lt;BR&gt; float m_fWeight;&lt;BR&gt; int  m_iDraftYear;&lt;BR&gt;public:&lt;BR&gt; int Init(char* n,int p, float h,float w,int d);&lt;BR&gt; int Print();&lt;BR&gt;};&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=tattermoreless more=&quot; TinyXML 적용 전 원본소스 보기 &quot; less=&quot; TinyXML 적용 전 원본소스 닫기 &quot;&gt;&lt;SPAN class=pun&gt;int CBasketPlayer::Init(char* n,int p, float h,float w,int d)&lt;BR&gt;{&lt;BR&gt; strcpy(m_sName, n);&lt;BR&gt; switch(p)&lt;BR&gt; {&lt;BR&gt; case 1:&lt;BR&gt;  strcpy(m_sPosition, POSITION_PG);&lt;BR&gt;  break;&lt;BR&gt; case 2:&lt;BR&gt;  strcpy(m_sPosition, POSITION_SG);&lt;BR&gt;  break;&lt;BR&gt; case 3:&lt;BR&gt;  strcpy(m_sPosition, POSITION_SF);&lt;BR&gt;  break;&lt;BR&gt; case 4:&lt;BR&gt;  strcpy(m_sPosition, POSITION_PF);&lt;BR&gt;  break;&lt;BR&gt; case 5:&lt;BR&gt;  strcpy(m_sPosition, POSITION_C);&lt;BR&gt;  break;&lt;BR&gt; }&lt;BR&gt; m_fHeight = h;&lt;BR&gt; m_fWeight = w; &lt;BR&gt; m_iDraftYear = d;&lt;BR&gt; &lt;BR&gt; return 0;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=tattermoreless more=&quot; TinyXML 적용 전 원본소스 보기 &quot; less=&quot; TinyXML 적용 전 원본소스 닫기 &quot;&gt;&lt;SPAN class=pun&gt;int CBasketPlayer::Print()&lt;BR&gt;{&lt;BR&gt; cout &amp;lt;&amp;lt; m_sName &amp;lt;&amp;lt; &#039;\t&#039; &amp;lt;&amp;lt; m_sPosition &amp;lt;&amp;lt; endl;&lt;BR&gt; cout &amp;lt;&amp;lt; m_fHeight &amp;lt;&amp;lt; &quot;cm\t&quot; &amp;lt;&amp;lt; m_fWeight &amp;lt;&amp;lt; &quot;kg\tDrafted &quot; &amp;lt;&amp;lt; m_iDraftYear &amp;lt;&amp;lt; endl;&lt;BR&gt; &lt;BR&gt; return 0;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=tattermoreless more=&quot; TinyXML 적용 전 원본소스 보기 &quot; less=&quot; TinyXML 적용 전 원본소스 닫기 &quot;&gt;&lt;SPAN class=pun&gt;int main()&lt;BR&gt;{&lt;BR&gt; CBasketPlayer Player[2];&lt;BR&gt; Player[0].Init(&quot;Michael Jordan&quot;, 2, 198.0, 89.5, 1984);&lt;BR&gt; Player[1].Init(&quot;Karl Malone&quot;, 4, 210.5, 117.5, 1985);&lt;BR&gt; Player[0].Print();&lt;BR&gt; Player[1].Print();&lt;BR&gt; return 0;&lt;BR&gt;}&lt;BR&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/div&gt;
&lt;P&gt;&lt;BR&gt;private 변수를 가지는 간단한 농구선수 class를 초기화하고 출력하는 아주 간단한 로직이다.&lt;BR&gt;NBA_Player_Before.cpp로 프로젝트를 만들어 컴파일 하면 문제없이 잘 실행될 것이다.&lt;BR&gt;&lt;/P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://hsgames.com/dev/attach/1/1033815180.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;130&quot; width=&quot;361&quot; /&gt;&lt;/div&gt;&lt;BR&gt;하지만 객체를 초기화하는 데이터들이 main함수에 하드코딩이 되어있고,&lt;BR&gt;출력에 사용되는 포지션에 대한 문자값이 #define으로 소스에 전처리 정의되어있다.&lt;BR&gt;&lt;BR&gt;우리의 목표는 TinyXML을 이용해서 이 데이터들을 소스 밖으로 빼내는 일이다.&lt;BR&gt;일단 xml파일을 작성해보자.&lt;BR&gt;(직접 작성할 필욘 없다. 모든 소스와 xml파일은 위의 첨부파일에 첨부되어있다.)&lt;BR&gt;&lt;BR&gt;
&lt;p id=&quot;more275_1&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;275_1&#039;,&#039; 2개의 XML 파일 보기 &#039;,&#039; 2개의 XML 파일 닫기 &#039;); return false;&quot;&gt; 2개의 XML 파일 보기 &lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content275_1&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;BR&gt;NBA_Position.xml&lt;BR&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;&lt;BR&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;us-ascii&quot;?&amp;gt;&lt;BR&gt;&amp;lt;Position&amp;gt;&lt;BR&gt; &amp;lt;PG&amp;gt;PG&amp;lt;/PG&amp;gt;&lt;BR&gt; &amp;lt;SG&amp;gt;SG&amp;lt;/SG&amp;gt;&lt;BR&gt; &amp;lt;SF&amp;gt;SF&amp;lt;/SF&amp;gt;&lt;BR&gt; &amp;lt;PF&amp;gt;PF&amp;lt;/PF&amp;gt;&lt;BR&gt; &amp;lt;C&amp;gt;C&amp;lt;/C&amp;gt;&lt;BR&gt;&amp;lt;/Position&amp;gt;&lt;BR&gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;NBA_Player.xml&lt;BR&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;&lt;BR&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;us-ascii&quot;?&amp;gt;&lt;BR&gt;&amp;lt;Players&amp;gt;&lt;BR&gt; &amp;lt;Player name=&quot;Michael Jordan&quot;&amp;gt;&lt;BR&gt;  &amp;lt;Position&amp;gt;2&amp;lt;/Position&amp;gt;&lt;BR&gt;  &amp;lt;Height&amp;gt;198.0&amp;lt;/Height&amp;gt;&lt;BR&gt;  &amp;lt;Weight&amp;gt;89.5&amp;lt;/Weight&amp;gt;&lt;BR&gt;  &amp;lt;DraftYear&amp;gt;1984&amp;lt;/DraftYear&amp;gt;&lt;BR&gt; &amp;lt;/Player&amp;gt;&lt;BR&gt; &amp;lt;Player name=&quot;Karl Malone&quot;&amp;gt;&lt;BR&gt;  &amp;lt;Position&amp;gt;4&amp;lt;/Position&amp;gt;&lt;BR&gt;  &amp;lt;Height&amp;gt;210.5&amp;lt;/Height&amp;gt;&lt;BR&gt;  &amp;lt;Weight&amp;gt;117.5&amp;lt;/Weight&amp;gt;&lt;BR&gt;  &amp;lt;DraftYear&amp;gt;1985&amp;lt;/DraftYear&amp;gt;&lt;BR&gt; &amp;lt;/Player&amp;gt;&lt;BR&gt;&amp;lt;/Players&amp;gt;&lt;BR&gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;/div&gt;
&lt;P&gt;이제 원본소스에 TinyXML를 적용해보자.&lt;BR&gt;포스팅 가장 위에서 받았던 TinyXML의 압축이 풀린 폴더에서&lt;BR&gt;tinystr.cpp&lt;BR&gt;tinystr.h&lt;BR&gt;tinyxml.cpp&lt;BR&gt;tinyxml.h&lt;BR&gt;tinyxmlerror.cpp&lt;BR&gt;tinyxmlparser.cpp&lt;BR&gt;6개 파일을 프로젝트에 추가한다.&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://hsgames.com/dev/attach/1/1323077537.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;117&quot; width=&quot;185&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;
&lt;p id=&quot;more275_2&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;275_2&#039;,&#039; TinyXML 적용 후 소스 보기 &#039;,&#039; TinyXML 적용 후 소스 닫기 &#039;); return false;&quot;&gt; TinyXML 적용 후 소스 보기 &lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content275_2&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;NBA_Player_After.cpp&lt;BR&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;code&gt;&lt;BR&gt;//TinyXML을 이용한 간단한 Data Driven 적용 - Data Driven 사용 후&lt;BR&gt;//http://www.hsgames.com/blog&lt;BR&gt;#include &amp;lt;iostream&amp;gt;&lt;BR&gt;#include &quot;tinyxml.h&quot;//헤더 추가&lt;BR&gt;using namespace std; 
&lt;P&gt;TiXmlDocument g_xmlDocPosition;//XML 파일 오브젝트 전역변수로 선언&lt;BR&gt;TiXmlDocument g_xmlDocPlayer;&lt;/P&gt;
&lt;P&gt;class CBasketPlayer&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt; char m_sName[32];&lt;BR&gt; char m_sPosition[16];&lt;BR&gt; float m_fHeight;&lt;BR&gt; float m_fWeight;&lt;BR&gt; int  m_iDraftYear;&lt;BR&gt;public:&lt;BR&gt; int Init(const char* n,int p, float h,float w,int d);&lt;BR&gt; int Print();&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;int CBasketPlayer::Init(const char* n,int p, float h,float w,int d)&lt;BR&gt;{&lt;BR&gt; strcpy(m_sName, n);&lt;/P&gt;
&lt;P&gt; TiXmlElement * pRoot = g_xmlDocPosition.RootElement();//NBA_Position.xml 의 루트의 포인터로&lt;BR&gt; TiXmlHandle nodeHandle(pRoot);//핸들을 지정한다.&lt;/P&gt;
&lt;P&gt; switch(p)&lt;BR&gt; {&lt;BR&gt; case 1://포지션을 직접 strcpy하지 않고 파일로부터 불러와 대입&lt;BR&gt;  strcpy(m_sPosition, nodeHandle.FirstChild(&quot;PG&quot;).Element()-&amp;gt;GetText());&lt;BR&gt;  break;&lt;BR&gt; case 2:&lt;BR&gt;  strcpy(m_sPosition, nodeHandle.FirstChild(&quot;SG&quot;).Element()-&amp;gt;GetText());&lt;BR&gt;  break;&lt;BR&gt; case 3:&lt;BR&gt;  strcpy(m_sPosition, nodeHandle.FirstChild(&quot;SF&quot;).Element()-&amp;gt;GetText());&lt;BR&gt;  break;&lt;BR&gt; case 4:&lt;BR&gt;  strcpy(m_sPosition, nodeHandle.FirstChild(&quot;PF&quot;).Element()-&amp;gt;GetText());&lt;BR&gt;  break;&lt;BR&gt; case 5:&lt;BR&gt;  strcpy(m_sPosition, nodeHandle.FirstChild(&quot;C&quot;).Element()-&amp;gt;GetText());&lt;BR&gt;  break;&lt;BR&gt; }&lt;BR&gt; m_fHeight = h;&lt;BR&gt; m_fWeight = w; &lt;BR&gt; m_iDraftYear = d;&lt;BR&gt; &lt;BR&gt; return 0;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;int CBasketPlayer::Print()&lt;BR&gt;{&lt;BR&gt; cout &amp;lt;&amp;lt; m_sName &amp;lt;&amp;lt; &#039;\t&#039; &amp;lt;&amp;lt; m_sPosition &amp;lt;&amp;lt; endl;&lt;BR&gt; cout &amp;lt;&amp;lt; m_fHeight &amp;lt;&amp;lt; &quot;cm\t&quot; &amp;lt;&amp;lt; m_fWeight &amp;lt;&amp;lt; &quot;kg\tDrafted &quot; &amp;lt;&amp;lt; m_iDraftYear &amp;lt;&amp;lt; endl;&lt;BR&gt; &lt;BR&gt; return 0;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;int main()&lt;BR&gt;{&lt;BR&gt; CBasketPlayer Player[2];&lt;BR&gt; &lt;BR&gt; char str[256];&lt;BR&gt; int iCnt = 0;&lt;BR&gt; g_xmlDocPosition.LoadFile(&quot;NBA_Position.xml&quot;);//두 XML을 TiXmlDocument 오브젝트로 불러온다. &lt;BR&gt; g_xmlDocPlayer.LoadFile(&quot;NBA_Player.xml&quot;);&lt;/P&gt;
&lt;P&gt; TiXmlElement * pRoot = g_xmlDocPlayer.RootElement();//NBA_Player.XML 파일의 루트를 포인터로 설정하여&lt;/P&gt;
&lt;P&gt; for (TiXmlNode * pNode = pRoot-&amp;gt;FirstChild(); pNode; pNode = pNode-&amp;gt;NextSibling())//한명씩 읽어가며&lt;BR&gt; {&lt;BR&gt;  TiXmlHandle nodeHandle(pNode);&lt;BR&gt;  Player[iCnt].Init(pNode-&amp;gt;ToElement()-&amp;gt;Attribute(&quot;name&quot;),//속성들을 읽으며 Init()로 초기화를 한다.&lt;BR&gt;   atoi(nodeHandle.FirstChild(&quot;Position&quot;).Element()-&amp;gt;GetText()),&lt;BR&gt;   atof(nodeHandle.FirstChild(&quot;Height&quot;).Element()-&amp;gt;GetText()),&lt;BR&gt;   atof(nodeHandle.FirstChild(&quot;Weight&quot;).Element()-&amp;gt;GetText()),&lt;BR&gt;   atoi(nodeHandle.FirstChild(&quot;DraftYear&quot;).Element()-&amp;gt;GetText()) );&lt;BR&gt;  iCnt++;&lt;BR&gt; }&lt;/P&gt;
&lt;P&gt; for(int i=0;i&amp;lt;2;i++)&lt;BR&gt;  Player[i].Print();&lt;/P&gt;
&lt;P&gt; return 0;&lt;BR&gt;}&lt;BR&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/P&gt;&lt;/div&gt;&lt;BR&gt;위에서 생성한 데이터를 정의해놓은 2개의 xml을 프로젝트폴더에 넣어놓고&lt;BR&gt;..Before.cpp 대신 ..After.cpp로 바꾸어 컴파일 해보면 &lt;BR&gt;상수 및 초기값들은 바깥파일로 빠지면서 Before.cpp와 같은 결과물을 확인할 수 있다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://hsgames.com/dev/attach/1/1033815180.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;130&quot; width=&quot;361&quot; /&gt;&lt;/div&gt;&lt;BR&gt;간단하지 않은가?&lt;BR&gt;위에서 사용한 class와 함수에 대해 몇 가지 알아보면 
&lt;BLOCKQUOTE dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;
&lt;P dir=ltr style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;TiXmlDocument&lt;/FONT&gt;&lt;BR&gt;&lt;/STRONG&gt;TinyXML을 이용하여 xml문서를 컨트롤하기 위해선 위의 class로 객체를 만들어야 한다.&lt;BR&gt;이번 프로젝트에서는 전역변수로 선언했지만, 큰 프로젝트였다면CPlayer class를 wrap하는 상위 class를 만들어 그 class의 멤버변수로 선언하는 것이 바람직 했을 것이다.&lt;BR&gt;&lt;STRONG&gt;.LoadFile()&lt;/STRONG&gt; : xml파일을 객체로 불러온다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;TiXmlElement * pRoot = g_xmlDocPlayer.RootElement();&lt;/STRONG&gt;&lt;BR&gt;읽어온 xml파일의 Root를 파일의 리딩포인터로 설정한다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;pNode-&amp;gt;ToElement()-&amp;gt;Attribute(&quot;name&quot;);&lt;/STRONG&gt;&lt;BR&gt;현재 트리레벨에서 &quot;name&quot;속성의 값을 읽어오고,&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;nodeHandle.FirstChild(&quot;Position&quot;).Element()-&amp;gt;GetText()&lt;/STRONG&gt;&lt;BR&gt;현재 트리레벨의 자식레벨 중 &quot;Position&quot;이라는 자식의 값을 불러온다&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;DIV style=&quot;TEXT-ALIGN: right&quot;&gt;
&lt;DIV style=&quot;TEXT-ALIGN: left&quot;&gt;이 방법이 아무리 간단히 적용 가능하다고 하더라도 &lt;BR&gt;생각나는대로 바로 적을 수 있는 하드코딩이 왠지 편해보이는 건 사실이다.&lt;BR&gt;물론 구구단같은 프로그램을 만드는데 DataDriven을 적용하라는 것은 아니다.&lt;BR&gt;하지만 그것보다 아주 약간만 더 큰 프로젝트를 하더라도&lt;BR&gt;에디트플러스나 메모장을 띄어놓고 데이터들을 바꿔가며 개발하는 것이&lt;BR&gt;하드코딩때보다 훨씬 더 편하다는 걸 보장하니 이번 기회에 새로운 습관을 만들어보는 것도 좋을 것이다. &lt;BR&gt;&lt;/DIV&gt;- 3부 끝 -&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN onclick=&#039;&quot;toggleMoreLess(this,&#039; pointer&amp;quot; ?275_0?,? 보기 ?,? TinyXML 적용전 원본소스 닫기 ?); return false;&amp;quot;&gt;&lt;FONT color=#ff0000&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-1&quot;&gt;&lt;SPAN onclick=&#039;&quot;toggleMoreLess(this,&#039; pointer&amp;quot; ?275_0?,? 보기 ?,? TinyXML 적용전 원본소스 닫기 ?); return false;&amp;quot;&gt;&lt;FONT color=#ff0000&gt;1. Data Driven?&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-적용-2-왜-XML-TinyXML인가&quot;&gt;2. 왜 XML, TinyXML인가?&lt;BR&gt;&lt;/A&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-적용-3-3-내-프로젝트에-적용해보자&quot;&gt;3. 내 프로젝트에 적용해보자.&lt;BR&gt;&lt;/A&gt;&lt;BR&gt;참고 : TinyXML &lt;/FONT&gt;&lt;A href=&quot;http://sourceforge.net/projects/tinyxml/&quot;&gt;http://sourceforge.net/projects/tinyxml/&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&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=_blank&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=_blank&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>GameProgramming</category>
			<category>DataDriven</category>
			<category>TinyXML</category>
			<category>XML</category>
			<category>데이터드리븐</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/275</guid>
			<comments>http://hsgames.com/blog/entry/TinyXML%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-Data-Driven-%EC%A0%81%EC%9A%A9-3-3-%EB%82%B4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-%EC%A0%81%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90#entry275comment</comments>
			<pubDate>Sat, 28 Feb 2009 09:37:41 +0900</pubDate>
		</item>
		<item>
			<title>TinyXML을 이용한 간단한 Data Driven 적용 - 2. 왜 XML, TinyXML인가?</title>
			<link>http://hsgames.com/blog/entry/TinyXML%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-Data-Driven-%EC%A0%81%EC%9A%A9-2-%EC%99%9C-XML-TinyXML%EC%9D%B8%EA%B0%80</link>
			<description>XML을 이 포스트에서 모두 설명하기에는 &lt;BR&gt;XML이라는 개념이 너무 방대하고 필자의 지식이 짧기 때문에&lt;BR&gt;지식인이나 구글링을 권장한다.&lt;BR&gt;&lt;BR&gt;간단히 왜 Data Driven에 XML이 사용되어야 하는지 이유 2가지를 대 본다면&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;IMG height=209 src=&quot;http://www.toothpastefordinner.com/020507/he-is-more-of-a-gif-man.gif&quot; width=413 border=1&gt;&lt;BR&gt;&lt;BR&gt;첫째, 표준이라는 점이다.&lt;BR&gt;&lt;/STRONG&gt;SGML의 축소판 정도로 개발되던 XML은&lt;BR&gt;1998년 W3C에서 XML 1.0이 표준으로 승인받으면서 본격적으로 널리 퍼지게 되었다.&lt;BR&gt;IT세계에서 &#039;표준&#039;이라는 단어는 대한민국 사회에서 명문대 학벌만큼이나 &lt;BR&gt;강력한..거의 절대적인 힘을 가진다.&lt;BR&gt;&#039;표준&#039;이라는 브랜드파워는 자신의 프로젝트가 추후에&lt;BR&gt;다른 어떤 프로젝트나 솔루션과 연동되기를 바라는 개발자에게&lt;BR&gt;구매욕을 자극하기에 충분하다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;둘째, DB가 아니지만 DB와 가장 닮은 메타언어 라는 점이다.&lt;BR&gt;&lt;/STRONG&gt;소프트웨어는 결국 데이터 놀음이다.&lt;BR&gt;그렇기에 독자적인 데이터베이스를 가지는 소프트웨어는 그것이 아닌 소프트웨어와&lt;BR&gt;깊이가 다르다.&lt;BR&gt;데이터베이스 사용에 필요되는 무게를 감당할 수 있다면 말이다.&lt;BR&gt;사실 간단한 프로젝트에 매번 DB를 연동하기는 힘들다.&lt;BR&gt;XML은 강력하지만 무거운 DB를 탑재하지 않으면서&lt;BR&gt;DB처럼 데이터를 관리할 수 있는&lt;BR&gt;DB의 구조와 가장 닮은 메타언어이다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;아마 필자가 생각한 이유 외에 여러가지 이유로 &lt;BR&gt;웹 이외에도 많은 상용어플리케이션에서 XML을 데이터포맷으로 사용하고 있을것이다.&lt;BR&gt;&lt;BR&gt;XML을 사용해서 내 프로젝트의 데이터를 관리해야 되는것은 알겠지만&lt;BR&gt;그렇다면 왜 TinyXML이 필요할까?&lt;BR&gt;물론 XML포맷을 직접 읽어 일일이 메타언어와 마크업언어를 분리하는 로직을 구현할 수도 있겠지만&lt;BR&gt;1부에서도 말했듯이 똑똑하신 분들이 이미 그런 로직들을 구현하여 class로 만들어 &lt;BR&gt;범인들이 사용할 수 있도록 널리 공개하고 계신다.&lt;BR&gt;&lt;BR&gt;&lt;IMG height=128 src=&quot;http://www.toothpastefordinner.com/100102/tiny-club-rock-show.gif&quot; width=205 border=1&gt;&lt;BR&gt;&lt;BR&gt;많은 XML파서들이 있지만&lt;BR&gt;2009년 2월 현재 대세는 Xerces C++ XML Parser &lt;A href=&quot;http://xerces.apache.org/xerces-c/&quot;&gt;http://xerces.apache.org/xerces-c/&lt;/A&gt;&lt;BR&gt;로 보인다.&lt;BR&gt;DOM과 SAX를 지원하는 등 매우 강력한 Parser로 보이지만... 사용해보진 않았다.&lt;BR&gt;필자가 TinyXML를 선택한 이유는 이름에서 풍기는 가벼움때문이다.&lt;BR&gt;이름 뿐만 아니라 실제로 매우 가볍고 초보자도 실제 프로젝트에 적용하기 매우 쉽게 되어있다.&lt;BR&gt;&lt;BR&gt;그렇다면 예제 프로젝트를 통해 직접 프로젝트에 적용하는 법을 알아보자&lt;BR&gt;
&lt;DIV style=&quot;TEXT-ALIGN: right&quot;&gt;- 2부 끝 -&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;&lt;SPAN onclick=&#039;&quot;toggleMoreLess(this,&#039; pointer&amp;quot; ?275_0?,? 보기 ?,? TinyXML 적용전 원본소스 닫기 ?); return false;&amp;quot;&gt;&lt;FONT color=#ff0000&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-1&quot;&gt;&lt;SPAN onclick=&#039;&quot;toggleMoreLess(this,&#039; pointer&amp;quot; ?275_0?,? 보기 ?,? TinyXML 적용전 원본소스 닫기 ?); return false;&amp;quot;&gt;&lt;FONT color=#ff0000&gt;1. Data Driven?&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-적용-2-왜-XML-TinyXML인가&quot;&gt;2. 왜 XML, TinyXML인가?&lt;BR&gt;&lt;/A&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-적용-3-3-내-프로젝트에-적용해보자&quot;&gt;3. 내 프로젝트에 적용해보자.&lt;/A&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR&gt;참고 : TinyXML &lt;/FONT&gt;&lt;A href=&quot;http://sourceforge.net/projects/tinyxml/&quot;&gt;http://sourceforge.net/projects/tinyxml/&lt;/A&gt;&lt;BR&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=_blank&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=_blank&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>GameProgramming</category>
			<category>Data Driven</category>
			<category>TinyXML</category>
			<category>XML</category>
			<category>XML 파서</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/274</guid>
			<comments>http://hsgames.com/blog/entry/TinyXML%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-Data-Driven-%EC%A0%81%EC%9A%A9-2-%EC%99%9C-XML-TinyXML%EC%9D%B8%EA%B0%80#entry274comment</comments>
			<pubDate>Fri, 27 Feb 2009 16:53:55 +0900</pubDate>
		</item>
		<item>
			<title>TinyXML을 이용한 간단한 Data Driven 적용 - 1. Data Driven?</title>
			<link>http://hsgames.com/blog/entry/TinyXML%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-Data-Driven-1</link>
			<description>&lt;IMG style=&quot;WIDTH: 561px; HEIGHT: 136px&quot; height=197 src=&quot;http://www.toothpastefordinner.com/032003/another-springtime.gif&quot; width=683 border=1&gt;&lt;BR&gt;&lt;BR&gt;게임프로그래머들의 교과서인 Game Programming Gems는&lt;BR&gt;1권 1장의 Data Driven에 대한 내용으로 책을 시작한다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Data Driven&lt;/STRONG&gt; : &lt;EM&gt;컴퓨터 프로그램을 Logic과 Data로 구분할 때 상수 등의 Data부분을 &amp;nbsp;&lt;BR&gt;소스에 포함하는 하드코딩이 아닌 외부파일에 두어 컴파일없이 Data를 변경가능케하는 방법&lt;/EM&gt;&lt;BR&gt;&lt;BR&gt;책의 구성을 중요도 순서에 따라 편집하지는 않았겠지만&lt;BR&gt;1권의 1장인만큼 프로그램, 특히 게임프로그램에서 Data Driven의 중요성을 짐작해 볼 수 있다.&lt;BR&gt;&lt;BR&gt;디자이너 등 다수의 팀원과 함께 개발해야되는 상용프로그램에서는&lt;BR&gt;예전부터 Data Driven은 언급할 필요도 없는 당연한 공식이었지만&lt;BR&gt;그리 크지 않은 프로그램을 개발하는&lt;BR&gt;필자정도의 수준의 아마추어프로그래들에게는 Data Driven은&lt;BR&gt;학창시절 수학시험을 치르고 시간이 남으면 검산을 했던 것 처럼&lt;BR&gt;필요성은 알겠지만 사실 좀 귀찮은 존재이다.&lt;BR&gt;&lt;BR&gt;보통 상용프로그램에서는 여러가지 이유로 독자적인 포맷으로 Data를 관리하지만&lt;BR&gt;몇 년전부터 XML이 범용데이터포맷으로 주목받으면서&lt;BR&gt;문명4, FM시리즈 등 몇몇 프로그램에서 XML을 이용하기 시작했다.&lt;BR&gt;&lt;BR&gt;자기만의 XML parser를 개발하여 사용한다면야 더할 나위 없겠지만,&lt;BR&gt;이미 세상에는 똑똑하신 많은 분들이 질 좋은 parser를 먼저 만들어 놓으셨다.&lt;BR&gt;&lt;BR&gt;아직 마땅한 Data Parser가 없어 #define이나 const를 이용해 하드코딩을 하고 있다면&lt;BR&gt;필자의 프로젝트에 Data Driven을 위해 실제 사용하고 있는 TinyXML에 대해 알아보고&lt;BR&gt;실제 적용해보면서 간단히 자기만의 Data Driven방법을 준비해보자.&lt;BR&gt;&lt;BR&gt;
&lt;DIV style=&quot;TEXT-ALIGN: right&quot;&gt;- 1부 끝 -&lt;/DIV&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;&lt;SPAN onclick=&#039;&quot;toggleMoreLess(this,&#039; pointer&amp;quot; ?275_0?,? 보기 ?,? TinyXML 적용전 원본소스 닫기 ?); return false;&amp;quot;&gt;&lt;FONT color=#ff0000&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-1&quot;&gt;&lt;SPAN onclick=&#039;&quot;toggleMoreLess(this,&#039; pointer&amp;quot; ?275_0?,? 보기 ?,? TinyXML 적용전 원본소스 닫기 ?); return false;&amp;quot;&gt;&lt;FONT color=#ff0000&gt;1. Data Driven?&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-적용-2-왜-XML-TinyXML인가&quot;&gt;2. 왜 XML, TinyXML인가?&lt;BR&gt;&lt;/A&gt;&lt;A href=&quot;http://hsgames.com/blog/entry/TinyXML을-이용한-간단한-Data-Driven-적용-3-3-내-프로젝트에-적용해보자&quot;&gt;3. 내 프로젝트에 적용해보자.&lt;/A&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;참고 : TinyXML &lt;A href=&quot;http://sourceforge.net/projects/tinyxml/&quot;&gt;http://sourceforge.net/projects/tinyxml/&lt;/A&gt;&lt;/FONT&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=_blank&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=_blank&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>GameProgramming</category>
			<category>Data Driven</category>
			<category>GPG</category>
			<category>데이터 드리븐</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/273</guid>
			<comments>http://hsgames.com/blog/entry/TinyXML%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-Data-Driven-1#entry273comment</comments>
			<pubDate>Thu, 26 Feb 2009 18:57:13 +0900</pubDate>
		</item>
		<item>
			<title>ADSL2+ 150G, 49.9 AUS$ p/m</title>
			<link>http://hsgames.com/blog/entry/ADSL2-150G-499-AUS-pm</link>
			<description>&lt;P&gt;&lt;IMG height=550 src=&quot;http://www.superpoop.com/080508/cable-modem.jpg&quot; width=436 border=1&gt;&lt;br /&gt;이 곳의 인터넷속도는 상상하던 것 이상이다.&lt;/P&gt;
&lt;P&gt;작년 KT에서 인터넷 종량제 실시를 내비쳤을 때 &lt;br /&gt;네티즌들은 정부의 인터넷 탄압이라 반발했었다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;하지만 이 곳 호주에서 인터넷 종량제는 당연한 것이다.&lt;br /&gt;보통 한달에 150G,320G등 용량을 정해놓고 용량이 초과되면&lt;br /&gt;속도가 급격히 떨어져 포털사이트 페이지 넘어가는 것도 버겹게 느껴지게 된다.&lt;br /&gt;그럴 수 밖에 없는 것이 호주는 가정용 인터넷으로 아직 ADSL을 사용하고 있다.&lt;br /&gt;한국에서는 FTTH 광랜이 들어가지 못하는 곳에서만 사용하는 ADSL이 &lt;br /&gt;이 곳에서는 넓은 땅덩어리 때문에 대부분의 곳에 사용되고 있다.&lt;/P&gt;
&lt;P&gt;전화선을 그대로 사용하며 전화와는 다른 주파수 영역대를 사용하는 ADSL이&lt;br /&gt;종량제가 될 수 밖에 없는 이유는 전화국에서 사용하는 멀티플렉스 시스템의 원리때문이다.&lt;br /&gt;전화국은 한번에 연결 될 수 있는 통화 수가 한정되어 있어&lt;br /&gt;그 수 이상의 통신이 들어오면 처리하지 못하게 된다.&lt;/P&gt;
&lt;P&gt;첫 눈이 오거나 새해가 밝을 때 통화불능이 생기는 이유는 그 때문이다.&lt;br /&gt;라우팅 시 빛의 속도로 빛을 쏘아내기만 하면 되는 FTTH와 달리&lt;br /&gt;ADSL은 전화와 마찬가지로 연결 되어 있는 상태라면 &lt;br /&gt;그 정도의 비용을 지불하게 해야지만 원활한 통신상태를 유지할 수 있을 것이다.&lt;/P&gt;
&lt;P&gt;한국에서는 ADSL이 한창일 때 wireless가 보급되지 않았던 시절이었는데&lt;br /&gt;이 곳에서는 대부분 ADSL모뎀이 wireless라우터 역할을 한다.&lt;/P&gt;
&lt;P&gt;지금 이 글을 포스팅하고 있는 이 집 역시 누군가가 열심히 다운로드를 받아&lt;br /&gt;패킷제한을 넘어 내 블로그로 들어오기까지 너무 느려 포스팅하기가 엄청 힘들다.&lt;/P&gt;
&lt;P&gt;빠르다가 느린 것에 익숙해지는 것은 느리다가 빠른 것에 익숙해지는 것보다 훨씬 힘들다.&lt;/P&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=_blank&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=_blank&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>Etc_Computing</category>
			<category>ADSL</category>
			<category>ISDN</category>
			<category>모뎀</category>
			<category>호주 인터넷</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/272</guid>
			<comments>http://hsgames.com/blog/entry/ADSL2-150G-499-AUS-pm#entry272comment</comments>
			<pubDate>Mon, 23 Feb 2009 21:53:41 +0900</pubDate>
		</item>
		<item>
			<title>Argument Hijacking</title>
			<link>http://hsgames.com/blog/entry/Argument-Hijacking</link>
			<description>&lt;TABLE cellSpacing=0 cellPadding=5 width=950 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD align=middle width=760&gt;&lt;IMG style=&quot;WIDTH: 583px; HEIGHT: 237px&quot; height=298 src=&quot;http://www.toothpastefordinner.com/030806/internet-fantasy.gif&quot; width=750 align=left border=1&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&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;크래커에게 보여줄 것이다.&lt;br /&gt;&lt;br /&gt;자동업데이트를 위해 &lt;br /&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=_blank&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=_blank&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>Etc_Computing</category>
			<category>argument</category>
			<category>argument hijacking</category>
			<category>hacking</category>
			<category>인자</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/267</guid>
			<comments>http://hsgames.com/blog/entry/Argument-Hijacking#entry267comment</comments>
			<pubDate>Wed, 10 Sep 2008 18:29:33 +0900</pubDate>
		</item>
		<item>
			<title>일일빌드</title>
			<link>http://hsgames.com/blog/entry/%EC%9D%BC%EC%9D%BC%EB%B9%8C%EB%93%9C</link>
			<description>심장박동이 멈추면&lt;br /&gt;혈액의 순환이 멈추게 되어&lt;br /&gt;장기에 산소공급이 중단되게 된다.&lt;br /&gt;뇌에 몇 분만 산소공급이 중단되어도 뇌사상태에 이르게 된다.&lt;br /&gt;&lt;br /&gt;XP에서 일일빌드는 그 프로젝트의 심장박동으로 비유된다.&lt;br /&gt;&lt;br /&gt;토익공부를 핑계로 방학동안 노트북을 켜본적이 거의 없다.&lt;br /&gt;노트북으로 작업을 하는 ClutchTime 의 최근 빌드가 한달 전에 멈추었다.&lt;br /&gt;&lt;br /&gt;한달 만에 보는 코드는 나의 것이 아니었다.&lt;br /&gt;Warning의 이유를 알아 내기 위해서는 하나씩 추적을 해야되었다.&lt;br /&gt;오랫동안 연락하지 않아 서먹해진 친구를 만난 기분이다.&lt;br /&gt;&lt;br /&gt;8월에는 시간관리를 잘해서 토익공부와 프로젝트 진행을 병행할 수 있기를 빈다.&lt;br /&gt;8월에는 매일 매일 빌드되기를...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;IMG height=298 src=&quot;http://www.toothpastefordinner.com/040505/five-to-seven-times.gif&quot; width=573 border=1&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=_blank&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=_blank&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>TheOthersPrmming</category>
			<category>ClutchTime</category>
			<category>일일빌드</category>
			<author>(HSGames)</author>
			<guid>http://hsgames.com/blog/263</guid>
			<comments>http://hsgames.com/blog/entry/%EC%9D%BC%EC%9D%BC%EB%B9%8C%EB%93%9C#entry263comment</comments>
			<pubDate>Mon, 28 Jul 2008 23:30:40 +0900</pubDate>
		</item>
	</channel>
</rss>
