<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kimkijeung.com &#187; Programming</title>
	<atom:link href="http://kimkijeung.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://kimkijeung.com</link>
	<description>Interactive development,flash,Actionscript,Unity</description>
	<lastBuildDate>Sun, 24 Apr 2011 18:59:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>OSC (Open Sound Control)</title>
		<link>http://kimkijeung.com/2011/04/25/osc-open-sound-control/</link>
		<comments>http://kimkijeung.com/2011/04/25/osc-open-sound-control/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 18:35:07 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Unity3d]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[OSCulator]]></category>
		<category><![CDATA[sound control]]></category>
		<category><![CDATA[TouchOSC]]></category>

		<guid isPermaLink="false">http://kimkijeung.com/?p=1223</guid>
		<description><![CDATA[OSC(Open Sound Control) 는 원래 음악장비와 컴퓨터간의 통신을 위해 만들어진 통신 프로토콜(protocol)이다. 명칭자체에 sound 라는 단어가 들어간것만 봐도 sound 와 밀접한 관계가 있음을 추측할 수 있을 것이다. 하지만 sound 와 관련된 본래의 목적이외에도 서로 다른 application 간의 통신 및 각종 네트워크 장비간의 통신에 상당히 많이 활용되고 있다. 이처럼 다양하게 사용되는 가장 큰 이유는 바로 직관적이면서도 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://opensoundcontrol.org/introduction-osc" target="_blank">OSC(Open Sound Control)</a> 는 원래 음악장비와 컴퓨터간의 통신을 위해 만들어진 통신 프로토콜(protocol)이다.</p>
<p>명칭자체에 sound 라는 단어가 들어간것만 봐도 sound 와 밀접한 관계가 있음을 추측할 수 있을 것이다. 하지만 sound 와 관련된 본래의 목적이외에도 서로 다른 application 간의 통신 및 각종 네트워크 장비간의 통신에 상당히 많이 활용되고 있다. 이처럼 다양하게 사용되는 가장 큰 이유는 바로 직관적이면서도 사용하기 쉬운 메시지 전달방식에 있을 것이다. Multi touch 인터페이스에 사용되고 있는 TUIO 가 바로 OSC 를 기반으로 만들어진 플레임워크라는 사실에서 OSC 가 상당히 범용적으로 사용될 수 있다는 점을 예상할 수 있을 것이다.</p>
<p>OSC 가 물론 음악장비의 제어를 위해 만든어진 프로토콜인 만큼 OSC 를 구현한 상당수의 소프트웨어가 미디장비를 위한 소프트웨어이다. 그렇지만 통신 프로토콜인 만큼 음악장비 뿐만이니라 OSC 를 구현하는 모든 기기간에 통신을 위한 목적으로도 사용될 수 있다.</p>
<p><a href="http://www.osculator.net/" target="_blank" title="OSCulator"><img class="alignleft size-full wp-image-1225" style="margin-left: 15px; margin-right: 15px; margin-top: 8px; margin-bottom: 8px;" title="OSCulator" src="http://kimkijeung.com/blog/wp-content/uploads/2011/04/OSCulator.png" alt="" width="128" height="128" /></a></p>
<p>OSC 를 구현한 대표적인 소프트웨어중에 <a href="http://www.osculator.net/" target="_blank">OSCulator</a> 라는 소프트웨어는 iphone 및 Wiimote 과 같은 컨트롤러를 활용해 각종 미디장비를 제어할 수 있는 기능을 제공한다. mac 전용 소프트웨어이긴 하지만 상당수의 사운드제어 컨텐츠 개발에 사용되고 있으며 ipad 의 출시이후에 패드를 활용해 사운드 믹싱장비로 사용하고 있는 경우를 많이 찾아 볼 수 있을 것이다.</p>
<p>미디장비 자체는 어차피 하드웨어이기 때문에 OSCulator 과 같은 라우터 역할을 하는 소프트웨어를 이용해야지만 동적으로 사운드 장비 제어를 위한 프로그램과의 연결이 가능하다. 다시 말해 OSCulator 이 중간에 어탭터 형태로 연결되어 개발자가 만든 컨텐츠에서 OSC 를 구현한 메시지를 전송하게 되면 OSCulator 에서 그 메시지를 다시 미디 장비가 이해할 수 있는 신호로 변환해 주는 역할을 하게 된다. 사운드를 제어하는 인터랙티브 컨텐츠 제작을 원한다면 위 소프트웨어를 사용한다면 간단히 해결할 수 있을 것이다.</p>
<p><a href="http://hexler.net/software/touchosc" target="_blank" title="TouchOSC"><img class="alignleft size-thumbnail wp-image-1227" style="margin-top: 5px; margin-bottom: 5px; margin-left: 20px; margin-right: 20px;" title="TouchOSC" src="http://kimkijeung.com/blog/wp-content/uploads/2011/04/touchosc-150x150.png" alt="" width="120" height="120" /></a></p>
<p><a href="http://hexler.net/software/touchosc" target="_blank">TouchOSC</a> 도 OSC 를 구현한 대표적인 사례이다. 다만 이 소프트웨어는 iPhone,iPad 에서 사용되는 App 형태의 소프트웨어이다. 위 OSCulator 와 함께 iPhone 및 iPad 와 같은 무선 네트워크 장비를 활용해 사운드 제어를 하는데 상당히 효과적이다. 또한 전용 Editor 를 제공하여 사용자가 직접 iPhone 및 iPad 상에서의 UI 를 만들수 있어서 필자는 이 App을 사운드제어를 위한 목적으로 사용하기 보다는 오프라인 컨텐츠에서 캘리브레이션 메뉴제어를 위해 사용하고 있다. 물리적으로 멀리 떨어져있는 PC 에서 작동되는 컨턴츠 옵션을 변경하기 위해 iPhone 을 활용해 환경설정을 하는것이 여러모로 상당히 편하다.</p>
<p>기본적으로 TCP/IP 나 UDP 소켓을 사용하여 통신을 하는 구조이기 때문에 연결하는 host 와 port 번호만 유의하여 사용한다면 Flash/AIR 나 C++/.NET 환경에서도 별다르게 문제없이 사용가능할 것이다.</p>
<p><span style="color: #ffffff;"><br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span><br />
<iframe src="http://player.vimeo.com/video/22805504?portrait=0" width="620" height="400" frameborder="0"></iframe></p>
<p><span style="color: #ffffff;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2011/04/25/osc-open-sound-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO flash programming</title>
		<link>http://kimkijeung.com/2008/02/11/seo-flash-programming/</link>
		<comments>http://kimkijeung.com/2008/02/11/seo-flash-programming/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 09:22:42 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Flash-Tip]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SWFAddress]]></category>
		<category><![CDATA[SWFObject]]></category>

		<guid isPermaLink="false">http://vkimone.inblog.kr/?p=525</guid>
		<description><![CDATA[Flash 는 별개의 runtime 프로그램으로 Google 과 같은 검색엔진을 통한 인덱싱 문제에 상당한 어려움을 가지고 있다. 이것은 일반적인 flash 사이트일 경우 검색엔진을 통한 노출이 사실상 불가능하다는 의미이다. 이는 flash 파일의 내부를 분석하여 정보를 추출하는 알고리즘이 개발되지 않는 한 이러한 이슈는 계속 될 것으로 보인다. 위 문제의 대한 완벽한 해결방안은 현재로서는 없다. 하지만 html 페이지와 같은 [...]]]></description>
			<content:encoded><![CDATA[<p>Flash 는 별개의 runtime 프로그램으로 Google 과 같은 검색엔진을 통한 인덱싱 문제에 상당한 어려움을 가지고 있다. 이것은 일반적인 flash 사이트일 경우 검색엔진을 통한 노출이 사실상 불가능하다는 의미이다. 이는 flash 파일의 내부를 분석하여 정보를 추출하는 알고리즘이 개발되지 않는 한 이러한 이슈는 계속 될 것으로 보인다.</p>
<p>위 문제의 대한 완벽한 해결방안은 현재로서는 없다. 하지만 html 페이지와 같은 텍스트 기반의 인덱싱 수준을 기대하기는 어렵지만 어느 정도 대체할 만한 방법론적 접근이 이루어지고 있다.<br />
그 중에 가장 주목할 만한 방법은 바로 flash 페이지와 함께 메인 html 컨텐츠(primary HTML)를 사용하는 방법이다. 이것은 flash를 알지 못하는 검색엔진이나 올바른 환경을 가지지 못한 사용자의 접근성에 있어서도 효율적인 방법이다.</p>
<p>이를 위해서는  Flash embed source 로 많이 사용하고 있는 SWFObject 와 SWFAddress가 사용될 수 있다. SWFObject 는 Javascript 를 사용하여 적절한 flash player를 확인하고  DIV tag 의 내용을 flash content로 교체하여 임베드 할 수 있게 도와주는 오픈소스 코드로써 간단한 방법으로 flash 를 임베드할 수 있도록 많은 기능들을 제공하고 있어 플래시 개발자들에게 널리 알려져있다.<br />
그리고 SWFAddress는 flash 사이트 상에서 deep linking 을 제공하는 스크립트로 각 링크마다 고유의 페이지 url을 가질수 있으며 따라서, 웹브라우저에서 Back,Forward 기능을 사용하여 플래시사이트를 제작할 수 있다.</p>
<p>아래코드는 프레임기반의 간단한 네비게이션 메뉴를 SEO를 고려하여 제작한 샘플이다.</p>
<p><strong>&lt;HTML sample code&gt;</strong></p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;./js/swfobject.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;./js/swfaddress.js&#8221;&gt;&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;!&#8211;primary content, for non Flash visitors&#8211;&gt;<br />
<span style="color: #ff0000;">&lt;div id=&#8221;flashcontent&#8221;&gt;</span><br />
<span style="color: #0000ff;">&lt;p&gt;&lt;a href=&#8221;index.html#/menuBtn1&#8243;&gt;menu1 content&lt;/a&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;a href=&#8221;index.html#/menuBtn2&#8243;&gt;menu2 content&lt;/a&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;a href=&#8221;index.html#/menuBtn3&#8243;&gt;menu3 content&lt;/a&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;a href=&#8221;index.html#/menuBtn4&#8243;&gt;menu4 content&lt;/a&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;a href=&#8221;index.html#/menuBtn5&#8243;&gt;menu5 content&lt;/a&gt;&lt;/p&gt;<br />
</span><span style="color: #ff0000;">&lt;/div&gt;</span></p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var so= new SWFObject(&#8220;seo_flash.swf&#8221;,&#8221;flash&#8221;, &#8220;300&#8243;, &#8220;50&#8243;, &#8220;9&#8243;, &#8220;#ffffff&#8221;);<br />
so.write(&#8220;flashcontent&#8221;);<br />
&lt;/script&gt;<br />
&lt;noscript&gt;<br />
This content requires  a browser with JavaScript enabled.<br />
&lt;/noscript&gt;</p>
<p>위코드에서 div 태그부분을 보자.<br />
swfobject 에서 div 태그는 해당 flash player 가 존재하지 않거나  ActiveX 가 활성화되지 않을경우 화면에 보여지는 내용이다. 알맞는 환경이 갖춰졌을 경우 div 태그안의 내용은 flash 파일로 대체되는 것이다. 플래시 컨텐츠가 보인다면 이 정보는 사용자에게 보여지지 않는다. 하지만 검색엔진에는 이 정보가 노출되는 것이다.<br />
div 태그 안에는 flash 네비게이션 각 메뉴의 링크와 텍스트 정보가 포함되어있다. 그리고 앵커를 이용한 swfaddress 코드의 사용으로 flash 내부의 각각의 메뉴에 독립적인 url 을 생성해 주었다.<br />
따라서, div 태그를 통한 외부링크도 실제적으로 사용가능하다. 다시말해, 검색엔진의 인뎅싱 결과로 생성된 링크가 실제 swf 파일 각각의 메뉴에 일대일대응으로 링크가 가능하다는 의미이다.</p>
<p>[LEMBEDC|http://kimkijeung.com/upload/seo/sample.swf|300|50|N]</p>
<p><strong>&lt;flash sample code&gt;<br />
</strong><br />
function handleChange(event:SWFAddressEvent) :void{<br />
var path:String = event.path;<br />
gotoAndStop(&#8216;$&#8217; + path);<br />
SWFAddress.setTitle(path);<br />
}</p>
<p>function onClick(event:MouseEvent):void{<br />
var target:MovieClip=event.currentTarget as MovieClip;<br />
SWFAddress.setValue(&#8220;/&#8221;+target.name+&#8221;/&#8221;);<br />
}</p>
<p>for(var i:int=1 ; i&lt;=5 ; i++){<br />
var buttonClip:MovieClip=this.getChildByName(&#8220;menuBtn&#8221;+i) as MovieClip;<br />
buttonClip.buttonMode=true;<br />
buttonClip.addEventListener(MouseEvent.CLICK,onClick);<br />
}</p>
<p>SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);</p>
<p>위와 같은 방법으로 컨텐츠를 구성한다면 플래시 안의 컨텐츠 내용을 검색엔진에 노출할 수 있을 것이다. 하지만 위 예제는 플래시로 구현할 수 있는 가장 간단한 형태로 실제 사이트 제작시 위와같이 단일한 링크 구성으로 이루어지는 경우는 거의 없을 것이다. 대부분 사용자의 메뉴클릭사이 마다 무수히 많은 인터랙션이 존재하고 시간의 흐름에 의한 에니메이션이 존재한다.<br />
따라서,독립적인 메뉴의 링크를 통해 접속하는 경우 기존의 해당사이트와 단절된 느낌을 지울수는 없을 것이다. 이는 플래시 개발자가 좀더 고민해 보아야 할 문제이다.</p>
<p><a href="http://kimkijeung.com/upload/seo/seo_flash.zip" target="_blank">download sample files&#8230;</a></p>
<p><strong>reference from article below<br />
</strong>-How to SEO Flash<br />
(<a href="http://www.jehochman.com/articles/seo-friendly-flash.shtml">http://www.jehochman.com/articles/seo-friendly-flash.shtml</a>)<br />
-How Google crawls my site<br />
(<a href="http://www.google.com/support/webmasters/bin/topic.py?topic=8843&amp;hl=en">http://www.google.com/support/webmasters/bin/topic.py?topic=8843&amp;hl=en</a>)<br />
-A modern approach to Flash SEO<br />
(<a href="http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/">http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/</a>)<br />
-SWFObject<br />
(<a href="http://blog.deconcept.com/category/swfobject/">http://blog.deconcept.com/category/swfobject/</a>)<br />
-SWFAddress<br />
(<a href="http://www.asual.com/swfaddress/">http://www.asual.com/swfaddress/</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2008/02/11/seo-flash-programming/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Search Engine Optimization</title>
		<link>http://kimkijeung.com/2008/02/08/search-engine-optimization/</link>
		<comments>http://kimkijeung.com/2008/02/08/search-engine-optimization/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 07:38:54 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Flash-Tip]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Optimization]]></category>
		<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://vkimone.inblog.kr/?p=523</guid>
		<description><![CDATA[SEO . 일명 검색엔진최적화 로서 구축하고 있는 웹사이트를 각종검색엔진에 잘 검색되도록 환경을 마련해 주는 것이다. 어찌보면 사용자를 위한 것이 아니라 로봇(spider. 검색엔진)들의 입맛에 맞게 데이타를 정리해주는 것으로 볼 수 있다. 하지만 검색엔진에 노출이 잘 되도록 한다는 의미는 사용자에게 보다 많고 정확한 정보를 전달하기 위한 과정으로 생각할 수 있다. 따라서 궁극적으로 SEO 는 사용자에게 보다 나은 [...]]]></description>
			<content:encoded><![CDATA[<p>SEO . 일명 검색엔진최적화 로서 구축하고 있는 웹사이트를 각종검색엔진에 잘 검색되도록 환경을 마련해 주는 것이다. 어찌보면 사용자를 위한 것이 아니라 로봇(spider. 검색엔진)들의 입맛에 맞게 데이타를 정리해주는 것으로 볼 수 있다. 하지만 검색엔진에 노출이 잘 되도록 한다는 의미는 사용자에게 보다 많고 정확한 정보를 전달하기 위한 과정으로 생각할 수 있다. 따라서 궁극적으로 SEO 는 사용자에게 보다 나은 검색 환경을 제공한다고 그 의미를 확장할 수도 있을 것이다.</p>
<p>물론 SEO 의 본래 목적은 마케팅 목적이다. 우리나라 포털들의 검색엔진은 대부분이 영리를 목적으로 서비스를 하기 때문에 아무리 사이트 개발자들이 SEO 를 충실히 따른다 해도 검색엔진 상위에 랭크될 수 없다. 여기서 다루는 것은 비영리를 목적으로 하는 검색엔진 , 다시말해 특별한 광고료를 지불하지 않아도 검색엔진에 노출되는 google 을 대표적인 모델로 삼고 글을 쓸 것이다.<br />
물론 구글도 sponsored link 라고 하여 유료광고가 최상단에 등장하긴하지만 그것은 논외로 하겠다.<br />
전세계 검색엔진의 거의 60%를 점유하고 있는 구글에서만 제대로 검색된다면 다른 검색엔진에서도 같은 결과를 얻을 수 있을 것이다.</p>
<p><strong>How Search Engines work</strong><br />
검색엔진은 스파이더(spider)라고 하는 로봇들로 하여금 전세계 웹페이지를 돌아다니게 하면서 페이지의 컨텐츠를 읽고 분석하여 데이터베이스에 저장한다. 이를 인덱싱(indexing) 라고 하는데, 스파이더가 페이지의 데이타를 제대로 읽지 못하면 그 페이지는 검색엔진 색인에서 제외되는 것이다.</p>
<p>스파이더가 페이지의 데이타를 분석하는 기준은 크게 다음과 같이 정리할 수 있다.<br />
<strong> &#8211; 해당페이지가 무엇에 관한 내용인가? (키워드의 반복횟수)<br />
- 페이지에서 키워드 위치 (페이지 상단에 있는것이 더 좋은 랭킹포인트를 얻을 수 있음)<br />
- 키워드가 어떻게 표현되어있는가? (대소문자,볼드체와 같은 스타일)<br />
- 해당페이지와 연결된 링크는 어떤것이며 그 링크들의 중요도는 어떠한가?</strong></p>
<p>위의 사항들이 가장 기본적인 것이지만 검색엔진이 제대로 크롤링을 할 수 없는 수많은 문제점들이 웹상에는 존재한다.<br />
그 문제점들의 대표적인 것이 안타깝게도 flash 컨텐츠 이다. flash 컨텐츠에 대한 구글의 인덱싱 수준은 상당히 실망스런 수준이다. 전세계 수많은 웹사이트를이 flash로 제작되고 있고 그에 대한 데이타의 양도 상대적으로 어머어마하게 많아지고 있다. 하지만 검색엔진은 flash 컨텐츠 내부에 있는 텍스트나 링크정보를 가져오지 못한다. 할 수 있더라도 아주 미미한 수준이다. 아마도 가까운 미래에 해결 될 사항은 아닌것 같다. flash 컨텐츠의 SEO 대해서는 다음 포스트에서 더 자세히 살펴볼 것이다.</p>
<p>- 구글에서는 사이트 URL 파라미터로 session ID 를 사용하는것이 스파이더가 인덱싱을 할 수 없게 만드는 것이라고  경고하고 있다.</p>
<p>- 그리고 너무 복잡한 사이트 구조도 문제가 있다. 단방향 사이트 폴더 구조일 수록 스파이더에게  좀더 많은 페이지를 인덱싱할 수 있는 기회를 제공하게 되는데 되도록이면 폴더깊이는 3~5정도를 유지하는것이 가장 좋다. 구글스파이더는 6개의 폴더를 넘에가게 되면 잘못된 링크를 가져오게 되거나 아예 인덱싱을 안하는 경우가 있다.</p>
<p>- Redirect 는 되로록이면 피하는 것이 좋은데 불가피하게 사용할 경우 반드시 301 redirect 만을 사용해야한다. 302 redirect 를 사용할 경우 페널티를 받게 되어 랭킹포인트가 떨어지게 된다.</p>
<p>이외에도 robot.txt 파일의 설정으로 스파이더를 아예차단하는 경우, 자바스크립트나 복잡한 테이블그리고 그래픽이미지나 이미지 맵의 경우 페이지 자체를 인덱싱하지 못하는 경우가 있다.<br />
상당수의 html 페이지는 주요컨텐츠 정보가 나오기 전에 자바스크립트코드나 css코드들로 꽉채워져 있는 경우가 있다. 150~200 라인 안쪽으로 해당페이지의 메인 키워드정보가 나와야지만 검색엔진의 랭킹포인트를 얻을 수가 있다. 따라서 자바스크립트코드나 css코드는 되도록이면 외부파일로 만들어 연결하고 그래픽이미지는 반드시 alt 속성을 제공하여 검색엔진에게 정보를 제공해야 할 것이다.</p>
<p>정리하면, SEO 를 위한 컨텐츠 작성방법은<br />
1. 반드시 title 태그와 meta태그를 작성한다. 이것이 검색엔진의 랭킹포인트를 얻는 가장 중요한 방법중의 하나이다.<br />
2. 적절한 키워드를 작성한다. H1 태그, 링크텍스트틀 포함하여 작성한다. 해당페이지의 링크가 많으면  많을수록 좋다. 단 링크는 정확한 정보를 제공해야할 것이다. 허위링크나 불필요한 키워드의 반복으로 인해 페널티를 부여받을경우 인덱싱에서 제외될 것이다.<br />
3. 대체페이지의 작성. 플래시사이트의 경우 대체페이지로서 primary HTML 을 제작한다.</p>
<p>개인적으로 SEO 측면을 간과해서는 안된다는 점을 인지하고 있다. 하지만 이것이 주가 되어 혹시나 SEO 면에서 문제라고 할 수 있는 flash 컨텐츠를 사용하지 말자고 하는것은  주객전도라고 말하고 싶다. 사용자에게 보다 풍부한 UX 를 느끼게하는  이점이 SEO에 묻혀버리기에는 그 경험이 너무 큰 가치가 있다고 생각한다. 물론 너무 과도한 flash 컨텐츠의 사용은 지양해야겠지만 말이다.</p>
<p>다음 포스트에서는 flash 컨텐츠에서의  SEO 측면에 대해  자세히 살펴볼 것이다. 텍스트기반의 페이지의 인덱싱 수준은 아니지만 flash 를 사용하면서도 충분히 SEO 를 고려할 수 있는 방법론적 접근을 제시할 수 있을 것이다.</p>
<p><strong>reference from article below<br />
</strong>-How Google crawls my site<br />
(<a href="http://www.google.com/support/webmasters/bin/topic.py?topic=8843&amp;hl=en">http://www.google.com/support/webmasters/bin/topic.py?topic=8843&amp;hl=en</a>)<br />
-A modern approach to Flash SEO<br />
(<a href="http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/">http://blog.deconcept.com/2006/03/13/modern-approach-flash-seo/</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2008/02/08/search-engine-optimization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FDT : Not enough memory</title>
		<link>http://kimkijeung.com/2007/12/03/fdt-not-enough-memory/</link>
		<comments>http://kimkijeung.com/2007/12/03/fdt-not-enough-memory/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 17:13:11 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Flash-Tip]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://vkimone.inblog.kr/?p=515</guid>
		<description><![CDATA[FDT를  3.0.2 build 1001  버전으로 업데이트를 하고 나서 이클립스에 메모리가 부족하다는 메시지가 생겨났다. 이전까지 별 무리없이 쓰고 있었는데 작업을 앞두고 갑자기 먹통이 되어버리니 참 답답할 노릇이였다. 아마도 여러가지 기능이 추가되면서 필요로 하는 메모리가 늘어난듯 싶다. 찾아보니 fdt 포럼에도 이같은 문제가 제기되었는데 단순히 아래 메시지가 나오는 것과 같이 설치폴더에 있는 eclipse.ini 환경설정 파일의 메모리 최대 사용량을 늘려주라는 [...]]]></description>
			<content:encoded><![CDATA[<p align="left">FDT를  3.0.2 build 1001  버전으로 업데이트를 하고 나서 이클립스에 메모리가 부족하다는 메시지가 생겨났다. 이전까지 별 무리없이 쓰고 있었는데 작업을 앞두고 갑자기 먹통이 되어버리니 참 답답할 노릇이였다. 아마도 여러가지 기능이 추가되면서 필요로 하는 메모리가 늘어난듯 싶다.<br />
찾아보니 fdt 포럼에도 이같은 문제가 제기되었는데 단순히 아래 메시지가 나오는 것과 같이 설치폴더에 있는 eclipse.ini 환경설정 파일의 메모리 최대 사용량을 늘려주라는 이야기 뿐이였다.</p>
<p align="left"><img class="alignnone size-full wp-image-517" title="eclipse memory" src="http://kimkijeung.com/blog/wp-content/uploads/2007/12/1272737987.jpg" alt="1272737987" width="495" height="158" /></p>
<p>물론 메로리 설정을 변경하고 이상이 없다면 다행이지만 나의 경우에는 -Xmx512 로 설정할 경우 eclipse 런처가 실행조차 안되는 문제가 발생한다. 한참만에 이것이 <span class="pcol1 itemSubjectBoldfont"><strong>Eclipse 3.3.1</strong> 버전의 런처가  Sun VM 을 인식못하는 버그가 있다는 사실을 알아냈다.</span></p>
<p><span class="pcol1 itemSubjectBoldfont"><a href="http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F">http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F</a><br />
</span><br />
따라서 이러한 문제를 해결하려면  eclipse.ini 파일을 약간 수정해야한다.</p>
<p><strong>&lt;original eclipse.ini&gt;</strong><br />
<span style="color: #008000;"><span style="color: #008000;">-showsplash<br />
<span style="color: #d41a01;"><span style="color: #008000;">org.eclipse.platform<br />
</span>&#8211;launcher.XXMaxPermSize   &#8212;&#8212;-&gt; remove</span><br />
<span style="color: #d41a01;">256m                        &#8212;&#8212;&#8211;&gt;remove</span><br />
-vmargs<br />
-Xms40m<br />
</span></span><span style="color: #0000ff;">-Xmx256m                  &#8212;&#8212;&gt; replace -Xmx256m to -Xmx512m<br />
</span></p>
<p>eclipse.ini 을 열면 위와 같은 코드를 볼 수 있을 것이다.<br />
FDT3.0 을 위해 최대 사용할 메모리를 늘리려면  맨 아래줄의 -Xmx256m 부분의 숫자 부분을 512 이상으로 변경해주면 된다. (자신의 메모리 용량에 따라 512이상으로 적절하게 설정해주면된다.)</p>
<p>그리고 붉은색 코드부분을 모두 삭제해준다.</p>
<p><strong>&lt;revised eclipse.ini&gt;</strong><br />
<span style="color: #008000;">-showsplash<br />
org.eclipse.platform<br />
-vmargs<br />
-Xms40m<br />
-Xmx512m</span></p>
<p>위과 같이 수정해 주면 이클립스 메모리 문제를 해결할 수 있을 것이다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2007/12/03/fdt-not-enough-memory/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Remove SVN Folders(Shell scripting)</title>
		<link>http://kimkijeung.com/2007/11/26/remove-svn-foldersshell-scripting/</link>
		<comments>http://kimkijeung.com/2007/11/26/remove-svn-foldersshell-scripting/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 08:51:52 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.svn]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://vkimone.inblog.kr/?p=513</guid>
		<description><![CDATA[요즘들어  상당 수의 플래시 오픈소스 개발로 인해 버전관리 프로그램을 많이들 사용하고 있다. 버전관리의 효율적인 측면에서는 인정하지만 최종소스을 공유할 시 각 폴더에 들어있는 .svn 폴더로 인해 상당히 괴로울(?) 때가 있을 것이다. 물론  대표적인 Subversion 윈도우용 쉘프로그램인 TortoiseSVN 에서는 최종소스를 익스포트할 수 있게 해주는 기능이 존재하지만 이 기능은 해당 SVN 시스템에 귀속된 채 관리되는 것이라 만약 내부의 [...]]]></description>
			<content:encoded><![CDATA[<p>요즘들어  상당 수의 플래시 오픈소스 개발로 인해 버전관리 프로그램을 많이들 사용하고 있다.</p>
<p>버전관리의 효율적인 측면에서는 인정하지만 최종소스을 공유할 시 각 폴더에 들어있는 .svn 폴더로 인해 상당히 괴로울(?) 때가 있을 것이다.</p>
<p>물론  대표적인 Subversion 윈도우용 쉘프로그램인 TortoiseSVN 에서는 최종소스를 익스포트할 수 있게 해주는 기능이 존재하지만 이 기능은 해당 SVN 시스템에 귀속된 채 관리되는 것이라 만약 내부의 .svn 폴더가 임의로 삭제되었거나 변경이 되었을시 익스포트를 못 할 경우도 있다.</p>
<p>하지만 아래와 같이 shell script 를 이용하여 레지스트리를 편집하면  전혀 SVN 프로그램에 영향받지 않고서도 손쉽게 .svn 폴더를 삭제할 수 있게된다.</p>
<p>Windows Registry Editor Version 5.00</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]<br />
@=&#8221;Delete SVN Folders&#8221;</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]<br />
@=&#8221;cmd.exe /c \&#8221;TITLE Removing SVN Folders in %1 &amp;&amp; COLOR 9A &amp;&amp; FOR /r \&#8221;%1\&#8221; %%f IN (.svn) DO RD /s /q \&#8221;%%f\&#8221; \&#8221;"</p>
<p>사용방법은</p>
<p><strong>1. 임의의 텍스트 파일을 생성한다.<br />
2. 위 스크립트를 복사하여 붙여넣기를 한다.<br />
3. 파일명을 deleteSvn.reg 로 변경한다. (파일이름은 상관없다 단, 확장자는 reg)<br />
4. 생성한 reg 파일을 더블클릭하여 레지스트리에 등록한다.<br />
</strong><br />
위 과정을 거친후에  .svn 을 포함하고 있는 폴더에 마우스를 가져다가 우클릭을 하면<br />
&#8216;Delete SVN Folders&#8217; 라는 새로운 메뉴가 보일 것이다.<br />
이 명령을 실행하면 그 폴더를 포함하여 자식폴더까지 모든 .svn 폴더가 삭제될 것이다.</p>
<p>단, 주의사항은 반드시 .svn 폴더를 제거하려고 하는 소스의 복사본으로 실행을 해야한다는 것이다.<br />
그렇지 않으면 원본 svn 폴더가 삭제될 것이다.</p>
<p><a href="/blog/wp-content/uploads/2009/12/deleteSvn.reg_.zip" target="_self">download registry file</a></p>
<p>reference from article below<br />
<a href="http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx">http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2007/11/26/remove-svn-foldersshell-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse and Mac OS X</title>
		<link>http://kimkijeung.com/2006/07/12/eclipse-and-mac-os-x/</link>
		<comments>http://kimkijeung.com/2006/07/12/eclipse-and-mac-os-x/#comments</comments>
		<pubDate>Wed, 12 Jul 2006 12:56:41 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://vkimone.inblog.kr/?p=237</guid>
		<description><![CDATA[[퍼온글] 출처 http://developer.apple.com/tools/eclipse.html Editor&#8217;s Note: To learn more about Eclipse and Java development on Mac OS X, register for the Apple Worldwide Developers Conference 2004. Thanks to its highly optimized but fully standard Java implementation, Mac OS X has garnered a reputation amongst developers as an excellent platform for developing and deploying Java applications. The most [...]]]></description>
			<content:encoded><![CDATA[<p class="editorial">[퍼온글] 출처 <a href="http://developer.apple.com/tools/eclipse.html" target="_blank">http://developer.apple.com/tools/eclipse.html</a></p>
<p class="editorial">Editor&#8217;s Note: To learn more about Eclipse and Java development on Mac OS X, register for the <a class="con_link" href="http://developer.apple.com/wwdc/index.html" target="_blank">Apple Worldwide Developers Conference 2004</a>.</p>
<p>Thanks to its highly optimized but fully standard Java implementation, Mac OS X has garnered a reputation amongst developers as an excellent platform for developing and deploying Java applications. The most recent release of Eclipse, the well-respected open-source IDE, for Mac OS X only strengthens the case, as this flexible and highly extensible tool is a favorite of many Java developers. This article provides a quick overview of Eclipse for Mac OS X and explains how to download the latest version and get started.</p>
<p><strong>What is Eclipse?</strong></p>
<p>Eclipse was originally designed for building integrated development environments (IDEs), that were versatile enough to create applications for a range of programming languages. The intention was to provide tools makers with an IDE that would include mechanisms and rules that would consistently result in seamless tools integration. Since then, Eclipse has evolved to include an IDE that provides benefits for a wide range of development projects.</p>
<p>Because it is Java-based, Eclipse includes the Java Development Kit (JDK); and yet its architecture supports all major programming languages from C/C++ to Cobol.</p>
<p>Eclipse is a free download, and is available on a number of platforms. Since IBM launched Eclipse in November 2001, more than 18 million download requests have been logged from over 125 countries.</p>
<p>A growing consortium of high-profile companies and organizations are actively supporting and extending Eclipse&#8217;s ongoing development and giving the platform momentum. These organizations contribute support and technology, and they determine the direction and scope of Eclipse&#8217;s growth.</p>
<p><strong>Highly Extensible</strong></p>
<p>Because it is a highly extensible, open framework, Eclipse allows you to use—and create your own—plug-in tools to extend the basic Eclipse IDE for developing your applications.</p>
<p>This means that if you are developing an application using Eclipse for Mac OS X, and you need a special tool to facilitate development on your project, you can choose from literally hundreds of available plugin tools that work seamlessly with Eclipse and with any of the plugin tools you are using.</p>
<p>These plugins, which have been developed by a wide variety of companies and individuals, run the gamut from traditional coding tools such as source code analyzers, graphical layout tools, and compilers to productivity enhancers like bug trackers, source code managers, and even games. When you download and unzip the plugin tools, they are automatically integrated into the Eclipse framework enabling you to create high-quality applications in less time.</p>
<p>Eclipse&#8217;s architecture has fostered a worldwide community of plugin developers. As more plugins are created that address the entire development cycle, Eclipse becomes increasingly useful, and popular.</p>
<p>The range of plugins is amazing. One biotech consultant uses the Jmechanic plugin, saying, &#8220;our clients could quickly identify many performance problems, and could then decide whether it was something they wanted to fix, outsource, or live with.&#8221; Using the Eclipse plugin saved licensing costs, and gave each developer on their team the freedom to run a time profile before checking in their code.</p>
<p>Another developer uses Eclipse as his primary IDE, and says, &#8220;the Sysdeo Tomcat launcher plugin is essential for my daily work, because it allows me to do runtime debugging of my web application from within Eclipse.&#8221;</p>
<p>Figure 1 shows the Eclipse user interface on Mac OS X, with an open example of a sample plug-in project.</p>
<p><img class="alignnone size-full wp-image-737" title="eclipse_plugin" src="http://kimkijeung.com/blog/wp-content/uploads/2006/07/eclipse_plugin-e1270996896727.jpg" alt="" width="500" height="338" /></p>
<p class="smalltext"><strong>Figure 1:</strong> Eclipse User Interface on Mac OS X</p>
<p><strong>Speed development</strong></p>
<p>You will quickly discover that one of the reasons Eclipse is popular with developers is that it is intuitive to learn and use. The Eclipse framework includes the workbench component that provides Eclipse with its user interface, a collection of views and editors. When you select a perspective, you are specifying the set of tools you need to use for the task at hand. This elegant workbench metaphor makes the Eclipse environment highly intelligent.</p>
<p>Eclipse&#8217;s features are well implemented and very effective, and are designed to increase the speed of the development cycle by automating tedious tasks that distract you from coding.</p>
<p>Other strengths include built-in CVS integration that makes it convenient to synchronize code with the CVS server. One Eclipse user says, &#8221; the Synchronize view makes it easy to merge changes and view changes before I decide to update. The Annotation view allows me to determine when each line of a file was added and who added it. This feature is great for tracking down bugs.&#8221;</p>
<p>Eclipse integrates a best-of-breed implementation of features such as:</p>
<ul class="inline">
<li>Code Refactoring &#8211; Allows you to reorganize and make other global changes to your code such as changing the name of a method or changing parameters. Refactoring is a way of making system-wide code changes without affecting the behavior of the program.</li>
<li>Content Assist &#8211; Displays a list of phrases that you can select from to complete what you are typing when editing Java code. This list is based on an ongoing analysis of your Java code.</li>
<li>Quick Fix &#8211; Enables you to correct a wide variety of problems, from spelling errors and missing import statements to declaring local variables and classes. The Java editor offers corrections to problems found while typing and after compiling.</li>
<li>Extract Method &#8211; Creates a method for the highlighted code.</li>
<li>Unit Testing &#8211; Provides you with an easy way to run all tests in a specified Java project, source folder, or package.</li>
<li>Import Management &#8211; Provides you with several features that help you manage import statements.</li>
<li>Documentation Lookup &#8211; Displays documentation relating to the method you point to with the cursor. The comment displayed shows the method name, documentation for method parameters, and the return value.</li>
<li>Debugger &#8211; Enables you to detect and diagnose errors in your programs running either locally or remotely. The debugger includes &#8220;hot code replace&#8221; that allows you to change source code during a debugger session.</li>
</ul>
<p><strong>Cross-Platform Development Teams</strong></p>
<p>When used with Eclipse, Mac OS X supports heterogeneous development teams, enabling you to mix Mac OS X, Linux, UNIX and XP computing environments. This means that if you have a dozen Windows users and a dozen Mac users on your development team, these team members on different platforms can work on the same project without barriers.</p>
<p>Eclipse is great for organizing multiple projects with a large team of developers who can work collaboratively. &#8220;I found that Eclipse gave us a very clear picture of the hundred or so interlocking projects at one client&#8221; a developer told us. &#8220;It made it easy to see where these projects connected, and allowed us to refactor core libraries easily.&#8221; This developer explained that their bid to reduce inter-project dependencies for a client required splitting a dozen core projects into separate units. With Eclipse, one of their team finished the coding work in under a week. He says, &#8220;I suspect that the manual method would have taken a month, and thus would not have been cost effective. You cannot have your core libraries in turmoil for that long.&#8221;</p>
<p>In fact, in some industries, such as biotech, a significant percentage of developers currently are using Mac OS X and PowerBooks because they can develop applications for Mac, Windows, Linux, and Solaris deployments, with one box. Our biotech developer says, &#8220;Most of our work is in Java, though we also do Perl, C++, MATLAB, and whatever else our clients ask. We choose this platform because the Java implementation is good, we have access to a full underlying Unix layer, and we have a good suite of productivity applications. Without Mac OS X, we would likely have to carry around two different machines, with a dual boot Linux option on at least one of them.&#8221;</p>
<p><strong>Why Do Java Development on the Mac?</strong></p>
<p>The ease of use of Mac OS X, the power and stability of UNIX, the integration of Java into Mac OS X and the availability of great development environments like Eclipse make the Mac a great Java development environment.</p>
<p>UNIX users feel at home in Darwin, the robust UNIX-based environment that underlies Mac OS X. That environment is accessible at any time from the Terminal application. All of the standard UNIX utilities and scripting languages are included in Mac OS X—editors such as emacs, vim and pico; file management tools such as cp, mv, ls and gnutar; shell scripts including bash, tcsh (csh) and zsh; and scripting languages such as Perl, PHP, tcl, Ruby and Python. For Java-based web engineers, Apache, Tomcat and JBoss are also included, so you can do JSP development or enterprise class J2EE applications.</p>
<p>Mac OS X also gives you a highly mobile platform. The PowerBook series provides a high-powered workstation that is completely portable and allows you to pick up and go, and then quickly resume work at a new location. Even as you open your laptop, network connections are being reestablished and the computer is immediately up and running.</p>
<p>Apple has made Java a core component of Mac OS X—every Mac ships with the full version of Java 2, Standard Edition included—meaning you have the Java Developer Kit (JDK) and the HotSpot virtual machine (VM) without downloading, installing or configuring anything. And because Apple has optimized Java on Mac OS X, Java applications act as first-class citizens on Mac OS X.</p>
<p>In addition to Eclipse many of the industry leading tools are available, including IntelliJ&#8217;s IDEA, Borland&#8217;s JBuilder, Oracle&#8217;s JDeveloper, and Sun&#8217;s NetBeans, just to name a few. Mac OS X also includes free developer tools which support rapid Java development right out of the box.</p>
<p><strong>Getting Started</strong></p>
<p>You can get a copy of Eclipse by visiting the Eclipse download page and downloading the latest build. (The current version of Eclipse requires Mac OS X v10.3 Panther.) All builds are delivered as .ZIP files.</p>
<p>Download and install Eclipse</p>
<ol class="inline">
<li>Using your Safari browser, go to the <a class="con_link" href="http://www.eclipse.org/" target="_blank">eclipse.org</a> Website.</li>
<li>Click Downloads.</li>
<li>Click Main Eclipse Download Site. If you are not located in North America, use the mirror site closet to your location.</li>
<li>Click the name of the Release Build you want. At the time of this writing, the &#8220;3.0 Stream Stable Build&#8221; is the latest developer preview of version 3.0. This version is currently fine for daily use.</li>
<li>Under &#8220;Eclipse SDK, find &#8220;Mac OSX (Mac/Carbon) (Supported Versions)&#8221;—the file name is also displayed. Select either the HTTP or FTP download option.</li>
<li>After reading the Notes, click &#8220;Download&#8221; at the bottom of the page.</li>
<li>When the download is complete, unzip the archive into the appropriate folder.(Older versions of Stuffit truncated file names and caused problems with Eclipse. Make sure you are using the appropriate version.)Your installation is now complete.</li>
<li>Click the Eclipse icon to launch the IDE.</li>
</ol>
<p>The first time you run Eclipse, it completes a few remaining install tasks—such as creating a workspace directory—before the Eclipse environment appears.</p>
<p>Work through the tutorials</p>
<p>With Eclipse installed and running, you can begin by looking at an overview of Eclipse features and plugins installed on your system, and then doing a tutorial that guides you through building a simple Java application.</p>
<p>To see the overview of the Eclipse features: from the Help menu, choose <code><span style="font-family: 굴림체;">About Eclipse Platform</span></code></p>
<p>To do a tutorial on building a simple Java application: from the Help menu, choose <code><span style="font-family: 굴림체;">Java Development User Guide &gt; Getting Started &gt; Basic Tutorial </span></code></p>
<p>Resources for More Information</p>
<ul class="inline">
<li>Attend the Apple <a class="con_link" href="http://developer.apple.com/wwdc/" target="_blank">Worldwide Developer Conference 2004</a>, which will include a number of sessions on <a class="con_link" href="http://developer.apple.com/wwdc/descriptions/descriptions-eit.html" target="_blank">Java</a> and on <a class="con_link" href="http://developer.apple.com/wwdc/descriptions/descriptions-dt.html" target="_blank">Development Tools</a>, including one on Eclipse.</li>
<li>Mailing lists: <a class="con_link" href="http://www.eclipse.org/mail/index.html" target="_blank">www.eclipse.org/mail/index.html</a></li>
<li>Plugin archives: <a class="con_link" href="http://www.eclipse-plugins.info/eclipse/index.jsp" target="_blank">www.eclipse-plugins.info/eclipse/index.jsp </a></li>
<li>Join community: <a class="con_link" href="http://www.eclipse.org/community/index.html" target="_blank">www.eclipse.org/community/index.html </a></li>
<li><a class="con_link" href="http://www.sourcebeat.com/TitleAction.do?id=2" target="_blank">Eclipse Live</a>, by Bill Dudney (paid subscription).</li>
<li><a class="con_link" href="http://www.oreilly.com/catalog/eclipse" target="_blank">Eclipse</a>, by Steve Holzner.</li>
</ul>
<p><strong>Posted:</strong> 2004-06-07</p>
<p><!-- END WIDE COLUMN --><!-- END MAIN CONTENT --><!-- START BOTTOM APPLE NAVIGATION --><!-- googleoff: index --><!-- START FOOTER TABLE --></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2006/07/12/eclipse-and-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>java에서 리소스 사용의 균형</title>
		<link>http://kimkijeung.com/2006/05/24/the-resource-balance-in-java/</link>
		<comments>http://kimkijeung.com/2006/05/24/the-resource-balance-in-java/#comments</comments>
		<pubDate>Wed, 24 May 2006 12:53:53 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://localhost:8888/blog/?p=138</guid>
		<description><![CDATA[C++과 달리 자바에서는 게으른 방식의 자동 객체 삭제를 사용한다. 참조가 없는 객체들은 가비지 콜랙션(garbage collection)의 후보가 되며, 만약 가비지 콜랙션이 그 객체들을 지우려고 하기만 한다면, 객체의 finalize 메서드가 호출될 것이다. 더이상 대부분 메모리 누수 책임을 지지 않게 되어 개발자에게는 아주 편해진 일이지만, C++방식대로 자원을 청소하도록 구현하기는 어려워졌다. 다행스럽게도 사려깊은 자바 언어의 설계자들은 이것을 보상하기 위한 [...]]]></description>
			<content:encoded><![CDATA[<p>C++과 달리 자바에서는 게으른 방식의 자동 객체 삭제를 사용한다. 참조가 없는 객체들은 가비지 콜랙션(garbage collection)의 후보가 되며, 만약 가비지 콜랙션이 그 객체들을 지우려고 하기만 한다면, 객체의 finalize 메서드가 호출될 것이다.</p>
<p>더이상 대부분 메모리 누수 책임을 지지 않게 되어 개발자에게는 아주 편해진 일이지만, C++방식대로 자원을 청소하도록 구현하기는 어려워졌다.</p>
<p>다행스럽게도 사려깊은 자바 언어의 설계자들은 이것을 보상하기 위한 기능 하나를 추가해두었다.</p>
<p>finally 절이 그것이다. try 블록에 finally절이 들어있다면, 그절안의 코드들은 try 블록 안의 코드가 한문장이라도 실행되면 반드시 실행되도록 되어있다. 예외가 던져지더라도 상관없다.</p>
<p>finally 절 안의 코드는 반드시 실행된다. 이말은 다음과 같은 코드로 리소스 사용의 균형을 잡을 수 있다는 뜻이다.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> dosomething<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">IOException</span><span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #003399;">File</span> tmpFile <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">File</span><span style="color: #009900;">&#40;</span>tmpFileName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #003399;">FileWriter</span> tmp <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">FileWriter</span><span style="color: #009900;">&#40;</span>tmpFile<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
               <span style="color: #666666; font-style: italic;">//실행코드</span>
       <span style="color: #009900;">&#125;</span>
       <span style="color: #000000; font-weight: bold;">finally</span><span style="color: #009900;">&#123;</span>
               tmpFile.<span style="color: #006633;">delete</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>이 루틴에서 사용한 임시파일은 루틴에서 어떻게 나가든 지워야 한다.<br />
finally 블록이 이렇게 간결하게 해결해 준다.</p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2006/05/24/the-resource-balance-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP redirection</title>
		<link>http://kimkijeung.com/2006/05/17/php-redirection/</link>
		<comments>http://kimkijeung.com/2006/05/17/php-redirection/#comments</comments>
		<pubDate>Wed, 17 May 2006 10:33:43 +0000</pubDate>
		<dc:creator>vkimone</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[redirection]]></category>

		<guid isPermaLink="false">http://localhost:8888/blog/?p=121</guid>
		<description><![CDATA[1. 먼저 메타테그를 이용한 방법 &#60;? echo &#8220;&#60;meta http-equiv=&#8217;refresh&#8217; content=&#8217;0; url=http://kimkijeung.com&#8217;&#62;&#8221;; ?&#62; 현재 가장 많이들 쓰고 있는 방법이고 url 다음에 해당 경로를 넣어주면 되고 절대경로 상대경로에 관계없으며 또한 파라미터의 전달 등도 가능하다. 시간설정(초단위)을  하면 원하는 시간동안 딜레이도 가능 2. 자바스크립트를 이용한 방법 &#60;? echo &#8220;&#60;script&#62; document.location.href=http://kimkijeung.com&#8217;; &#60;/script&#62;&#8221;; ?&#62; . 또 다른 방법 &#60;? echo &#8220;&#60;script&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>1. 먼저 메타테그를 이용한 방법<br />
<span style="color: #ff0000;"><br />
&lt;?<br />
echo &#8220;&lt;meta http-equiv=&#8217;refresh&#8217; content=&#8217;0; url=http://kimkijeung.com&#8217;&gt;&#8221;;<br />
?&gt; </span></p>
<p>현재 가장 많이들 쓰고 있는 방법이고 url 다음에 해당 경로를 넣어주면 되고 절대경로 상대경로에 관계없으며 또한 파라미터의 전달 등도 가능하다.<br />
시간설정(초단위)을  하면 원하는 시간동안 딜레이도 가능</p>
<p>2. 자바스크립트를 이용한 방법<br />
<span style="color: #ff0000;"><br />
&lt;?<br />
echo &#8220;&lt;script&gt; document.location.href=http://kimkijeung.com&#8217;;<br />
&lt;/script&gt;&#8221;;<br />
?&gt; </span></p>
<p>. 또 다른 방법<br />
<span style="color: #ff0000;">&lt;?<br />
echo &#8220;&lt;script&gt;</span><br />
<span style="color: #ff0000;">window.location.replace(http://kimkijeung.com&#8217;);</span><br />
<span style="color: #ff0000;">&lt;/script&gt;&#8221;;</p>
<p>?&gt; </span></p>
<p>변수전달가능하고 상대경로도 가능합니다. 딜레이는 자바스크립트를 이용하면 가능</p>
<p>3. 헤더를 이용한 방법<br />
<span style="color: #ff0000;">&lt;?<br />
header(&#8220;Location: http://kimkijeung.com&#8221;);<br />
?&gt; </span></p>
]]></content:encoded>
			<wfw:commentRss>http://kimkijeung.com/2006/05/17/php-redirection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

