<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>The eye - 배우고 공부하고 노력하는 블로그</title>
		<link>http://theeye.pe.kr/</link>
		<description>배움에 망설이는 그 순간 당신은 2류</description>
		<language>ko</language>
		<pubDate>Fri, 12 Mar 2010 10:09:42 +0900</pubDate>
		<generator>Textcube 1.7.6 : Staccato</generator>
		<image>
		<title>The eye - 배우고 공부하고 노력하는 블로그</title>
		<url>http://theeye.pe.kr/attach/1/1061459892.jpg</url>
		<link>http://theeye.pe.kr/</link>
		<width>220</width>
		<height>168</height>
		<description>배움에 망설이는 그 순간 당신은 2류</description>
		</image>
		<item>
			<title>[VMWare/Snow Leopard] VMWare 7.0을 이용한 스노우 레오파드 설치기</title>
			<link>http://theeye.pe.kr/entry/how-to-install-snow-leopard-on-my-intel-pc-with-vmware</link>
			<description>아이폰 개발을 공부하고 싶지만 맥이 없어 고민이신 분들이 많으실것으로 알고 있습니다. 해킨토시라는 방법도 있지만 접근이 매우 어렵죠. 이에 간단하게 공부 목적으로 사용하실 분들을 위해 VMWare로 돌리는 방법을 알아보려고 합니다. 가장 최근의 OS인 Snow Leopard 10.6.2까지의 업데이트도 매우 잘 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* 준비물&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;VMWare Workstation 7.x 이상&lt;BR&gt;Snow Leopard Retail 시디이미지&lt;BR&gt;&lt;BR&gt;Snow Leopard Boot Loader + VMWare Tools 시디 이미지&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://theeye.pe.kr/attachment/1045868977.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; darwin_snow.part1.rar&lt;/a&gt;&lt;/div&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://theeye.pe.kr/attachment/1014907866.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; darwin_snow.part2.rar&lt;/a&gt;&lt;/div&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://theeye.pe.kr/attachment/1106206710.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; darwin_snow.part3.rar&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;VMWare Guest 패치&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://theeye.pe.kr/attachment/1266771358.pkg&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; guestd_patches.pkg&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;VMWare 비디오/오디오 패치&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://theeye.pe.kr/attachment/1195876112.gz&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/gz.gif&quot; alt=&quot;&quot; /&gt; EnsoniqAudioPCI_1.0.2_for_SnowLeopard.mpkg.tar.gz&lt;/a&gt;&lt;/div&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://theeye.pe.kr/attachment/1012331931.gz&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/gz.gif&quot; alt=&quot;&quot; /&gt; VMsvga2_1.2.1_for_SnowLeopard.mpkg.tar.gz&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* 설치 과정&lt;/FONT&gt;&lt;/STRONG&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://theeye.pe.kr/attach/1/1257811541.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;423&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;새로운 가상 머신을 추가합니다. 특별한것 없이 대충 Recommend만 유지하면서 만들어주시면 됩니다. 단 OS선택에서는 &lt;STRONG&gt;FreeBSD 64-Bit&lt;/STRONG&gt;를 선택해 줍니다. 메모리의 경우 제 노트북이 4G라서 2G정도로 잡아보았습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;중요!&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;이후에 생성된 이미지 파일중 VMware virtual machine configuration(.vmx) 파일을 열어 guestOS의 값을 다음과 같이 수정하여 줍니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;guestOS = &quot;darwin10-64&quot;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;이제 시디 이미지로 darwin_snow.iso 파일을 마운트 해줍니다. 이 시디로 부팅을 하는데 부팅시에 F8을 눌러 부팅 옵션을 띄우도록 합니다.&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://theeye.pe.kr/attach/1/1309744783.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;277&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;위와 같은 화면이 뜨게 됩니다. 이 상태에서 스노우 레오파드 리테일 이미지를 마운트 해주도록 합시다. 오른쪽 하단의 시디롬 아이콘이 활성화 되어있어야 시디롬이 정상적으로 마운트 된것입니다. 시디를 바꾸어 주었다면 &lt;STRONG&gt;c&lt;/STRONG&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://theeye.pe.kr/attach/1/1239538198.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;277&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;이번엔 시디 부팅 화면이 나옵니다. 이상황에서 그냥 엔터만 쳐서 설치하셔도 상관없습니다만 혹시 무한 재부팅이 된다거나 에러가 발생할 경우 위와 같이 옵션을 설정해 주도록 합니다.&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #e4e4e4; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;boot: -v -f -x cpus=1 busratio=20&lt;/DIV&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://theeye.pe.kr/attach/1/1020522869.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&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://theeye.pe.kr/attach/1/1091473281.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;설치가 완료된 후의 모습입니다. 정상적으로 뜬 것을 알 수 있습니다. 여기서부터 VMWare 활용에 필요한 것들을 설치하도록 하겠습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* 부가 설치&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;1. darwin_snow.iso 파일을 마운트 하면 VMWare Tools 설치가 뜹니다. 이것을 설치해 줍니다.&lt;BR&gt;2. guestd_patches.pkg 파일을 설치해 줍니다.&lt;BR&gt;3. VMsvga, EnsoniqAudioPCI 드라이버를 설치해 줍니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* 부팅에 대한 참고 사항&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;이렇게 설치를 완료하였지만 darwin_snow.iso의 도움이 없이는 부팅이 되지 않습니다. 이 파일을 시디롬 이미지로 마운트 해놓으면 자신이 알아서 자동으로 OS를 로드합니다. 필요한 최소한의 Kext파일도 모두 알아서 로드하기 때문에 따로 해킨을 위한 작업이 없어도 됩니다. 어찌보면 편하죠. 업그레이드 등도 매우 잘 됩니다.&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://theeye.pe.kr/attach/1/1199909875.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;이제 아이폰 SDK를 설치하신 후 개발 공부를 시작하시면 됩니다. ^^</description>
			<category>iPhone[Object-C]</category>
			<category>darwin_snow</category>
			<category>iPhone</category>
			<category>Snow Leopard</category>
			<category>Vmware</category>
			<category>X61</category>
			<category>X86OSX</category>
			<category>XCode</category>
			<category>매킨토시</category>
			<category>스노우 레오파드</category>
			<category>아이폰</category>
			<category>해킨</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/385</guid>
			<comments>http://theeye.pe.kr/entry/how-to-install-snow-leopard-on-my-intel-pc-with-vmware#entry385comment</comments>
			<pubDate>Mon, 08 Mar 2010 18:57:50 +0900</pubDate>
		</item>
		<item>
			<title>[Subversion] 다양한 방법의 SVN 저장소 서비스 운영</title>
			<link>http://theeye.pe.kr/entry/variety-usage-of-subversion-repository-to-service</link>
			<description>&lt;P&gt;SVN은 매우 추천할만한 Version Control 시스템입니다. 실제로 학교에서 프로젝트를 운영할때도 사용했었고 실무에서도 많이 접해오게 된 다방면으로 쓰이는 녀석입니다. 우선 SVN을 사용할때는 통합적으로 소스의 버젼관리를 위해 저장소(Repository)를 운영하게 되는데 24시간 운영되는 서버에서 데몬형식으로 서비스 되는 것이 일반적입니다. 가장 많이 쓰이게 되는 3가지 방법에 대해 알아보도록 하겠습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* 일반 단일 데몬 형태&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;/usr/bin/svnserve -d -r &lt;EM&gt;[저장소경로]&lt;/EM&gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;일반적으로 가장 단순한 방법입니다. -d는 daemon의 약자로 데몬형태로 작동시키라는 말이됩니다. 곧바로 하나의 백그라운드 프로세스가 실행되어 svn:// 프로토콜로 접근할 수 있게 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* inetd 형태&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;일반적으로 슈퍼데몬이라고 불리는 inetd(xinetd)에 얹혀 작동하게 되는 방식입니다. 서비스 운영을 슈퍼데몬에 위임하게 되므로 어찌보면 가장 간단하고 깔끔한 방식입니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;vi /etc/xinetd.d/svn&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위와 같이 svn이라는 서비스를 추가해 줍니다. 파일안에는 다음의 내용을 작성하면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;service svn&lt;BR&gt;{&lt;BR&gt;        disable = no&lt;BR&gt;        port = 3690&lt;BR&gt;        socket_type = stream&lt;BR&gt;        protocol = tcp&lt;BR&gt;        wait = no&lt;BR&gt;        user = root&lt;BR&gt;        server = /usr/bin/svnserve&lt;BR&gt;        server_args = -i -r &lt;EM&gt;[저장소경로]&lt;BR&gt;&lt;/EM&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;user에는 적절히 원하는 사용자를 넣어주시면 됩니다. 보안상 root는 피하시는것이 좋습니다.&lt;BR&gt;xinetd 데몬을 재시작해주시면 바로 사용이 가능해 집니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;service xinetd restart&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;* Apache(mod_dav_svn) 모듈 형태&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;어찌보면 가장 추천할만한 좋은 방법입니다. 그리고 가장 설정하기가 번거롭습니다. 이 작업은 아파치 웹서버를 직접 컴파일하여 사용하지 않고 기본 패키지에 들어있는 httpd-*.rpm을 사용하는 시스템으로 가정하겠습니다.&lt;BR&gt;&lt;BR&gt;우선 httpd가 정상적으로 설치가 되어있는지 확인해 봅시다. 저의 테스트 머신은 엔터프라이즈리눅스 4입니다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;rpm -qa | grep httpd&lt;BR&gt;httpd-manual-2.0.52-41.ent.4&lt;BR&gt;httpd-suexec-2.0.52-41.ent.4&lt;BR&gt;httpd-devel-2.0.52-41.ent.4&lt;BR&gt;httpd-2.0.52-41.ent.4&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;[&lt;STRONG&gt;&lt;A href=&quot;http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/&quot; target=_blank&gt;&lt;STRONG&gt;이곳&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]에 접속하셔서 자신의 머신에 가장 적절한 버젼을 받도록 합니다. 될수 있는한 제공되는 rpm패키지들을 모두 다 설치하는게 좋습니다. subversion뿐만 아니라 mod_dav_svn 패키지를 설치하는 것이 이 작업의 키포인트 입니다.&lt;BR&gt;&lt;BR&gt;/etc/httpd/conf.d 위치에 subversion.conf 파일이 생성됩니다. 해당 파일을 설정해 줍시다.&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;LoadModule dav_svn_module     modules/mod_dav_svn.so&lt;BR&gt;&lt;BR&gt;&amp;lt;Location /svn&amp;gt;&lt;BR&gt;   DAV svn&lt;BR&gt;   SVNPath &lt;EM&gt;[저장소경로]&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;   # Limit write permission to list of valid users.&lt;BR&gt;   &amp;lt;LimitExcept GET PROPFIND OPTIONS REPORT&amp;gt;&lt;BR&gt;      # Require SSL connection for password protection.&lt;BR&gt;      # SSLRequireSSL&lt;/P&gt;
&lt;P&gt;      AuthType Basic&lt;BR&gt;      AuthName &quot;Authorization Realm&quot;&lt;BR&gt;      AuthUserFile /home/.htpasswd&lt;BR&gt;      Require valid-user&lt;BR&gt;   &amp;lt;/LimitExcept&amp;gt;&lt;BR&gt;&amp;lt;/Location&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위에서 참고하실점은 AuthUserFile옵션입니다. htpasswd파일은 아파치 패키지에 포함되어있는 htpasswd명령으로 만들 수 있습니다. (자세한건 구글링 해보시길)&lt;BR&gt;&lt;BR&gt;이제 해당 서버에 &lt;A href=&quot;http://[호스트아이피]/svn&quot;&gt;http://[호스트아이피]/svn&lt;/A&gt; 으로 웹브라우저로 접속해 보시면 바로 탐색이 가능하다는 것을 알 수 있습니다. 또한 같은 주소로 SVN 체크아웃을 할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;- 여러개의 저장소를 묶어서 사용할 시&lt;/STRONG&gt;&lt;BR&gt;다음의 두개의 저장소가 있다고 가정해 봅시다. 둘 다 /svn 하위에 존재하고 있습니다.&lt;BR&gt;&lt;/P&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #d0ff9d; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;/svn/repo1&lt;BR&gt;&lt;BR&gt;/svn/repo2&lt;/DIV&gt;이경우 다음과 같은 설정을 사용하여 모두 묶어서 서비스 할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;&amp;lt;Location /svn&amp;gt;&lt;BR&gt;   DAV svn&lt;BR&gt;   SVNParentPath /svn&lt;BR&gt;   SVNListParentPath on&lt;BR&gt;&amp;lt;/Location&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
			<category>서버관리</category>
			<category>inetd</category>
			<category>mod_dav_svn</category>
			<category>subversion</category>
			<category>svn</category>
			<category>리눅스</category>
			<category>서버관리</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/384</guid>
			<comments>http://theeye.pe.kr/entry/variety-usage-of-subversion-repository-to-service#entry384comment</comments>
			<pubDate>Sun, 07 Mar 2010 21:59:08 +0900</pubDate>
		</item>
		<item>
			<title>스타크래프트2 싱글플레이 크랙 + AI패치(난이도 조절 포함) + 종족 선택</title>
			<link>http://theeye.pe.kr/entry/starcraft-2-beta-ai-maps-clack-with-lazylauncher</link>
			<description>&lt;P&gt;&lt;STRONG&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1245678965.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;스타크래프트 싱글플레이 크랙 + 적과 함께 싸울 수 있는 AI패치입니다.&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;- 1대1 혹은 1대3의 컴퓨터와의 플레이를 할 수 있습니다.&lt;BR&gt;- 다양한 맵을 플레이 해볼수 있습니다.&lt;BR&gt;- LazyLauncher를 사용합니다.&lt;BR&gt;- 9가지 레벨의 AI 난이도를 선택할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;&lt;U&gt;* 설치 방법&lt;/U&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;- Starcraft 2 베타를 설치합니다. 설치경로는 &quot;Program Files/ Starcraft II Beta&quot;를 지켜야 합니다.&lt;BR&gt;- 설치후에 1회 실행하여 최신버젼으로 업데이트 합니다.&lt;BR&gt;- 크랙을 설치한 폴더에 덮어 씌웁니다.&lt;BR&gt;- 맵의 압축을 해제합니다. 어느 위치던지 상관없습니다.&lt;BR&gt;- 난이도를 변경할려면 Difficulty안의 파일을 &quot;StarCraft II Beta\Mods\Liberty.SC2Mod&quot; 위치에 덮어 씌웁니다.&lt;BR&gt;- LazyLauncher를 실행합니다. 좀전에 압축푼 맵 파일을 선택하면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1047067728.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; Difficulty.zip&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1138309485.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; lazylaunch2.zip&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1025663255.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; SC2 AI V 3.0 (STARCRACK).rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1116386776.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; SC2_AI_MAPPACK_V1.part1.rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1355607974.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; SC2_AI_MAPPACK_V1.part2.rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1045671826.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; SC2_AI_MAPPACK_V1.part3.rar&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1155568635.rar&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; SC2_AI_MAPPACK_V1.part4.rar&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;STRONG&gt;* 추가 (AI 패치 5.5)&lt;/STRONG&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1273814673.xxx&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; Base.SC2Data&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;STRONG&gt;* 추가 (새로운 맵들)&lt;/STRONG&gt;&lt;BR&gt;&lt;A href=&quot;http://www.nibbits.com/sc2/maps/&quot; target=_blank&gt;http://www.nibbits.com/sc2/maps/&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;* 추가 (AI&amp;nbsp; 패치 6.1 - 일반모드/치팅모드)&lt;/STRONG&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1052999916.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; SC2 CRACT AI 6.1.zip&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;STRONG&gt;* 추가 (베틀넷 로그인 우회 크랙 - 리플레이 감상용)&lt;BR&gt;&lt;/STRONG&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1039762747.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; Bypass Battle.net Login.zip&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;STRONG&gt;* 추가 (USMC23 런쳐 - 종족 선택 가능)&lt;/STRONG&gt;&lt;BR&gt;&lt;EM&gt;C:\users\&amp;lt;yourname&amp;gt;\AppData\Local\Blizzard Entertainment\Battle.net\cache &lt;BR&gt;위치의 맵 파일을 다음으로 옮긴 후에 사용합니다.&lt;BR&gt;C:\Users\&amp;lt;yourname&amp;gt;\Documents\StarCraft II Beta\Maps&lt;/EM&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1205966653.zip&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; usmc23 Launcher.zip&lt;/a&gt;&lt;/div&gt;</description>
			<category>하루를살아가며</category>
			<category>LazyLauncher</category>
			<category>Mod</category>
			<category>Single</category>
			<category>Starcraft</category>
			<category>스타</category>
			<category>스타크래프트</category>
			<category>스타크래프트2</category>
			<category>싱글플레이</category>
			<category>크랙</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/383</guid>
			<comments>http://theeye.pe.kr/entry/starcraft-2-beta-ai-maps-clack-with-lazylauncher#entry383comment</comments>
			<pubDate>Wed, 03 Mar 2010 13:38:47 +0900</pubDate>
		</item>
		<item>
			<title>[YUM] 부담없이 설치되는 버젼의 YUM</title>
			<link>http://theeye.pe.kr/entry/yum-and-createrepo-for-widely-usaed-versions</link>
			<description>이전에 YUM을 사용할 수 있는 저장소 만들기에 대한 글을 쓴적이 있습니다. [&lt;STRONG&gt;&lt;A href=&quot;http://theeye.pe.kr/entry/YUMYellow-dog-Updater-Modified-저장소-만들기&quot; target=_blank&gt;&lt;STRONG&gt;여기&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]&lt;BR&gt;&lt;BR&gt;세월이 많이 흘러 yum이나 createrepo역시 버젼업을 많이 하였습니다만 점점 기능이 늘어나는 것인지 요구하는 의존성 패키지들도 많아지고 버젼도 높아지더군요. 그래서 요즘껀 설치하기가 영 부담 스럽게 느껴집니다.&lt;BR&gt;&lt;BR&gt;그래서 차례로 버젼을 낮춰가며 테스트를 해본결과 가장 무난하게 아무데서나 잘 깔리는 버젼을 찾았습니다. 보관용으로 블로그에 올려둡니다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1228551616.rpm&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; createrepo-0.4.0-1.noarch.rpm&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1132810564.rpm&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; yum-2.2.2-1.noarch.rpm&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;BR&gt;위의 YUM 버젼이 설치가 잘 안된다면 다음의 소스 버젼을 받아 리빌드를 해 봅시다.&lt;BR&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://theeye.pe.kr/attachment/1000588662.rpm&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; yum-2.2.2-1.src.rpm&lt;/a&gt;&lt;/div&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;rpmbuild --rebuild yum-2.2.2-1.src.rpm&lt;BR&gt;rpm -Uvh /usr/src/redhat/RPMS/noarch/yum-2.2.2-1.noarch.rpm&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;혹시라도 충돌이 난다거나 하면 --force옵션을 붙여 강제로 설치하시는 선택 사항-_-;도 있습니다.</description>
			<category>서버관리</category>
			<category>createrepo</category>
			<category>Modified</category>
			<category>Updater</category>
			<category>Yellowdog</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/382</guid>
			<comments>http://theeye.pe.kr/entry/yum-and-createrepo-for-widely-usaed-versions#entry382comment</comments>
			<pubDate>Thu, 25 Feb 2010 14:44:55 +0900</pubDate>
		</item>
		<item>
			<title>[WISIA/iPhone] 위지아 차트 아이폰 어플 추천 앱 1위 AppConnect</title>
			<link>http://theeye.pe.kr/entry/the-best-application-of-iphone-recommending-other-apps-on-wisia</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1154340779.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;449&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;제가 회사에서 개발한 AppConnect가 위지아에서 아이폰 앱을 추천하는 앱으로 1위를 차지하였습니다. 사실 다른 일들이 바빠 AppConnect에 신경을 못 쓰고 있었는데 자극이 되는군요. (비록 18명 참여했을 뿐이지만;;) 새롭게 AppConnect 2를 만들고 있습니다.&lt;BR&gt;&lt;BR&gt;일단 서버의 데이터 정확성이 매우매우 높아질 것입니다. 그리고 무엇보다 한글을 제대로 지원할 생각입니다. 그리고 너무 복잡한 면이 있어 단순하면서 주요 기능을 더욱 강력하게 하는데에 집중할 생각입니다.&lt;BR&gt;&lt;BR&gt;필요하신 기능이나 생각하시는 점이 있으시면 쪽지, 메일 구분말고 알려주시면 꼭! 집어 넣도록 하겠습니다. 감사합니다!&lt;BR&gt;&lt;BR&gt;아직도 앱커넥트를 안써보셨다면 &lt;A href=&quot;http://appconnect.starpl.com/&quot; target=_blank&gt;http://appconnect.starpl.com/&lt;/A&gt;&amp;nbsp;이곳에서 다운 받으세요. 무료입니다^^</description>
			<category>AppConnect Development</category>
			<category>AppConnect</category>
			<category>iPhone</category>
			<category>Wisia</category>
			<category>아이폰</category>
			<category>앱커넥트</category>
			<category>위지아</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/381</guid>
			<comments>http://theeye.pe.kr/entry/the-best-application-of-iphone-recommending-other-apps-on-wisia#entry381comment</comments>
			<pubDate>Wed, 24 Feb 2010 16:24:57 +0900</pubDate>
		</item>
		<item>
			<title>[iPhone] 아이폰 개발자 프로그램 기한 연장하기</title>
			<link>http://theeye.pe.kr/entry/how-to-renewing-iphone-developer-program</link>
			<description>아이폰 개발을 시작하신 분들은 아시겠지만 한국돈으로 거의 10만원 가까운 돈을 내고 Developer Program을 시작하게 되면 이 계정의 유효기간이 1년으로 정해집니다. &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://theeye.pe.kr/attach/1/1046147573.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;604&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;처음에 이런식으로 몇일 남았다며 독촉 메일이 날라옵니다. 아마도 이렇게 30일 전부터 날라왔던것 같네요. 밑에 있는 Renew today를 누르면 새로운 페이지가 뜹니다.&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://theeye.pe.kr/attach/1/1329999648.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;359&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;이후에 로그인을 하고선 만나게 되는 페이지입니다. 리뉴잉을 함으로써 앱스토어 배포와 디바이스 Provisioning 기타 등등이 유지되게 된다고 하는군요. 암튼 지금까지 사용하던것을 그대로 유지하게 된다고 보면 되겠죠.&lt;BR&gt;&lt;BR&gt;이 과정을 쭉 거치게 되면 결제 페이지까지 이어집니다. 위에 잘 보시면 한화로 얼마를 내야 하는지 금액이 나옵니다. 결재를 하고나면 다시 기다림의 시간이 이어집니다. 약 2~3일정도 기다려야 합니다.&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://theeye.pe.kr/attach/1/1215613216.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;389&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;기다림 끝에 위와 같은 엑티베이션 메일이 날라옵니다. Activation Code부분에 써있는 코드를 클릭하면 실제로 계정이 갱신됩니다.&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://theeye.pe.kr/attach/1/1242710648.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;587&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;드디어 대망의 승인 메일입니다. 이제 계정을 사용할 수 있게 되었습니다. 재밌는 어플 많이 만들어봐야겠군요!</description>
			<category>하루를살아가며</category>
			<category>Developer Program</category>
			<category>iPhone</category>
			<category>Renew</category>
			<category>개발자</category>
			<category>기한</category>
			<category>아이폰</category>
			<category>프로그램</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/380</guid>
			<comments>http://theeye.pe.kr/entry/how-to-renewing-iphone-developer-program#entry380comment</comments>
			<pubDate>Wed, 24 Feb 2010 16:09:21 +0900</pubDate>
		</item>
		<item>
			<title>[JAVA] iBATIS + OSCACHE 사용 시 Cache Model에 대한 이해</title>
			<link>http://theeye.pe.kr/entry/knowing-oscache-model-on-integrated-ibatis</link>
			<description>iBATIS는 공식적으로 캐시를 할때에 OSCache를 사용할 수 있도록 되어있습니다. 하지만 그 기능이 매우 자동적이며 제한적이고 세세한 설정을 개발자가 할수가 없습니다. 그래서 다음을 한번 알아 보기로 할까요. 다음의 예시는 [&lt;STRONG&gt;&lt;A href=&quot;http://theeye.pe.kr/entry/how-to-clustering-with-ibatis-and-oscache-based-on-mounted-nfs-disk&quot; target=_blank&gt;&lt;STRONG&gt;이곳&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]에 언급된 내용을 살짝 수정하였습니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;&amp;lt;cacheModel type=&quot;OSCACHE&quot; id=&quot;cacheModel&quot; readOnly=&quot;true&quot;&amp;gt; &lt;BR&gt;  &amp;lt;flushInterval hours=&quot;24&quot;/&amp;gt; &lt;BR&gt;  &amp;lt;flushOnExecute statement=&quot;flushCache&quot;/&amp;gt; &lt;BR&gt;&amp;lt;/cacheModel&amp;gt; &lt;BR&gt;&amp;lt;resultMap class=&quot;kr.pe.theeye.Cache&quot; id=&quot;CacheResult&quot;&amp;gt; &lt;BR&gt;  ... &lt;BR&gt;&amp;lt;/resultMap&amp;gt; &lt;BR&gt;  &lt;BR&gt;&amp;lt;insert id=&quot;flushCache&quot; resultClass=&quot;string&quot;&amp;gt; &lt;BR&gt;  INSERT ... &lt;BR&gt;&amp;lt;/insert&amp;gt;&lt;BR&gt;&lt;BR&gt;&amp;lt;select id=&quot;makeCache1&quot; resultMap=&quot;CacheResult&quot; cacheModel=&quot;cacheModel&quot;&amp;gt; &lt;BR&gt;  SELECT ... &lt;BR&gt;&amp;lt;/select&amp;gt;&lt;BR&gt;&lt;BR&gt;&amp;lt;select id=&quot;makeCache2&quot; resultMap=&quot;CacheResult&quot; cacheModel=&quot;cacheModel&quot;&amp;gt; &lt;BR&gt;  SELECT ... &lt;BR&gt;&amp;lt;/select&amp;gt;&lt;BR&gt;&lt;BR&gt;&amp;lt;select id=&quot;makeCache3&quot; resultMap=&quot;CacheResult&quot; parameterClass=&quot;int&quot; &lt;BR&gt;  cacheModel=&quot;cacheModel&quot;&amp;gt; &lt;BR&gt;  SELECT ... WHERE PAGE = #value#&lt;BR&gt;&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위의 SQL맵 예제에서는 INSERT문 한개와 SELECT문 3개가 존재합니다. 모두 cacheModel이라는 id의 캐시모델과 연관되어집니다. 이것을 간단하게 그림으로 그려보면 다음과 같은 모양을 가지고 있습니다.&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://theeye.pe.kr/attach/1/1269781983.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;238&quot; width=&quot;358&quot; /&gt;&lt;/div&gt;&lt;BR&gt;그려놓고 보니깐 좀 말이 안되는 그림 같아 보이네요;; 아무튼 하나의 캐시 모델에 3가지의 캐시를 생성할 수 있는 조건이 있고 2가지 캐시를 삭제할 수 있는 조건이 있다고 봐주시면 되겠습니다. 둥근 사각형은 개발자가 임의로 호출을 해야만 하는 기능들이고 위의 동그라미는 캐시 유지 시간 설정으로 봐주시면 되겠습니다.&lt;BR&gt;&lt;BR&gt;이제 다음의 몇가지 예시 상황들에 대한 캐시의 처리 과정에 대해 알아보겠습니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;1. 한개의 캐시 처리 (makeCache1 → flushCache)&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;makeCache1이 수행되면 cacheModel에 하나의 캐시가 생성됩니다.&amp;nbsp; 앞으로 makeCache1이 호출될때마다 캐시가 존재하는한 DB에 접근없이 캐시결과값을 제공하게 됩니다. flushCache를 수행하면 캐시가 삭제됩니다. 다시 makeCache1을 호출하면 DB에서 결과를 가져와서 반환함과 동시에 캐시를 생성하게 됩니다. 캐시가 생성된 시점에서 flushInterval에 설정된 시간이 경과하도록 flushCache가 호출되지 않는다면 시간 만료로 자동 삭제됩니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;2. 두개의 캐시 처리 (makeCache1 → makeCache2 → flushCache)&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;makeCache1이 호출되면 cacheModel에 하나의 캐시가 생성됩니다. makeCache2가 호출되면 마찬가지로 cacheModel에 또다른 하나의 캐시가 생성됩니다. 이 두개의 캐시는 엄연히 다르며 각각의 makeCacheX가 호출될때 해당하는 만들어진 캐시값을 반환하게 됩니다. 하지만 둘다 모두 동일하게 cacheModel안에 소속됩니다. 이어서 flushCache를 호출하게 되면 두 캐시가 &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;모두&lt;/FONT&gt;&lt;/STRONG&gt; 삭제됩니다. 정확히는 flush에 대한 설정을 해두면 해당 캐시모델의 모든 캐시를 소거한다고 보시면 됩니다. 그러므로 이런 부분에 주의하여 캐시모델을 함께 사용할지 따로 다른 캐시모델을 만들지를 결정하셔야 합니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;3. 인자값의 차이에 따른 처리 (makeCache3[1] -&amp;gt; makeCache3[2] -&amp;gt; flushCache)&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;makeCache3에는 parameterClass를 사용하여 동적인 쿼리를 수행하도록 되어있습니다. 예시로 간단하게 int값을 받도록 하였는데요. 캐시를 생성할때의 키값에는 이 인자값들이 모두 포함되어 키를 이룹니다. 그러므로 paramterClass로 넘어오는 값이 1일때와 2일때는 다른 쿼리(키)가 됩니다. 그러므로 1이라는 값의 인자를 받아 실행되는 makeCache3의 캐시와 2라는 값을 받아 실행되는 makeCache3는 각각 별개의 캐시가 생성됩니다. 마찬가지로 하나의 cacheModel안에서 호출되지만요. flushCache를 호출하면 이 두캐시가 모두 삭제됩니다.&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;결론을 내보자면 위와 같은 iBATIS에서 제공하는 기본적인 캐시모델로는 같은 쿼리지만 다른 결과가 나올 수 있는 부분에는 사용할 수 없습니다. SNS 서비스에서 볼 수 있을 다음을 생각해 봅시다.&lt;BR&gt;&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #c9edff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;1. 친구들의 최근근황을 모아서 볼 수 있는 기능이 있다고 가정한다.&lt;BR&gt;2. 사용자가 접속하여 친구들의 최근근황을 확인하였다. [캐시 생성됨]&lt;BR&gt;3. 친구중 한명이 최근 근황을 업데이트 하였다.&lt;BR&gt;4. 사용자가 다시한번 친구들의 최근근황을 확인하였다. [캐시값 반환됨]&lt;BR&gt;&lt;/DIV&gt;&lt;BR&gt;위를 수행하였을 때 친구들의 정보가 바뀌어도 사용자는 계속 캐시된 값을 받게됨을 알 수 있습니다. 그러므로 친구들의 업데이트 된 정보를 적시에 얻기가 힘듭니다. 하지만 그렇다고 친구의 정보가 업데이트 될때 다른 사용자의 캐시를 삭제하는데도 무리가 있습니다. 왜냐하면 캐시 키 값을 모르기 때문이죠. 이부분을 해결하려면 iBATIS의 SQL맵 캐시 기능을 사용하지 말고 자체적인 알고리즘으로 구현을 해야 할 것 같습니다.</description>
			<category>JAVA</category>
			<category>Cache</category>
			<category>Cache Model</category>
			<category>OSCache</category>
			<category>자바</category>
			<category>캐시</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/379</guid>
			<comments>http://theeye.pe.kr/entry/knowing-oscache-model-on-integrated-ibatis#entry379comment</comments>
			<pubDate>Tue, 23 Feb 2010 11:56:26 +0900</pubDate>
		</item>
		<item>
			<title>[JAVA] iBATIS + OSCache 를 이용하여 디스크 기반 클러스터링 하기</title>
			<link>http://theeye.pe.kr/entry/how-to-clustering-with-ibatis-and-oscache-based-on-mounted-nfs-disk</link>
			<description>&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffdaed; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;주의!&lt;/FONT&gt;&lt;/STRONG&gt; 이글은 실무에 적용해본적이 없는 이론으로만 시도해본것을 적은 글입니다. 일단 개인적으로 부하테스트를 해본결과 별 문제가 없는 것으로 보이지만 이것을 적용한데서 비롯된 문제점은 책임질 수 없습니다ㅠㅠ&lt;/DIV&gt;
&lt;P&gt;&lt;BR&gt;iBATIS와 OSCache를 연동하는 방법은 많이 볼 수 있습니다. 특히 다수의 서버가 캐시 데이터를 연동하는 클러스터링에 대해 알아보려면 [&lt;STRONG&gt;&lt;A href=&quot;http://www.opensymphony.com/oscache/wiki/Clustering.html&quot; target=_blank&gt;&lt;STRONG&gt;이곳&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]을 참고하면 JMS와 JavaGroups를 이용한 클러스터링을 소개하고 있는 것을 알 수 있습니다.&lt;BR&gt;&lt;BR&gt;하지만 좀 다르게 저는 NFS + Persistence설정을 사용하여 클러스터링을 구현해 보도록 하겠습니다. 이경우 얻을 수 있는 이득으로는 캐시를 디스크에 하기 때문에 서버의 작동여부와 상관없이 장기간의 캐시데이터를 유지할 수 있습니다. 예를 들면 홈페이지 첫화면의 공지사항이 한달에 1~2번 올라오는 경우라면 이렇게 캐시를 구성하면 매일 서버를 껐다키더라도 공지사항의 캐시를 유지할 수 있습니다.&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://theeye.pe.kr/attach/1/1111557223.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;238&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=3&gt;* 준비사항&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;우선 &lt;A href=&quot;http://ibatis.apache.org/&quot; target=_blank&gt;iBATIS&lt;/A&gt; 최신버젼과 &lt;A href=&quot;http://www.opensymphony.com/oscache/&quot; target=_blank&gt;OSCache&lt;/A&gt; 최신버젼을 받도록 합시다. 저의 경우에는 iBATIS이전 버젼으로 시도했을때 알 수 없는 Exception이 발생하는 문제가 있었습니다. 추가적으로 &lt;STRONG&gt;CGLIB, COMMONS-DBCP, COMMONS-LOGGING, LOG4J&lt;/STRONG&gt; jar가 필요합니다.&lt;BR&gt;&lt;BR&gt;iBATIS의 경우 약간의 소스 수정이 필요합니다. 우선 뒤쪽에서 언급할 소스수정 단계를 거쳤다고 생각하고 필요한 jar파일들을 프로젝트의 Lib디렉토리에 넣습니다. 추가로 OSCache의 etc폴더 안에 있는 &lt;STRONG&gt;oscache.properties&lt;/STRONG&gt; 파일을 프로젝트의 classes디렉토리 루트에 넣으시면 됩니다. 꼭 여기만 되더군요. 이클립스를 사용하실 경우 마우스 오른쪽 클릭하시고 move를 이용하셔서 넣으시면 편합니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=3&gt;* OSCache 설정 변경&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;oscache.properties 파일의 내용을 다음과 같이 변경합니다. 아래에 언급되지 않은 설정의 경우 모두 디폴트(주석처리)로 설정함을 의미합니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;cache.memory=false&lt;BR&gt;cache.persistence.class=&lt;BR&gt;    com.opensymphony.oscache.plugins.diskpersistence.HashDiskPersistenceListener&lt;BR&gt;cache.path=d:\\tmp\\cache&lt;BR&gt;cache.algorithm=com.opensymphony.oscache.base.algorithm.UnlimitedCache&lt;BR&gt;cache.unlimited.disk=true&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위에서 &lt;STRONG&gt;cache.path&lt;/STRONG&gt;의 경우 윈도우는 \\로 유닉스 계열에서는 /로 디렉토리 경로를 표시합니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366 size=3&gt;* iBATIS 설정 변경&lt;/FONT&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;STRONG&gt;sql-map-config&lt;/STRONG&gt;에 다음과 같은 캐시모델에 대한 설정을 합니다. 이외의 설정의 경우 기존에 사용하시던데로 사용하시면 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;&amp;lt;settings&lt;BR&gt;    useStatementNamespaces=&quot;true&quot;&lt;BR&gt;    cacheModelsEnabled=&quot;true&quot;&lt;BR&gt;    classInfoCacheEnabled=&quot;true&quot;&lt;BR&gt;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;&lt;U&gt;* SQL MAP에 캐시 설정&lt;/U&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;캐시 모델이라는 개념을 사용하여 캐시를 하고 만들어진 캐시를 삭제하는 작업을 하게 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;&amp;lt;cacheModel type=&quot;OSCACHE&quot; id=&quot;cacheModel&quot; readOnly=&quot;true&quot;&amp;gt;&lt;BR&gt; &amp;lt;flushInterval hours=&quot;24&quot;/&amp;gt;&lt;BR&gt; &amp;lt;flushOnExecute statement=&quot;flushCache&quot;/&amp;gt;&lt;BR&gt;&amp;lt;/cacheModel&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;resultMap class=&quot;kr.pe.theeye.Cache&quot; id=&quot;CacheResult&quot;&amp;gt;&lt;BR&gt; ...&lt;BR&gt;&amp;lt;/resultMap&amp;gt;&lt;BR&gt; &lt;BR&gt;&amp;lt;insert id=&quot;flushCache&quot; resultClass=&quot;string&quot;&amp;gt;&lt;BR&gt; INSERT ...&lt;BR&gt;&amp;lt;/insert&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;lt;select id=&quot;makeCache&quot; resultMap=&quot;CacheResult&quot; cacheModel=&quot;cacheModel&quot;&amp;gt;&lt;BR&gt; SELECT ...&lt;BR&gt;&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;위의 예제에 대해 설명을 해보자면 CacheModel에서 각각의 캐시 설정을 하게 됩니다. type에는 &lt;STRONG&gt;OSCACHE&lt;/STRONG&gt;를 넣어주시고 &lt;STRONG&gt;id&lt;/STRONG&gt;에 식별자를 넣어줍니다. 그리고 &lt;STRONG&gt;ReadOnly&lt;/STRONG&gt;설정을 하게 되면 수정을 하지 않는다는 것으로 약간의 퍼포먼스 향상을 꾀할 수 있습니다.&lt;BR&gt;&lt;BR&gt;하위의 설정으로는 대표적으로 &lt;STRONG&gt;flushInterval&lt;/STRONG&gt;설정이 있는데 시, 분, 초, 밀리초 단위의 설정을 할 수 있습니다. &lt;STRONG&gt;flushOnExecute&lt;/STRONG&gt;의 경우에는 어떤 쿼리가 실행될 때 이 캐시를 삭제하면 되는지를 넣어주시면 됩니다. 다수의 설정이 가능합니다.&lt;BR&gt;&lt;BR&gt;resultMap의 경우에는 잘 아시겠지만 추가적으로 알아두셔야 할 점이 여기에 사용되는 클래스는 꼭 Serializable 인터페이스를 구현하고 있어야합니다. 파일로 쓰기 때문에 중요합니다. 안해두시면 에러납니다.&lt;BR&gt;&lt;BR&gt;다음의 insert 쿼리의 id가 아까 캐시모델의 &lt;STRONG&gt;flushOnExecute&lt;/STRONG&gt;에 정의되어있는 식별자인것을 알 수 있습니다. 이 쿼리가 실행될때마다 만들어진 캐시를 삭제하게 됩니다. 보통 CRUD에서 CUD에 해당하는 작업을 모두 정의해 주시면 될 것 같습니다.&lt;BR&gt;&lt;BR&gt;마지막으로 중요한 select문입니다. &lt;STRONG&gt;cacheModel&lt;/STRONG&gt;이라는 설정에서 어떤 캐시모델을 사용할 것인지 식별자를 넣어주시면 됩니다. 이제 이 쿼리가 수행될때 마다 캐시가 존재하면 데이터베이스 서버를 거치지 않고 캐시된 결과를 반환하고 캐시가 없을 경우 데이터베이스에 쿼리를 날리고 결과를 반환함과 동시에 캐시하게 됩니다.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#003366 size=3&gt;&lt;U&gt;* iBATIS 소스 수정&lt;/U&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;여기까지 해보고 클러스터링을 테스트 해보게 되면 전혀 클러스터링이 되지 않음을 알 수 있습니다. 캐시를 저장할 때 사용하는 해시키값이 객체를 해시하는등의 복잡한 과정을 거치며 값이 머신마다 달라짐에 따라 다른 캐시로 인지하게 되는 문제입니다. 이것을 단순히 쿼리문과 그의 인자값만으로 캐시키로 사용하도록 바꾸어 보겠습니다.&lt;BR&gt;&lt;BR&gt;1. 다운받은 iBATIS의 src폴더에 들어가면 &lt;STRONG&gt;ibatis-src.zip&lt;/STRONG&gt;파일이 있는데 압축을 푼다.&lt;BR&gt;2. src\ibatis-src\com\ibatis\sqlmap\engine\cache\CacheKey.java 파일을 iBATIS의 &lt;STRONG&gt;lib&lt;/STRONG&gt;폴더로 옮긴다.&lt;BR&gt;3. CacheKey.java 의 toString()메서드를 수정합니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;public String toString() {&lt;BR&gt;/*    &lt;BR&gt;  StringBuffer returnValue = new StringBuffer().append(hashcode).append(&#039;|&#039;).append(checksum);&lt;BR&gt;  for (int i=0; i &amp;lt; paramList.size(); i++) {&lt;BR&gt;    returnValue.append(&#039;|&#039;).append(paramList.get(i));&lt;BR&gt;  }&lt;/P&gt;
&lt;P&gt;  return returnValue.toString();&lt;BR&gt;*/&lt;BR&gt;  int index = paramList.size()-3;&lt;BR&gt;  StringBuffer returnValue = new StringBuffer();&lt;/P&gt;
&lt;P&gt;  returnValue.append(paramList.get(index));&lt;BR&gt;  returnValue.append(paramList.get(--index));&lt;/P&gt;
&lt;P&gt;  for (int i=index-2; i &amp;gt; -1; i--) {&lt;BR&gt;    returnValue.append(&#039;|&#039;).append(paramList.get(i));&lt;BR&gt;  }&lt;/P&gt;
&lt;P&gt;  return returnValue.toString();&lt;BR&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;4. &lt;STRONG&gt;lib&lt;/STRONG&gt;폴더에 있는 &lt;STRONG&gt;ibaris-버젼.jar&lt;/STRONG&gt;파일을 &lt;STRONG&gt;jar -xvf &amp;lt;파일명&amp;gt;&lt;/STRONG&gt;으로 압축을 해제 합니다.&lt;BR&gt;5. &lt;STRONG&gt;lib&lt;/STRONG&gt;폴더 안에서 다음의 명령을 수행하여 &lt;STRONG&gt;CacheKey.java&lt;/STRONG&gt;파일을 컴파일 합니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;javac -classpath . -d ./ CacheKey.java&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;6. 컴파일 된 &lt;STRONG&gt;CacheKey.class&lt;/STRONG&gt;파일을 원래의 위치로 옮겨 옮깁니다.&lt;BR&gt;7. &lt;STRONG&gt;jar -cvf ibatis.jar *&lt;/STRONG&gt; 명령을 사용하여 다시 압축합니다.&lt;BR&gt;8. 만들어진 jar 파일을 사용합니다.&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#003366 size=3&gt;&lt;STRONG&gt;&lt;U&gt;* log4j 로그 확인&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR&gt;log4j.properties파일에 다음을 한줄 추가하면 로그를 확인할 수 있습니다.&lt;BR&gt;&lt;BR&gt;&lt;pre class=&quot;prettyprint &quot; style=&quot;overflow:auto;white-space:pre-wrap;white-space:-moz-pre-wrap;word-break:break-all;word-wrap:break-word;&quot;&gt;&lt;code&gt;log4j.logger.com.opensymphony.oscache=DEBUG&lt;/code&gt;&lt;/pre&gt;&lt;BR&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;&lt;U&gt;&lt;FONT color=#003366&gt;* 결론&lt;/FONT&gt;&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;이제 모든 머신에서 동일하게 만들어질 키를 가지고 캐시를 식별하게 됩니다. 이것으로 모든 캐시를 영구적으로 보존할 수 있게 되었습니다. 관련되는 문제가 있을 것으로 생각되지만 간단한 테스트 결과 별 문제가 없지 않을까 생각됩니다. 보시고 예상되는 문제가 보이시면 적극 알려주시면 개선해보도록 하겠습니다.&lt;/P&gt;</description>
			<category>JAVA</category>
			<category>Clustering</category>
			<category>Disk</category>
			<category>iBatis</category>
			<category>java</category>
			<category>NFS</category>
			<category>OSCache</category>
			<category>디스크</category>
			<category>자바</category>
			<category>캐시</category>
			<category>클러스터링</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/378</guid>
			<comments>http://theeye.pe.kr/entry/how-to-clustering-with-ibatis-and-oscache-based-on-mounted-nfs-disk#entry378comment</comments>
			<pubDate>Mon, 22 Feb 2010 18:46:15 +0900</pubDate>
		</item>
		<item>
			<title>[독서] 우아한 아이디어가 세상을 지배한다</title>
			<link>http://theeye.pe.kr/entry/book-report-in-pursuit-of-elegance</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1058089164.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;375&quot; width=&quot;500&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;우아한 아이디어가 세상을 지배한다 - 메튜 메이 지음 / 박세연 옮김&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&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;완벽함이란 더이상 더할것이 없는 상태가 아니라 더이상 뺄것이 없는 상태다. 라는 나의 철학을 더욱 확고히 해주는 책이었다.</description>
			<category>영혼의양식</category>
			<category>독서</category>
			<category>독후감</category>
			<category>베토벤</category>
			<category>브레인스토밍</category>
			<category>세상</category>
			<category>스타비디오</category>
			<category>아이디어</category>
			<category>우아한</category>
			<category>위콘</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/377</guid>
			<comments>http://theeye.pe.kr/entry/book-report-in-pursuit-of-elegance#entry377comment</comments>
			<pubDate>Mon, 22 Feb 2010 01:29:06 +0900</pubDate>
		</item>
		<item>
			<title>[iPhone] 아이폰 게임에 소셜 플랫폼을 도입한다? OpenFeint</title>
			<link>http://theeye.pe.kr/entry/open-social-platform-openfeint-on-iphone-games</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1141542514.png&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;187&quot; width=&quot;244&quot; /&gt;&lt;/div&gt;&lt;BR&gt;[&lt;STRONG&gt;&lt;A href=&quot;http://www.openfeint.com/&quot; target=_blank&gt;&lt;STRONG&gt;OpenFeint&lt;/STRONG&gt;&lt;/A&gt;&lt;/STRONG&gt;]는 XBOX Live와 같이 혼자 게임을 플레이하는데 그치지 않고 친구들과 함께 협동/경쟁 기타 다양한 재미 요소를 추가하도록 하는 공개 플랫폼 입니다. 예전에 아이폰용 베틀넷 시스템을 만들고 싶다는 생각을 했었는데 적어도 멀티 플레이 서버를 제공하진 않지만 다양한 친구와 함께 할 수 있는 기능들을 제공합니다. OpenFeint가 제공하는 기능은 다음과 같습니다.&lt;BR&gt;&lt;BR&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1101938174.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;게임의 커뮤니티를 만들어 줍니다.&lt;BR&gt;&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;OpenFeint는 여러가지 방법으로 플레이어간 직접 연결할 수 있는 경로를 제공합니다. 뉴스레터, 공지, 포럼과 같은 기능을 제공하여 개발자가 만든 게임의 가상 대화 장소를 제공하여 줍니다.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1109330323.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;심플하고 접근성 좋은 UI를 제공합니다.&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;하단의 3개의 탭은 사용자가 찾기 원하는 기능을 손쉽게 찾게 하여줍니다. 그리고 모든것들이 OpenFeint&amp;nbsp; 오픈 API를 통하여 커스터마이징 될 수 있습니다.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1137876666.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;엄청난 교차 프로모션 기능을 제공합니다.&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;OpenFeint를 채택하고 수많은 어플리케이션간에 교차 광고를 지원합니다. 이는 곧 전세계 1200만 OpenFeint플랫폼 기반 게임을 플레이하는 플레이어에게 홍보를 할 수 있는 매우 강력한 비지니스 툴입니다.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1288615080.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;무료 어플을 통해 구매가 일어나도록 도와줍니다.&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;OpenFeint는 매우 간단한 방법으로 당신의 무료 유저들에게 상위 유료 상품을 구매하도록 도와줍니다. 당신의 무료 설치 기반에서 더 많은 게임을 판매하고 교차 프로모션의 장점도 챙기세요.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1043206378.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;당신의 친구가 온라인되는것을 알려줍니다.&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;이것은 XBOX Live에서 흔히 볼 수 있는 모습니다. 친구가 로그인하면 왼쪽에서 보다 싶이 알려주게 됩니다. 중요한건 어떤 게임이던지 OpenFeint플랫폼을 채택한 게임/메신져/포럼이기만 하면 알림기능이 활성화 될수 있습니다.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1134090298.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;네트워크 저장 카드를 제공합니다.&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;이 기능은 네트웍을 통하여 장치에 상관없이 데이터를 저장할 수 있는 기능을 제공합니다. 내 아이폰에서 게임을 저장하고 동생의 아이폰에서 로드하여 계속 플레이 할 수 있습니다. 기기의 변경시에도 데이터 손실을 걱정안해도 됩니다.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;img src=&quot;http://theeye.pe.kr/attach/1/1074045077.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;174&quot; width=&quot;314&quot; /&gt;&lt;/div&gt;&lt;STRONG&gt;&lt;INS&gt;&lt;FONT color=#003366&gt;지역기반의 점수표를 제공합니다.&lt;/FONT&gt;&lt;/INS&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;보통 오락실에서 게임을 하면 점수별 랭킹이 있는것을 알 수 있죠. 이 기능을 제공합니다. 하지만 추가로 구글맵을 연동하여 지역별로 랭킹을 볼 수 있습니다. 아이폰 2.x 혹은 3.x버젼에서 지원합니다.&lt;/DIV&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #ffffff; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 10px&quot;&gt;&lt;BR&gt;&lt;BR&gt;가면 알 수 있는데 현재 멀티플레이 기능이 베타 테스트중입니다. 또는 친구와 점수 경쟁을 한다거나 지역뿐만이 아닌 전체 점수 순위를 볼 수 있고 트위터와 페이스북등을 연동할 수도 있습니다. 심지어 어플안에서 트위터와 페이스북 사용자를 검색할 수 있는 기능을 제공합니다. 또한 오프라인 상태에서도 최소한의 기능을 사용하는데 문제가 없으며 게임내에 삽입할 수 있는 다양한 Social API들을 제공합니다. 
&lt;P&gt;이 멋진 기능들을 사용하시려면 다음의 링크를 따라가셔서 개발자 등록을 하시면 됩니다.&lt;BR&gt;&lt;A href=&quot;https://api.openfeint.com/signup&quot;&gt;https://api.openfeint.com/signup&lt;/A&gt;&lt;/P&gt;&lt;/DIV&gt;</description>
			<category>나혼자만의독설</category>
			<category>iPhone</category>
			<category>Live</category>
			<category>OpenFeint</category>
			<category>SNS</category>
			<category>Social</category>
			<category>XBOX</category>
			<category>게임</category>
			<category>아이폰</category>
			<category>오픈페인트</category>
			<category>플랫폼</category>
			<author>(아이)</author>
			<guid>http://theeye.pe.kr/376</guid>
			<comments>http://theeye.pe.kr/entry/open-social-platform-openfeint-on-iphone-games#entry376comment</comments>
			<pubDate>Sat, 20 Feb 2010 20:44:54 +0900</pubDate>
		</item>
	</channel>
</rss>
