<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>yundream의 프로그래밍 이야기</title>
	<link>http://yundream.egloos.com</link>
	<description>이것 저것 프로그래밍 관련 잡다한 것들</description>
	<language>ko</language>
	<pubDate>Mon, 16 Apr 2007 15:18:18 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>yundream의 프로그래밍 이야기</title>
		<url>http://md.egloos.com/img/samplelogo2.gif</url>
		<link>http://yundream.egloos.com</link>
		<width>80</width>
		<height>80</height>
		<description>이것 저것 프로그래밍 관련 잡다한 것들</description>
	</image>
  	<item>
		<title><![CDATA[ 이글루스 포스팅을 중단합니다. ]]> </title>
		<link>http://yundream.egloos.com/148770</link>
		<guid>http://yundream.egloos.com/148770</guid>
		<description>
			<![CDATA[ 
  이글을 마지막으로 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://yundream.egloos.com/"><span style="COLOR: #336699">이글루스</span></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=블로그"><span style="COLOR: #3399cc">블로그</span></a> 의 포스팅을 중단합니다.이유는 다음과 같습니다.<br><ol type="1"><li>JavaScript를 사용할 수 없다.<br><div class="indent"><a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=검색엔진"><span style="COLOR: #3399cc">검색엔진</span></a> 개발 관련일을 하고 있으며, Web2.0 과 관련된 기술들에 많은 관심을 가지고 있습니다. 그러다 보니 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=ajax"><span style="COLOR: #3399cc">ajax</span></a>와 관련된 페이지들을 포스팅해야될 필요가 많습니다. <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://yundream.egloos.com/33816"><span style="COLOR: #336699">구글 search API</span></a>, <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://yundream.egloos.com/33568"><span style="COLOR: #336699">구글 News Bar 서비스</span></a> 과 같은 글들이죠. 그런데 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=JavaScript"><span style="COLOR: #3399cc">JavaScript</span></a>가 막혀있다보니, 제대로된 포스팅을 할 수가 없습니다. <br></div><li>테터툴즈라는 좋은 툴의 등장<br><div class="indent">개인적으로 서버호스팅을 하고 있습니다. 그렇다면 테터툴즈와 같은 설치형 블로그를 이용해서 더욱 자유로운 블로깅환경을 구축할 수 있으리라 생각했습니다.<br></div><li>팀블로그 프로젝트<br><div class="indent">최근 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Team_Blog"><span style="COLOR: #336699">팀블로그</span></a>프로젝트를 시작했습니다. 그러다 보니 제어가능한 블로깅환경이 필요하게 되었고, 최종적으로 테터툴즈를 선택하기에 이르렀습니다.<br></div><li>비교적 짧은 블로깅 역사<br><div class="indent">블로그를 최근에 시작했습니다. 그러다 보니, 포스트양도 그리 많지 않고 옮기는데 그리 부담이 될거 같지가 않더군요. 이글루스를 쉽게? 떠날 수 있는 또하나의 이유가 되었습니다.<br><br></div></li></ol>앞으로 모든 포스트는 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://teamblog.joinc.co.kr/yundream"><span style="COLOR: #336699">yundream의 프로그래밍 이야기</span></a>를 통해서 이루어질 겁니다. 현재 블로그 데이터 옮기는 중입니다. 그럼 행복한 날들 되시구요. 이글루스에서의 포스팅은 이만 접을까 합니다.<br>			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/148770#comments</comments>
		<pubDate>Mon, 16 Apr 2007 15:18:18 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 스프링노트를 생각하다. ]]> </title>
		<link>http://yundream.egloos.com/137730</link>
		<guid>http://yundream.egloos.com/137730</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/Sprint_Note">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/Sprint_Note</a><br><br>엔씨 소프트에서 얼마전에 위키기반의 저작시스템인 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://www.springnote.com/ko/"><span style="COLOR: #3399cc">스프링노트</span></a>를 선보였습니다. 나름 위키마니아를 자처하는 입장에서 그냥 넘어갈 수는 없어서 두어마디 해보려고 합니다. <br><br><div>앞서 말씀드렸듯이, 저는 자칭 위키마니아 이고 (아마도)국내만을 놓고 본다면, 기업이든 개인이든을 막론하고 위키의 시스템을 가장잘 이해하고 있으며, 가장 잘 활용는 사람중 한명일 것이라고 생각합니다. 세계무대로 확장한다고 해도 개인으로 이정도 운영하는 곳은 흔치 않을 거란 생각입니다. <br><br><div><h3><a id="s-1" name="s-1"></a>위키란 ? <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/Sprint_Note#s-1"></a></h3><div>우선 wiki(위키)라는 것에 대해서 알아볼 필요가 있겠습니다.<br><br><div>아주 간단하게 "칠판" 이라고 생각하시면 됩니다. 개인이 권한을 가지는 게시판이나 블로그와는 달리 위키는 아무나 페이지를 만들수 있고, 누구든지 내용을 수정하거나 추가할 수 있습니다. 심지어 아무나 지울 수도 있죠.<br><br><div>게시판과 비교해 보자면, 게시판은 어떤 정보에 대한 이슈가 주어지면 그에 대한 답글로 정보를 완성해 나가는 스타일입니다. 반면 위키는 글 자체를 수정하면서 원문의 정보를 모두가 함께 완성해 나가는 방식을 취합니다. 여기에서 얻을 수 있는 위키의 장점이라면, (정책을 잘 정한다면) 중복된 게시물을 피하고, 수정/보완 작업을 거쳐서, 어떤 주제를 다루는 문서를 매우 높은 수준에서 완성시킬 수 있다는 점입니다. 또한 페이지 단위로 글이 작성되기 때문에, 각 페이지들을 연결시키는 것도 매우 수월합니다. 최종적으로는 높은 수준의 문서들이 서로 연결되는 지식네트워크를 구축할 수 있게 됩니다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=wikipedia"><span style="COLOR: #3399cc">wikipedia</span></a> 가 가장 대표적인 예가 될 겁니다. <br><br><div>최근 열풍이 불고 있는 블로그와 비교해 보겠습니다. 블로그가 개인미디어의 성격을 가진다면, 위키는 공중미디어의 성격을 띠며, 블로그와는 활용처가 매우 다릅니다. 블로그는 보통 각 개인들간의 빠른 정보교환과 관심을 공유하기 위한 목적으로 사용되며, 위키는 공유된 정보를 지식으로 완성시키기 위한 목적으로 사용됩니다. 여기에서 상호보완이 가능하다는 생각을 하실 수 있을 겁니다. 실제 외국의 많은 커뮤니티들이 블로그로 정보를 교환하고, 위키로 지식을 만드는 시스템으로 운영되고 있습니다. <br><br><div>최근에는 위키와 블로그 모두의 장점을 취하는 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=팀블로그"><span style="COLOR: #3399cc">팀블로그</span></a>라는 형식으로 블로그를 운영하기도 합니다.<br><br><div><h3><a id="s-2" name="s-2"></a>위키는 장점만 있나요 ? <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/Sprint_Note#s-2"></a></h3><div>위키도 단점이 있습니다. (사실 단점이라기 보다는 특징에 가까운 거지만)공중미디어라는 점이 단점이 될 수 있습니다. "내 영역이 아닌 모두의 영역"이라는 개념으로 다가서기 때문에 문화에 따른 이질감이 위키로의 접근을 어렵게 할 수 있습니다. 뒤에 다시 언급하도록 하겠습니다. <br><br><div><h3><a id="s-3" name="s-3"></a>스프링노트의 미래 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/Sprint_Note#s-3"></a></h3><div><embed id="0s-K5tgOpRw$" name="0s-K5tgOpRw$" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" src="http://flvs.daum.net/flvPlayer.swf?vid=0s-K5tgOpRw$" width="402" height="324" type="application/x-shockwave-flash" quality="high" bgcolor="#ffffff" swliveconnect="true" allowscriptaccess="always"><br><br><embed id="ssKXggFZYck$" name="ssKXggFZYck$" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" src="http://flvs.daum.net/flvPlayer.swf?vid=ssKXggFZYck$" width="402" height="324" type="application/x-shockwave-flash" quality="high" bgcolor="#ffffff" swliveconnect="true" allowscriptaccess="always"> <br><div>국내에서 위키서비스를 시도한게 엔씨소프트가 최초는 아닙니다. 예전에 Yahoo 에서 위키사전을 만들겠다고 광고를 했었던 적이 있었습니다. 물론.. 소리소문 없이 사그라 들었습니다. 지금은 서비스가 있는지도 잘 모르겠습니다.<br><br><div>포털을 들먹일 필요도 없이, 국내에서 위키는 거의 사용되고 있지 않은 실정입니다. 지식 컨텐츠를 관리하기에 매우 좋은 시스템이기 때문에, 몇몇 전문 커뮤니티(주로 프로그래밍 관련)에서 위키를 도입하긴 했으나 거의 유명무실 버려진 실정입니다.<br><br><div>이러한 이유로 한결같이 "위키의 사용법이 어렵기 때문" 이라고 말합니다.<br><br><div>사실 전혀 수긍할 만한 얘기가 아닙니다. 위키 문법 전혀 몰라도 충분히 작성이 가능하며, 5가지 정도의 태그만 알면 대부분의 필요한 형식을 갖춘 문서를 만들 수 있습니다. 난이도로 하자면, 블로그 만큼 어렵습니다. 지금 이 문서도 위키에서 작성하고 있는데, 문단제목을 위한 단 하나의 태그만을 사용하고 있습니다. 아 플레쉬 동영상을 포함시키기 위한 테그까지 하면 2개가 되겠군요. <br><br><div>위키가 사용되지 않는 이유는 위키철학에 대한 문화적인 거부감 때문인 것으로 생각됩니다. 예컨데 이런 겁니다. 영/미 인들은 다음 사람을 만나기 위해서 악수를 하는 반면, 우리나라 사람들은 자신의 영역에 붙잡아 두기 위해서 악수를 한다고들 하죠. "우리"가 강조되는 끈끈한 모임에서 안도감을 느끼고, "모두"가 강조되는 느슨한 네트워크에서는 왠지 모를 불안감을 느끼는 것에 비유할 수 있겠습니다. <br><br><div>혹은 익명의 청중 앞에나가서 칠판에 자신의 의견을 적는 것에 대한 두려움 거부감 이런 것도 위키의 활성화를 막는 주요한 요인이라고 생각합니다. <br><br><div>블로그는 우리의 문화에 딱 들어 맞는 면이 있습니다. 자신의 영역을 구축하고, 다른 사람을 손님으로 자신의 영역에 포함시킵니다. 댓글과 트랙백에 안도감을 느낍니다. 호환마마보다 더 무서운게 무플이다라는 얘기도 이러한 문화에서 나온게 아닐까 생각해 봅니다.<br><br><div>이런 이유로 위키를 막상 접하고, 그리 어렵지 않다는 것을 느꼈다고 하더라도 이걸 어디에 써야할지를 몰라서 포기하는 경우가 대단히 많습니다. 개인미디어인 블로그와 달리 위키는 약간의 책임감 같은 것들도 느껴지게 되며, 어느정도의 목적의식이 있는 상태의 글을 작성해야 한다는 압박을 느끼게 됩니다. 실제 위키의 글들은 이러한 특징에서 블로그의 글들과 비교가 됩니다. .. 뭐 그냥 개인 낚서장으로 사용할 수도 있겠지만, 이래서는 블로그를 옆에두고 위키를 사용해야할 이유를 느낄 수 없겠죠. <br><br><div>스프링노트는 동영상에서 보듯이 매우 직관적이고, 편리한 편집환경을 제공해 줍니다. 그러나 제가 봤을때 스프링노트가 대중화 될 수 있느냐 아니냐는 편리한 편집환경을 제공하느냐에 있는게 아닌, 위키가 주는 문화적 거부감을 어떻게 없앨 수 있느냐에 달렸다보 봅니다. 위키시스템이지만 위키가 아닌 것처럼 느낌을 가지도록 하는 거죠. 모두의 느슨한 공간인듯 하지만 블로그에서 느끼는 자신만의 공간이라는 안도감(혹은 애착)을 느낄 수 있어야 합니다.<br><br><div>이 문제를 해결하지 않고서는 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=google"><span style="COLOR: #3399cc">google</span></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=docs"><span style="COLOR: #3399cc">docs</span></a> 와 같은 편리한 웹에디터의 느낌 이상이 되기가 힘들거라 생각됩니다. 물론 스프링노트 기획/개발자 분들도 이 문제를 심각하게 고민하고 있겠죠.<br><br><div><h3><a id="s-4" name="s-4"></a>위키야 활성화 되어라 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/Sprint_Note#s-4"></a></h3><div>약간은 비관적으로 글을 적었지만, 정말 정말 위키가 활성화 되었으면 좋겠습니다. 위키는 지식관리를 위한 최고의 툴입니다.<br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/137730#comments</comments>
		<pubDate>Thu, 12 Apr 2007 13:00:40 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 번역]자바와 함께 하는 컴퓨터 과학 7장 원시데이터 타입 ]]> </title>
		<link>http://yundream.egloos.com/135660</link>
		<guid>http://yundream.egloos.com/135660</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07</a><br><br>컴퓨터 메모리는 비트의 패턴을 저장한다. 이러한 비트들의 패턴에 관계를 두어서 더 쉽게 사용할 수 있도록 만들고 있는데, 이를 데이터 타입이라고 한다.<br><br><div>이번장에서는 다음과 같은 내용들을 다룰 것이다.<br><ul><li>데이터 타입<br><li>Primitive Data (원시 데이터 타입)과 객체 (Objects)<br><li>자바에서 사용하는 Primitive Data Type<br><li>Numberic 데이터 타입<br><li>문자 와 boolean 데이터 타입<br><li>Type Wrappers<br><br><strong>문제</strong><br>다음은 종이의 일부분이다. 이 종이에는 단어가 있는데, 이 단어가 의미하는 바가 무엇인가.<br><br></li></ul><span class="attach"><img alt="mixPaper.gif" src="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07?action=download&amp;value=mixPaper.gif"></span><br><br><div><h3><a id="s-1" name="s-1"></a>데이터 타입 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-1"></a></h3><div><div class="indent"><strong>해답</strong><br>무엇을 의미하는지 말하기 힘들다.<br><br></div>문제의 종이에서 당신은 어떤 것을 얻을 수 있는가. 아마도 찢어진 부분을 예측할 수 없기 때문에, MIX가 의미하는 바를 알지 못할 것이다. 영어 단어 <strong>mix</strong>일 수도 있고, 라디오에서 한때 명성을 떨쳤던 Tom Mix의 일부분일 수도 있다. 혹은 <strong>MTV Dance MIX</strong>의 일부분일 수도 있고, <strong>BLOODY MARY MIX</strong>일지도 모른다. <strong>XIW</strong>를 뒤집어 놓은 것일 수도 있다. 아니면 우리가 모르는 상형문자의 일부분일 수도 있다.<br><br><div>컴퓨터 메모리에는 비트의 패턴이 저장된다. 이것이 무엇의 의미할지는 순전히 어떻게 쓰여질지에 따라 달려있다. 마치 <strong>MIX</strong>가 어떻게 쓰이는지에 따라서 여러가지 의미를 가지는 것과 마찬가지이다. 이렇게 어떻게 쓰일지를 결정하는게 바로 <strong>데이터 타입</strong>이다.<br><br><div><strong>Data Type</strong><br><ul><li>데이터가 어떻게 표현되고 사용될지를 결정한다.<br><li>데이터 타입에 따라 컴퓨터가 어떻게 데이터를 다룰지 알 수 있다.<br><li>컴퓨터에 저장된 모든 값은 데이터타입에 의해서 표현될 수 있다.<br><br></li></ul>예를 들어보자.<br><div class="indent">0000000001100111<br><br></div>위의 데이터는 컴퓨터 메모리 어딘가에서 찾아낸 16비트의 패턴이다. 이것은 어떻게 표현될 수 있을가 ?<br><br><div>만약 위의 데이터 타입을 자바에서 사용하는 데이터 타입중의 하나인 <i>short</i>라고 정의 한다면, 이 값은 103으로 표현될 것이다. <br><div class="indent"><strong>문제</strong><br>다음 16비트 패턴은 어떻게 표현될 수 있는가.<br><div class="indent">0000000000000000<br><br></div></div><div><h3><a id="s-2" name="s-2"></a>많은 종류의 데이터 타입이 있다. <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-2"></a></h3><div>0000000000000000 비트 패턴은 0 (zero)로 표현될 수 있을 거라고 생각할 것이다. 그러나 항상 그런건 아니며, 우리가 보기에 그 용도가 명확해 보이는 비트패턴이라도 자동적으로 그 의미를 결정할 수는 없다. 프로그래머인 인간이 일일이 결정해주어야 한다.<br><br><div>만약 위의 비트패턴을 위한 데이터 타입을 <strong>short</strong>로 했다면, 비트패턴의 값은 숫자 0으로 표현될 것이다. 여기에 또다른 패턴이 있다.<br><div class="indent">1111111110011001<br></div><strong>short</strong>로 표현될경우 -103이 될 것이다.<br><br><div>기본적으로 컴퓨터의 메모리에 있는 데이터는 무한히 많은 형식으로 표현이 될 수 있다. 표현할 수 있는 데이터 타입이 무한히 많다면, 유연하겠지만 프로그램을 작성하기에 너무 복잡할 것이다. 반면 데이터 타입이 너무 적다면, 프로그램이 간단해지긴 하겠지만, 활용범위가 너무 좁아질 것이다. 그래서 너무 많지 않은 수준에서 프로그래머가 사용하기에 적당한 데이터 타입이 준비되어야 한다.<br><br><div>그러나 모든 기계가 다양한 데이터 타입을 준비해야 하는 건 아니다. 간단한 전자 계산기라면, 단지 부동소숫점을 가진 숫자위한 하나의 데이터 타입만 존재하면 될것이다. 전자 계산기를 디자인 하는 엔지니어는 비트패턴이 어떻게 숫자로 표현될지를 결정하기만 하면 된다. 우리가 사용하는 컴퓨터는 특수한 용도가 아닌 범용기계이기 때문에 전자 계산기보다는 다양한 종류의 데이터 타입이 필요해진다.<br><div class="indent"><strong>문제</strong><br>1960년대에 오디오 데이터를 다룰 수 있는 기능을 가진 컴퓨터가 있었을까 ?<br><br></div><div><h3><a id="s-3" name="s-3"></a>Primitive Data Type <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-3"></a></h3><div>1960년대에도 오디오 데이터를 다루는 컴퓨터가 있었다. 그러나 이것은 비트패턴을 오디오 데이터로 표현하기 위한 전용의 프로그램이 필요했다.<br><br><div>이렇게 자신만의 독특한 방법을 가지고 비트배열을 표현하는 식으로 데이터를 이용하는 것은 좋지 않은 방법이다. 범용성을 크게 해치기 때문이다. 가능하면 퍼즐을 맞추듯이 몇개의 기본적인 구성요소만을 가지고, 원하는 것을 만들 수 있는 모델을 사용하는게 훨씬 유리하다. 자바는 데이터를 표현하기 위한 가장 기본적인 몇가지 내장된 데이터 타입을 가지고 있다. 이것을 <i>primitive data type</i>라고 한다. 자바는 8개의 primitive 데이터 타입을 가지고 있다.<br><div class="indent"><br><strong>byte short int long float double char boolean</strong><br><br></div>대소문자를 반드시 구분하기 바란다. <strong>byte</strong>는 primitive 데이터 타입이지만 <strong>BYTE</strong>는 아니다. 몇개의 예외도 있지만 대부분의 컴퓨터 언어는 대소문자를 엄격히 구분한다. <br><br><div><i>primitive data type</i>에서 <strong>primitive</strong>는 "다른 커다란 데이터를 조합하기 위해서 사용되는 기본이 되는 구성요소"라는 뜻으로 컴퓨터 과학에서 매우 자주 사용된다. 아주 큰 문제를 풀 경우라도 하더라도, 기본적으로는 이 8개의 primitive 데이터 타입과 이들의 연산을 통해서 이루어진다.<br><br><div><div class="indent"><strong>문제</strong><br><i>Int</i>는 primitive 데이터 타입인가.?<br><br></div><div><h3><a id="s-4" name="s-4"></a>Objects (객체) <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-4"></a></h3><div>자바는 내부적으로 많은 종류의 데이터 타입을 내장하고 있다. 그리고 프로그래머의 필요에 따라서 새로운 데이터 타입을 만들 수 있도록 지원하고 있다. 어쨋든 자바에서 다루는 모든 데이터는 <strong>원시 데이터 타입</strong>과 <strong>객체</strong>두개의 분류중 하나에 속한다. 일단 우리는 원시 데이터 타입에는 8개의 종류만 있다는 것을 알고 있다. 그러니 나머지 데이터 타입은 모두 객체라고 볼 수 있을 것이다. <br><br><div><span class="attach"><img alt="dataSplit.gif" src="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07?action=download&amp;value=dataSplit.gif"></span><br><br><div>자바에서 객체는 매우 중요한 요소로 몇장의 장을 할애해서 설명을 하겠지만, 일단은 간단히 다루도록 하겠다. 다음은 원시 데이터 타입과 객체의 차이점이다.<br><ul><li>원시 데이터 타입은 값이 작고 바이트의 크기가 고정되어 있을 때 사용한다. <br><li>8개의 원시 데이터 타입만이 존재한다.<br><li>프로그래머는 새로운 원시 데이터 타입을 생성할 수 없다.<br><li>객체는 많은 메모리 바이트를 사용하는 큰 데이터블럭을 위해서 사용한다. <br><li>객체는 많은 구성요소로 이루어진다. <br><li>객체 데이터 타입은 <strong>class</strong>라고 부른다.<br><li>Java Development kit에는 유용하게 사용할수 있는 많은 클래스가 미래 정의되어 있다. <br><li>프로그래머는 프로그램의 요구에 따라 새로운 클래스를 생성할 수 있다.<br><br></li></ul>원시 데이터 타입은 너트나 볼트와 같은 것으로 볼 수 있다. 반면 객체는 엔진 혹은 자동차와 같은 (너트오 볼트로 구성된)완전한 기계다. 우선은 이정도로 알고 넘어가도록 하자. 몇장만 더 읽다 보면 자세한 내용을 다룰 것이다. <br><div class="indent"><strong>문제</strong><br>컴퓨터 프로그램에서 숫자는 중요한 기본이 되는가? <br><br></div><div><h3><a id="s-5" name="s-5"></a>숫자형 원시 데이터 타입 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-5"></a></h3><div>Number(숫자)는 자바에서 매우 중요하며, 3개의 원시 데이터 타입중에서 6개가 숫자와 관련된 데이터 타입이다.<br><br><div>이들 숫자 데이터 타입에서도 가장 기본이 되고 (널리 사용되는) 타입은 크게 <i>integer</i>과 <i>floating point</i> 로 나뉜다.. integer 타입은 소숫점이 없는 정수숫자를 위한 타입이며, <strong>floating point</strong>는 소숫점을 가진 데이터 타입이다. 컴퓨터는 정수를 위한 비트패턴을 유지할 수 있지만, 소숫점을 가진 숫자의 비트패턴을 알 수가 없으므로, 프로그램 수준에서 다시 해석해야 한다. 이런 이유로 integer 와 float 를 표현하는 방식은 완전히 다르다. <br><br><div><ul><li>정수형 원시 데이터 타입들<br><table class="wiki" cellspacing="2" cellpadding="3"><tbody><tr class="wiki"><td class="wiki" align="left">Type </td><td class="wiki" align="left">Size </td><td class="wiki" align="left">범위 </td></tr><tr class="wiki"><td class="wiki" align="left">byte </td><td class="wiki" align="left">8bits </td><td class="wiki" align="left">-128 ~ +127 </td></tr><tr class="wiki"><td class="wiki" align="left">short </td><td class="wiki" align="left">16bits </td><td class="wiki" align="left">-32768 ~ 32767 </td></tr><tr class="wiki"><td class="wiki" align="left">int </td><td class="wiki" align="left">32bit </td><td class="wiki" align="left">약 -20억 ~ 20억 </td></tr><tr class="wiki"><td class="wiki" align="left">long </td><td class="wiki" align="left">64bit </td><td class="wiki" align="left">약 -10E18 ~ +10E18 </td></tr></tbody></table><br><li>부동소숫점 원시 데이터 타입들<br><table class="wiki" cellspacing="2" cellpadding="3"><tbody><tr class="wiki"><td class="wiki" align="left">Type </td><td class="wiki" align="left">Size </td><td class="wiki" align="left">범위 </td></tr><tr class="wiki"><td class="wiki" align="left">float </td><td class="wiki" align="left">32bit </td><td class="wiki" align="left">-3.4E+38 to +3.4E+38 </td></tr><tr class="wiki"><td class="wiki" align="left">double </td><td class="wiki" align="left">64bit </td><td class="wiki" align="left">-1.7E+308 to 1.7E+308 </td></tr></tbody></table><br></li></ul>각 원시 타입은 고정된 bit크기를 가진다. 이는 표현할 수 있는 숫자의 크기에 한계를 가진다는 얘기가 된다. 예를 들어 <strong>short</strong>타입은 16비트의 크기를 가지며, 약 30,000 정도의 숫자를 표현할 수 있다. <br><br><div>가장 큰 숫자를 담을 수 있는 데이터형은 64비트의 크기를 가지는 <strong>long</strong>으로 10^18 정도의 큰 수를 표현할 수 있다.<br><br><div>또한 이들 데이터들은 음수와 양수를 모두 표현할 수 있도록 되어 있다. 여러분이 이들 데이터 타입의 범위를 뛰어넘는 숫자를 표현해야 한다면, 이들 데이터 타입을 이용할 수 없다. 이럴 경우에는 더 큰 숫자를 처리할 수 있는 클래스를 만들어야 한다.<br><br><div><div class="indent"><strong>문제</strong><br>1,0234,004를 다루기 위한 프로그램을 작성하고자 한다. 데이터 타입을 위해서 <strong>short</strong>를 사용할 수 있는가 ?<br><br></div><div><h3><a id="s-6" name="s-6"></a>큰 값을 다루기 위해서는 많은 비트가 필요하다 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-6"></a></h3><div>큰 범위의 숫자를 다루기 위해서는 그만큼 많은 비트를 필요로 한다. 당신은 프로그램을 작성할 때 사용할 숫자의 범위를 예측해서 거기에 맞는 데이터형을 사용할 필요가 있다. 예를 들어서 나이를 입력받는 프로그램을 작성한다면 <strong>byte</strong>형이면 충분할 것이다. 물론 long 형을 사용할 수도 있긴 하지만, 다루어야할 비트의 크기가 커진만큼 메모리의 소비량과 수행속도에 있어서 손해를 볼 것이다. <br><br><div>최근의 프로그램들은 수백만 수천만의 데이터 아이템을 다룬다. byte로 충분한걸 long으로 썼을 경우 고작해야 6바이트 정도일 수 있겠지만, 백만 데이터를 다루어야 한다고 가정하면, 6백메가의 낭비가 발생하게 된다.<br><br><div>당신은 프로그램을 쓸때, 숫자가 어떤 비트 타입으로 들어갈지를 결정해줘야할 필요가 있다. 이것을 <strong>literal</strong>이라고 부른다. "literal"은 타이핑한 값이 프로그램의 일부로 그대로 들어가게 됨을 의미한다. 예를 들어서, 다음의 숫자들은 4byte int형 숫자로 표현될 것이다. <br><div class="indent">125 -32 16 0 -123987<br><br></div>그렇지만 long형 숫자를 입력하기 원한다면 숫자의 마지막에 'L' 혹은 'l'을 붙여줘야 한다. 그러면, 이 숫자 데이터는 long형으로 해석되어서 비트값으로 저장된다. <br><div class="indent">125L -32L 16L 0l -123987l<br><br></div><strong>문제</strong><br><div class="indent">다음은 integer literal 인가 ?<br><div class="indent">197.0<br><br><br></div></div><div><h3><a id="s-7" name="s-7"></a>Floating Point Type <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-7"></a></h3><div>프로그램에서 197.0을 그대로 사용하게 되면, 컴파일러는 이 숫자를 <strong>floating point</strong>원시 데이터 타입으로 사용하게 된다. 그래서 메모리 상에는 197.0의 floating point 비트 패턴이 들어가게 된다. 이 비트 패턴은 197과는 전혀 다르다. floating point는 두개의 원시 데이터 타입을 가지고 있다.<br><br><div><strong>float</strong> 데이터 타입은 "single-precision floating point"라고 불리우기도 한다. <strong>double</strong>데이터 타입은 "double-precision floating point"라고 부른다. 이들 데이터 타입은 자주 쓰이는 프로그래밍 언어중 하나인 FORTRAN에서 유래되었다. <br><br><div>프로그램에서 floating point literals는 소숫점을 표시함으로써 이루어진다.<br><div class="indent">123.0 -123.5 -198234.234 0.00000381<br><br></div>Literal 정책에 의해서 위의 값들은 자동적으로 <strong>double</strong>타입으로 들어가게 된다. 거의 대부분의 경우 floating point 숫자는 <strong>double</strong>로 다루게 됨으로 큰문제가 없을 것이다. 만약 floating point 숫자를 32bit <strong>float</strong>형으로 다루기를 원한다면, 숫자의 마지막에 특별한 접미사를 붙여줘야 한다.<br><br><div><div class="indent"><strong>문제</strong><br>double 대신 float 를 사용하게 될경우, 메모리상의 비트패턴에 큰 변화가 있는가 ? <br><br></div><div><h3><a id="s-8" name="s-8"></a>Explict Floating Point Literals <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-8"></a></h3><div>그렇다면 <strong>float</strong> literal은 어떻게 적용시킬 수 있는가. 이 문제는 숫자의 접미사에 <strong>F</strong> 혹은 <strong>f</strong>를 붙여주는 것으로 해결할 수 있다. <br><div class="indent">123.0f -123.5F -198234.234f 0.00000381F<br><br></div>기본적으로 소숫점 데이터는 <strong>double</strong> literal되지만, 이를 명확히 해주고 싶을 수가 있는데, 이 경우 접미사로 <strong>D</strong> 혹은 <strong>d</strong>를 붙여주면 된다.<br><div class="indent">123.0d -123.5D -198234.234d 0.00000381D<br><br><strong>문제</strong><br>다음 코드는 문제가 있다고 생각이 들지 않는가 ?<br><div class="indent">double rats = 8912D;<br><br></div></div><div><h3><a id="s-9" name="s-9"></a>Scientific 표시 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-9"></a></h3><div>다음 두 경우를 보도록 하자.<br><pre class="code">double rats = 8912 ;과double rats = 8912.0 ;</pre>첫 번째 코드는 수행은 될것이다. 그러나 부주의한 코드다. integer literal이 double에 대입하기 위해서는 반드시 그에 맞도록 변환시켜주어야 한다. 그러므로 첫번째 코드는 두번째 코드처럼 <strong>double</strong> literal이 적용되도록 값을 초기화 시켜주어야 한다.<br><br><div>때때로 과학표기가 필요한 경우가 발생할 것이다. 다음의 예는 모든 double-precision literals에 적용된다.<br><div class="indent">1.23E+02 -1.235E+02 -1.98234234E+05 3.81E-06<br></div><strong>E</strong>는 10승을 하라는 의미다. 1.23E+02는 1.23에 10^2을 곱해주라는 의미가 된다. <br><br><div>이 밖에도 <strong>E</strong>는 소숫점의 위치를 간편하게 나타내기 위한 목적으로 사용할 수 있다. 만약 E뒤에 붙은 기호가 양수라면 소숫점을 오른쪽으로, 음수라며 왼쪽으로 숫자만큼 이동시키면 된다. 즉 3.81E-06은 0.00000381 과 같다.<br><br><div><div class="indent"><strong>문제</strong><br>1.9345E+03을 과학표기가 아닌 일반 표기로 바꾸어 보라<br><br></div><div><h3><a id="s-10" name="s-10"></a>Floating Point Number의 정확도 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-10"></a></h3><div>1/3은 다음과 같은 결과를 보여준다는 것을 잘 알것이다.<br><div class="indent">0.33333333333333333333333..........<br></div>3이 무한대로 반복되는 값을 보여준다. 그러나 <strong>float</strong>형은 32bit 데이터 타입이므로 3을 무한대로 표시할 수는 없다.<br><br><div><strong>float</strong>데이터 타입은 23 bit의 정확도를 가진다. float는 32비트 데이터 형이 아니던가? 라는 생각이 들 것이다. 32비트에서 1비트는 양수인지 음수인지를 판단하기 위해서 쓰이며, 나머지는 숫자의 크기를 나타내기 위해서 사용된다. 23bit의 정확도는 대략 7-8자리까지에 한정된다.<br><br><div><div class="indent"><strong>문제</strong><br>1230.00089F 는 정확히 표현될 수 있는가.?<br><br></div><div><h3><a id="s-11" name="s-11"></a>Double 형의 정확도 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-11"></a></h3><div>float는 7-8자리에 대한 정확도만을 보장한다. 그런데 1230.00089는 소숫점을 제외하고 모두 9개의 숫자를 가지고 있다. 그래서 마지막 9가 반올림되어서 1230.0008F이 저장된다. 아래의 프로그램을 컴파일 한 후 테스트 해보기 바란다.<br><pre class="code">import java.io.*;class Test{  public static void main(String[] args)  {    float a = 1230.00089F;    System.out.println("Data "+String.valueOf(a));  }}</pre><br><div><strong>double</strong>은 64bit를 이용한다. 그래서 float보다 더큰 -1.7E+308 to +1.7E+308 범위의 숫자를 저장할 수 있으며, 15자리까지의 정확도를 보장한다. 자바 프로그램에서 2.345와 같은 literal을 적용시켰다면, 이것은 자동적으로 double로 간주된다. 그러므로 float형으로 충분하다고 판단되면 직접 literal을 적용시켜줘야 한다. 위의 프로그램에서 <strong>1230.00089</strong>를 정확히 제어하기 위해서는 다음과 같이 프로그램을 수정해야 할 것이다.<br><pre class="code">double a = 1230.00089D;</pre><br><div><div class="indent"><strong>문제</strong><br>8개의 원시 데이터 타입중 하나로 문자를 다룰 수 있을까?<br><br></div><div><h3><a id="s-12" name="s-12"></a>char 원시 데이터 타입 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-12"></a></h3><div><a class="externalLink" href="http://chortle.ccsu.edu/java5/Notes/chap08/ch08_13.html"><span style="COLOR: #3399cc">http://chortle.ccsu.edu/java5/Notes/chap08/ch08_13.html</span></a><br><br><div>문자는 컴퓨터에서 일반적으로 사용되는 데이터이다. 문자를 위한 원시 데이터 타입의 이름은 <strong>char</strong>이다. char 타입은 16비트의 크기를 가진다. C와 같은 언어가 8비트의 크기를 가지는 것과는 약간다르다. 16비트를 가지게 됨으로 인해서 데이터량이 커지긴 했지만 대신 더 많은 다양한 언어들을 표현할 수 있게 되었다. 실제 자바는 유니코드를 이용함으로써 세상의 거의 대부분의 언어를 표현할 수 있다. <br><br><div>다음은 16비트 패턴의 예이다.<br><div class="indent">000000000110011<br></div>위의 값은 16비트 char형으로 표현될 경우 문자 'g'를 나타낸다. 만약 이것을 integer형으로 표현하면 103이 될것이다. 실제로 integer 데이터 타입에는 16비트 크기를 가지는 <strong>short</strong>데이터 타입이 있다. <br><br><div><strong>char</strong> 데이터는 대소문자를 엄격히 구분하며, 서로 다른 비트 패턴을 가지고 있다. <strong>char</strong>데이터 타입에는 구둣점이나 쌍따움표, 공백문자, 탭과 같은 특수문자들도 포함된다.<br><br><div>원시 데이터 타입 <strong>char</strong>은 단일 문자를 표현할 수 있으며, 폰트와 같은 다른 어떤 정보도 포함하지 않는다. 그러나 대부분의 경우 단일 문자만을 사용하는 프로그램이 드물기 때문에, <strong>char</strong>데이터를 포함하는 객체를 이용해서 <strong>문자열</strong> 단위로 사용하게 된다.<br><br><div><div class="indent"><strong>문제</strong><br>다음 3개의 데이터는 서로 다른가 ?<br><div class="indent">0 O o<br><br></div></div><div><h3><a id="s-13" name="s-13"></a>Character Literals <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-13"></a></h3><div>프로그램에서 문자 literals는 따움표로 둘러싸는 것으로 나타낸다.<br><pre class="code">  'm'     'y'     'A'</pre>알파벳과 같은 일반 문자외에 줄이나 탭을 바꾸는 <strong>제어 문자</strong>도 존재하는데 이들은 역슬레쉬 문자와 함께 사용된다.<br><pre class="code">  '\n'    '\t'</pre><br><div>비록 두개의 문자가 사용된 것으로 보이겠지만, 실제 프로그램에서는 단일 문자로 사용이된다. 역슬레쉬는 단지 컴파일러에게 제어문자를 사용하겠다는 것을 알려주기 위한 목적으로만 사용된다. 첫번째 문자는 줄을 바꾸기 위해서 사용되는 개행문자 이며, 두번째 문자는 문자와 문자사이를 일정간격으로 구분하기 위해서 사용되는 탭문자다. <br><br><div><strong>주의</strong> : 아래의 데이터는 문자 literal 이 아니다.<br><pre class="code">"Hello"</pre>쌍따움표가 사용된 데이터는 <strong>String</strong>이며, 이것은 원시 데이터 타입이 아닌 객체다.<br><br><div><div class="indent"><strong>문제</strong><br>아래의 char literal은 무엇이 잘못되었는가<br><div class="indent"><br><pre class="code">"W"</pre><br></div></div><div><h3><a id="s-14" name="s-14"></a>boolean 원시 데이터 타입 <a class="perma" href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter07#s-14"></a></h3><div>이제 <strong>boolean</strong> 원시 데이터 타입에 대해서 알아보겠다. 이것은 <strong>참/거짓</strong> (true/false)를 나타내기 위해서 사용하는 데이터 타입으로 아래의 두개의 상태중 하나만 가질 수 있다.<br><div class="indent">true false<br><br></div>자바 프로그램에서 <strong>true</strong>와 <strong>false</strong>라는 단어는 <strong>boolean</strong>값을 의미한다. <strong>boolean</strong>이라는 이름은 true/false의 값만으로도 많은 것을 할 수 있다는 것을 발견해낸 19세기 과학자인 George Boole에 의해서 만들어졌다.<br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>			 ]]> 
		</description>
		<category>Java</category>

		<comments>http://yundream.egloos.com/135660#comments</comments>
		<pubDate>Wed, 11 Apr 2007 14:51:32 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 이글루스에 애드센스 달기 ]]> </title>
		<link>http://yundream.egloos.com/135220</link>
		<guid>http://yundream.egloos.com/135220</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Google/Service/egloos_ad">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Google/Service/egloos_ad</a><br />
이런 팁 올리면 싫어하는 분들도 있을거 같긴한데..<br />
<br />
아시다시피 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=egloos">egloos</a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=blog">blog</a>는 자바스크립트를 허용하지 않습니다. 덕분에  <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=google">google</a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=adsense">adsense</a> 같은 얘들도 붙일 수가 없죠. 혹시나 해서 스킨에서 여러가지 방법을 테스트해봤는데, 역시나 안되더군요. 대부분의 애드센스 수익은 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://www.joinc.co.kr/">제 위키 사이트</a>에서 발생하기도 해서, 뭐 그냥 저냥 포기하고 있다가 어느날 이글루스 직원이라는 분의 팁을 담은 포스트를 보게 되었습니다.(원문까먹었음, 여기에서 잘 검색해보면 나올거라고 생각됩니다.) <br />
<br />
그분 왈, 개인적으로 사용하고 있기는 하지만 방법을 알려주기는 힘들다고 포스팅을 했었는데, 소스보기를 하니 전부다 나오더군요 -.-; 그래서 따라서 했더니 성공. 스크립트는 다음과 같습니다.<br />
<pre class="code">&lt;img width=1 height=1 src="http://images.google.co.kr/images/res_small2.gif" onload=<br />
"window.document.getElementById('gesArea').innerHTML='.&lt;i'+'frame src=<br />
http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-0000000000&amp;dt='+(new Date).getTime()+'&amp;lmt=<br />
'+(Date.parse(document.lastModified)/1000)+'&amp;format=728x90_as&amp;alt_color=FFFFFF&amp;output=html&amp;channel=000000<br />
url='+encodeURIComponent(window.location.href)+'&amp;color_bg=FFFFFF&amp;color_text=000000&amp;color_link=0066cc<br />
color_url=008000&amp;color_border=FFFFFF&amp;ad_type=text_image&amp;cc=<br />
'+(encodeURIComponent(Math.round(document.body.clientHeight*100/document.body.scrollHeight)))+<br />
'&amp;u_h='+(window.screen.height)+'&amp;u_w='+(window.screen.width)+'&amp;u_ah='+(window.screen.availHeight)+<br />
'&amp;u_aw='+(window.screen.availWidth)+'&amp;u_cd='+(window.screen.colorDepth)+<br />
'&amp;u_tz='+(-(new Date).getTimezoneOffset())+'&amp;u_his='+history.length+'&amp;u_java='+navigator.javaEnabled()+' <br />
width=728 height=90 frameborder=0 scrolling=\'no\' &gt;';"&gt;<br />
</pre>대단히 길고 복잡해 보이긴 하지만, 그냥 이거 그대로 가져다 붙이면 됩니다. 물론 <strong>client</strong>와 <strong>channel</strong>, <strong>width</strong>, <strong>height</strong> 값은 바꿔줘야 겠죠. 색상도 어렵지 않게 바꿀 수 있을 겁니다. 공백없이 붙여서 사용하면 됩니다. <br />
<br />
... 설마 이거 가지고 뭐라하진 않겠죠 ?			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/135220#comments</comments>
		<pubDate>Wed, 11 Apr 2007 12:17:11 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 나루검색서비스 시연에 즈음하여. ]]> </title>
		<link>http://yundream.egloos.com/130375</link>
		<guid>http://yundream.egloos.com/130375</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/naroo">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/naroo</a><br />
<br />
나루 블로그 검색엔진에 대해서 이야기를 하고자 하는 이유는 내가 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84">검색엔진</a>관련일을 하고 있기 때문...... 이기도 하지만 나루 검색엔진을 직접 개발하고 있기 때문이다 -.-;;<br />
<br />
내입으로 직접 개발에 참여중인 서비스를 얘기하려고 하니 낯이 좀 간지럽기는 하지만 뭐 어떠랴.<br />
<br />
거의 1년이라는 시간에 걸쳐서, 개발을 해왔고 드디어 지난주 금요일(2007년 4월 9일 날씨 맑음) Top 블로거와 검색엔진관련 개발자들에게 시연을 하는 자리를 가졌다. 그만님, 네오비스님, 떡이떡이님, 미친병아리님, typos님 등등의 이름만 들어도알만한 블로거분들이 참석했다. 이를테면 제한적인 클로즈베타 시연이라고 해야 할려나 ?<br />
<br />
시연회자리도 좁고 해서, 어쩔수 없이? 시연회 자리에는 참석하지 못하고 그냥 내 자리에 앉아서 이게 잘돌아가나 어떤 검색어를입력하나 하는 등등을 모니터링 했다. 혹시라도... 죽는 사태가 발생하면 얼릉 복구해야 하니까.. ㅎㅎ.. 아시다 시피 이바닥에는 <strong>잘돌다가도 시연하는 날은 반드시 죽는다</strong>라는게 법칙처럼 되어 있으니 말이다. <br />
<div><embed src="http://flvs.daum.net/flvPlayer.swf?vid=o0OVWAVW1cA$" type="application/x-shockwave-flash" allowscriptaccess="always" height="324" width="402"><br />
완성되지 않은 프로그램이라면, 잠재적인 버그를 가지고 있기 마련이고, 내부에서 테스트할 때야 뻔한 입력을 가지고 테스트하지만다양한 유저에게 노출되면 예상치 못한 입력에 대해서 문제가 발생할 수 있기 때문이다. 다행히도 시연은 문제없이 지나 갔다. <br />
<br />
<div>참석한 몇몇 분들이 시연과 관련된 글들을 적어주셨다. <br />
<ul><li><img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://itviewpoint.com/tt/index.php?pl=2740">블로그 검색 나루가 생각하는 것들 - 서명덕 기자</a><br />
</li><li><img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://www.gruter.co.kr/46"> 검색은 콘텐츠다</a><br />
</li><li><img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://madchick.egloos.com/1543248">블로그 검색 나루 시연회 - 미친병아리님</a><br />
<br />
</li></ul>주요한 이슈는 아래와 같았다.<br />
<ul><li>엔진은 좋은것 같다.<br />
</li><li>서비스가 최적화 되어 있지 못하다.<br />
</li><li>형태소 분석이 확실하지 않은거 같다. <br />
</li><li>attention 을 이용한 블로그 문서의 score 산정이 명확하지 못하다.<br />
<br />
</li></ul>나루팀의 개발철학은 <strong>기반 기술</strong>을 튼튼히 하고, 그 위에 서비스를 구축하자 였다. 이러한 철학으로 개발을 하다보니, 중간 중간 기획에서 넘어오는 서비스 요청사항들의 상당 부분이 반영되지 못한 점이 있는것 같다. <strong>가상화/분산검색/정확한 문서 score 알고리즘</strong>에 가장 중점을 두었고, 시연회까지도 서비스측면에서 신경쓰지 못한 부분이 많았기 때문이다. 이제 어느정도 기반시스템이 완성되었다고 생각되니 앞으로는 서비스의 수준을 올리는데 중점을 두어야 할 것이다.  <br />
<br />
<div>후.. 한글문서 검색에 있어서 가장 큰 골치거리는 뭐니뭐니 해도 <strong>형태소분석</strong>이 될 것이다. 대한민국에서 구글과 같은 검색엔진에 있어서 한발 늦은 이유가 형태소 분석 때문이라는 말이 있을 정도로 정말 골치덩어리다. 검색기반기술이 어느정도 구축되고 나면, 실제 서비스단에서 제일 중요한것은 <strong>한글 문서를 어떻게 분석해서 색인</strong>해 두느냐와 사용자의 검색어를 어떻게 분석하느냐가 될 것이다.  <br />
<br />
<div>형태소분석과 함께 서비스에서 가장 중요한 또하나의 요소를 들라면, 스팸과 어뷰징, 간단히 말해서 낚시사이트를 어떻게 효과적으로걸러내고 정말 중요한 문서를 노출시키느냐가 될 것이다. 중복된 키워드를 등록해서 해당 문서를 첫화면에 노출시키느 낚시 사이트는굳이 예를 들지 않아도 많이들 경험해 보았을 것이다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=google">google</a>은 이러한 문제를 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=pagerank">pagerank</a> 기술을 이용해서 해결을 하고 있다. 링크를 일일이 조사해서, 해당 사이트를 참고하는 사이트가 많으면 높은 점수를 주겠다라는게 핵심이다.<br />
<br />
<div>현재 나루는 <strong>attetention</strong>이라는 것을 사용하고 있다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=RSS">RSS</a>리더기인 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://www.3fishes.co.kr/">fish</a>의 로그를 링크처럼 활용하겠다는게 기본취지다. 로그를 분석해서 많은 방문이 이루어진 블로그 주소에 대해서 점수를 더주는 것이니, 구글의 pagerank와 그 개념은 같다고 볼 수 있다.  <br />
<br />
<div>문제는 pagelink 에서 사용되는 link는 범용적으로 사용되는 요소인 반면, attention은 응용프로그램에 대해서제한적이라는 점이다. 이는 효과적인 rank 산정을 어렵게 만들 수 있기 때문이다. 이 것은 나루검색팀 역시 심각하게 고민하고있는 문제중 하나로, 결국은 범용적으로 사용가능한 link 까지 함께 사용하는 방향으로 갈 것으로 생각된다. 다행히도 현재 <strong>attention</strong>만으로도 낚시 사이트를 꽤 잘 걸러주는 것같다.<br />
<br />
역시.. 개발에 참여하는 입장에서 이런말 하기는 남사스럽긴 하지만 기다려 주시라.. 개봉박두<br />
</div></div></div></div></div></div>			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/130375#comments</comments>
		<pubDate>Mon, 09 Apr 2007 12:49:54 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 팀 블로그를 계획하다. ]]> </title>
		<link>http://yundream.egloos.com/123995</link>
		<guid>http://yundream.egloos.com/123995</guid>
		<description>
			<![CDATA[ 
  개인적으로 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=wiki">wiki</a>마니아 입니다. 위키 그거 어려워서 못쓰겠다. 요즘엔 개인미디어 시대이고, 그 중심에 블로그가 있다. 등등의 말이 들릴 때도위키만을 고집해 왔습니다. 지식을 저장하고 키우기 위한 도구로는 역시 위키만한게 없다고 생각했기 때문입니다. 물론 지금도 이생각에는 변함이 없습니다.<br />
<br />
최근에는 블로그 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=%EA%B2%80%EC%83%89%EC%97%94%EC%A7%84">검색엔진</a> 개발 업무를 맡고 있습니다. 일을 하다보니 블로그에 대한 인식이 바뀌기도 해서 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://yundream.egloos.com/">블로그</a>에 글을 남기려고 나름 노력을 하고 있기는 하지만 역시나 왠지 익숙하지가 않더군요. 너무 오랜시간동안 위키를 쓰면서 레퍼런스식 글쓰기에 익숙해진게 원인인거 같습니다.<br />
<br />
위키의 가장 큰 장점은 지식을 체계적으로 정리할 수 있다는데 있습니다. 반면 접근하기가 수월하지 않다는 단점이 있습니다. 이는위키의 사용법이 어렵다는 것과는 다른 위키의 공개미디어로써 가지는 특징이라고 할 수 있습니다. 아무래도 자신만의 영역이 아닌공간에 글을 쓰고, 누군가가 이를 수정한다는 개념이 쉽게 다가서기는 힘든 면이 있습니다. 일기는 부담없이 쓸 수 있지만, 칠판에자기의 생각을 적게 하면 왠지 모를 거부감, 쑥스러움이 생기는 그런 느낌이라고 할 수 있겠습니다.<br />
<br />
이런 점에서 본다면 블로그는 위키의 단점을 극복한 툴입니다. 자신만의 생각을 자유롭게 적을 수 있으며, 개인영역이라는 느낌이매우 강합니다. 누구나 쉽게 접근할 수 있죠. 하지만 단점이 있습니다. 링크와 링크, 자유로운 참여로 이루어지는 위키와는 달리,정보를 수집하고 수정해서 지식화 하기 위해서는 한계가 있다는 점입니다.<br />
<br />
그래서 외국의 다른 활성화된 개발자 커뮤니티를 보면, 블로그를 자유로운 의견교환 창고나 홍보수단으로 삼고 지식으로 만들 필요가 있는 정보들은 위키로 함께 관리하는 모습을 볼 수 있습니다. 매우 좋은 시스템이라고 생각됩니다. <strong>위키+게시판</strong>에서 게시판의 역할을 블로그가 대신하는 것으로 볼 수도 있습니다. 안타깝게도 우리나라의 개발자 커뮤니티는 거의 모두 <strong>게시판화</strong>되어 버렸지만 말입니다.<br />
<br />
반대로 제 <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle"><a class="externalLink" href="http://www.joinc.co.kr/">사이트</a> 같은 경우는 한두명만 고정적으로 컨텐츠를 만들어내는 위키만 있고, 다른 여럿의 참여를 만들만한 무언가가 부족하죠.<br />
<br />
그래서 생각해낸게, 팀 블로그 입니다.<br />
<br />
자신만의 생각을 적어가면서, 필요할 경우 관심있어하는 여러명과 동시에 문서를 만들 수 있는 장점을 가지고 있습니다. 프로젝트블로그, 전문가 블로그 라고 할 수도 있겠지요. 블로그 문화가 성숙한 몇몇 나라에서는 꽤나 활성화 된 방식이기도 합니다. <br />
<br />
이 방식을 도입해 보려고 합니다. 일단은 <strong>소프트웨어 프로그래밍</strong>으로 좀 광범위한 영역에 대해서 비슷한 관심을 가진 분들과 함께 해볼 생각입니다. 초기에는 3명정도로 시작해서 차차 늘려가볼 생각입니다. 아마도 리눅스/유닉스 환경에서의 프로그래밍 관련 주제를 주로 다루게 될것으로 생각됩니다.<br />
<br />
계획은 다음과 같습니다.<br />
<ul><li>저자 섭외?  : 4월 10일까지 (3-4명)<br />
</li><li>팀블로깅을 위한 시스템 구축 : 4월 14일<br />
</li><li>운용방안 계획 수립 : 4월 14일<br />
</li><li>첫 포스팅 : 4월 16일<br />
<br />
</li></ul>포스팅이 가능한 수준으로 시스템이 완성되면, 함께 팀블로그를 운용할 분들을 더 찾아볼 생각입니다.			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/123995#comments</comments>
		<pubDate>Fri, 06 Apr 2007 12:00:59 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 번역]컴퓨터사이언스with자바 6장 자바프로그램 만들기 ]]> </title>
		<link>http://yundream.egloos.com/106482</link>
		<guid>http://yundream.egloos.com/106482</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter06">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Java/Documents/ComputerScienceUsingJava/Chapter06</a><br />
이전장에서 자바프로그램이 만들어지고 실행되는 과정에 대해서 알아보았다. 이번 장에서는 간단한 예제 프로그램을 통해서 자바 프로그램이 샐행되는 과정을 좀더 자세히 알아보도록 하겠다.<br />
 <br />
  다룰 내용들은 다음과 같다.<br />
 <ul><li>간단한 예제 프로그램들의 작성<br />
 </li><li>소스파일과 클래스 파일의 이름<br />
 </li><li>Syntax 에러 (문법 에러)<br />
 </li><li>버그<br />
 </li><li>편집, 컴파일, 실행의 사이클<br />
 </li><li>Matching braces<br />
 </li><li>Neat indenting<br />
 <br />
 <strong>문제</strong><br />
 다음 중 자바프로그램이 실행되기 위해서 필요한 파일은 무엇인가.<br />
 <ul><li>소스 코드 파일<br />
 </li><li>바이트코드 파일<br />
 <br />
 </li></ul></li></ul>  <h3><a id="s-1" name="s-1"></a> 예제 소스 프로그램 </h3>  이전장에서 다룬 소스프로그램을 가지고 설명하도록 하겠다. 이 프로그램은 모니터에 <i>Hello World!</i>'를 출력하는 일을 한다.<br />
  <pre class="code">class Hello<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("Hello World!");<br />
  }<br />
}<br />
</pre> <br />
  이 파일은 반드시 <strong>Hello.java</strong>로 클래스의 이름과 같아야만 한다. 많은 컴퓨터 시스템이 파일이름의 대소문자를 구분하기 때문에, 대소문자도 분명히 구분해서 파일이름을 만들도록 하자. 소스 프로그램의 첫번째 라인을 보자<br />
 <div class="indent"> class Hello<br />
 <br />
 </div> 이 소스프로그램은 <strong>Hello</strong>라는 클래스명으로 정의가 된다. <strong>class</strong>는 프로그램의 section을 결정한다. 작은 프로그램은 단지 하나의 클래스로 구성이 되기도 한다. 이 프로그램을 컴파일 하면, 컴파일러는 <strong>Hello.class</strong>라는 바이트코드 파일을 생성한다. <br />
 <br />
  모든 클래스는 하나 이상의 여러 라인으로 구성이 되며, 클래스의 시작과 끝을 알리기 위해서 <strong>{</strong>와 <strong>}</strong>이 사용된다.<br />
 <br />
  클래스의 이름은 반드시 알파벳과 숫자로 작성이 되어야 하며, 첫자는 알파벳을 사용해야만 한다. 이름의 중간에 공백등이 포함되면 안된다. 필수사항은 아니지만 관습적으로 클래스의 첫자는 대문자를 사용하는 경우가 많다. 확장자 이름은 소문자로 <strong>.java</strong>를 사용하면 된다.<br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 첫라인이 다음과 같은 자바 소스 프로그램이 있다. <br />
 <div class="indent"> class AddUpNumbers<br />
 </div> <br />
  <li> 소스파일의 이름은 무엇인가<br />
 </li> <li> 컴파일된 바이트코드 파일의 이름은 무엇인가.<br />
 <br />
 </li></div>  <h3><a id="s-2" name="s-2"></a> Between the Braces </h3>  위에서 다룬 자바 프로그램은 다음과 같은 구성을 가지고 있다.<br />
  <pre class="code">class Hello<br />
{<br />
...<br />
}<br />
</pre> <br />
  클래스는 <strong>{</strong>로 시작하고 <strong>}</strong>로 끝을 맺으며, 모든 내용은 이들 괄호 사이에 존재한다. 지금은 단지 하나의 클래스만 가지는 간단한 프로그램만 다루고 있지만, 나중에는 여러개의 클래스를 가지는 프로그램도 다루게 될 것이다.<br />
  <pre class="code">class Hello<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("Hello World!");<br />
  }<br />
}<br />
</pre> <br />
  이 예제 프로그램은 <i>Hello World!</i>를 모니터에 출력한다. 정말로 간단한 프로그램이지만, 여기에는 자바 프로그램을 이해하기 위한 중요한 많은 요소들을 포함하고 있다. 첫번째 라인을 살펴보자.<br />
  <pre class="code">public static void main(String[] args)<br />
</pre> 프로그램이 시작되는 지점이다. <strong>main</strong>은 <strong>main method</strong>라고 불리우는데, 자바 가상 머신이 프로그램을 실행시키는 지점이 된다. 모든 자바 프로그램은 실행이 되기 위해서 반드시 하나의 main 메서드를 가지고 있어야만 한다.<br />
 <div class="indent"> <strong>문제</strong><br />
 다음은 main 메서드는 문제가 없는가 ? <br />
 <div class="indent"> public    static void main(Stringp[]    args)<br />
 <br />
 </div> </div>  <h3><a id="s-3" name="s-3"></a> println </h3>  <a class="externalLink" href="http://chortle.ccsu.edu/java5/Notes/chap06/ch06_4.html">http://chortle.ccsu.edu/java5/Notes/chap06/ch06_4.html</a><br />
 <br />
  예제 프로그램을 다시한번 살펴보도록 하자.<br />
  <pre class="code">ass Hello<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("Hello World!");<br />
  }<br />
}<br />
</pre> 이 프로그램의 메인 메서드는 다음과 같은 한줄의 코드를 포함하고 있다.<br />
 <div class="indent"> System.out.println("Hello World!");<br />
 <br />
 </div> 이 코드는 쌍따움표 안에 있는 문자를 컴퓨터 시스템의 모니터에 출력하는 일을 한다. <br />
 <br />
  "Hello World!" 와 같이 문자가 연속되어있는 것을 <strong>string</strong> (혹은 문자열)이라고 부른다. 이 프로그램을 string를 모니터에 출력하고 프로그램을 종료시킨다. <br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 소스를 포함한 <strong>Hello.java</strong> 파일을 만들도록 하자. 이 프로그램을 실행시키기 위해서는 2가지 과정을 거쳐야 한다. 이에 대해서 논하라.<br />
 <br />
 </div>  <h3><a id="s-4" name="s-4"></a> 자바 프로그램의 실행 과정 다시보기 </h3>  프로램을 실행시키기 전에 우선, 현재 작업중인 디렉토리에 소스파일이 있는지 확인해야 한다. 그래야 컴파일과 인터프리터 명령이 제대로 수행될 수 있다. 많약 다른 디렉토리에서 작업을 한다면 <strong>File Not Found</strong>와 같은 에러 메시지를 보게 될 것이다. 파일의 확인은 <strong>ls</strong> 명령을 이용하면 된다.<br />
  <pre class="code"># cd /home/java <br />
# ls *.java<br />
Hello.java<br />
</pre> 만약 파일이 존재하지 않는다면 다음과 같은 에러메시지를 출력할 것이다.<br />
  <pre class="code"># ls *.java<br />
ls *.java: 그런 파일이나 디렉토리가 없음<br />
</pre> <br />
  파일이 존재하지 않는다면 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=cd">cd</a>(1) 명령을 이용해서 소스파일이 있는 디렉토리로 이동하도록 하자. 그 후 <strong>javac</strong>를 이용해서 컴파일을 하고, 컴파일된 바이트코드를 <strong>java</strong>인터프리터로 실행시키면 된다.<br />
  <pre class="code"># javac Hello.java<br />
# java Hello<br />
Hello World!<br />
#<br />
</pre> <br />
  <div class="indent"> <strong>문제</strong><br />
 <li>자바 컴파일러를 실행시키기 위한 명령은 ?<br />
 </li><li>자바 인터프리터를 실행시키기 위한 명령은 ?<br />
 <br />
 </li></div>  <h3><a id="s-5" name="s-5"></a> 문법 에러 </h3>  아래의 소스 프로그램을 그대로 copy&amp;paste 해서 Hello.java 로 저장한 후 컴파일 해보도록 하자.<br />
  <pre class="code">Class Hello<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("Hello World!");<br />
  }<br />
}<br />
</pre> 아마도 다음과 같은 에러메시지를 보게 될 것이다.<br />
  <pre class="code"># javac Hello.java<br />
Hello.java:1: 'class' or 'interface' expected<br />
Class Hello<br />
^<br />
1 error<br />
</pre> 소스 코드는 이전의 코드와 동일해 보이지만 <strong>class</strong>의 첫자가 대문자<strong>C</strong>로 변경되었음을 알 수 있다. 이렇게 오타나 혹은 문법이 잘못된 것을 <strong>syntax error</strong> (문법에러)라고 한다.<br />
 <br />
  컴파일러는 소스코드를 바이트코드로 변환하려고 하지만 <strong>Class</strong>라는 알 수 없는 문법을 만나게 된다. 컴파일러는 이경우 어떻게 변환해야 할지 알 수 없기 때문에, 에러메시지를 출력하는 것이다. 소스코드에 이러한 <strong>문법에러</strong>가 존재하는 한 절대로 바이트코드를 만들어 낼 수 없다.<br />
 <div class="indent"> <strong>문제</strong><br />
 위의 예제 코드를 바이트코드가 만들어 지도록 수정해 보라.<br />
 <br />
 </div>  <h3><a id="s-6" name="s-6"></a> 문법에러 수정 </h3>  <strong>Hello.java</strong>를 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=vi">vi</a>로 열어서 <strong>Class</strong>의 <strong>C</strong>를 소문자로 변경한다음 저장한다. 이제 문제 없이 컴파일 될 것이다.<br />
 <br />
  <h3><a id="s-7" name="s-7"></a> 편집, 컴파일, 실행 주기 </h3>  이번 장에서 당신은 당신이 만든 프로그램을 제대로 실행시키기 위해서 다음과 같은 주기를 거쳐야 한다는 것을 알게 되었다.<br />
 <ol type="1"><li> vi를 이용해서 프로그램을 편집한다.<br />
 </li><li> 프로그램을 하드디스크에 저장한다.<br />
 </li><li> <strong>javac</strong>명령을 이용해서 프로그램을 컴파일 한다. <br />
 </li><li> 만약 문법에러 등으로 컴파일이 되지 않는다면 1번으로 되돌아 간다.<br />
 </li><li> <strong>java</strong>명령을 이용해서 프로그램을 실행한다.<br />
 </li><li> 제대로 실행되지 않는다면 1번으로 되돌아간다.<br />
 </li><li> 제대로 실행되면, 주기를 종료한다.<br />
 <br />
 </li></ol> 이것을 <strong>edit-compile-and-run</strong> 주기라고 한다. 하나의 프로그램을 작성하기 위해서는 이 주기를 몇번씩 순환해야 할 것이다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=eclipse">eclipse</a>와 같은 자바 프로그램 개발환경을 이용하면, 이 주기를 숨길 수 있지만 (개발환경이 뒤에서 처리해 준다), 기본 주기는 변하지 않는다. 이 주기는 다른 언어를 이용한 개발에도 거의 동일하게 적용된다.  <br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 주기의 3번째 차례에서 소스 프로그램의 컴파일이 성공했다면, 프로그램이 제대로 실행 될 것이라는 걸 의미하는가 ?<br />
 <br />
 </div>  <h3><a id="s-8" name="s-8"></a> 버그 </h3>  프로그램이 제대로 컴파일 되고 실행되었다고 해서, 프로그램이 <strong>제대로</strong>실행되는 것은 아니다. 예를 들어서, 당신이 술을 마신상태에서 소스프로그램을 만든 다면 다음과 같은 소스 프로그램을 만들어 낼 수도 있다. <br />
  <pre class="code">class Hello<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("Hello Neptune!");<br />
  }<br />
}<br />
</pre> <br />
  이건 문법에러가 아니기 때문에, 컴파일되고 실행이 될 것이다. 그러나 <strong>Hello Neptune</strong>라는 얘기치 않은 string를 출력하게 된다. 이렇게 프로그램의 실행도중에 발생하는 얘기치 않은 문제를 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=bug">bug</a> 라고 한다.<br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
  <li> 이 프로그램은 문법에러 없이 컴파일 되는가 ?<br />
 </li> <li> 이 프로그램은 실행되는가 ?<br />
 </li> <li> 이 프로그램은 원하는 결과를 보여주는가 ? <br />
 <br />
 </li></div>  <h3><a id="s-9" name="s-9"></a> 긴 프로그램의 작성 </h3>  <strong>버그 없는 프로그램</strong>을 만드는 것은 거의 불가능하다. 아주 단순한 프로그램이라고 하더라도 몇개의 버그를 가지고 있을 수 있다. 문제는 심각한 버그인가 아닌가 하는 것이다. 프로그램의 크기가 커지면 당연히 더 많은 버그가 생길 수 있으며, 매우 주의 깊게 프로그램을 작성해야 한다. 문법오류와 버그는 많은 연습을 통해서 어느정도 줄일 수 있다. 또한 경험 많은 프로그래머는 찾기 어려운 버그도 쉽게 찾아낸다. <br />
 <br />
  다음은 좀더 긴 예제 프로그램이다.<br />
  <pre class="code">class Emily<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("A bird came down the walk:");<br />
    System.out.println("He did not know I saw;");<br />
    System.out.println("He bit an angle-worm in halves");<br />
    System.out.println("And ate the fellow, raw.");<br />
  }<br />
}<br />
</pre> 이 프로그램을 <strong>Emily.java</strong>로 저장하고, 컴파일 한 후 실행하고 결과를 확인해 보도록 하자.<br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 위 예제 프로그램의 실행결과를 예상해보라.<br />
 </div>  <h3><a id="s-10" name="s-10"></a> 다른 예제 </h3>  마지막으로 다음과 같은 string를 모니터에 출력하는 프로그램을 직접 만들어 보도록 한다.<br />
 <div class="indent"> On a withered branch<br />
 A crow has just alighted:<br />
 Nightfall in autumn.<br />
 <br />
 </div> 아래의 빈칸을 채워서 완성하면 된다.<br />
  <pre class="code">class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println(_______________________________);<br />
    System.out.println(_______________________________);<br />
    System.out.println(_______________________________);<br />
  }<br />
}<br />
</pre> <br />
  <div class="indent"> <strong>문제</strong><br />
 위 프로그램을 완성한다음 실행시켜 보도록 하자.<br />
 <br />
 </div>  <h3><a id="s-11" name="s-11"></a> 프로그램의 종료 </h3>  여기에 완전한 프로그램이 있다. 이 프로그램은 상따움표 안에 있는 string를 출럭한다. 아래의 코드를 에디터를 통해서 입력할 때, 오타만 없다면 문제 없이 컴파일되고 실행될 것이다.<br />
  <pre class="code">class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("On a withered branch");<br />
    System.out.println("A crow has just alighted:");<br />
    System.out.println("Nightfall in autumn.");<br />
  }<br />
}<br />
</pre> <br />
  예제 프로그램을 입력하다보면, 여러개의 스페이스문자를 사용하거나 여러개의 개행문자를 입력할 수 있을 것이다. 그러나 이것들은 컴파일하는데 문제를 일으키거나 하지는 않는다. 아래의 예를 보기 바란다. <br />
  <pre class="code">  class     Haiku{<br />
  public   static void main(String[] args )<br />
    {<br />
  System.out.   <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=println">println</a>(          "On a withered branch");<br />
    System  .  out.println("A crow has just alighted:"         );<br />
System.out.println("Nightfall in autumn.");<br />
  }}<br />
</pre> 코드가 꽤 난잡해지긴 했지만, 컴파일러는 무사히 코드를 번역해서 바이트코드를 생성해 낼 것이다. 인간의 눈에 보기에는 난잡한 코드지만, 위의 코드와 완전히 동일한 바이트 코드를 생성해 낸다.<br />
 <br />
  비록 자바 컴파일러 입장에서는 스페이스나 개행문자를 별로 신경쓰지 않는다고는 하지만 소스 프로그램은 사람이 보기 좋게 작성해야할 필요가 있다는 것을 염두에 두기 바란다.<br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 프로그램에 사소한 실수가 있을 경우, 쉽게 문제를 찾아낼 수 있는가 ?<br />
 <br />
 </div>  <h3><a id="s-12" name="s-12"></a> 주석 </h3>  <strong>주석</strong> (comment)는 프로그램에 인간만이 해석하도록한 일종의 표시다. 아래의 프로그램은 주석을 사용한 예이다.<br />
  <pre class="code">// Write three lines of a poem to the computer monitor<br />
class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("On a withered branch" );<br />
    System.out.println("A crow has just alighted:");<br />
    System.out.println("Nightfall in autumn.");<br />
  }<br />
}<br />
</pre> // 이후의 라인은 인간만이 해석하라고 약속되어 있으므로, 컴파일러는 이 줄을 건너 뛰게 된다. 그러므로 주석을 사용하지 않은 코드와 완전히 동일한 바이트코드를 생성하게 된다. 자바 컴파일러는 주석은 해석하지 않고 건너 뛴다.<br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 주석은 바이트코드로 변환되는가?<br />
 <br />
 </div>  <h3><a id="s-13" name="s-13"></a> 많은 주석의 작성 </h3>  주석은 프로그램의 코드를 설명하기 위해서 사용된다. <br />
  <pre class="code">class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("On a withered branch" );  // Write first line of the poem<br />
    System.out.println("A crow has just alighted:");  // Write 2nd line of the poem<br />
    System.out.println("Nightfall in autumn.");  // Write 3rd line of the poem<br />
  }<br />
}<br />
</pre> // 주석을 사용하면 // 표시뒤의 문자들이 모두 주석으로 처리된다. 그렇다면 여러라인의 줄을 동시에 주석으로 사용하고자  경우도 필요할 것이다. 이 경우에도 //로 처리가 가능하겠지만, 보통 /* */을 널리 사용한다.<br />
 <br />
   <pre class="code">/* Program 1<br />
<br />
Write out three lines of a poem.<br />
The poem describes a single moment in time,<br />
using 17 syllables.<br />
*/<br />
<br />
class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println("On a withered branch" );<br />
    System.out.println("A crow has just alighted:");<br />
    System.out.println("Nightfall in autumn."); <br />
  }<br />
}<br />
</pre> 이건 주석의 또다른 스타일로 /* */사이에 있는 모든 문자들을 주석으로 처리한다. 이 스타일은 주석의 양이 많아질 때 유용하게 사용할 수 있다.<br />
 <br />
  <div class="indent"> <strong>문제</strong><br />
 왜 당신의 프로그램에 사용된 주석은 프로그램을 이해하는데 도움을 주는가?<br />
 <br />
 </div>  <h3><a id="s-14" name="s-14"></a> 괄호문 </h3>  프로그램을 보면 코드들이 괄호에 둘러쌓여 있음을 알 수 있다.<br />
  <pre class="code">왼쪽괄호 <br />
   {<br />
오른쪽괄호<br />
   }<br />
</pre> <br />
  예제 코드에서 첫번째 괄호는 클래스가 이제 시작됨을 나타내고, 두번째 괄호는 클래스가 여기에서 끝나고 있음을 알려준다. 또한 괄호는 그 안에 또다른 괄호를 둘 수가 있는데, 이 경우 메서드의 시작과 끝을 나타내기 위해서 사용한다.<br />
  <pre class="code">class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println( "On a withered branch" );<br />
    System.out.println( "A crow has just alighted:" );<br />
    System.out.println( "Nightfall in autumn." );<br />
  }<br />
}<br />
</pre> <br />
  <h3><a id="s-15" name="s-15"></a> 끝내며 </h3>  괄호는 시작괄호와 끝괄호가 서로 정확히 매칭 되어야 함을 기억하기 바란다. 이것은 ()와 같은 소괄호나, []등에도 그대로 적용된다. 이 괄호들은 프로그램에서 클래스나 메서드의 영역을 명확히 정의 하기 위해서 사용한다. <br />
  <pre class="code">class Haiku<br />
{<br />
  public static void main ( String[] args )<br />
  {<br />
    System.out.println( "On a withered branch" );<br />
    System.out.println( "A crow has just alighted:" );<br />
    System.out.println( "Nightfall in autumn." );<br />
  }<br />
}<br />
</pre>			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/106482#comments</comments>
		<pubDate>Wed, 28 Mar 2007 11:14:45 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 애드센스 1,000 달러 돌파 ]]> </title>
		<link>http://yundream.egloos.com/101715</link>
		<guid>http://yundream.egloos.com/101715</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/Fun/Adsense_thousand">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/Fun/Adsense_thousand</a><br />
<br />
본격적으로 배치를 한게 2006년 9월이고, 오늘 2007년 3월 26일 까지 1600 달러의 수익을 올렸다. 프로그래밍.. 그 중에서도 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=Linux">Linux</a> 환경에서의 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=C">C</a>프로그래밍 관련 내용을 주로 다루는 일반적이지 않은 사이트라는 점을 감안하면, 꽤 큰 금액이라고 할 수 있을거 같다. <br />
 <br />
  모은돈으로 얼마전에 자전거도 하나 구입했다. 유콘디스크다. <br />
 <br />
  <span class="attach"><img src="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/Fun/Adsense_thousand?action=download&amp;value=yukondiscm.gif" alt="yukondiscm.gif" /></span><br />
 <br />
  <img alt="[http]" src="http://www.joinc.co.kr/modules/moniwiki/imgs/http.png" align="middle" /><a class="externalLink" href="http://www.joinc.co.kr/">사이트</a>가 만들어진게 2001년 경이니 거의 5년 정도를 운영해 오고 있는거 같다. 하루 평균 한시간 정도를 문서만드는데 투자 했던거 같다. 이외에도 컨텐츠의 원할한 관리를 위한 프로그래밍 작업에도 많은 시간을 투자했다. 처음 사이트를 만든 이유는 이력관리를 위함이였다. 지금도 여전히 이력관리를 위한게 일차적인 목표인데, 어느정도 목표가 달성되었다고 생각되어서 저서활동등으로의 활용도 생각해보고 있는 중이다. <br />
 <br />
  특이?하게도 컨텐츠는 블로그가 아닌 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=wiki">wiki</a>로 축적되고있다. UCC를 축적하기 위한 도구로 블로그만을 생각하는 경우가 많은것 같은데, 위키도 매우 훌륭한 도구라는걸 알아주었으면 한다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=wikipedia">wikipedia</a>와 같은 경우만 봐도 그렇고 집단지성을 위한 도구로는 위키만한게 없는거 같다. <br />
 <br />
  블로그는 집단지성을 위한 도구는 아니라고 생각한다. 블로그는 서로의 관심분야에 대해서 빠르게 의견교환을 하고 배포할 수는 있지만, 개인미디어라는 태생적 한계를 가진다. 외국의 경우 지식사이트 (혹은 커뮤니티)의 상당수가 블로그를 통해서 의견교환을 하고, 그 결과는 위키를 통해서 지식정보로 만드는 시스템을 따르고 있다. 최근에는 <strong>팀블로그</strong>라는 형식을 빌어, 개인미디어의 한계를 극복하고자 하는 시도가 보인다. <br />
 <br />
  다양한 매체에서 <strong>동영상 == UCC</strong>라는 식으로 컨텐츠를 단순화 시키는건 못 마땅하다. UCC 최고의 컨텐츠는 그림을 곁들인 문서라고 생각된다. 많이 쉬워지긴 했지만 양질의 동영상을 만드는건 결코 쉬운일이 아니다. 이는 다양한 사람들이 자신의 생각을 쉽고 빠르게 전달할 수 없음을 의미한다. 일반 텍스트문서는 누구든지 조금만 노력하면, 꽤나 양질의 컨텐츠를 생산해낼 수 있다. 적어도 습작수준에서는 벗어날 수 있다. 반면 동영상물의 상당수는 습작수준을 벗어나지 못하고 있다.<br />
 <br />
  물론 회사들이야 어떤현상을 마케팅영역으로 끌어올려서 어떻게든 시장을 형성해야 하긴 하겠지만, 컨텐츠 제작자체에 대한 문화캠페인도 함께 펼쳐나갔으면 하는 바램이다. 회사라는게 돈버는게 일차목표긴 하겠지만, 사회에 기여하는 면도 좀 보여줘야 하지 않겠는가. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=google">google</a>이 왜 개발자들 사이에서 많은 지지를 받고 있는지 생각해볼 필요가 있다.  <br />
 <br />
  애드센스 최적화로 일주일만에 800달러. 이런 류의 글을 본적이 있다. 사이트를 방문해 보면, 원래 그 사이트는 그 정도의 값어치를 하는 사이트들이다. 물론 최적화도 중요하긴 할 것이다. 그러나 최적화가 컨텐츠보다 우위에 있을 수는 없을 것이다. 블로그스피어에서 다루는 애드센스 관련글들은 <strong>어떻게 좋은 컨텐츠를 만들어 나갈 것인가</strong>는 외면하고 있다는 생각이 든다.			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/101715#comments</comments>
		<pubDate>Mon, 26 Mar 2007 08:56:47 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ GPL에 대한 오해 ]]> </title>
		<link>http://yundream.egloos.com/96866</link>
		<guid>http://yundream.egloos.com/96866</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/What_GPL">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Forum/manager/What_GPL </a><br />
<br />
이 글을 읽기전에 <a class="externalLink" href="http://www.gnu.org/licenses/gpl-faq.ko.html">http://www.gnu.org/licenses/gpl-faq.ko.html</a> 를 한번읽어보시길 바랍니다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=gnu">gnu</a>공식사이트의 번역문서이니, 문서의 내용이 모두 옳다는 가정하에 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>에 대한 분석결과를 얘기해 보려합니다.<br />
 <br />
  <h2><a id="s-1" name="s-1"></a> 라이센스와 저작권 </h2>  라이센스가 하위 개념입니다. 소스코드의 원저작권자는 (개인,복수일수도 있고 회사일 수도 있음)분명히 존재합니다. 저작권자는 자신의 저작물에 대해서 독점적인 권한을 가지고 있으며, 이 권한을 이용해서 저작자는 자신의 저작물에 대해서 원하는 라이센스를 부여할 수 있습니다. 즉 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>하의 프로그램이라고 하더라도 권한을 가지는 저작권자는 존재를 합니다.<br />
 <br />
  예를들어서 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 프로그램을 대폭개선한 새로운 버전의 프로그램을 저작권자가 만들었다면, 저작권자는 이 새로운 버전의 프로그램의 라이센스를 변경할 수 있는 권한을 가지게 됩니다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=mysql">mysql</a>과 몇몇 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 기반의 프로그램들이, 이런식으로 라이센스가 변경된 예입니다.<br />
 <br />
  <h3><a id="s-1.1" name="s-1.1"></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>의 핵심 </h3>  핵심은 "배포의 자유를 허락한다" 입니다. 여러가지 조항들은 배포의 자유를 보장하기 위한 장치들입니다. 다음과 같은 조항들이 포함됨니다.<br />
 <ol type="1"><li> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>로 배포받은 프로그램은 개작 재배포를 허락한다.<br />
 </li><li> 개작된 프로그램도 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>이다.<br />
 </li><li> 배포할때는 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>로 배포되어야 한다. <br />
 <ul><li>즉 배포받은자가 요구할 경우 소스코드와 프로그램 문서의 일체를 제공해야 한다. <br />
 <br />
 </li></ul></li></ol> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>은 상용으로의 사용을 허락하지 않는다는 잘못알려진 내용입니다. <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>은 배포의 자유에 대한 것만을 명시하고 있습니다.<br />
 <br />
  <h3><a id="s-1.2" name="s-1.2"></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 효력 발효 시점 </h3>  "배포의 자유"와 관련된 라이센스이므로 "배포" 할때 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>의 효력이 발생합니다. 내가 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>을 따르는 "가나다" 프로그램을 받아서 수정을 했다고 하더라도, 배포하기 전에는 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>이 효력을 발휘하지 않습니다. <br />
 <br />
  예를 들자면, 나는 너가 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 프로그램을 수정했다는걸 안다. 그러므로 수정된 소스코드와 문서를 달라 라고 할수가 없습니다. "배포전"이기 때문으로, 제공하거나 안하는건 개인의 자유입니다. 만약 제공하기로 마음먹었다면, 제공하는 자체가 배포하는 행위가 되기 때문에, 그때부터 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>이 효력을 발휘하게 됩니다. <br />
 <br />
  자신들의 리눅스커널을 수정해서 자신들의 서비스를 위해서 내부적으로 이용할 경우가 있을 수 있을 겁니다. 이 경우에도 마찬가지로 소스코드를 외부에 공개할 의무는 없습니다. 배포는 자유입니다. 단 이걸 어떤 업체나 개인에게 배포했다 하면, 그 시점에서 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>이 효력을 발휘하게 되고, 해당 업체는 소스코드와 문서등의 일체를 개인에게 제공해야 합니다. <br />
 <br />
  이때, 어디까지를 배포하는 행위로 봐야할 것인가 하는 문제가 발생할 수는 있습니다. 어떤 서비스를 위해서 자신들의 종단 시스템에만 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 프로그램을 개작 사용하고 있을 경우, 이를 일반사용자로의 배포로 봐야하는가 하는 것입니다. 이에 대한 판단은 사회에 따라 차이가 있을 것으로 생각됩니다.<br />
 <br />
  <h3><a id="s-1.3" name="s-1.3"></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 프로그램을 판매할 수 있는가 </h3>  자유와 무료, 공짜를 혼동하는 경우도 많은데, 자유와 무료와 공짜는 관계가 없습니다. 또한 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>은 프로그램을 획득한 자가 "자유로이 배포할 수 있는 권리"를 보장하기 위한 라이센스입니다. 상업적인가 아닌가 혹은 비용이 필요한가 아닌가와는 아무런 상관이 없습니다.<br />
 <br />
  즉 자유로이 배포할 수 있는 권리를 따르게 한다면 비용을 받고 파는 것도 문제가 되지 않습니다.<br />
 <br />
  그러나 비용을 받고 판매한 개작된 프로그램은 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>을 따라야 하기 때문에 구매한 자가 혼자 가지고 놀건, 공짜로 배포하건, 이걸 다시 개작해서 비용을 받고 배포하건 간에 이에 상관할 수 없습니다. <br />
 <br />
  우리가 통상적으로 생각하는 "독점적인 권한"을 가지는 프로그램을 판매하거나 소스를 판매한다 하는 행위와는 매우 다르다는걸 알 수 있습니다. 그러므로 "소스코드를 판매한다"라는 것은 거의 의미없는 행위이며, 사실상 소스를 개작한데 따른 시간과 노력에 대한 비용을 청구한다는 개념으로 봐야 합니다.<br />
 <br />
  <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 전문에도, <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>을 따른다면 비용을 받고 소스를 판매하는걸 허용하고 있습니다.<br />
 <br />
  <h3><a id="s-1.4" name="s-1.4"></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>라이센스의 변경 </h3>  라이센스의 변경은 저작권자만이 할 수 있습니다. 또한 저작권자라고 하더라도 이미 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>의 적용을 받는 프로그램에 대해서는 라이센스를 변경할 수 없습니다. 즉 다음과 같은 경우가 가능합니다. <br />
 <ol type="1"><li> 가나다라 1.0 버전을 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>로 공개했다.<br />
 </li><li> 가나다라 2.0 을 만들었는데 이를 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=LGPL">LGPL</a>, BSD 혹은 상용라이센스로 한다.<br />
 <br />
 </li></ol> 혹은 반대의 경우도 가능합니다.<br />
 <ol type="1"><li> 개인 혹은 회사의 프로그램의 일체의 (소스까지를 포함한)권한을 구매한다. <br />
 </li><li> 해당 프로그램을 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 라이센스로 해서 공개한다.<br />
 <br />
 </li></ol> 어떤 회사가 돈을 받고 프로그램을 구입한다음에 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>로 라이센스를 바꾸는 바보같은 짓을 할까.. 생각할 수 있겠지만. 최근에는 기업이미지, 개발자 커뮤니티의 확보등을 목적으로 이루어지는 경우도 어렵지 않게 찾아볼 수 있습니다. <br />
 <br />
  - 아직 구체적으로 실현되지는 않았지만 - 제로보드가 대표적인 경우가 될겁니다. NHN에서 제로보드를 인수하고, 라이센스를 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>로 바꾸어서 배포하는 형식입니다. 저작권을 가지고 있기에 가능한게 되겠죠.  <br />
 <br />
  <h3><a id="s-1.5" name="s-1.5"></a> <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>의 법적 효력 </h3>  <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a> 은 소셜라이센스 입니다. 사회적 합의에 따른 라이센스이며, 법적효력을 가질 것인지 아닌지에 대한 것은 나라와 문화에 따라 차이가 있을 수 있습니다.<br />
 <br />
  그러나 상당한 영향력을 행사하고 있기 때문에, 법적으로 제한하지 않는 나라라고 하더라도 <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>을 무시하는건 현실적으로 불가능하다고 봐야할 겁니다. 우리나라는 관련법규가 아직 마련되지 않은걸로 알고 있는데, <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/manSearch?google=none&amp;name=GPL">GPL</a>의 영향력을 봤을때, 조만간 관련법규가 만들어질 것으로 기대됩니다.			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/96866#comments</comments>
		<pubDate>Fri, 23 Mar 2007 12:32:15 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 구글 개인화 홈페이지 테마 ]]> </title>
		<link>http://yundream.egloos.com/94997</link>
		<guid>http://yundream.egloos.com/94997</guid>
		<description>
			<![CDATA[ 
  원문 : <a href="http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Google/Service/Theme">http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Google/Service/Theme</a><br />
<br />
구글 개인화 홈페이지에 적용가능한 테마기능이 선보였다는 소리를 듣고, 테마를 적용해봤습니다. 꽤나 예쁜 모양의 테마를 제공하는군요. 아직 우리나라는 정식으로 지원하지 않는 것 같습니다. 해서 영문사이트로 접속해서 테마를 테스트해봤습니다. <a class="externalLink" href="http://www.google.com/ig?hl=en">http://www.google.com/ig?hl=en</a> 요런식으로 접속해서 테스트 하면 됩니다.<br />
 <br />
  테마는 꽤 예쁘고, 시간에 따라 테마의 내용이 변하는 것도 흥미롭습니다. 낮에는 해뜨고, 밤에는 별이 뜹니다. 아래는 2006/3/22일 18:00 경의 스크린샷입니다.<br />
  <table style="width: auto;"><tbody><tr><td><a href="http://picasaweb.google.co.kr/yundream/Google/photo#5044680662576117506"><img src="http://lh5.google.co.kr/image/yundream/RgJOVbIhtwI/AAAAAAAAAI8/5iLVDF_6TcA/s288/google_thme.jpg" /></a></td></tr><tr></tr><tr><td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;">보내는 사람 <a href="http://picasaweb.google.co.kr/yundream/Google">Google</a></td></tr></tbody></table>			 ]]> 
		</description>

		<comments>http://yundream.egloos.com/94997#comments</comments>
		<pubDate>Thu, 22 Mar 2007 09:43:16 GMT</pubDate>
		<dc:creator>yundream</dc:creator>
	</item>
</channel>
</rss>
