<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/style/rss/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0">
	<channel>
		<title>美소년 ㅇㅅㅇ씨의 一日</title>
		<link>http://zsimi.tistory.com/</link>
		<description>한글자 만이라도 코멘트 남겨주시면 캐감사!</description>
		<language>ko</language>
		<pubDate>Wed, 20 Aug 2008 16:25:17 +0900</pubDate>
		<generator>Tistory 1.1</generator>
		<image>
		<title>美소년 ㅇㅅㅇ씨의 一日</title>
		<url><![CDATA[http://cfs3.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzMy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDgwMDAwMDAwMDAyLmpwZw==]]></url>
		<link>http://zsimi.tistory.com/</link>
		<description>한글자 만이라도 코멘트 남겨주시면 캐감사!</description>
		</image>
		<item>
			<title>[일기] 일상에 대한 간단한 코멘트.</title>
			<link>http://zsimi.tistory.com/191</link>
			<description>■ 인턴&lt;br /&gt;이제 2주 정도 남았다. 아쉬운 마음이 크다. 좋은 환경에서 좋은 사람들과 이렇게 일을 해본다는 것은 정말 큰 경험이었다. 맡은 프로젝트는 대부분을 만들었고 수정/보완 작업중이다. 경험상 개발 막바지의 디버깅과 수정에 시간이 많이 걸리기 때문에 과연 &amp;lt;완성&amp;gt;이라고 말할 수 있는 단계까지 갈지는 모르겠다.&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/31/tistory/2008/08/16/12/37/48a64b6dc3e3b&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;휴게실. (커피와 좋은 컴퓨터, 시원한 환경. 이것으로 내 생산성은 3배로 증가)&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/22/tistory/2008/08/16/12/37/48a64b6e89d42&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;휴게실에서 본 서현역의 아침.&lt;/p&gt;&lt;/div&gt;■ 생일&lt;br /&gt;생일이었다. 축하해준 사람들에게 정말 고마웠다. (특히 혜민선배님과 은선선배님에게 감사를...ㅜ.ㅜ) 받은 선물은 가문의 보물로 대대로 물려줄 것이다. 또, 나의 협소한 인간관계에도 불구하고 축하해준 (몇 안되는) 친구들에게 굉장한 고마움을 느낀다.&lt;br /&gt;&lt;br /&gt;■ 192번 훈련병과&lt;br /&gt;훈련소 동기인 원창형과 일 끝나고 만났다. 형은 이매역에 산다고 한다. (회사에서 한 정거장) 여러가지 이야기를 했다. 멋진 사람의 본질에 가까이 가는 것은 기분이 좋다. (인간의 본질에 가까이 가는 것이 항상 유쾌하지만은 않은 법이다.)&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/3/tistory/2008/08/16/12/37/48a64b6ce44f0&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;100&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;왼쪽이 원창형. 실물은 정말 핸썸하시다!&lt;/p&gt;&lt;/div&gt;</description>
			<category>기억의 기록</category>
			<category>일기</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/191</guid>
			<comments>http://zsimi.tistory.com/191#entry191comment</comments>
			<pubDate>Sat, 16 Aug 2008 12:40:37 +0900</pubDate>
		</item>
		<item>
			<title>발표 준비할 논문.</title>
			<link>http://zsimi.tistory.com/190</link>
			<description>&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://zsimi.tistory.com/attachment/ik090000000000.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; chen_p5-sosp.pdf&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;The measured performance of personal computer operating system&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://zsimi.tistory.com/attachment/hk140000000000.pptx&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/unknown.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; PCOS성능측정_최종.pptx&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://zsimi.tistory.com/attachment/jk090000000000.pdf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/pdf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; What every programmer should know about memory.pdf&lt;/a&gt;&lt;p class=&quot;cap1&quot;&gt;What every programmer should know about memory&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;준비. 준비.&lt;br /&gt;</description>
			<category>IT/프로그래밍</category>
			<category>IT</category>
			<category>paper</category>
			<category>논문</category>
			<category>메모리</category>
			<category>발표</category>
			<category>세미나</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/190</guid>
			<comments>http://zsimi.tistory.com/190#entry190comment</comments>
			<pubDate>Thu, 31 Jul 2008 11:31:41 +0900</pubDate>
		</item>
		<item>
			<title>서버의 CVS에서 직접 deploy 하기.</title>
			<link>http://zsimi.tistory.com/189</link>
			<description>&lt;p id=&quot;more189_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;189_0&#039;,&#039;환경설정 수정하기. (CVS경로 설정)&#039;,&#039;less..&#039;); return false;&quot;&gt;환경설정 수정하기. (CVS경로 설정)&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content189_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;satbench:~ sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;vi .profile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PS1=&#039;\h:\w \u\$ &#039;;&lt;br /&gt;CVS_RSH=&lt;span style=&quot;font-weight: bold;&quot;&gt;ssh&lt;/span&gt;&lt;br /&gt;CVSROOT=:&lt;span style=&quot;font-weight: bold;&quot;&gt;ext&lt;/span&gt;:sangwook@localhost:/home/cvs&lt;br /&gt;export CVSROOT&lt;br /&gt;export CVS_RSH&lt;/div&gt;&lt;p id=&quot;more189_1&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;189_1&#039;,&#039;CVS에서 체크아웃하기.&#039;,&#039;less..&#039;); return false;&quot;&gt;CVS에서 체크아웃하기.&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content189_1&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt; satbench:~ sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;cvs checkout cpuusage&lt;/span&gt;&lt;br /&gt;The authenticity of host &#039;localhost (127.0.0.1)&#039; can&#039;t be established.&lt;br /&gt;RSA key fingerprint is *********************************&lt;br /&gt;Are you sure you want to continue connecting (yes/no)? yes&lt;br /&gt;Warning: Permanently added &#039;localhost&#039; (RSA) to the list of known hosts.&lt;br /&gt;sangwook@localhost&#039;s password: &lt;br /&gt;cvs checkout: Updating cpuusage&lt;br /&gt;U cpuusage/.classpath&lt;br /&gt;U cpuusage/.project&lt;br /&gt;U cpuusage/build.properties&lt;br /&gt;U cpuusage/build.xml&lt;br /&gt;... 등등등 파일들을 체크아웃 함.&lt;/div&gt;&lt;p id=&quot;more189_2&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;189_2&#039;,&#039;톰캣에 deploy하기.&#039;,&#039;less..&#039;); return false;&quot;&gt;톰캣에 deploy하기.&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content189_2&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt; satbench:~ sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;ls&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;cpuusage&lt;/span&gt;&amp;nbsp; cpuusage_daily.py&amp;nbsp; cpuusage.py&amp;nbsp; create_db.sql&lt;br /&gt;satbench:~ sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;cd cpuusage&lt;/span&gt;&lt;br /&gt;satbench:~/cpuusage sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;ls&lt;/span&gt;&lt;br /&gt;build&amp;nbsp; build.properties&amp;nbsp; build.xml&amp;nbsp; CVS&amp;nbsp; dist&amp;nbsp; src&amp;nbsp; WebContent&lt;br /&gt;satbench:~/cpuusage sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;ant undeploy&lt;/span&gt;&lt;br /&gt;Buildfile: build.xml&lt;br /&gt;Trying to override old definition of datatype resources&lt;br /&gt;&lt;br /&gt;undeploy:&lt;br /&gt;&amp;nbsp;[undeploy] OK - Undeployed application at context path /cpuusage&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 0 seconds&lt;br /&gt;satbench:~/cpuusage sangwook$ &lt;span style=&quot;font-weight: bold;&quot;&gt;ant deploy&lt;/span&gt;&lt;br /&gt;Buildfile: build.xml&lt;br /&gt;Trying to override old definition of datatype resources&lt;br /&gt;&lt;br /&gt;prepare:&lt;br /&gt;&lt;br /&gt;compile:&lt;br /&gt;&lt;br /&gt;dist:&lt;br /&gt;&lt;br /&gt;deploy:&lt;br /&gt;&amp;nbsp;&amp;nbsp; [deploy] OK - Deployed application at context path /cpuusage&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 0 seconds&lt;br /&gt;satbench:~/cpuusage sangwook$&lt;br /&gt;&lt;/div&gt;&lt;p id=&quot;more189_3&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;189_3&#039;,&#039;cvsdeploy.sh 쉘 스크립트 &#039;,&#039;less..&#039;); return false;&quot;&gt;cvsdeploy.sh 쉘 스크립트 &lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content189_3&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;satbench:~ sangwook$ cat cvsdeploy.sh&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;cvs update cpuusage&lt;br /&gt;cd cpuusage&lt;br /&gt;ant undeploy&lt;br /&gt;ant clean&lt;br /&gt;ant clean-work&lt;br /&gt;ant deploy&lt;/div&gt;</description>
			<category>IT/프로그래밍</category>
			<category>CVS</category>
			<category>deploy</category>
			<category>리눅스</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/189</guid>
			<comments>http://zsimi.tistory.com/189#entry189comment</comments>
			<pubDate>Mon, 28 Jul 2008 14:06:30 +0900</pubDate>
		</item>
		<item>
			<title>VBA와 자바스크립트</title>
			<link>http://zsimi.tistory.com/188</link>
			<description>■ VBA&lt;br /&gt;오늘 엑셀 작업을 할 일이 있어서 오랜만에 VBA를 짰다. 일회용으로 쓸 꺼라서 그냥 자동으로 생성되는 코드를 사용하기만 했다.&lt;br /&gt;&lt;br /&gt;■ Greasemonkey와 자바스크립트&lt;br /&gt;그러다가 웹 페이지에서 특정 수치를 긁어서 엑셀로 복사 붙여넣기를 해야하는 작업이 생겼다. (그것도 많이!) 똑같은 작업을 자동화 하는게 프로그래머의 임무라고 생각해서, 단순 노동을 하지 않고 Greasemonkey를 사용해서 자바스크립트로 해결 하려고 시도 하였다.&lt;br /&gt;&lt;br /&gt;결과적으로는 단순 노동 보다 시간이 더 걸렸던것 같다. 자바스크립트가 손에 익지 않아서 일 것이다. (js는 아무리 해도 적응하기 힘들다.) 아무튼 일회용 코드이고, 기존 소스가 굉장히 더러운 소스였기 때문에 (태그별로 id가 전혀 없다) 위치를 통해서 객체를 얻고 그 객체의 문자열을 클립보드에 복사하는 스크립트를 짰다. 하지만 클립보드로 복사하는 코드가 익스플로러 밖에 안되서 좌절. (-_-;) 할 수 없이 그냥 아래와 같이 해당 숫자를 끊어서 링크가 안 걸린 순수 문자열을 복사하기 좋은 위치에 추가 시키는 스크립트로 만족했다.&lt;br /&gt;&lt;br /&gt;var elPageView=document.elementFromPoint(623,206)&lt;br /&gt;var strPV = elPageView.innerHTML.replace(/,/g,&#039;&#039;)&lt;br /&gt;&lt;br /&gt;var elP = document.createElement(&quot;p&quot;);&lt;br /&gt;elP.innerHTML = strPV&lt;br /&gt;&lt;br /&gt;elPageView=document.elementFromPoint(250,50)&lt;br /&gt;elPageView.appendChild(elP)</description>
			<category>IT/프로그래밍</category>
			<category>greasemonkey</category>
			<category>VBA</category>
			<category>스크립트</category>
			<category>자바스크립트</category>
			<category>파이어폭스</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/188</guid>
			<comments>http://zsimi.tistory.com/188#entry188comment</comments>
			<pubDate>Tue, 15 Jul 2008 22:41:51 +0900</pubDate>
		</item>
		<item>
			<title>[일기] IA</title>
			<link>http://zsimi.tistory.com/187</link>
			<description>■ 아키텍쳐, 아키텍트&lt;br /&gt;오늘 랩장님께서 친히 IA에 대한 강의를 하셨다. 내가 속해 있는 부서가 IA랩의 SA팀인데, 오늘 우리 랩이 무슨일을 하는 곳인지 대충 알 수 있었다. (이제야!) 아무튼 문제를 분석해서 구현 가능 여부와 품질을 생각해서 설계안을 만들고 그 설계안 중에서 하나를 선택하는 곳이다. 아무튼 지금까지 생활하면서 느낀 것은 회사에서는 연역법 보다 귀납법을 좋아 한다는 것. 일단 많은 idea를 tree 형태로 만들고 기능, 성능, 보안등의 측면에서 실험, 분석, 평가를 (꼭) 해서 각각의 tradeoff를 생각해서 선택하는게 중요하다. (결정하는 방법은 인터뷰, 책, 실험, 토론등이 있다.) (내가 문장 중간에 영어를 섞어 쓰는 것은 회사에서 이런식으로 하기 때문이다. 나는 이러고 싶지 않다.)&lt;br /&gt;&lt;br /&gt;■ 중요한 것은&lt;br /&gt;강의가 끝나고 랩장님이 점심을 쏘셨는데. 고급 중국 음식점에서 코스로 먹었다. 내가 언제 이런걸 먹어 보겠어?&lt;br /&gt;&lt;br /&gt;■ DB설계&lt;br /&gt;재희가 정말정말(*10) 수고한 덕분에 DB가 거의 완성됬다. 나는 이번주에 점유율을 DB에 넣는 파이썬 스크립트를 작성했다. DB가 완성되었 으니 DB넣는 부분도 넣어야 겠다. 이제 본격적으로 서블릿/JSP 프로그래밍을 해야지. 어서 완성하자.&lt;br /&gt;</description>
			<category>기억의 기록</category>
			<category>인턴</category>
			<category>일기</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/187</guid>
			<comments>http://zsimi.tistory.com/187#entry187comment</comments>
			<pubDate>Thu, 10 Jul 2008 21:26:21 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 인턴</title>
			<link>http://zsimi.tistory.com/186</link>
			<description>&lt;p&gt;■ 하계 인턴&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/image/13/tistory/2008/07/06/15/15/487062f03ea32&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;267&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;7월1일~8월29일&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;인턴을 시작한 후 처음 맞이한 주말. 그동안 즐거운 일, 재밌는 일, 얻은 것, 잃어버린 것, 짓밟아 버린 것, 희생시킨 것 등등등 쓸 것이 많지만 단어를 선택해서 정리할만한 시간도 없고 기력도 없다. 아무튼 IT업종의 기업중에서 (아마 가장) 대기업인 N사에서 인턴을 하게 되었고 여러 좋은 사람들을 만나고 주어진 업무를 진행하고 있다. 나는 N사 내부에서 연구실과 비슷한 I센터의 IA랩의 SA팀에서 일하고 있다. 여기서 느끼는 건 N사는 좋은 기업이고 들어가고 싶은 기업이라는 것. 아무튼 좋은 경험이 될 것 같고, (존경할 만한) 많은 동생들(인턴 동기들이 거의 동생들이다)과 선배들이 생겨서 기분 좋다.&lt;br /&gt;&lt;br /&gt;덧,&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/image/4/tistory/2008/07/06/15/15/487062f56fab3&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;29&quot; width=&quot;488&quot;/&gt;&lt;/div&gt;&lt;/p&gt;</description>
			<category>기억의 기록</category>
			<category>인턴</category>
			<category>일기</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/186</guid>
			<comments>http://zsimi.tistory.com/186#entry186comment</comments>
			<pubDate>Sun,  6 Jul 2008 15:20:43 +0900</pubDate>
		</item>
		<item>
			<title>MFC와 DX, 그리고 채팅 프로그램 만들기.</title>
			<link>http://zsimi.tistory.com/185</link>
			<description>■ MFC+DX를 이용하는 서버/클라이언트 방식의 채팅 프로그램&lt;br /&gt;과제가 있어서 위와 같은 긴 컨셉으로 프로그램을 만들었다. 이 프로그램을 만들면서 새롭게 알게 된 것과 잘못 알고 있었던 사실에 대한 정리.&lt;br /&gt;&lt;br /&gt;■ MFC에 DX 올리기.&lt;br /&gt;hr = m_pD3D-&amp;gt;CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-weight: bold;&quot;&gt;GetDlgItem(IDC_RENDERVIEW)-&amp;gt;GetSafeHwnd()&lt;/span&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; D3DCREATE_SOFTWARE_VERTEXPROCESSING,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;m_d3dpp, &amp;amp;m_pD3DDevice );&lt;br /&gt;여기서 윈도우의 핸들(HWND)를 주면 그곳으로 D3D를 렌더링 할 수 있다고 생각하고 ListBox 컨트롤을 만들어서 채팅 프로그램을 대충 다 만들고, 그 ListBox 컨트롤의 핸들을 넘겨 줬는데. 렌더링이 되지 않았다. 예제를 찾아서 연구(?)한 결과 Picture 컨트롤을 만들고 따로 변수를 만들필요 없이 위에서 한 것처럼 컨트롤 이름으로 핸들을 받아서 d3ddevice를 생성하면 된다.&lt;br /&gt;&lt;div class=&quot;imageblock triple&quot; style=&quot;text-align: center&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDkwMDAwMDAwMDAxLmpwZw==&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;119&quot; width=&quot;200&quot;/&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDkwMDAwMDAwMDAyLmpwZw==&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;113&quot; width=&quot;200&quot;/&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDkwMDAwMDAwMDAyLmpwZw==&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;141&quot; width=&quot;200&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;</description>
			<category>IT/프로그래밍</category>
			<category>DX</category>
			<category>mfc</category>
			<category>네트워크</category>
			<category>채팅</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/185</guid>
			<comments>http://zsimi.tistory.com/185#entry185comment</comments>
			<pubDate>Sun, 29 Jun 2008 17:22:19 +0900</pubDate>
		</item>
		<item>
			<title>코딩이 잘 안 될때.</title>
			<link>http://zsimi.tistory.com/184</link>
			<description>코딩이 잘 안 되는 시간에는 그냥 소스코드를 켜 놓고 멍하니 있는게 도움이 된다. 그렇게 멍하니 있다보면 집중력이 돌아오고 해결해야 할 문제가 명확해지는 기분이다. 그리고 얼마지나지 않아 코딩할 기분이 난다. 코딩이란 내키지 않으면 절대로 못하는 법이라니까. 다시말해 집중이 잘 안된다고 다른 일을 하거나 하면 집중력은 이미 라스베가스로 가서 돌아오지 않는다. 소스코드를 보면서 멍하니 있는게 중요하다. (그리고 그 시간은 기분이 좋다. 사람은 멍때리기 위해 존재한다고까지 말할 수 있다니까.)&lt;br /&gt;</description>
			<category>말랑말랑한것(생각)</category>
			<category>코딩</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/184</guid>
			<comments>http://zsimi.tistory.com/184#entry184comment</comments>
			<pubDate>Sat, 28 Jun 2008 23:44:03 +0900</pubDate>
		</item>
		<item>
			<title>유럽여행 안 가기로 했다.</title>
			<link>http://zsimi.tistory.com/183</link>
			<description>&lt;strong&gt;■ 사람의 인생은 정말 계획되로 되지 않는다.&lt;/strong&gt;&lt;br /&gt;나는 군대라는 곳을 빠져나오면서 참으로 많은 계획을 세웠다. 그러나 그 계획들은 대부분 바퀴벌레 자신이 예상치 못한 곳에서 죽임을 당하는 것처럼 사라져 갔다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&amp;lt;유럽 여행&amp;gt;&lt;/strong&gt;은 2008년 가을로 예정 되었던 내 계획중 하나 &lt;strong&gt;였다&lt;/strong&gt;. 돈은 충분하다. 유럽은 가을이 좋다고 한다. 귀가 닳도록 클래식도 들었고, 서양 미술사에 관한 책도 여러권 읽었다. (주로 만화로 된 것으로.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;■ &lt;/strong&gt;하지만. 가지 않기로 했다.&lt;br /&gt;첫번째로 &lt;strong&gt;비행기 값&lt;/strong&gt;이 너무 올랐다.&lt;br /&gt;두번째로 &lt;strong&gt;경상수지&lt;/strong&gt;가 6개월째 &lt;strong&gt;적자&lt;/strong&gt;인 상태에서 한가하게 여행이나 갈 때가 아니다. 경상수지에서 상품수지는 대체로 흑자고 서비스수지는 항상 적자다. 즉 수출로 열심히 벌어서 해외 여행으로 다 써버리는 식의 경제구조다. 그런데 이 모습이 현재, 이 순간 가장 심각하다. 이것을 알고도 휘파람 불면서 여행 갈 만큼 내 양심이 형편없지 않다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;■ &lt;/strong&gt;&lt;strong&gt;이번에 가지 않으면 평생 못갈지도 모른다.&lt;/strong&gt;(고들 말한다.)&lt;br /&gt;과연 그럴까? 과연 여행은 얼마나 나에게 도움을 줄까? 그것이 (전 재산을 투자할 정도로) 가치 있는 일일까? 라는 생각이 1년 내내 들었다. 유럽 여행기를 몇 권 읽었지만 별로 가고 싶은 생각이 들지 않았다. 오히려 인도에 가보고 싶다는 생각을 하고 있다. 내가 읽었던 &lt;strong&gt;책의 배경&lt;/strong&gt; 중에 유럽은 거의 없다는 것도 한 이유다.&lt;br /&gt;&lt;br /&gt;아. 모르겠다. 일단 지금 닥친 일 부터 처리하고 생각하자. (아무튼 모아놓은 돈으로는 학자금 대출이나 갚아야겠다. =3=3=3)&lt;br /&gt;</description>
			<category>말랑말랑한것(생각)</category>
			<category>생각</category>
			<category>여행</category>
			<category>유럽</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/183</guid>
			<comments>http://zsimi.tistory.com/183#entry183comment</comments>
			<pubDate>Fri, 27 Jun 2008 19:52:36 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 쿵푸팬더</title>
			<link>http://zsimi.tistory.com/182</link>
			<description>■ 쿵푸팬더&lt;br /&gt;쿵푸팬더를 봤다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvOC5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;천호 CINE11이 롯데시네마로 바뀌었다.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvNi5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;누나.&lt;/p&gt;&lt;/div&gt;평점이 높아서 기대하고 봤는데, 생각했던 것 보다 별로 였다. 내용이 짧았고 대체로 나의 웃음 포인트와는 거리가 있었다. 뭐 즐겁긴 했지만 크게 웃을 만한 부분은 하나도 없었다. 줄거리는 극적인 &amp;lt;위기&amp;gt;가 없다. 약간 위기라고 부를 수 있는 것은 있지만, 금방 해결해 버린다. 조조니까 영화관에서 봤지, 집에서 보는걸 추천한다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvNi5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;천호 로데오&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTIuanBn&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;누나와 나.&lt;/p&gt;&lt;/div&gt;■ 영상정보 특강&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvNS5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;시간에 있어서 철저한 ㅎ씨&lt;/p&gt;&lt;/div&gt;2시에 영상정보 특강이 있어서 들었다. 중천이랑 포비든킹덤등의 영화에서 3D 처리를 하는 회사에서 나온 사람이었는데. 눈요기꺼리를 몇가지 보여줬다.&lt;br /&gt;&lt;br /&gt;</description>
			<category>영화</category>
			<category>영화</category>
			<category>일기</category>
			<category>쿵푸팬더</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/182</guid>
			<comments>http://zsimi.tistory.com/182#entry182comment</comments>
			<pubDate>Tue, 24 Jun 2008 23:19:57 +0900</pubDate>
		</item>
		<item>
			<title>리눅스 설치.</title>
			<link>http://zsimi.tistory.com/181</link>
			<description>&lt;p&gt;(리눅스) 우분투 서버 배포판 설치할때 항상 하는 일. (서버는 데스크탑 배포판에서 GUI인 그놈만 뺀 배포판)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ubuntu-8.04-server-i386.iso&lt;/strong&gt; 를 다운, 설치. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sudo apt-get install ssh&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sudo vi /etc/ssh/sshd_config&lt;/strong&gt; 수정(port 22 에서 포트 수정) &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sudo /etc/init.d/ssh restart&lt;/strong&gt; 로 ssh서버 재시작 &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;netstat -ntl&lt;/strong&gt; 서버 작동 확인. 포트 22가 LISTEN 상태면 OK. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sudo apt-get install gcc&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sudo apt-get install build-essential&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;sudo apt-get update&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;

커널 소스 다운로드와 컴파일&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;sudo apt-get install linux-kernel-devel fakeroot &lt;/li&gt;
&lt;li&gt;sudo apt-get build-dep linux-source &lt;/li&gt;
&lt;li&gt;cd /usr/src &lt;/li&gt;
&lt;li&gt;sudo apt-get install linux-source &lt;/li&gt;

&lt;li&gt;sudo tar -xjvf linux-source-2.6.24.tar.bz2 &lt;/li&gt;
&lt;li&gt;ln -s linux-source-2.6.24 linux &lt;/li&gt;
&lt;li&gt;cd /usr/src/linux &lt;/li&gt;
&lt;li&gt;cp -vi /boot/config-`uname -r` .config &lt;/li&gt;
&lt;li&gt;apt-get install libncurses5 libncurses5-dev # to use &#039;make menuconfig&#039; &lt;/li&gt;
&lt;li&gt;make menuconfig &lt;/li&gt;
&lt;li&gt;make clean &lt;/li&gt;
&lt;li&gt;make-kpkg --initrd --stem linux --revision=custom.1.0 kernel_image kernel_headers&lt;/li&gt;
&lt;li&gt;cd /usr/src&lt;/li&gt;
&lt;li&gt;dpkg -i linux-headers-2.6.14.6_10.00.Custom_i386.deb&lt;/li&gt;
&lt;li&gt;cat /boot/grub/menu.lst&lt;/li&gt;&lt;/ol&gt;</description>
			<category>IT/프로그래밍</category>
			<category>SSH</category>
			<category>ubuntu</category>
			<category>리눅스</category>
			<category>서버</category>
			<category>우분투</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/181</guid>
			<comments>http://zsimi.tistory.com/181#entry181comment</comments>
			<pubDate>Tue, 24 Jun 2008 19:07:26 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 커널 스터디, 학교, 고기부페</title>
			<link>http://zsimi.tistory.com/180</link>
			<description>■ 리눅스 커널 스터디그룹.&lt;br /&gt;매주 일요일 아침에 하는 커널 스터디그룹. 시스템호출에 대해서 현철형이 발표했고, (무려 2시간이나) 나는 모듈 프로그래밍 실습을 발표했는데. 하다가 잘 안 되서 시간 끌다가 나까지만 발표하고 끝났다. 나는 인턴이랑 다른 일 때문에 다음주 까지만 하고 중도 하차 할 것이다. 정말 아쉽다. 커널 생각했던것 보다 재밌는데.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/image/9/tistory/2008/06/23/12/10/485f14390eba0&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;강남역 토즈에서 (매주)일요일 아침9시. 덕분에 일요일에도 부지런히 일찍 일어나게 해준다. 사진에 보이는 보쌈집 3~4층이 토즈. (강남역 6번출구로 나와서 파고다 어학원 뒷 골목에 있다.)&lt;/p&gt;&lt;/div&gt;■ 고기부페&lt;br /&gt;12시 쯤에 스터디그룹을 마치고, 학교로 돌아와. 좀 자고. 책좀 읽다가. 스터디그룹의 내용을 좀 보다가. 5시에 프로젝트에 관한 회의도 하고, (생각보다 큰 프로젝트라 나는 빠지기로 했지만) 7시에 고기부페로 갔다. (두당 7천5백원이었는데 술을 먹어서 6천5백원 씩 이었다. 결과적으로 술과 음료수들을 포함해 8천5백원씩.)&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/image/4/tistory/2008/06/23/12/10/485f1437e1006&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;같이 먹은 사람들, 버스를 기다리며. (성남 종합시장 쪽으로 갔다.)&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/image/23/tistory/2008/06/23/12/10/485f143693554&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;8호선 끝과 끝이 30분밖에 안 걸리더군. 분당선 갈아타는 것 보다 8호선 타고 쭉 오는게 편할것 같다. 모란은 환승하기 까지 너무 걸어야 한다.&lt;/p&gt;&lt;/div&gt;</description>
			<category>기억의 기록</category>
			<category>고기부페</category>
			<category>세미나</category>
			<category>스터디그룹</category>
			<category>일기</category>
			<category>커널</category>
			<category>토즈</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/180</guid>
			<comments>http://zsimi.tistory.com/180#entry180comment</comments>
			<pubDate>Mon, 23 Jun 2008 12:17:30 +0900</pubDate>
		</item>
		<item>
			<title>누군가를 짓밟는 것에 대해서.</title>
			<link>http://zsimi.tistory.com/176</link>
			<description>어떻게 생각할지 모르지만 나는 어렸을 때부터 바라는 게 있으면 어려움 없이 이루었다. 원하는 것이 있으면 무슨 일이 있어도 갖고야 말았다는 말이다. 그런데 내가 어떤 것을 바라고 어떤 것을 갖게 되었을 때마다 누군가를 짓밟아 왔다. 믿기지 않겠지만, 사실이다. 의도 했든 의도하지 않았든 누군가 짓밟혔다는 사실은 변하지 않는다. 나는 그것을 스무 살쯤(이 되어서야) 알게 되었다. 제기랄! 그래서 나는 어떤 것도 원하지 말아야겠다고 생각했다. 그런 것이다.&lt;br /&gt;&lt;br /&gt;이것은 내 인생의 목표를 생각하는 토대가 된다. 내 인생의 목표는&amp;nbsp; 
&lt;BLOCKQUOTE&gt;도서관이 멀지 않은 한적한 곳에 집을 구해서, 평생 멍하니 책을 읽다가 숨이 멈추고 벌레의 먹이가 되는 것.&lt;/BLOCKQUOTE&gt;이것을 이루기 위해서 나는 진절머리 나고 지랄맞은 경쟁을 하며 누군가를 짓밟아야만 할 것이다. 인생을 산다는 것은 정말 엿같은 것이다.</description>
			<category>말랑말랑한것(생각)</category>
			<category>경쟁</category>
			<category>다짐</category>
			<category>삶</category>
			<category>생각</category>
			<category>인생</category>
			<category>존재</category>
			<category>행복</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/176</guid>
			<comments>http://zsimi.tistory.com/176#entry176comment</comments>
			<pubDate>Tue, 10 Jun 2008 23:16:04 +0900</pubDate>
		</item>
		<item>
			<title>(커널)모듈 프로그래밍에서 링크, static</title>
			<link>http://zsimi.tistory.com/175</link>
			<description>■ 링크와 컴파일.&lt;br /&gt;컴파일 후 목적 파일(obj)이 생긴다. 목적 파일은 헤더파일에 기록된 함수의 사용법이나 함수의 형식만 알고 있을뿐 다른 파일에 있는 함수의 실제 구현은 알지 못한다. 링크는 그런 목적파일들을 모아서 실행파일로 만들어 주는 것이다. 즉 말그대로 링크는 최종 실행파일을 만들기 위해 각 파일들에 연결되어 &lt;STRONG&gt;필요한 부분들을 찾아서 연결&lt;/STRONG&gt;하는 작업이다. &lt;STRONG&gt;완전히 링크하여&lt;/STRONG&gt; 실행파일을 만드는 것을 &lt;STRONG&gt;정적링크&lt;/STRONG&gt;라고 하고, 프로그램 &lt;STRONG&gt;실행중&lt;/STRONG&gt;에 외부에 존재하는 필요한 목적코드를 찾아서 연결하는 것이 &lt;STRONG&gt;동적링크&lt;/STRONG&gt; 이다.&lt;br /&gt;&lt;br /&gt;■ static 함수&lt;br /&gt;모듈 프로그래밍을 할 때, 이 함수가 모듈 안에서만 사용되고 다른 커널에서 참조할 필요가 전혀 없다면 static 으로 만든다. (init_module()과 cleanup_module()은 예외적으로 static을 하지 않아도 커널 영역에 공개되지 않는다. 자동으로) 커널 영역에 공개된 함수는 /proc/ksyms (커널 2.6에선 kallsyms)에서 확인할 수 있다. static은 원래 변수가 프로그램에서 가장 먼저 초기화되어 전역변수처럼 변수값이 유지된다. 함수 앞에 static이 붙으면 그 함수는 해당 파일에서만 사용되는 함수가 된다. (다른 함수에서 extern 으로 그 함수를 사용하려고 해도 static함수는 쓸 수 없다.)&lt;br /&gt;한 줄 요약: static 함수는 이 함수를 &lt;STRONG&gt;이 파일에서만&lt;/STRONG&gt; 쓰겠다는 뜻. (다른 파일에서는 못 씀)</description>
			<category>IT/프로그래밍</category>
			<category>IT</category>
			<category>static</category>
			<category>디바이스</category>
			<category>리눅스</category>
			<category>링크</category>
			<category>모듈</category>
			<category>커널</category>
			<category>프로그래밍</category>
			<category>함수</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/175</guid>
			<comments>http://zsimi.tistory.com/175#entry175comment</comments>
			<pubDate>Sat,  7 Jun 2008 19:48:53 +0900</pubDate>
		</item>
		<item>
			<title>30개월 이상 쇠고기 쓰는 맥도날드 햄버거.</title>
			<link>http://zsimi.tistory.com/174</link>
			<description>&lt;P&gt;■ 맥도날드 햄버거&lt;br /&gt;얼마전 100분토론을 봤는데. 미국의&lt;STRONG&gt; 맥도날드&lt;/STRONG&gt; 햄버거에는 &lt;STRONG&gt;30개월 이상의 쇠고기&lt;/STRONG&gt;를 사용한다고 한다. 그것도 대부분을. 이제 맥도날드 햄버거, 아니, 햄버거 자체를 먹지 말아야 겠다.&lt;/P&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/9HAsMa63ckA&amp;amp;hl=ko&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/9HAsMa63ckA&amp;amp;hl=ko&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;역시 햄버거가 &amp;lt;정크푸드&amp;gt;라 불리는 데는 이유가 있다.&lt;br /&gt;&lt;br /&gt;■ 맥도날드측의 법적대응?&lt;br /&gt;맥도날드 측에서 이 사태를 두고 약간의 &lt;STRONG&gt;입장표명&lt;/STRONG&gt;만 하고 &lt;STRONG&gt;법적 대응은 &lt;U&gt;하지 않을 것&lt;/U&gt; 같다.&lt;/STRONG&gt; 만약 소송을 하지 않는다면 뭔가 켕기는게 있다는 뜻. 명백히 자신들이 30개월 이상의 쇠고기를 안 쓰고 있고, &lt;STRONG&gt;깨끗하다면 강력히 법적 대응을 할 것이다. &lt;/STRONG&gt;하지만 조사하면 켕기는게 있기 때문에 법적대응은 무리다. 내가 햄버거를 먹지 않는 것이 상책.&lt;br /&gt;&lt;br /&gt;■ 이번 100분토론 감상평. (2008년 6월 6일 방송)&lt;br /&gt;내가 좋아하는 (몇 안되는) 정치인 중 한 명인 &lt;STRONG&gt;심상정&lt;/STRONG&gt; 공동대표가 나와서 오랜만에 100분토론을 &lt;STRONG&gt;실시간으로&lt;/STRONG&gt; 봤다. &lt;FONT color=#c1c1c1&gt;(보통은 너무 늦게 하기 때문에 다음날이나 주말에 재방송을 본다.)&lt;/FONT&gt; 심상정 공동대표는 자기 전문분야가 아니라 그런지 활약을 하지 못했다. &lt;STRONG&gt;나경원 의원&lt;/STRONG&gt;은 역시 한나라당 스럽게 말 하더라. 한나라당 의원은 토론에 나올때 마다 이런다. &lt;STRONG&gt;막연하고, 일반론적이고, 임시변통적인, 두리뭉실한, 구렁이 담넘어가는 듯한&lt;/STRONG&gt; 말만 하고 토론중에 자꾸 딴소리나 뜬구름만 잡고 계신다. 뉴라이트의 임헌조 라는 사람은 정치인이 아니라 그런지 막연하게 이리저리 피하는 말은 하지않고 화끈했지만, 뭔가 단정적이고 편협했다. 민주당의 조경태의원은 정치인 답지 않게 화끈한 말은 해 주었지만, 단어선택이 과격했고 토론 주제에 비껴가는 말도 조금씩 하는 모습이 안 좋았다.</description>
			<category>정치</category>
			<category>100분토론</category>
			<category>Mcdonald</category>
			<category>나경원</category>
			<category>뉴라이트</category>
			<category>맥도날드</category>
			<category>쇠고기</category>
			<category>심상정</category>
			<category>임열사</category>
			<category>임헌조</category>
			<category>정치</category>
			<category>조경태</category>
			<category>햄버거</category>
			<category>협상</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/174</guid>
			<comments>http://zsimi.tistory.com/174#entry174comment</comments>
			<pubDate>Sat,  7 Jun 2008 10:23:15 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 쪽지시험, 커널 스터디</title>
			<link>http://zsimi.tistory.com/173</link>
			<description>&lt;P&gt;■ 리눅스 커널 스터디&lt;br /&gt;어디를 보나 깔끔한 날짜인 6월 1일 일요일에 첫 모임을 가졌다. 강남 토즈에서 아침 9시까지 모였는데. 생각보다 가까워서 20분 전에 도착해 버렸다. 근처 편의점에서 라면도 먹고 삼각김밥도 먹으며 시간을 죽이다가 다른 분이 늦으셔서 9시 15분쯤 스터디를 시작했다. 뭐 이러 저러 해서 커널 개요와 어셈 기초, 인터럽트에 대해 배웠다. 다음엔 내가 모듈 프로그래밍에 대해 준비하기로 했다. 책을 훑어 보니 별로 어려워 보이진 않던데 모르겠다.&lt;/P&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMy5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;강남 6번 출구 -&amp;gt; 파고다 어학원 가기 전 블럭에서 왼쪽으로 턴 -&amp;gt; 한블럭만 가서 오른쪽으로 턴. (토즈 강남대로점은 교보타워 옆건물 3층)&lt;/p&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;■ 이산구조 쪽지시험&lt;br /&gt;쪽지시험은 (경험상) 쉽게 나오고, 오픈북이기 때문에 그다지 공부할 필요는 없지만. 요즘 여러가지 바쁜 사정으로 이산구조 책과는 담싼 상태라서 학교에서 밤을 세우기로 했다. 결과적으로는 거의 잠을 자지 않고 완전히 밤을 세웠고, 시험은 오픈북이 아니었다. 다행히 문제는 어렵지 않았다.&lt;/P&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvNS5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;열람실에는 1명도 남아있지 않았다. 같이 공부하기로 한 ㅎㅅ형은 동방에서 주무셨다.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvNC5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;아무도 없는 아침의 5층.(담배피는 사람의 분비물로 가득한 곳. 흡연자들을 좋아할래야 좋아할 수가 없다. 화장실에도 그렇고 여기저기 침을 뱉어서 어떻게든 남에게 피해를 주지 않고는 못견디는 인간들이다)&lt;/p&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;■ 잠&lt;br /&gt;오전에 시험이 끝나고 오후 수업까지 듣고, 아는 사람의 숙제도 도와준 다음에 늦게 집으로 돌아왔다. 몸은 피곤하지만 내가 행복해 하는 몇몇 순간중 하나이다. 시험이 끝난 저녁(이것은 반드시 필요한 전제조건이다) 따뜻한 물에 샤워를 하고 스탠드 아래에서 소설을 읽으며 깊은 잠에 빠지는것. (이건 정말 생각만 해도 행복하지 않은가 말이다!)&lt;/P&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvNy5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;내 알람시계. 소리가 커서 좋다. 소설에서 나오는 것처럼, 알람 버튼이 두 개 있고(위와 오른쪽에) 그것을 동시에 누르면 알람을 멈출 수 있는 시스템이었으면 좋겠다. 무의식에서 알람을 꺼버리는 경우를 방지하기 위해.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvOC5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;요즘 읽고 있는 &amp;lt;세계의 끝과 하드보일드 원더랜드&amp;gt;라는 소설과 내 배게. (낮은 배게라서 매우 아끼는 물건이다.) 저 책은 재밌다. 정보를 암호화 하는 &amp;lt;계산사&amp;gt;와 그 정보를 빼내서 파는 마피아 같은 조직인 &amp;lt;기호사&amp;gt;, 생물학자, 세계의 끝, 그림자 뭐 이런 내용이다.&lt;/p&gt;&lt;/div&gt;&lt;/P&gt;■ 요즘 주로 (몇 번씩 반복하며) 듣는 노래&lt;br /&gt;러브홀릭의 &amp;lt;화분&amp;gt;, &amp;lt;Sylvia&amp;gt;, &amp;lt;그대는&amp;gt;, &amp;lt;Dream&amp;gt;, &amp;lt;일요일 맑음&amp;gt;, &amp;lt;Rainy day&amp;gt;, &amp;lt;그대만 있다면&amp;gt;, &amp;lt;너는&amp;gt;</description>
			<category>기억의 기록</category>
			<category>리눅스</category>
			<category>세계의 끝과 하드보일드 원더랜드</category>
			<category>스터디</category>
			<category>이산구조</category>
			<category>일기</category>
			<category>책</category>
			<category>커널</category>
			<category>토즈</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/173</guid>
			<comments>http://zsimi.tistory.com/173#entry173comment</comments>
			<pubDate>Fri,  6 Jun 2008 15:07:42 +0900</pubDate>
		</item>
		<item>
			<title>HLSL without Effects(임시)</title>
			<link>http://zsimi.tistory.com/172</link>
			<description>&lt;P&gt;&lt;div class=&quot;imageblock dual&quot; style=&quot;text-align: center;&quot;&gt;&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;margin: 0 auto;&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvOS5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;240&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;텍스쳐 효과가 아닌 정점이 직접 움직인다.&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvNC5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;237&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;원래는 그냥 평면. 가운데는 왜 검지?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;■ DX SDK 샘플들 중에서 HLSLwithoutEffects에 대한 세미나 발표 후 내용 정리. 아직까지는 임시변통적으로 키워드만 나열한 상태이므로 집중해서 읽을필요는 없음. 다음 주(가능하다면)에 정리해서 자세히 설명하겠음.&lt;br /&gt;&lt;br /&gt;■ 일단 오늘 새롭게 뇌에 주입된 주제.&lt;br /&gt;(1) GLUT를 모방한 것처럼 보이는 &lt;STRONG&gt;&amp;lt;DXUT&amp;gt;&lt;/STRONG&gt; 이제 DirectX SDK 샘플들은 모두 DXUT바탕이 될 듯. 즉, GLUT처럼 &lt;STRONG&gt;콜백함수를 등록&lt;/STRONG&gt;하는 방식으로 윈도우 생성이나 함수들을 등록하여 쉽게 DX를 배울 수 있다. 역시 점점 쉬워지는 구만.&lt;br /&gt;(2) &amp;lt;HLSL&amp;gt;의 함수에 정점 정보를 넘겨주면 &lt;STRONG&gt;HLSL에서&lt;/STRONG&gt; 그 &lt;STRONG&gt;정점의 위치와 색을 변경&lt;/STRONG&gt;할 수 있다.&lt;br /&gt;(3) g_Camera에 대한 것.&lt;br /&gt;(4) g_HUD에 대한 것. HUD는 무슨 뜻?&lt;br /&gt;(5) 인덱스버퍼를 채우는 것에 대한 것.&lt;br /&gt;(6) XZ평면에 놓인 직사각형의 면을 꿀렁꿀렁하게 하는(즉 Y좌표를 변화) 효과에 대한 것.&lt;/P&gt;
&lt;p id=&quot;more172_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;172_0&#039;,&#039;HLSLwithoutEffects.cpp파일의 OnResetDevice()&#039;,&#039;접기&#039;); return false;&quot;&gt;HLSLwithoutEffects.cpp파일의 OnResetDevice()&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content172_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;&lt;FONT color=#008000&gt;//--------------------------------------------------------------------------------------&lt;br /&gt;// File: HLSLwithoutEffects.cpp&lt;br /&gt;// Desc: Sample showing a simple vertex shader in D3DX High Level Shader Language (HLSL) &lt;STRONG&gt;without using an &lt;U&gt;ID3DXEffect&lt;/U&gt; interface.&lt;/STRONG&gt;&amp;nbsp; Not using the ID3DXEffect interface is a more difficult method of using HLSL. See the BasicHLSL sample for a simpler method of using HLSL.&lt;br /&gt;//--------------------------------------------------------------------------------------&lt;br /&gt;&lt;/FONT&gt;HRESULT CALLBACK &lt;STRONG&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #faffa9&quot;&gt;OnResetDevice&lt;/FONT&gt;&lt;/STRONG&gt;( IDirect3DDevice9* pd3dDevice, &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext )&lt;br /&gt;{&lt;br /&gt;&lt;FONT color=#c1c1c1&gt;&amp;nbsp; &amp;nbsp; ... 생략&lt;br /&gt;&lt;/FONT&gt;&amp;nbsp; &amp;nbsp; for( y = 1; y &amp;lt; VERTS_PER_EDGE; y++ ) &amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for( x = 1; x &amp;lt; VERTS_PER_EDGE; x++ ) &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //첫번째 삼각형&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pIndices++ = (WORD)( (y&lt;STRONG&gt;-1&lt;/STRONG&gt;)*VERTS_PER_EDGE + (x&lt;STRONG&gt;-1&lt;/STRONG&gt;) );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pIndices++ = (WORD)( (y&lt;STRONG&gt;-0&lt;/STRONG&gt;)*VERTS_PER_EDGE + (x&lt;STRONG&gt;-1&lt;/STRONG&gt;) );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pIndices++ = (WORD)( (y&lt;STRONG&gt;-1&lt;/STRONG&gt;)*VERTS_PER_EDGE + (x&lt;STRONG&gt;-0&lt;/STRONG&gt;) ); 
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //두번째 삼각형&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pIndices++ = (WORD)( (y&lt;STRONG&gt;-1&lt;/STRONG&gt;)*VERTS_PER_EDGE + (x&lt;STRONG&gt;-0&lt;/STRONG&gt;) );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pIndices++ = (WORD)( (y&lt;STRONG&gt;-0&lt;/STRONG&gt;)*VERTS_PER_EDGE + (x&lt;STRONG&gt;-1&lt;/STRONG&gt;) );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pIndices++ = (WORD)( (y&lt;STRONG&gt;-0&lt;/STRONG&gt;)*VERTS_PER_EDGE + (x&lt;STRONG&gt;-0&lt;/STRONG&gt;) );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&lt;FONT color=#c1c1c1&gt;&amp;nbsp; &amp;nbsp; ... 생략&lt;/FONT&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; for( y = 0; y &amp;lt; VERTS_PER_EDGE; y++ ) &amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for( x = 0; x &amp;lt; VERTS_PER_EDGE; x++ ) &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *pVertices++ = D3DXVECTOR&lt;STRONG&gt;2&lt;/STRONG&gt;( (&lt;STRONG&gt;(float)x&lt;/STRONG&gt; / (float)(VERTS_PER_EDGE-1) - 0.5f) * &lt;STRONG&gt;&lt;U&gt;D3DX_PI&lt;/U&gt;&lt;/STRONG&gt;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&lt;STRONG&gt;(float)y&lt;/STRONG&gt; / (float)(VERTS_PER_EDGE-1) - 0.5f) * &lt;STRONG&gt;&lt;U&gt;D3DX_PI&lt;/U&gt;&lt;/STRONG&gt; );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;FONT color=#c1c1c1&gt;&amp;nbsp;&amp;nbsp; ... 생략&lt;/FONT&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/P&gt;&lt;/div&gt;
&lt;p id=&quot;more172_1&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;172_1&#039;,&#039;HLSLwithoutEffects.vsh파일 안의 HLSL코딩(면을 꿀렁꿀렁하게 만드는 Ripple() 함수)&#039;,&#039;접기&#039;); return false;&quot;&gt;HLSLwithoutEffects.vsh파일 안의 HLSL코딩(면을 꿀렁꿀렁하게 만드는 Ripple() 함수)&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content172_1&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;VS_OUTPUT &lt;STRONG&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #d0ff9d&quot;&gt;Ripple&lt;/FONT&gt;&lt;/STRONG&gt;( in float2 vPosition : POSITION ) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; VS_OUTPUT Output;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; float fSin, fCos;&lt;br /&gt;&lt;FONT color=#008000&gt;&amp;nbsp; &amp;nbsp; //아래와 같이 x는 &lt;STRONG&gt;거리&lt;/STRONG&gt;와 &lt;STRONG&gt;시간&lt;/STRONG&gt;에 영향을 받아서 구해진다.&lt;br /&gt;&lt;/FONT&gt;&amp;nbsp; &amp;nbsp; float x = &lt;STRONG&gt;length( vPosition )&lt;/STRONG&gt; * &lt;STRONG&gt;sin( fTime )&lt;/STRONG&gt; * 15.0f;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;FONT color=#008000&gt;&amp;nbsp; &amp;nbsp; //x에 대한 sin(x)와 cos(x)를 구해서 fSin과 fCos에 넣는다. (추측)&lt;/FONT&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; sincos( x, fSin, fCos ); 
&lt;P&gt;&lt;FONT color=#008000&gt;&amp;nbsp; &amp;nbsp; //함수가 실행된 시간에 기초해서 y의 위치를 변경한다.&lt;br /&gt;&amp;nbsp; &amp;nbsp; //그리고 정점을 변경해서 projectrion space에 넣는다.&lt;br /&gt;&lt;/FONT&gt;&amp;nbsp; &amp;nbsp; Output.&lt;STRONG&gt;Position&lt;/STRONG&gt; = mul( float4&lt;STRONG&gt;&lt;FONT color=#d41a01&gt;(&lt;/FONT&gt;&lt;/STRONG&gt;&lt;U&gt; vPosition.&lt;STRONG&gt;x&lt;/STRONG&gt;, &lt;FONT style=&quot;BACKGROUND-COLOR: #c9edff&quot; color=#000000&gt;&lt;STRONG&gt;fSin * 0.1f&lt;/STRONG&gt;&lt;/FONT&gt;, vPosition.&lt;STRONG&gt;y&lt;/STRONG&gt;, 1.0f&lt;/U&gt; &lt;STRONG&gt;&lt;FONT color=#d41a01&gt;)&lt;/FONT&gt;&lt;/STRONG&gt;, mWorldViewProj );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;FONT color=#008000&gt;&amp;nbsp; &amp;nbsp; // Output the diffuse color as function of time and &lt;br /&gt;&amp;nbsp; &amp;nbsp; // the vertex&#039;s object space position&lt;br /&gt;&amp;nbsp; &amp;nbsp; //diffuse color를 출력한다. (함수의 시간과, 정점의 공간 위치에 의한)&lt;br /&gt;&lt;/FONT&gt;&amp;nbsp; &amp;nbsp; Output.&lt;STRONG&gt;Diffuse&lt;/STRONG&gt; = 0.5f - 0.5f * fCos;&lt;br /&gt;&amp;nbsp; &amp;nbsp; return Output;&lt;br /&gt;}&lt;/P&gt;&lt;/div&gt;
&lt;P&gt;HLSL에서 정점의 위치를(Output.Position) 바꿀 수 있는것 같다.&lt;br /&gt;ConstantTable, HLSL, FVF없이 x와 y만 있는 vertex. 그후 HLSL의 Ripple함수에 정점을 넘겨줌.&lt;br /&gt;HLSL의 Ripple 함수 내에서 넘겨받은 정점의 위치를 수정함.&lt;/P&gt;
&lt;P&gt;XZ평면에 놓인 정사각형의 물체를 각 프레임 마다 Y축 방향으로 꿀렁꿀렁하게 만드는 프로그램이다. 꿀렁꿀렁한 것은 원래 평면과의 거리와 시간에 기초한다. 시간은 매 프레임마다 계속 증가한다. 왜냐하면 Y좌표와 정점의 색은 각 프레임마다 생성되기 때문이다. 그것들은 저장이 필요없다. 그러므로 정점정의(the vertex declaration)은 오직 D3DXVECTOR2만 포함된다. (X와 Z좌표로 이루어진.)&lt;br /&gt;(주석: FVF를 안쓰고 X와 Z의 2개의 벡터만 사용한다. 근데 위의 소스에서는 x와 y의 값을 사용한다. 뭥미?)&lt;br /&gt;&lt;br /&gt;초기화하는 동안, D3DXCompileShaderFromFile()로 파일로 부터 셰이더를 읽어 컴파일한다. 그 후에 ID3DXBuffer은 셰이더 코드와 ID3DXConstantTable을 포함한다. (ID3DXConstantTable은 App가 셰이더가 만든 전역변수를 얻고 설정하도록 허용한다.) 그리고 IDirect3DDevice9::CreateVertexShader를 호출한다. &lt;br /&gt;&lt;br /&gt;FrameMove() 에서는 ID3DXConstantTable 인터페이스를 사용한다 (셰이더의 전역 변수들인 mViewProj과 fTime을 설정하기 위해, 그리고 view+projection transformation과 셰이더를 위한 time parameter를 업데이트 하기 위해) 렌더링 할때 이 샘플은 IDirect3DDevice9::SetVertexShader를 호출한다. SetVertexShader 함수는 디바이스에 버텍스 셰이더 렌더링이 가능하도록 키는(enable) 하는 것이다. IDirect3DDevice9::DrawIndexedPrimitive가 호출된 이후, 정점 셰이더는 버텍스 처리가 있을때마다 한번씩 불러지게 된다.&lt;/P&gt;
&lt;P&gt;버텍스 쉐이더는 HLSLwithoutEffects.vsh 이 파일에 텍스트 형식으로 써 있다. 이 파일에는 두 개의 전역변수와 한 개의 셰이더 함수가(Ripple()) 있다. Ripple() 함수는 float2(정점의 X와 Z)을 받아서 2개의 float4를 리턴한다. 리턴하는 이 변수는 화면공간의 위치와 정점의 색을 나타낸다. Y좌표는 아래의 함수에 의해 매번 생성된다.&amp;nbsp; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;Y = 0.1 * &lt;FONT style=&quot;BACKGROUND-COLOR: #faffa9&quot;&gt;sin&lt;/FONT&gt;&lt;U&gt;( 15 * &lt;STRONG&gt;L&lt;/STRONG&gt; * &lt;STRONG&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #ff9900&quot;&gt;sin(T)&lt;/FONT&gt;&lt;/STRONG&gt; )&lt;/U&gt;;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;L은 정점과 Y가 조정되기 전 과의 거리이다. 즉 L은 &lt;STRONG&gt;루트(X제곱+Z제곱)&lt;/STRONG&gt;의 값이다. 왜냐하면 정점들은 &lt;STRONG&gt;XZ평면&lt;/STRONG&gt; 위에 있기 때문이다. T는 전역변수 &lt;STRONG&gt;fTime&lt;/STRONG&gt;이다. sin(시간) 이니까 시간이 지나감에 따라서 sin 그래프 처럼 꿀렁꿀렁 해지는 것 같다.&lt;br /&gt;&lt;br /&gt;정점의 색은 아래의 함수에 의해서 명암이 결정된다. &lt;/P&gt;
&lt;BLOCKQUOTE&gt;C = 0.5 - 0.5 * &lt;FONT style=&quot;BACKGROUND-COLOR: #faffa9&quot;&gt;cos&lt;/FONT&gt;&lt;U&gt;( 15 * &lt;STRONG&gt;L&lt;/STRONG&gt; * &lt;STRONG&gt;&lt;FONT style=&quot;BACKGROUND-COLOR: #ff9900&quot;&gt;sin(T)&lt;/FONT&gt;&lt;/STRONG&gt; )&lt;/U&gt;;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;C는 RGBA(0~1의 범위).&amp;nbsp; (각 정점마다)검정에서 흰색으로의 색이 나온다. 그래서 명암이 꿀렁꿀렁하게 보이게 된다.&lt;/P&gt;</description>
			<category>IT/프로그래밍</category>
			<category>DirectX</category>
			<category>DX</category>
			<category>HLSL</category>
			<category>ripple</category>
			<category>sdk</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/172</guid>
			<comments>http://zsimi.tistory.com/172#entry172comment</comments>
			<pubDate>Thu,  5 Jun 2008 20:08:52 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 고기부페</title>
			<link>http://zsimi.tistory.com/171</link>
			<description>■ 자유 세미나.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMS5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;세미나中, 현기는 DX SDK 샘플소스 중에서 가중치를 달리해서 정점이 영향받는 (정확한 용어는 기억이 안 나지만) 것에 대해서 설명해 주었고, 나는 참조자와 포인터의 차이점 외 잡다한 것에 대해 설명했다. (왼쪽은 ㅎㅎㄱ씨, 오른쪽은 ㄱㅇㅎ씨.)&lt;/p&gt;&lt;/div&gt;■ 동방.&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMS5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;위닝홀릭&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMC5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;/div&gt;&lt;br /&gt;■ 고기부페&lt;br /&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: rgb(142,142,142)&quot;&gt;(하눌신폭 산하 우중충커뮤니티 산하)&lt;/SPAN&gt; 고펨 전우들과 우발적으로 고기를 먹으러 갔다. 6천원 짜리만 가다가 처음으로 두당 7천8백원 하는 곳에서 먹었다. 주인 아주머니는 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;무려 2백원&lt;/SPAN&gt;이나 깎아주셨다. 너무 기쁜 나머지 우리는 기립박수를 치고 계산대 앞에서 덩실덩실 춤을 췄다. &lt;SPAN style=&quot;COLOR: rgb(142,142,142)&quot;&gt;(삭막한 세상에 이런 대담한 인심은 흔치 않다.)&lt;/SPAN&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzg5NDEwQGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMi5qcGc=&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;225&quot; width=&quot;300&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;고기에 대해 서로 격렬히 기뻐하고 있다.&lt;/p&gt;&lt;/div&gt;■ 듣는 노래&lt;br /&gt;&amp;nbsp;요즘 러브홀릭의 &amp;lt;loveholic&amp;gt; 과 &amp;lt;화분&amp;gt;, 화요비의 &amp;lt;남자는 모른다&amp;gt; 라는 노래를 즐겨 듣고 있다.&lt;br /&gt;&lt;br /&gt;■ 정규표현식&lt;br /&gt;&amp;nbsp;정규표현식에서 &quot;width: 어쩌구px&quot; 를 매칭하려면 &quot;&lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;width:[ a-zA-Z0-9]*px&lt;/SPAN&gt;&quot; 이렇게 써야 한다. 정규표현식 정말 짱이다.&lt;br /&gt;의문) &amp;lt;모든 문자&amp;gt;를 의미하는 좀더 간단한 정규표현식이 없나? 매번 위와 같이 [ a-zA-Z0-9] 요렇게 표현해야 하나?&lt;br /&gt;</description>
			<category>기억의 기록</category>
			<category>고기</category>
			<category>고기부페</category>
			<category>고펨</category>
			<category>일기</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/171</guid>
			<comments>http://zsimi.tistory.com/171#entry171comment</comments>
			<pubDate>Sat, 31 May 2008 12:34:05 +0900</pubDate>
		</item>
		<item>
			<title>Rendering Water Caustics</title>
			<link>http://zsimi.tistory.com/170</link>
			<description>■ 의사코드.&lt;br /&gt;
&lt;OL&gt;
&lt;LI&gt;Paint the ocean floor. 
&lt;LI&gt;For &lt;STRONG&gt;each vertex&lt;/STRONG&gt; in the fine mesh:&lt;br /&gt;a. Send a vertical ray.&lt;br /&gt;b. &lt;STRONG&gt;Collide&lt;/STRONG&gt; the ray with the ocean&#039;s mesh.&lt;br /&gt;c. Compute the &lt;U&gt;refracted ray&lt;/U&gt; using &lt;STRONG&gt;Snell&#039;s Law&lt;/STRONG&gt; in reverse.&lt;br /&gt;d. Use the &lt;U&gt;refracted ray&lt;/U&gt; to compute &lt;U&gt;texture coordinates&lt;/U&gt; for the &quot;Sun&quot; map.&lt;br /&gt;e. Apply &lt;U&gt;texture coordinates&lt;/U&gt; to vertices in the finer mesh. 
&lt;LI&gt;Render the ocean surface.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;참고) refract: 굴절시키다. ray: 광선.&lt;br /&gt;주석) 이 알고리즘 에서는 물을 통과하는 굴절광을 계산하는것이 핵심이다.&lt;/P&gt;■ OpenGL로 구현한 코드.&lt;br /&gt;</description>
			<category>IT/프로그래밍</category>
			<category>3D</category>
			<category>OpenGL</category>
			<category>water</category>
			<category>물</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/170</guid>
			<comments>http://zsimi.tistory.com/170#entry170comment</comments>
			<pubDate>Thu, 29 May 2008 19:38:34 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 레드햇 강연(?)과 여러가지 일들. (연구생등)</title>
			<link>http://zsimi.tistory.com/166</link>
			<description>■ 얼마전 레드햇 아카데미라고 해서 학교에서 강연이 있었다. &lt;SPAN style=&quot;COLOR: rgb(193,193,193)&quot;&gt;(정확히는 이번주 월요일인, 26일이었다.) &lt;/SPAN&gt;그날 해야할 과제도 산더미처럼 있었고, 할일도 많았지만 관심이 있는 분야고 최근에 선택해야 하는 고민에 실마리가 되지 않을까 해서 듣게 되었다. 결과적으로 강연에 &lt;SPAN style=&quot;FONT-WEIGHT: bold&quot;&gt;집중할만한 주제&lt;/SPAN&gt;가 안 나와서 계속 과제만 했다. (강연 내용은 적당히 한 귀로 흘리며.)&lt;br /&gt;&amp;nbsp;우리는 왜 오픈소스를 해야하고 그것은 과연 전망이 있는가? 우리는 왜 리눅스를 해야 하는가? 와 같은 원초적인 질문을 업계에 있는 사람이 솔직하고 시원하게 답해줬으면 했는데. 막연한 설명과 자격증 홍보가 요였다. 이 강연을 한 줄로 요약하자면 이렇다. 
&lt;BLOCKQUOTE&gt;현재 실업자가 많아. -&amp;gt; 레드햇 자격증은 비싸. -&amp;gt; 하지만 레드햇 자격증 따면 취업 할 수 있어.&lt;/BLOCKQUOTE&gt;이제 이런 일반론적이고 막연한 설명은 지겹다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/21/tistory/2008/05/28/22/24/483d5cf2b7e02&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;언제나 즐겁게 해주는 ㅎㅎㄱ씨. 강연 내내 노트북으로 코딩만 하셨다.&lt;/p&gt;&lt;/div&gt;아참. 이날 경품추첨이 있었다. ㅎㅎㄱ씨가 26번. 내가 25번. ㅇㅈㅁ씨가 24번이었는데. (정확하지는 않다.) ㅇㅈㅁ씨가 경품에 당첨되어 무려 80GB 외장 하드디스크를 받았다!! 부럽다!!!&lt;br /&gt;&lt;br /&gt;■ 요즘 보고 있는 책.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/21/tistory/2008/05/28/22/29/483d5e4f8c1ff&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/image/4/tistory/2008/05/28/22/29/483d5e4e8e9ca&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/div&gt;좋은 책이라고 느끼는 중이다. 오늘은 Glow 효과에 대한 부분을 읽었는데 아직 정리가 안된다. 근데 확실히 Glow효과가 있는 영상과 없는 영상은 큰 차이가 있다.&lt;br /&gt;&lt;br /&gt;■ 휴대전화를 수리 했다!&lt;br /&gt;이제 완벽하게 휴대전화가 정상화 되었다. 오늘 오랜만에 여유가 생겨서. (사실 축제기간이다.) 스카이 서비스센터에 갔는데 한참 기다려서 증상을 문의했더니 배터리를 바꿔야 한다는 간단한 답을 들었다.&lt;br /&gt;&amp;nbsp;내 증상은 &quot;배터리를 완전히 충전 한 다음에 전화 통화를 하면 2분 정도후에 배터리가 없다고 꺼져버린다. 그리고 약 10분후에 다시 키면 다시 배터리가 차 있다.&quot; 뭐 이런 증상이어서, 배터리 문제인지 휴대전화 문제인지 애매한 상황이었다.&lt;br /&gt;&amp;nbsp;수리하는 아저씨가 내 구 배터리를 평평한 곳에 놓고 흔들어 보더니. 배터리가 못쓰게 되면 가운데가 약간 불룩 튀어 나와서 흔들린다고 한다. 내가 가지고 있는 배터리 두 개 모두 흔들거리는걸 보여주고. &quot;그러니까 배터리를 교체해야 한다.&quot; 는 뭔가 그럴듯한 느낌이지만 어딘가 찝찝한 해결책을 주었다. 아무튼 배터리를 1만6천원에 하나 구입해서 돌아왔는데. 통화가 잘 되긴 하지만, 새 배터리도 평지에서 흔들거리는데?&lt;br /&gt;&lt;br /&gt;■ 뭐 특별한 이야기는 아니지만. 요즘 러브홀릭 앨범들은 듣고 있다. 특히 1집 2번트랙의 loveholic 을 주로 흥얼거리는 중이다. 뭐 그렇다는 거다.&lt;br /&gt;&lt;br /&gt;■ 연구실에 학부연구생으로 참여하게 되었다. NHN 인턴에 지원했다.&lt;br /&gt;</description>
			<category>기억의 기록</category>
			<category>GPU</category>
			<category>강연</category>
			<category>그래픽</category>
			<category>레드햇</category>
			<category>리눅스</category>
			<category>배터리</category>
			<category>수리</category>
			<category>스카이</category>
			<category>일기</category>
			<category>휴대폰</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/166</guid>
			<comments>http://zsimi.tistory.com/166#entry166comment</comments>
			<pubDate>Wed, 28 May 2008 23:32:16 +0900</pubDate>
		</item>
		<item>
			<title>그런 법이다.</title>
			<link>http://zsimi.tistory.com/169</link>
			<description>&lt;blockquote&gt;쥐의 소설에는 뛰어난 점이 두 가지 있다. 우선 섹스장면이 없다는 것과 한 사람도 죽지 않는다는 것이다. &lt;span style=&quot;font-weight: bold;&quot;&gt;사람은 내버려둬도 죽고, 여자와 잔다. 그런 법이다.&lt;/span&gt;&lt;/blockquote&gt;&amp;lt;바람의 노래를 들어라&amp;gt; 중에서.&lt;br /&gt;(정말 멋진 문장이라고 생각한다. 특히 마지막의 &quot;그런 법이다.&quot; 는 압권이다.)&lt;br /&gt;&lt;br /&gt;


&lt;blockquote&gt;만약 당신이 예술이나 문학을 원한다면 그리스 인이 쓴 것을 읽는 게 좋겠다. 참다운 예술이 태어나기 위해서는 노예 제도가 필요 불가결하기 때문이다. 고대 그리스에서는 노예가 밭을 갈고 식사를 준비하고 배를 젓는 사이에 시민은 지중해의 태양 아래서 시작에 전념하고 수학과 씨름을 했다. &lt;span style=&quot;font-weight: bold;&quot;&gt;예술이란 그런 것이다.&lt;/span&gt;
모두가 잠든 새벽 세 시에 모두가 잠든 부엌의 냉장고를 뒤지는 사람은 이 정도의 글밖에는 쓸 수가 없다.
그리고 그게 바로 나다.&lt;/blockquote&gt;</description>
			<category>책</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/169</guid>
			<comments>http://zsimi.tistory.com/169#entry169comment</comments>
			<pubDate>Wed, 28 May 2008 23:02:40 +0900</pubDate>
		</item>
		<item>
			<title>파일 입출력과 상수 벡터 인자.</title>
			<link>http://zsimi.tistory.com/168</link>
			<description>■ 파일 입출력.&lt;br /&gt;&lt;blockquote&gt;#include&amp;lt;fstream&amp;gt; //for file in/output&lt;br /&gt;ofstream &lt;span style=&quot;font-weight: bold;&quot;&gt;file&lt;/span&gt;; //output file stream의 약어인것 같다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; file.&lt;span style=&quot;font-weight: bold;&quot;&gt;open&lt;/span&gt;(&quot;c:\\result.txt&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; cout &amp;lt;&amp;lt; &quot;출력할 문자열&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-weight: bold;&quot;&gt;file &lt;/span&gt;&amp;lt;&amp;lt; &quot;출력할 문자열&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; file.&lt;span style=&quot;font-weight: bold;&quot;&gt;close&lt;/span&gt;();&lt;/blockquote&gt;뭐 어렵지 않다. 사용법도 cout 과 똑같다.&lt;br /&gt;&lt;br /&gt;■ 질문) 왜 함수의 parameter로 const vector 를 쓸 수 없을까? 함수안에서 iterator 쓰는 순간 그것은 상수 객체가 될 수 없는 것일까?&lt;br /&gt;&lt;br /&gt;예를들어&lt;br /&gt;&lt;blockquote&gt;void OutputData(vector&amp;lt;int&amp;gt; L, vector&amp;lt;int&amp;gt; S, vector&amp;lt;int&amp;gt; NS) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; vector&amp;lt;int&amp;gt;::iterator it;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;nbsp; cout &amp;lt;&amp;lt; &quot;Searched = &quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; file &amp;lt;&amp;lt; &quot;Searched = &quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; for( it=S.begin() ; it!=S.end() ; it++) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cout &amp;lt;&amp;lt; &quot;v&quot; &amp;lt;&amp;lt; *it &amp;lt;&amp;lt; &quot; &quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; file &amp;lt;&amp;lt; &quot;v&quot; &amp;lt;&amp;lt; *it &amp;lt;&amp;lt; &quot; &quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; &amp;nbsp; cout &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp; &amp;nbsp; file &amp;lt;&amp;lt; endl;&lt;br /&gt;}&lt;/blockquote&gt;이런식의 함수를&lt;br /&gt;void OutputData(&lt;span style=&quot;font-weight: bold;&quot;&gt;const &lt;/span&gt;vector&amp;lt;int&amp;gt; L, &lt;span style=&quot;font-weight: bold;&quot;&gt;const &lt;/span&gt;vector&amp;lt;int&amp;gt; S, &lt;span style=&quot;font-weight: bold;&quot;&gt;const &lt;/span&gt;vector&amp;lt;int&amp;gt; NS) {&lt;br /&gt;하면 에러가 난다. 내가 뭘 잘못했나? 내가 뭘 놓치고 있는 걸까?&lt;br /&gt;</description>
			<category>IT/프로그래밍</category>
			<category>c++</category>
			<category>Vector</category>
			<category>벡터</category>
			<category>입출력</category>
			<category>파일</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/168</guid>
			<comments>http://zsimi.tistory.com/168#entry168comment</comments>
			<pubDate>Wed, 28 May 2008 22:54:05 +0900</pubDate>
		</item>
		<item>
			<title>STL의 반복자.</title>
			<link>http://zsimi.tistory.com/165</link>
			<description>보통 반복문을&lt;br /&gt;
&lt;blockquote&gt;for(int i=0 ; &lt;span style=&quot;font-weight: bold;&quot;&gt;i&amp;lt;10&lt;/span&gt; ; i++)&lt;/blockquote&gt;
이런 식으로 사용 하듯이.&lt;br /&gt;&lt;br /&gt;iterator도 first에서부터 last까지라고 하면 last는 포함이 되지 않는다. 그래서 .begin() 함수는 실제로 있는 데이터를 가리키지만, .end()는 이미 꼬리를 지난 마지막을 나타낸다. 그래서 아래와 같은식으로 사용한다.&lt;br /&gt;&lt;blockquote&gt;for( it=notSearched.begin() ; &lt;span style=&quot;font-weight: bold;&quot;&gt;it!=notSearched.end()&lt;/span&gt; ; it++)&lt;/blockquote&gt;이런식으로 .end()가 &lt;span style=&quot;font-weight: bold;&quot;&gt;아닐 동안&lt;/span&gt; 돌아도 전 자료를 다 돌 수 있다.&lt;br /&gt;&lt;br /&gt;그래서 it = find(inVector.begin(), inVector.end(), element); 과 같이 find문의 결과도 찾은 결과가 있으면 해당 원소의 iterator가 반환되고 결과가 없으면 .end() 즉, 마지막 iterator가 넘어오게 된다. 그러니까 아래 처럼 쓰면 된다.&lt;br /&gt;&lt;blockquote&gt;it = find(inVector.begin(), inVector.end(), element);&lt;br /&gt;&amp;nbsp; &amp;nbsp; if( it == &lt;span style=&quot;font-weight: bold;&quot;&gt;inVector.end()&lt;/span&gt; )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 0; //없음.&lt;br /&gt;&amp;nbsp; &amp;nbsp; else&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1; //있음.&lt;/blockquote&gt;</description>
			<category>IT/프로그래밍</category>
			<category>Iterator</category>
			<category>STL</category>
			<category>반복자</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/165</guid>
			<comments>http://zsimi.tistory.com/165#entry165comment</comments>
			<pubDate>Sun, 25 May 2008 19:54:13 +0900</pubDate>
		</item>
		<item>
			<title>[일기] 커피메이커를 샀다.</title>
			<link>http://zsimi.tistory.com/164</link>
			<description>■ 2주일쯤 고민끝에 커피메이커를 사기로 결정하고, (누나와 함께) E마트에 가서 커피메이커를 샀다. 오랜만에 대형 마트에 가니 즐거웠다. (근데 사실 E마트는 좀 비싸다.) 요즘 여러가지로 선택해야 할 고민들이 있는데, 잠시 사람 많은곳을 둘러봐서 기분전환이 된 것 같다. 인생을 살면서 수억 개의 고민들이 있고 수십억 개의 선택이 있다. 나는 지금도 내가 주체적으로 내 인생을 결정해오고 있다는 사실을 도저히 실감하지 못한다. 그저 어떤것에 의해서 선택되어져 왔다고 느낄 뿐이다. 그 수십억 개의 선택중에서 내가 진짜 선택했던 것은 몇 개나 될까? 내가 선택했다고 하는 것들도 주위 사정에 의해서 그렇게 할 수밖에 없었던 게 많다. 하지만 내 인생을 누구도 대신 살아줄 수 없고, 그 선택에는 (어떤 사정이 있었든) 모두 내 책임일 수밖에 없는 것이다. 그것이 괴롭다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/6/tistory/2008/05/25/13/09/4838e67068bc8&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/36/tistory/2008/05/25/13/09/4838e6709fb1c&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/div&gt;&lt;br /&gt;■ 보궐선거 운동이 한창이다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/23/tistory/2008/05/25/13/09/4838e67397f92&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;저기서 일 하는 아주머니들은 이념으로 움직이는 것일까 돈때문에 일 하시는 것일까?&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;■ 햄버거를 먹었다. 비싸다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/35/tistory/2008/05/25/13/09/4838e671a4533&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/2/tistory/2008/05/25/13/09/4838e6715b557&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;400&quot;/&gt;&lt;/div&gt;&lt;br /&gt;</description>
			<category>기억의 기록</category>
			<category>쇼핑</category>
			<category>일기</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/164</guid>
			<comments>http://zsimi.tistory.com/164#entry164comment</comments>
			<pubDate>Sun, 25 May 2008 13:07:38 +0900</pubDate>
		</item>
		<item>
			<title>이중포인터</title>
			<link>http://zsimi.tistory.com/163</link>
			<description>■ 어떤 함수에다가 구조체의 포인터를 인자로 넘겨주고&lt;br /&gt;함수내부에서 그 구조체 포인터에 메모리를(heap에) 잡는다고 하면&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;이중포인터&lt;/span&gt;로 넘겨주어야 한다.&lt;br /&gt;&lt;br /&gt;■ 그래서 오늘 아래와 같은 코드를 짰다.&lt;br /&gt;typedef struct{ float x,y,z, nx,ny,nz; } VERTEX;&lt;br /&gt;typedef struct{ int vertex[3]; float nx,ny,nz; } TRIANGLE;&lt;br /&gt;&lt;br /&gt;void GetDataFromFile(int *nVertexies, int *nTriangles, &lt;span style=&quot;font-weight: bold;&quot;&gt;VERTEX **&lt;/span&gt;v, &lt;span style=&quot;font-weight: bold;&quot;&gt;TRIANGLE **&lt;/span&gt;t) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; fscanf(fp,&quot;%d&quot;,nVertexies);&lt;br /&gt;&amp;nbsp; &amp;nbsp; fscanf(fp,&quot;%d&quot;,nTriangles);&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; *v = new VERTEX[*nVertexies];&lt;/span&gt;&lt;br style=&quot;font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp; &amp;nbsp; *t = new TRIANGLE[*nTriangles];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(i=0 ; i&amp;lt;*nVertexies ; i++) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fscanf(fp,&quot;%f&quot;, &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;((*v)[i].x)&lt;/span&gt; );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fscanf(fp,&quot;%f&quot;, &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;((*v)[i].y)&lt;/span&gt; );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fscanf(fp,&quot;%f&quot;, &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;((*v)[i].z)&lt;/span&gt; );&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main() {&lt;br /&gt;&amp;nbsp; &amp;nbsp; VERTEX *vertex;&lt;br /&gt;&amp;nbsp; &amp;nbsp; TRIANGLE *triangle;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;font-weight: bold;&quot;&gt;GetDataFromFile&lt;/span&gt;(&amp;amp;nV, &amp;amp;nT, &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;vertex&lt;/span&gt;, &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;amp;triangle&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if(vertex!=NULL) delete vertex;&lt;br /&gt;&amp;nbsp; &amp;nbsp; if(triangle!=NULL) delete triangle;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;■ 별로 안 좋은 코드이고, 잘 안 쓰일것 같은데.&lt;br /&gt;의외로 DX에도 이런 코드가 여럿 보인다.&lt;br /&gt;위의내용은 전적으로 (천재인)현기한테 배운것이다.&lt;br /&gt;(고마움과, 도움 받은 것은 표현을 아끼지 말아야 한다.)&lt;br /&gt;</description>
			<category>IT/프로그래밍</category>
			<category>구조체</category>
			<category>메모리</category>
			<category>이중포인터</category>
			<category>포인터</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/163</guid>
			<comments>http://zsimi.tistory.com/163#entry163comment</comments>
			<pubDate>Thu, 22 May 2008 23:11:41 +0900</pubDate>
		</item>
		<item>
			<title>전환사채란?</title>
			<link>http://zsimi.tistory.com/161</link>
			<description>회사에서 발행하는 채권을 짧게 &lt;span style=&quot;font-weight: bold;&quot;&gt;회사채&lt;/span&gt;, 또는 &lt;span style=&quot;font-weight: bold;&quot;&gt;사채&lt;/span&gt;라고 한다.&lt;br /&gt;그 중에서도 전환사채는 &lt;span style=&quot;font-weight: bold;&quot;&gt;주식으로의 전환&lt;/span&gt;이 가능한 채권을 의미한다.&lt;br /&gt;예를 들어 삼송이라는 회사에서 1만원짜리 전환사채를 발행했다면, 1~3년 뒤에 이것을 원리금을 받거나 또는 삼송 주식으로 바꿀 수 있는 권한이 생기는 것이다. 그런데 이것은 소득세 외에는 &lt;span style=&quot;font-weight: bold;&quot;&gt;세금이 붙지 않는다&lt;/span&gt;. 그래서 상속세를 피하기 위해서 많이 쓰인다. &lt;span style=&quot;font-weight: bold;&quot;&gt;1만원짜리 전환사채를 발행하고 3년 뒤에 60만원짜리 삼송 주식으로 바꿀 수 있는 것&lt;/span&gt;이다. 당연히 이 전환사채는 아무나 살 수 없다. 대게 기업의 임원에게 발행해서, 경영권방어를 위해서 사용한다. 그러니까 어떤 기업에서 삼송의 대주주가 되기 위해서 주식을 모으고 있다면, 경영권 방어를 위해 미리 발행했던 전환사채를 주식으로 돌리는 것이다.&lt;br /&gt;&lt;br /&gt;상속세를 피하기 위해 이런 전환사채를 사용한다고 해서 아무런 법적인 문제도 없다. 도의적인 문제가 있지만...&lt;br /&gt;&lt;br /&gt;의문1) 근데 전환사채를 주식으로 바꿀 때는 그 기업의 주식 수가 늘어나는 걸까? (그러니까 신주발행, 증자) 만약 그게 아니라면 도대체 누가 가지고 있던 주식의 소유권이 바뀌는 걸까? 검색해봐도 나오지 않는다.&lt;br /&gt;</description>
			<category>경제/주식</category>
			<category>전환사채</category>
			<category>주식</category>
			<category>채권</category>
			<category>회사채</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/161</guid>
			<comments>http://zsimi.tistory.com/161#entry161comment</comments>
			<pubDate>Mon, 19 May 2008 19:20:38 +0900</pubDate>
		</item>
		<item>
			<title>루아 문법 규칙.</title>
			<link>http://zsimi.tistory.com/160</link>
			<description>&lt;p&gt;
&lt;/p&gt;&lt;p id=&quot;more160_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;160_0&#039;,&#039;루아 전체 문법 규칙.&#039;,&#039;접기&#039;); return false;&quot;&gt;루아 전체 문법 규칙.&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content160_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;루아 언어의 문법 규칙을 BNF표기법으로 표현한 것. (이것만 보면 루아 문법은 쫑이다.)&lt;br /&gt;&lt;pre&gt;chunk ::= {stat [`&lt;b&gt;;&lt;/b&gt;´]} [laststat [`&lt;b&gt;;&lt;/b&gt;´]]&lt;br /&gt;block ::= chunk&lt;br /&gt;stat ::=  varlist `&lt;b&gt;=&lt;/b&gt;´ explist | &lt;br /&gt;	 functioncall | &lt;br /&gt;	 &lt;b&gt;do&lt;/b&gt; block &lt;b&gt;end&lt;/b&gt; | &lt;br /&gt;	 &lt;b&gt;while&lt;/b&gt; exp &lt;b&gt;do&lt;/b&gt; block &lt;b&gt;end&lt;/b&gt; | &lt;br /&gt;	 &lt;b&gt;repeat&lt;/b&gt; block &lt;b&gt;until&lt;/b&gt; exp | &lt;br /&gt;	 &lt;b&gt;if&lt;/b&gt; exp &lt;b&gt;then&lt;/b&gt; block {&lt;b&gt;elseif&lt;/b&gt; exp &lt;b&gt;then&lt;/b&gt; block} [&lt;b&gt;else&lt;/b&gt; block] &lt;b&gt;end&lt;/b&gt; | &lt;br /&gt;	 &lt;b&gt;for&lt;/b&gt; Name `&lt;b&gt;=&lt;/b&gt;´ exp `&lt;b&gt;,&lt;/b&gt;´ exp [`&lt;b&gt;,&lt;/b&gt;´ exp] &lt;b&gt;do&lt;/b&gt; block &lt;b&gt;end&lt;/b&gt; | &lt;br /&gt;	 &lt;b&gt;for&lt;/b&gt; namelist &lt;b&gt;in&lt;/b&gt; explist &lt;b&gt;do&lt;/b&gt; block &lt;b&gt;end&lt;/b&gt; | &lt;br /&gt;	 &lt;b&gt;function&lt;/b&gt; funcname funcbody | &lt;br /&gt;	 &lt;b&gt;local&lt;/b&gt; &lt;b&gt;function&lt;/b&gt; Name funcbody | &lt;br /&gt;	 &lt;b&gt;local&lt;/b&gt; namelist [`&lt;b&gt;=&lt;/b&gt;´ explist] &lt;br /&gt;&lt;br /&gt;laststat ::= &lt;b&gt;return&lt;/b&gt; [explist] | &lt;b&gt;break&lt;/b&gt;&lt;br /&gt;funcname ::= Name {`&lt;b&gt;.&lt;/b&gt;´ Name} [`&lt;b&gt;:&lt;/b&gt;´ Name]&lt;br /&gt;varlist ::= var {`&lt;b&gt;,&lt;/b&gt;´ var}&lt;br /&gt;var ::=  Name | prefixexp `&lt;b&gt;[&lt;/b&gt;´ exp `&lt;b&gt;]&lt;/b&gt;´ | prefixexp `&lt;b&gt;.&lt;/b&gt;´ Name &lt;br /&gt;namelist ::= Name {`&lt;b&gt;,&lt;/b&gt;´ Name}&lt;br /&gt;explist ::= {exp `&lt;b&gt;,&lt;/b&gt;´} exp&lt;br /&gt;exp ::=  &lt;b&gt;nil&lt;/b&gt; | &lt;b&gt;false&lt;/b&gt; | &lt;b&gt;true&lt;/b&gt; | Number | String | `&lt;b&gt;...&lt;/b&gt;´ | function | prefixexp | tableconstructor | exp binop exp | unop exp &lt;br /&gt;prefixexp ::= var | functioncall | `&lt;b&gt;(&lt;/b&gt;´ exp `&lt;b&gt;)&lt;/b&gt;´&lt;br /&gt;functioncall ::=  prefixexp args | prefixexp `&lt;b&gt;:&lt;/b&gt;´ Name args &lt;br /&gt;args ::=  `&lt;b&gt;(&lt;/b&gt;´ [explist] `&lt;b&gt;)&lt;/b&gt;´ | tableconstructor | String &lt;br /&gt;function ::= &lt;b&gt;function&lt;/b&gt; funcbody&lt;br /&gt;funcbody ::= `&lt;b&gt;(&lt;/b&gt;´ [parlist] `&lt;b&gt;)&lt;/b&gt;´ block &lt;b&gt;end&lt;/b&gt;&lt;br /&gt;parlist ::= namelist [`&lt;b&gt;,&lt;/b&gt;´ `&lt;b&gt;...&lt;/b&gt;´] | `&lt;b&gt;...&lt;/b&gt;´&lt;br /&gt;tableconstructor ::= `&lt;b&gt;{&lt;/b&gt;´ [fieldlist] `&lt;b&gt;}&lt;/b&gt;´&lt;br /&gt;fieldlist ::= field {fieldsep field} [fieldsep]&lt;br /&gt;field ::= `&lt;b&gt;[&lt;/b&gt;´ exp `&lt;b&gt;]&lt;/b&gt;´ `&lt;b&gt;=&lt;/b&gt;´ exp | Name `&lt;b&gt;=&lt;/b&gt;´ exp | exp&lt;br /&gt;fieldsep ::= `&lt;b&gt;,&lt;/b&gt;´ | `&lt;b&gt;;&lt;/b&gt;´&lt;br /&gt;binop ::= `&lt;b&gt;+&lt;/b&gt;´ | `&lt;b&gt;-&lt;/b&gt;´ | `&lt;b&gt;*&lt;/b&gt;´ | `&lt;b&gt;/&lt;/b&gt;´ | `&lt;b&gt;^&lt;/b&gt;´ | `&lt;b&gt;%&lt;/b&gt;´ | `&lt;b&gt;..&lt;/b&gt;´ | `&lt;b&gt;&amp;lt;&lt;/b&gt;´ | `&lt;b&gt;&amp;lt;=&lt;/b&gt;´ | `&lt;b&gt;&amp;gt;&lt;/b&gt;´ | `&lt;b&gt;&amp;gt;=&lt;/b&gt;´ | `&lt;b&gt;==&lt;/b&gt;´ | `&lt;b&gt;~=&lt;/b&gt;´ | &lt;b&gt;and&lt;/b&gt; | &lt;b&gt;or&lt;/b&gt;&lt;br /&gt;unop ::= `&lt;b&gt;-&lt;/b&gt;´ | &lt;b&gt;not&lt;/b&gt; | `&lt;b&gt;#&lt;/b&gt;´&lt;/pre&gt;&lt;/div&gt;■ Load 하기.
&lt;div style=&quot;margin-left: 40px;&quot;&gt;루아에서 텍스트를 불러오든 청크를 불러오든 lua_load() 를 써서 불러 올 수 있다.&lt;br /&gt;&lt;blockquote&gt;int &lt;span style=&quot;font-weight: bold;&quot;&gt;lua_load&lt;/span&gt; (lua_State *L, lua_Reader reader, void *data, const char *chunkname);&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;■ 바이트코드로 변환 하기.
&lt;div style=&quot;margin-left: 40px;&quot;&gt;&lt;blockquote&gt;luac -s -o test.out test1.lua test2.lua test3.lua&lt;/blockquote&gt;하면 test.out으로 합쳐지면서 바이트코드로 변환된다.&lt;br /&gt;근데 바이너리코드와 바이트코드는 무슨 (의미의) 차이가 있을까?&lt;/div&gt;</description>
			<category>IT/프로그래밍</category>
			<category>BNF</category>
			<category>Lua</category>
			<category>게임</category>
			<category>루아</category>
			<category>문법</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/160</guid>
			<comments>http://zsimi.tistory.com/160#entry160comment</comments>
			<pubDate>Sun, 18 May 2008 14:25:34 +0900</pubDate>
		</item>
		<item>
			<title>작지만 확실한 행복 (by 무라카미 하루키)</title>
			<link>http://zsimi.tistory.com/159</link>
			<description>요즘 (책 읽기 좋은 계절인) 봄이라 책을 &lt;span style=&quot;font-weight: bold;&quot;&gt;닥치는데로&lt;/span&gt; 읽고 있다. (계산은 안 해봤지만 보통 일주일에 4권이상)&amp;nbsp; 그렇지만, 기억할 만한 책도 있고, 괜히 읽었다고 생각한 책도 있었다. 일본 작가 &quot;무라카미 하루키&quot;님의 책은 대부분 재밌게 읽었던 것 같다. (다시 생각해보니 &#039;대부분&#039;이 아니라 &#039;전부&#039;인 것 같다.)&lt;br /&gt;&lt;br /&gt;최근에 읽은 책은 주로 그의 에세이를 읽었다. &amp;lt;먼 북소리&amp;gt;라는 유럽여행기를 읽었고 어제 &amp;lt;작지만 확실한 행복&amp;gt;을 읽었는데 이 책은 매우 재밌다. 그의 비판과 냉소와 재미와 풍자가 섞인 문장 때문에 읽는내내 &lt;span style=&quot;font-weight: bold;&quot;&gt;웃으면서 읽었다.&lt;/span&gt;&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/26/tistory/2008/05/18/10/42/482f896d79118&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;150&quot; width=&quot;200&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;이 책이 &amp;lt;작지만 확실한 행복&amp;gt;이다. 요즘 휴대폰에 카메라가 있으니 이런걸 잘도 찍어덴다.&lt;/p&gt;&lt;/div&gt;특히 &lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;lt;결혼식&amp;gt;이라는 행사&lt;/span&gt;에 대한 그의 생각은 나와 비슷해서 재밌었다. 결혼식이라는 세레모니는 사람들이 일종의 감동을 필요로 하기 때문에 이 세상에 존재하고 있다. 하지만 그것은 참다운 감동이 아니다. 그들이 구하는 것은 시작이 있고 중간이 있고 끝이 있어서, 적당히 그 기능을 수행해 주는 &lt;span style=&quot;font-weight: bold;&quot;&gt;파악이 가능한 감동&lt;/span&gt;인 것이다.&lt;br /&gt;두고두고 화장실에서 다시 읽을만한 책 인것 같다.&lt;br /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/image/15/tistory/2008/05/18/10/41/482f895cd3c7a&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;266&quot; width=&quot;200&quot;/&gt;&lt;p class=&quot;cap1&quot;&gt;&amp;lt;빨간 고양이&amp;gt; 나는 별로였다. (이건 무라카미씨의 책이 아니다.)&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;덧,&lt;br /&gt;이번 봄에 읽은 책 중에 기억나는 것은(기억난다는 것은 좋은 책이다.) 오쿠다 히데오님의 &amp;lt;Girl&amp;gt;, 그리고 작가는 기억이 안 나는 &amp;lt;마음의 기원&amp;gt;. 또... 풍수 지리학 책과 주역, 마케팅, 심리학, 흠. 그리고 소설 작가로는 디킨즈, 샬롯 브론테, 스타인벡의 책을 읽었고, 이것에 관한 감상문을 쓰고 싶었데, 시간이 없다. 내용을 잊기 전에 꼭 써야 할 텐데...&lt;br /&gt;</description>
			<category>책</category>
			<category>무라카미 하루키</category>
			<category>에세이</category>
			<category>작지만 확실한 행복</category>
			<category>책</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/159</guid>
			<comments>http://zsimi.tistory.com/159#entry159comment</comments>
			<pubDate>Sun, 18 May 2008 10:52:37 +0900</pubDate>
		</item>
		<item>
			<title>SVN에서 Repository의 일반적인 레이아웃.</title>
			<link>http://zsimi.tistory.com/158</link>
			<description>오늘 SVN에 대해서 준비해서 발표 했는데.&lt;br /&gt;그 중에서 가장 중요한(그것보다는 새롭게 알게된) 내용은 &lt;br /&gt;Repository의 레이아웃 이었다.&lt;br /&gt;&lt;br /&gt;myProject 디렉토리 (이것은 내가 만든 Repository 이름이다.)&lt;br /&gt;myProject/&lt;strong&gt;trunk&lt;/strong&gt;/&lt;br /&gt;myProject/&lt;strong&gt;branches&lt;/strong&gt;/&lt;br /&gt;myProject/&lt;strong&gt;tags&lt;/strong&gt;/&lt;br /&gt;&lt;br /&gt;보통 오픈소스 프로젝트의 소스들을 보면,&lt;br /&gt;위와같은 디렉토리 구조로 되어있다.&lt;br /&gt;지금까지 나는 그 의미를 모르고 있었는데.&lt;br /&gt;&lt;br /&gt;trunk는 주 버젼이고 (즉, 현재 주로 작업하는)&lt;br /&gt;branches는 브랜치들을 담는 것.&lt;br /&gt;tags는 중요 버젼을 담는 것이다.&lt;br /&gt;&lt;br /&gt;여기서 중요한 것은.&lt;br /&gt;SVN은 CVS와 달리&lt;br /&gt;&lt;strong&gt;태그 또는 브랜치&lt;/strong&gt; 와 &lt;strong&gt;디렉토리&lt;/strong&gt;는 같은 의미 라는 사실이다.&lt;br /&gt;&lt;br /&gt;그래서 디렉토리를 추가하는 것은&lt;br /&gt;곧 태그나 브랜치를 추가하는 것과 같은 작업이다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;이것 외에도&lt;br /&gt;오늘 CVS와 SVN의 차이점과&lt;br /&gt;SVN의 핵심기술(아파치웹서버, 버클리DB)에 대해서 간단히 설명했는데.&lt;br /&gt;별로 중요하지 않으니 패쓰~&lt;br /&gt;&lt;br /&gt;덧, (참고)&lt;br /&gt;설정에서 &quot;제외/무시 패턴&quot;에 나는 아래와 같은 제외 패턴을 사용한다.&lt;br minmax_bound=&quot;true&quot;&gt;&lt;b minmax_bound=&quot;true&quot;&gt;
&lt;blockquote&gt;&lt;b minmax_bound=&quot;true&quot;&gt;*.aps *.bak *.bat *.bsc *.clw *.db *.idb *.idl *.ilk *.ncb *.o *.obj *.opt *.pch *.pdb *.plg *.positions *.rsp *.sbr *.temp *.tlb *.tlh *.tli *.tmp *.dll *.log&lt;/b&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/b&gt;</description>
			<category>IT/프로그래밍</category>
			<category>branches</category>
			<category>CVS</category>
			<category>SubVersion</category>
			<category>SVN</category>
			<category>tags</category>
			<category>trunk</category>
			<category>버젼관리</category>
			<category>브랜치</category>
			<category>서브버젼</category>
			<category>태그</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/158</guid>
			<comments>http://zsimi.tistory.com/158#entry158comment</comments>
			<pubDate>Fri, 16 May 2008 00:11:59 +0900</pubDate>
		</item>
		<item>
			<title>STL, vector, cin</title>
			<link>http://zsimi.tistory.com/157</link>
			<description>오늘 &amp;lt;이산구조&amp;gt;수업 과제를 C++을 사용해서 푸는 중에 있었던 문제와 해결에 대한 기록.&lt;br /&gt;&lt;br /&gt;2차원 Vector&lt;br /&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;만약 &lt;span style=&quot;font-weight: bold;&quot;&gt;vector&amp;lt;int&amp;gt; v(10);&lt;/span&gt; 라고 선언하면 벡터는 연속메모리에 저장 되니까 배열 처럼.&lt;br /&gt;v[0] 이나 v[9]로 접근이 가능하고.&lt;br /&gt;그래서 v[2][5] 식으로 접근해도 괜찮을 줄 알았다. (어차피 연속메모리니까.)&lt;br /&gt;근런데 그렇게 접근 실패.&lt;br /&gt;그래서 해결 하려고 하다가.&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;2차원 벡터&lt;/span&gt; 구조체를 만들었다.&lt;br /&gt;&lt;p id=&quot;more157_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;157_0&#039;,&#039;2차원 벡터&#039;,&#039;접기&#039;); return false;&quot;&gt;2차원 벡터&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content157_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt; template&amp;lt;class T&amp;gt; &amp;nbsp;&amp;nbsp; struct Vector2D : vector&amp;lt; vector&amp;lt;T&amp;gt; &amp;gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; Vector2D(int,int); //생성자.&lt;br /&gt;&amp;nbsp; &amp;nbsp; Vector2D(){};&lt;br /&gt;&amp;nbsp; &amp;nbsp; void Resize(int, int); //벡터의 크기를 실행시간에 조정.&lt;br /&gt;};&lt;br /&gt;template&amp;lt;class T&amp;gt; &amp;nbsp;&amp;nbsp; Vector2D&amp;lt;T&amp;gt;::Vector2D(int r, int c) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; (*this).resize(r);&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(int i=0; i&amp;lt;r; ++i) &amp;nbsp;&amp;nbsp; (*this)[i].resize(c);&lt;br /&gt;}&lt;br /&gt;template&amp;lt;class T&amp;gt; &amp;nbsp;&amp;nbsp; void Vector2D&amp;lt;T&amp;gt;::Resize(int r, int c) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; (*this).resize(r);&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(int i=0; i&amp;lt;r; ++i) &amp;nbsp;&amp;nbsp; (*this)[i].resize(c);&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;cin으로의 입력&lt;br /&gt;&lt;div style=&quot;margin-left: 40px;&quot;&gt;cin의 사용법을 잘 몰랐는데&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(row=0 ; row&amp;lt;nr ; row++) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cin &amp;gt;&amp;gt; Relation[row][0];&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cin &amp;gt;&amp;gt; Relation[row][1];&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;만약 위와 같은 코드가 있다면.&lt;br /&gt;cin &amp;gt;&amp;gt; 변수;&lt;br /&gt;는 &quot;스페이스&quot; 나 &quot;엔터&quot;로 입력이 끝나기 때문에.&lt;br /&gt;한 줄에 공백으로 구분된 연속의 문자들을 입력 받을 수 있다.&lt;br /&gt;cin.get(변수); 는 그런 구분을 안 하는 거고 (맞나?)&lt;br /&gt;cin.getline(문자열변수, 길이); 는 공백 구분 안 하는 한 줄을 입력받고.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;덧, 근데 과제를 너무 복잡하게 짠 것 같다.&lt;br /&gt;&lt;p id=&quot;more157_1&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;157_1&#039;,&#039;아무튼 오늘 코딩한 전체 소스&#039;,&#039;접기&#039;); return false;&quot;&gt;아무튼 오늘 코딩한 전체 소스&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content157_1&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;string&amp;gt;&lt;br /&gt;#include &amp;lt;vector&amp;gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;template&amp;lt;class T&amp;gt; &amp;nbsp; &amp;nbsp;struct Vector2D : vector&amp;lt; vector&amp;lt;T&amp;gt; &amp;gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; Vector2D(int,int); //생성자.&lt;br /&gt;&amp;nbsp; &amp;nbsp; Vector2D(){};&lt;br /&gt;&amp;nbsp; &amp;nbsp; void Resize(int, int); //벡터의 크기를 실행시간에 조정.&lt;br /&gt;};&lt;br /&gt;template&amp;lt;class T&amp;gt; &amp;nbsp; &amp;nbsp;Vector2D&amp;lt;T&amp;gt;::Vector2D(int r, int c) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; (*this).resize(r);&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(int i=0; i&amp;lt;r; ++i) &amp;nbsp; &amp;nbsp;(*this)[i].resize(c);&lt;br /&gt;}&lt;br /&gt;template&amp;lt;class T&amp;gt; &amp;nbsp; &amp;nbsp;void Vector2D&amp;lt;T&amp;gt;::Resize(int r, int c) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; (*this).resize(r);&lt;br /&gt;&amp;nbsp; &amp;nbsp; for(int i=0; i&amp;lt;r; ++i) &amp;nbsp; &amp;nbsp;(*this)[i].resize(c);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//관계를 boolean matrix로 변환하는 함수.&lt;br /&gt;// (1,2) (2,3) (4,5) 이런것들이 입력되면. bool행렬로 변환해야됨.&lt;br /&gt;Vector2D&amp;lt;int&amp;gt; ConvertRelationToBoolmatrix(int sizeofBoolMatrix, const Vector2D&amp;lt;int&amp;gt; relation) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; boolMatrix(sizeofBoolMatrix, sizeofBoolMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int n = relation.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int r_start, r_end;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//관계의 행을 돌면서 관계를 이진행렬에 저장함.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int row;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(row=0 ; row&amp;lt;n ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r_start = relation[row][0];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;r_end = relation[row][1];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolMatrix[r_start-1][r_end-1] = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return boolMatrix;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Vector2D&amp;lt;int&amp;gt; ConvertBoolmatrixToRelation(const Vector2D&amp;lt;int&amp;gt; boolMatrix) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; relation;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int n = boolMatrix.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//관계의 행을 돌면서 관계를 이진행렬에 저장함.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int row,col;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int cnt=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(row=0 ; row&amp;lt;n ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(col=0 ; col&amp;lt;n ; col++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(boolMatrix[row][col] == 1) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cnt++;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;relation.Resize(cnt,2);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;relation[cnt-1][0] = row+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;relation[cnt-1][1] = col+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return relation;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// M1⊙M2 (Meet들의 Join)&lt;br /&gt;Vector2D&amp;lt;int&amp;gt; JoinOfMeet(const Vector2D&amp;lt;int&amp;gt; M1, const Vector2D&amp;lt;int&amp;gt; M2) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; joinofmeetMatrix = M1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int n = M1.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int m1col_m2row=0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int joins=0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(int row=0 ; row&amp;lt;n ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int col=0 ; col&amp;lt;n ; col++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(m1col_m2row=0 ; m1col_m2row&amp;lt;n ; m1col_m2row++)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;joins = joins || (M1[row][m1col_m2row] &amp;amp;&amp;amp; M2[m1col_m2row][col]);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;joinofmeetMatrix[row][col] = joins;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;joins = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return joinofmeetMatrix;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//join: M1 v M2&lt;br /&gt;Vector2D&amp;lt;int&amp;gt; Join(const Vector2D&amp;lt;int&amp;gt; M1, const Vector2D&amp;lt;int&amp;gt; M2) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; joinOfMatrix = M1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int n = M1.size();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(int row=0 ; row&amp;lt;n ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int col=0 ; col&amp;lt;n ; col++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;joinOfMatrix[row][col] = M1[row][col] || M2[row][col];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return joinOfMatrix;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// n - boolean matrix의 크기. (n*n)&lt;br /&gt;// boolMatrix - 관계R의 boolean Matrix&lt;br /&gt;// return - boolean Matrix (transtive closure)&lt;br /&gt;Vector2D&amp;lt;int&amp;gt; transitiveClosure(int n, const Vector2D&amp;lt;int&amp;gt; boolMatrix) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; temp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; transMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;temp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= boolMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;transMatrix &amp;nbsp; &amp;nbsp;= boolMatrix;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(int i=2 ; i&amp;lt;=n ; i++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;temp = JoinOfMeet(temp, boolMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;transMatrix = Join(transMatrix, temp);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return transMatrix;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void TestMode() {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int data[8][2]={{1,1}, {1,2}, {1,4}, {2,3}, {3,3}, {3,5}, {4,4}, {5,2}};&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; testRelation(8,2);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; testBoolMatrix(5,5);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int row,col;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(row=0 ; row&amp;lt;8 ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(col=0 ; col&amp;lt;2 ; col++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;testRelation[row][col] = data[row][col];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;testBoolMatrix = ConvertRelationToBoolmatrix(5, testRelation);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;testBoolMatrix = transitiveClosure(5, testBoolMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;testRelation = ConvertBoolmatrixToRelation(testBoolMatrix);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;R의 transitive closure는 &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(row=0 ; row&amp;lt;testRelation.size() ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;(&quot; &amp;lt;&amp;lt; testRelation[row][0] &amp;lt;&amp;lt; &quot;,&quot; &amp;lt;&amp;lt;testRelation[row][1] &amp;lt;&amp;lt; &quot;) &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;이다.&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; Relation;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Vector2D&amp;lt;int&amp;gt; BoolMatrix;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int row,col;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int n;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int nr;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int temp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;집합의 갯수에 0을 입력하면 미리 입력된 테스트 데이터로 테스트 합니다.&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;미리 입력된 데이터는 아래와 같습니다.&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;(1) 집합의 갯수: 5&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;(2) 집합: {1,2,3,4,5}&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;(3) 관계R: {{1,1},{1,2},{1,4},{2,3},{3,3},{3,5},{4,4},{5,2}} 입니다.&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;집합의 갯수를 입력하세요: &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt; n;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(n == 0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TestMode();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;집합을 입력하세요. (예: 1 2 3 4 5): &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(col=0 ; col&amp;lt;n ; col++)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt; temp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;관계의 길이: R={{1,1}, {1,2}} 이라면 2개&quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;입력할 관계의 길이를 입력하세요: &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt; nr;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Relation.Resize(nr,2);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;관계입력 예: R={{1,1}, {1,2}} 이라면 1 1 1 2 를 입력&quot;&amp;lt;&amp;lt;endl;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;관계를 입력하세요: &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(row=0 ; row&amp;lt;nr ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt; Relation[row][0];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cin &amp;gt;&amp;gt; Relation[row][1];&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//중요! 처리&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BoolMatrix = ConvertRelationToBoolmatrix(n, Relation);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BoolMatrix = transitiveClosure(n, BoolMatrix);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Relation = ConvertBoolmatrixToRelation(BoolMatrix);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;R의 transitive closure는 &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(row=0 ; row&amp;lt;Relation.size() ; row++) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;(&quot; &amp;lt;&amp;lt; Relation[row][0] &amp;lt;&amp;lt; &quot;,&quot; &amp;lt;&amp;lt;Relation[row][1] &amp;lt;&amp;lt; &quot;) &quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cout &amp;lt;&amp;lt; &quot;이다.&quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;</description>
			<category>IT/프로그래밍</category>
			<category>c++</category>
			<category>CIN</category>
			<category>cpp</category>
			<category>STL</category>
			<category>Vector</category>
			<category>이산구조</category>
			<category>코드</category>
			<category>프로그래밍</category>
			<author>시미</author>
			<guid>http://zsimi.tistory.com/157</guid>
			<comments>http://zsimi.tistory.com/157#entry157comment</comments>
			<pubDate>Thu, 15 May 2008 00:11:19 +0900</pubDate>
		</item>
	</channel>
</rss>
