<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">

	<channel>
    
		<title><![CDATA[안드로메다 토끼]]></title>
		<link>http://kaistizen.net/EE/index.php/weblog/index/</link>
		<description><![CDATA[]]></description>
		<language>ko</language>
		<copyright>Copyright (c) 2010, 최재훈, http://creativecommons.org/licenses/by-nc-sa/2.0/kr/</copyright>
		<pubDate>Mon, 30 Aug 2010 22:41:08 +0900</pubDate>
		<generator>ExpressionEngine 1.6.8</generator>
	


		<item>
			<title><![CDATA[안드로메다-토끼의 미투데이 - 2010년 9월 2일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_9_2/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_9_2/</guid>
			
			<description><![CDATA[
						
								

					<div class="me2day_daily_digest"><ul><li>Hell, it took two time than usual to get to office. I don't know why people are taking their cars to the roads in a rainy day!!!<span class="me2_tags">(어우 일찍 출발해서 지각은 면함)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/02#09:31:28" rel="bookmark" title="퍼머링크" class="datetime">2010-09-02 09:31:28</a> </span></li><li>xxcking Koreans! Even great storms never stop these workaholics from going to office. Yes, I'm one of them, xxck!!!!!<span class="me2_tags">(아놔. 휴가제도 어떤 머저리가 이렇게 만들어놔서 휴가 쓰기도 뭐하고)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/02#09:34:54" rel="bookmark" title="퍼머링크" class="datetime">2010-09-02 09:34:54</a> </span></li><li>업무 생산성이 떨어진 사실을 절감하고 이메일을 두세 시간에 한번 확인하게 설정을 바꿨다. 자동 통지 시스템은 모두 껐고, 정해진 시간에 이메일 확인하라는  문자가 온다. 이와 더불어 미투데이, 트위터 등도 그때 한꺼번에 확인할 듯.<span class="me2_tags">(휴.... 월급 값은 해야지)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/02#13:50:18" rel="bookmark" title="퍼머링크" class="datetime">2010-09-02 13:50:18</a> </span></li><li>나에게 어울리는 작가는  프란츠 카프카, 시드니 셀던, 아서 코난 도일 입니다. (from <a href='http://tln.kr/vpsu'>반니</a>) 라는데 미안하지만 셋 다 내 취향이 아니야. 실존주의는 카뮈로 충분하고 추리 소설은 그다지 정이 안 가 ㅋㅋ<span class="me2_tags">(엉터리여 엉터리)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/02#20:59:43" rel="bookmark" title="퍼머링크" class="datetime">2010-09-02 20:59:43</a> </span></li><li>점점 나의 SNS 삶의 중심은 페이스북이 되어 간다. 트위터는 글 추적하기가 불편하고, 미투데이의 글감 기능은 참 좋은데 페이스북만큼 교류가 활발하진 않다 보니.<span class="me2_tags">(그래도 미투를 떠날 생각은 없지만 ㅋㅋ)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/02#21:20:23" rel="bookmark" title="퍼머링크" class="datetime">2010-09-02 21:20:23</a> </span></li><li>참! GMail에 Priority Inbox라는 게 생겼는데 아시나요? 이번에도 머신 러닝을 활용해 지능적으로 중요한 이메일을 분류해냅니다. 어떤 이메일이 중요한지 자꾸 가르치면 애가 똑똑해져요. (바로 이걸 원했어. 드디어 만들어주는구나.)<span class="me2_tags">(오예~~~~~~ 구뜨!)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/02#21:23:31" rel="bookmark" title="퍼머링크" class="datetime">2010-09-02 21:23:31</a> </span></li></ul><p style="background:url('http://me2day.net/images/me2day_icon.gif') no-repeat right top;padding-right:25px;text-align:right; font-size: 0.9em;">이 글은 <a href="http://me2day.net/kaistizen" >안드로메다-토끼</a>님의 <a href="http://me2day.net/kaistizen/2010/08/29#22:26:47">2010년 8월 29일</a>에서 <a href="http://me2day.net/kaistizen/2010/09/02#21:23:31">2010년 9월 2일</a>까지의 미투데이 내용입니다.</p></div>


										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			

      
			<pubDate>Fri, 03 Sep 2010 01:41:16 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[안드로메다-토끼의 미투데이 - 2010년 9월 1일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_9_1/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_9_1/</guid>
			
			<description><![CDATA[
						
								

					<div class="me2day_daily_digest"><ul><li>아버지는 혼자서만 반짝인다. 원래 슬픈 것들은 혼자서만 반짝거리는 법이다. - 마이 짝퉁 라이프<span class="me2_tags">(me2book 마이 짝퉁 라이프(오늘의 작가상 수상작 32) 2fb)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/09/01#12:14:10" rel="bookmark" title="퍼머링크" class="datetime">2010-09-01 12:14:10</a> </span>            <div class="show_content_layer"><h5>마이 짝퉁 라이프(오늘의 작가상 수상작 32)</h5><div id="cont_img"><a href="http://openapi.naver.com/l?AAAC2LywrDIBAAvyYeQ8yKj4OHQslvFNddMaStRmwhf98UAnMYBmb/cDu8M9Y6MMpKa6ToR2WPpWxi48PjZKNJKmrrSCOEADHRTKwQFYTJidw4+dx7HeA2zMvJ/x3f4cttjOV1BcJLHsQ9rM+x5vNYcKUB7krDJI3+AYvrk7GOAAAA" ><img src="http://bookthumb.phinf.naver.net/cover/046/301/04630176.jpg?type=m1" alt="마이 짝퉁 라이프(오늘의 작가상 수상작 32)" /></a></div></div>
</li></ul><p style="background:url('http://me2day.net/images/me2day_icon.gif') no-repeat right top;padding-right:25px;text-align:right; font-size: 0.9em;">이 글은 <a href="http://me2day.net/kaistizen" >안드로메다-토끼</a>님의 <a href="http://me2day.net/kaistizen/2010/08/29#22:26:47">2010년 8월 29일</a>에서 <a href="http://me2day.net/kaistizen/2010/09/01#12:14:10">2010년 9월 1일</a>까지의 미투데이 내용입니다.</p></div>


										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			

      
			<pubDate>Thu, 02 Sep 2010 09:42:58 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[MSBuild 알기 - #003 Build, Clean, 그리고 Rebuild]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/msbuild_&#45;_003/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/msbuild_&#45;_003/</guid>
			
			<description><![CDATA[
						
								

					<h3>소스 코드 내려 받기</h3>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:13d14321-6e00-4a8b-a8cc-5e451ee9ce8a" class="wlWriterEditableSmartContent"><pre class="brush: xml">svn checkout h ttp://imaso.googlecode.com/svn/trunk/201008-MSBuildTutorial imaso-read-only</pre></div>

<p>201008-MSBuildTutorial 폴더에서 이번 실습에 쓸 하위 폴더는 두 개 뿐이다. <strong>003</strong>, <strong>Shared </strong>이 두 폴더만 내려 받아도 괜찮다.</p>

<br />

<h3>우려먹자</h3>

<p>아래 예제는 <strong>003</strong> 폴더에 있는 <strong>msbuild-basic-template.xml</strong> 파일이다. 파일 이름이 암시하는 바, 빌드 스크립트를 작성할 때 <em>기본 코드로 활용</em>하곤 한다.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:a80801f3-efbe-42d7-a1e8-7d66f19dd0d6" class="wlWriterEditableSmartContent"><pre class="brush: xml">&lt;?xml version="1.0" encoding="utf-8" ?&gt;

&lt;Project 
	DefaultTargets="Build" 
	xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
&gt;

	&lt;!-- Special characters --&gt;  
	&lt;PropertyGroup&gt;  
		&lt;Semicolon&gt;%3b&lt;/Semicolon&gt;  
		 
		&lt;Ampersand&gt;&amp;amp;&lt;/Ampersand&gt;
		&lt;LeftAngleBracket&gt;&amp;lt;&lt;/LeftAngleBracket&gt;
		&lt;RightAngleBracket&gt;&amp;gt;&lt;/RightAngleBracket&gt;
		&lt;StraightQuotationMark&gt;&amp;quot;&lt;/StraightQuotationMark&gt;
		&lt;Quot&gt;$(StraightQuotationMark)&lt;/Quot&gt;
		&lt;Apostrophe&gt;&amp;apos;&lt;/Apostrophe&gt;
	&lt;/PropertyGroup&gt;  

	&lt;!-- Folders --&gt;
	&lt;PropertyGroup&gt;
		&lt;RootDir&gt;$(MSBuildProjectDirectory)&lt;/RootDir&gt;
	&lt;/PropertyGroup&gt;

	&lt;!-- Tools --&gt;
	&lt;PropertyGroup&gt;
		&lt;DevEnv&gt;devenv.exe&lt;/DevEnv&gt;
	&lt;/PropertyGroup&gt;
	
	&lt;!-- Build configuration: DEBUG/RELEASE, Any CPU/x86/Win32/x64 --&gt;
	&lt;PropertyGroup&gt;
		&lt;Platform 
			Condition=" '$(Platform)' == '' 
				AND '$(MSBuildBinPath)'=='C:\Windows\Microsoft.NET\Framework64\v2.0.50727' "
		&gt;x64&lt;/Platform&gt;
		&lt;Platform Condition=" '$(Platform)' == '' "&gt;Win32&lt;/Platform&gt;
		&lt;Configuration Condition=" '$(Configuration)' == '' "&gt;Debug&lt;/Configuration&gt;
		&lt;BuildCondition&gt;$(Configuration)|$(Platform)&lt;/BuildCondition&gt;
	&lt;/PropertyGroup&gt;

	&lt;PropertyGroup Condition=" '$(BuildCondition)' == 'Debug|Win32' "&gt;
	&lt;/PropertyGroup&gt;

	&lt;PropertyGroup Condition=" '$(BuildCondition)' == 'Release|x64' "&gt;
	&lt;/PropertyGroup&gt;

	&lt;ItemGroup&gt;
		&lt;ProjectReferences Include="$(RootDir)\Projects.sln"&gt;
			&lt;Configuration&gt;$(Configuration)&lt;/Configuration&gt;
			&lt;Platform&gt;$(Platform)&lt;/Platform&gt;
			&lt;BuildCondition&gt;%(Configuration)|%(Platform)&lt;/BuildCondition&gt;
		&lt;/ProjectReferences&gt;
	&lt;/ItemGroup&gt;
			
	&lt;Target Name="Clean"&gt;
		&lt;Message Text="타겟: Clean" /&gt;
		
		&lt;Exec 
			Command="$(DevEnv) $(Quot)%(ProjectReferences.FullPath)$(Quot) 
				/Clean 
				$(Quot)%(ProjectReferences.BuildCondition)$(Quot)" 
			ContinueOnError="false" 
			IgnoreExitCode="false" 
		/&gt; 
	&lt;/Target&gt;

	&lt;Target Name="Build"&gt;
		&lt;Message Text="타겟: Build" /&gt;
		&lt;Message Text="빌드 조건: '$(BuildCondition)'" Importance="high" /&gt;
		
		&lt;Exec 
			Command="$(DevEnv) $(Quot)%(ProjectReferences.FullPath)$(Quot) 
				/Build
				$(Quot)%(ProjectReferences.BuildCondition)$(Quot)" 
			ContinueOnError="false" 
			IgnoreExitCode="false" 
		/&gt; 
	&lt;/Target&gt;

	&lt;Target Name="Rebuild" DependsOnTargets="Clean; Build"&gt;
		&lt;Message Text="타겟: Rebuild" /&gt;
	&lt;/Target&gt;

&lt;/Project&gt;</pre></div>

<p>이 빌드 스크립트는 짧지만 나름의 노하우가 집적된 코드이다. 대부분의 Visual Studio 개발환경에서 빌드 스크립트를 처음 도입할 때마다 요긴하게 써 먹는다. 이 소스 코드를 바탕 삼아 이 기능 저 기능 확장해나가면 된다. 얼핏 복잡해 보이나 실은 별 게 없는 이 템플릿을 실제 환경에 적용해보며 속속들이 알맹이를 꺼내 보자.</p>

<p><a title="KITE LIBERATOR by CHOI, Jae-Hoon, on Flickr" href="http://www.flickr.com/photos/kaistizen/2354708110/"><img alt="KITE LIBERATOR" src="http://farm3.static.flickr.com/2289/2354708110_2386b0f645.jpg" width="500" height="281" /></a></p>

<br />

<h3>실전!</h3>

<p>실전에선 개인적으로 진행 중인 오픈소스 프로젝트인 <a href="http://code.google.com/p/earlgrey">얼그레이</a>를 빌드해볼 것이다. “<strong>003\msbuild.xml</strong>” 파일을 열어서 살펴보자.</p>

<br />

<h4>폴더</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:3e4043e1-c251-49d6-8bdb-17a9e2192eaf" class="wlWriterEditableSmartContent"><pre class="brush: xml">&lt;!-- Folders --&gt;
&lt;PropertyGroup&gt;
	&lt;RootDir&gt;$(MSBuildProjectDirectory)&lt;/RootDir&gt;
	
	&lt;SharedDir&gt;$(RootDir)\..\Shared&lt;/SharedDir&gt;
	&lt;EarlgreyDir&gt;$(SharedDir)\Earlgrey&lt;/EarlgreyDir&gt;
&lt;/PropertyGroup&gt;
</pre></div>

<p>$(<strong>RootDir</strong>) 는 이 빌드 스크립트가 놓인 폴더가 된다. 정말 정말 피치 못할 사정이 없는 한 “C:\Workspace” 처럼 경로를 하드코딩하는 건 좋지 않다. 빌드 자동화의 <strong>기본 원칙 </strong>첫 번째!</p>

<blockquote>
  <p>Subversion 에서 내려 받은 <em>소스 코드</em>와 <em>Visual Studio</em>만 있으면 알아서 빌드해서 <strong>작동하는</strong> 프로그램을 만들어내야 한다.</p>
</blockquote>

<p>소스 코드를 내려 받는 <em>경로는 어디든 상관 없어야 한다</em>. 꼭 “D:\Workspace”에 소스 코드가 있어야 한다던가, 이런 건 지양하자. 신입 사원이 들어와서 “설치 다 했는데 왜 안 되요?” 라고 물을 때 우리 소스코드는 ‘D:\Workspace’에 있어야만 작동돼?”라고 하면 쪽 팔리지 않겠는가? 사람이 기억할 거리를 줄이는 게 자동화의 기본이다.</p>

<p><a title="하지만, 당신이 그걸 좋아하지 않을 것 같군요 by CHOI, Jae-Hoon, on Flickr" href="http://www.flickr.com/photos/kaistizen/2604411836/"><img alt="하지만, 당신이 그걸 좋아하지 않을 것 같군요" src="http://farm4.static.flickr.com/3200/2604411836_856fbbf530.jpg" width="500" height="210" /></a></p>

<h4>빌드 설정</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:8329e9be-77fa-41c3-b572-5316464bb293" class="wlWriterEditableSmartContent"><pre class="brush: xml">&lt;!-- Build configuration: DEBUG/RELEASE, Any CPU/x86/Win32/x64 --&gt;
&lt;PropertyGroup&gt;
	&lt;Platform 
		Condition=" '$(Platform)' == '' 
			AND '$(MSBuildBinPath)'=='C:\Windows\Microsoft.NET\Framework64\v2.0.50727' "
		&gt;x64&lt;/Platform&gt;
	&lt;Platform Condition=" '$(Platform)' == '' "&gt;Win32&lt;/Platform&gt;
	&lt;Configuration Condition=" '$(Configuration)' == '' "&gt;Debug&lt;/Configuration&gt;
	&lt;BuildCondition&gt;$(Configuration)|$(Platform)&lt;/BuildCondition&gt;
&lt;/PropertyGroup&gt;
</pre></div>

<h5>Platform</h5>

<p>Platform은 x64 빌드인지, Win32 빌드인지 등을 결정한다. </p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:f4878cc6-8d83-49ec-a8c9-07962505ae09" class="wlWriterEditableSmartContent"><pre class="brush: xml">'$(Platform)' == '' </pre></div>

<p>이 조건은 $(Platform)을 사전에 정의하거나 msbuild.exe 의 명령 줄 옵션으로 정의하지 않았는지 확인한다. 사전에 정의한 값이 있으면 그 값을 사용한다.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:b385125a-f32c-4a56-a1eb-5388e932264b" class="wlWriterEditableSmartContent"><pre class="brush: xml">'$(MSBuildBinPath)'=='$(WINDIR)\Microsoft.NET\Framework64\v3.5' </pre></div>

<p>이 빌드 스크립트를 실행한 MSBuild 인터프리터가 64비트 빌드용이라면 당연하게도 x64용 코드를 만들어낸다.</p>

<h5>Configuration</h5>

<p>그다지 볼 것도 없다. 사전에 정의한 값이 없다면 Debug 빌드를 하기로 한다.</p>

<p><a title="[마리아홀릭 01편] - 물음표 by CHOI, Jae-Hoon, on Flickr" href="http://www.flickr.com/photos/kaistizen/3166754958/"><img alt="[마리아홀릭 01편] - 물음표" src="http://farm4.static.flickr.com/3123/3166754958_deb65542d7.jpg" width="500" height="281" /></a></p>

<h4>Visual Studio 솔루션</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:166e3266-0da5-4b75-8e2e-1cf8cc915954" class="wlWriterEditableSmartContent"><pre class="brush: xml">&lt;ItemGroup&gt;
	&lt;ProjectReferences Include="$(EarlgreyDir)\src\Earlgrey.sln"&gt;
		&lt;Configuration&gt;$(Configuration)&lt;/Configuration&gt;
		&lt;Platform&gt;$(Platform)&lt;/Platform&gt;
		&lt;BuildCondition&gt;%(Configuration)|%(Platform)&lt;/BuildCondition&gt;
	&lt;/ProjectReferences&gt;
&lt;/ItemGroup&gt;
</pre></div>

<p>Earlgrey.sln 이란 솔루션 파일이 있고 앞서 정의한 $(Configuration), $(Platform) 값에 따라 빌드하기로 한다. 계산해보면 4가지 조합이 가능하다.</p>

<ul>
  <li>
    <p>Debug|Win32 </p>
  </li>

  <li>
    <p>Release|Win32 </p>
  </li>

  <li>
    <p>Debug|x64 </p>
  </li>

  <li>
    <p>Release|x64 </p>
  </li>
</ul>

<h4>솔루션 빌드 </h4>
  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:059ac06b-8210-469e-91b3-7a4086ae0aef" class="wlWriterEditableSmartContent"><pre class="brush: xml">&lt;Target Name="Build"&gt;
	&lt;Exec 
		Command="$(DevEnv) $(Quot)%(ProjectReferences.FullPath)$(Quot) 
			/Build 
			$(Quot)%(ProjectReferences.BuildCondition)$(Quot)" 
		ContinueOnError="false" 
		IgnoreExitCode="false" 
	/&gt; 
&lt;/Target&gt;
</pre></div>


<p>솔루션은 Visual Studio 바이너리인 devenv.exe 를 호출해 실행한다. 코드가 복잡해 보이나 변수 값을 해석하고 나면 이렇게 간단해진다.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:050ba974-2f55-48d7-81bc-0e4cc78387ed" class="wlWriterEditableSmartContent"><pre class="brush: bash">devenv.exe "C:\imaso\trunk\201008-MSBuildTutorial\Shared\Earlgrey\src\Earlgrey.sln" \
 /Build "Debug|Win32"</pre></div>

<p>타겟 Clean 도 차이가 없기 때문에 설명하지 않는다.</p>

<br />

<h3>실행!!!</h3>

<p>네 가지 빌드 구성에 맞춰 빌드하는 법을 알아보고 실제로 돌려보자. 여기서 눈 여겨 볼 것은 <strong>/p</strong> 명령 줄 옵션을 사용해서 <em>$(Configuration)의 값을 사전에 지정</em>하는 대목이다.</p>

<h4>Debug|Win32</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:8edf6bcc-9122-40e7-b433-2a6824fefb06" class="wlWriterEditableSmartContent"><pre class="brush: bash">MSBuild_Win32.bat msbuild.xml /t:build</pre></div>

<h4>Debug|x64</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:95b5b1ff-744c-4b24-b8d0-0703a15e7ae2" class="wlWriterEditableSmartContent"><pre class="brush: bash">MSBuild_Win64.bat msbuild.xml /t:build</pre></div>

<h4>Release|Win32</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:f7f92008-5e12-459a-af08-396edafce25b" class="wlWriterEditableSmartContent"><pre class="brush: bash">MSBuild_Win32.bat msbuild.xml /t:build /p:Configuration=Release</pre></div>

<h4>Release|x64</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:04ca649e-a213-4318-85d1-eb40722cfd52" class="wlWriterEditableSmartContent"><pre class="brush: bash">MSBuild_x64.bat msbuild.xml /t:build /p:Configuration=Release</pre></div>
										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			<category><![CDATA[소프트웨어 개발]]></category><category><![CDATA[프로그래밍 언어]]></category>
 
			<category><![CDATA[MSBuild]]></category>  
 
			<category><![CDATA[msbuild]]></category>  
 
			<category><![CDATA[빌드+자동화]]></category>  

      
			<pubDate>Tue, 31 Aug 2010 09:29:09 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[MSBuild 알기 - #002 MSBuild 배치 파일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/msbuild_&#45;_002/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/msbuild_&#45;_002/</guid>
			
			<description><![CDATA[
						
								

					<p>여태까지 뭔지도 모르고 써왔던 MSBuild_Win32.bat 파일. 대체 이것의 정체는 무엇인가?</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6d352477-c94c-4b4e-b763-7b635d50eeb4" class="wlWriterEditableSmartContent"><pre class="brush: text">@echo off
SETLOCAL
call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" %*
SET ERR_LEVEL=%errorlevel%
ENDLOCAL
exit /b %ERR_LEVEL%
</pre></div>

<p>이 배치 파일의 핵심은 단 두 줄</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4488437b-84c6-4875-a153-c9b430ca4754" class="wlWriterEditableSmartContent"><pre class="brush: text">call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
</pre></div>

<p>vcvarsall.bat 파일은 Visual C++에 필요한 <strong>SDK, 빌드 도구 등의 경로를 설정한다</strong>. %VS90COMNTOOLS% 에서 90은 Visual Studio 2008을 뜻한다. 물론 뒤의 x86은 WIN32/x86 빌드에 필요한 환경설정이 필요하단 뜻이다.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:8f9d5cbd-d869-4f13-86a1-f3ef5b4d7ece" class="wlWriterEditableSmartContent"><pre class="brush: text">"%WINDIR%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" %*</pre></div>

<p><strong>msbuild.exe</strong> 는 MSBuild 인터프리터이다. 닷넷 프레임워크 버전마다 그에 맞는 바이너리를 배포한다. 여기서는 닷넷 프레임워크 버전 4.0용 MSBuild를 사용한다. </p>

<br/>

<h3>x64 빌드용 MSBuild 배치 파일</h3>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:8d118c92-7989-4d2e-aa4b-a20a5aa88377" class="wlWriterEditableSmartContent"><pre class="brush: text">@echo off
SETLOCAL
call "%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat" x64
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe" %*
SET ERR_LEVEL=%errorlevel%
ENDLOCAL
exit /b %ERR_LEVEL%</pre></div>

<p>예상대로 아주 쉽다. vcvarsall.bat 를 호출할 땐 x86이 아니라 x64라고 이야기해주고, 64 비트용 msbuid.exe 의 경로(Framework –&gt; Framework64)를 지정한다.</p>

<br/>

<h3>Windows 명령 줄 스크립트</h3>

<p>여기선 MSBuild_Win32.bat 에서 쓴 기능만 간단히 살펴본다. 명령 줄 스크립트에 대해 더 깊게 알고 싶다면 <a href="http://forums.kaistizen.net/index.php/윈도우_명령줄_스크립트">윈도우 명령줄 스크립트</a>를 참고하자.</p>


<h4>@echo on/off</h4>

<p>이게 뭔지 궁금하다면 off 값을 on 으로 바꿔보고 스크립트를 실행해보자. 끝!</p>


<h4>SETLOCAL</h4>

<ol>
  <li>명령 줄 <strong>cmd.exe</strong> 를 실행한다. </li>

  <li><strong>SET</strong> 을 친다. 어떤 환경 변수가 있는지 확인해둔다. </li>

  <li>
    <p>배치 스크립트를 실행한다. </p>

    <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:619ef7e2-32df-4078-a5e3-cfb4325f84aa" class="wlWriterEditableSmartContent"><pre class="brush: text">MSBuild_Win32.bat msbuild.xml /t:Build </pre></div>
  </li>

  <li>다시 SET을 치고 환경 변수가 바뀌었나 확인한다. </li>

  <li><strong>안 바뀐다!!!</strong> </li>
</ol>

<p>MSBuild_Win32.bat 에서 SETLOCAL 을 제거하고 위의 과정을 반복한다. 이번에 <strong>SET</strong>을 치면 환경 변수가 많이도 추가됐다. SETLOCAL이 없으면 배치 스크립트 안에서 바꾼 환경 설정이 실행이 끝난 뒤에도 영향을 미친다. SETLOCAL은 그 전까지의 환경 설정을 저장해놨다가 배치 스크립트가 종료되거나 명시적으로 ENDLOCAL 을 호출할 때 다시 복구한다.</p>


<h4>%*</h4>

<p>이 부분은 MSBuild_Win32.bat 에 준 명령 인자를 그대로 msbuild.exe 의 명령 인자로 넘기란 뜻이다. 이를테면, </p>

<p>
  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:d19ad285-9396-4a9a-b67d-79f2b847d70c" class="wlWriterEditableSmartContent"><pre class="brush: text">MSBuild_Win32.bat msbuild.xml /t:Build </pre></div>
</p>

<p>이렇게 명령을 내리면 %* 는 “msbuild.xml /t:Build” 가 된다.</p>



<h4>%errorlevel% 과 exit</h4>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:a4c9d482-78bb-4935-a5a1-1179355d2c02" class="wlWriterEditableSmartContent"><pre class="brush: text">SET ERR_LEVEL=%errorlevel%
exit /b %ERR_LEVEL%</pre></div>

<p></p>

<p>이 부분은 msbuild.exe 의 종료 코드(exit code)를 배치 파일의 종료 코드로 그대로 쓰게 한다. 윈도우 명령 줄에선 0 은 성공으로, 그 외의 값은 실패로 처리하는 관행이 있다.</p>
										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			
 
			<category><![CDATA[MSBuild]]></category>  
 
			<category><![CDATA[msbuild]]></category>  
 
			<category><![CDATA[빌드+자동화]]></category>  

      
			<pubDate>Mon, 30 Aug 2010 09:59:42 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[MSBuild 알기 - #001 닥치고 해봐!]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/msbuild_&#45;_001/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/msbuild_&#45;_001/</guid>
			
			<description><![CDATA[
						
								

					<h3>예제 다운로드</h3>

<p><a href="http://code.google.com/p/imaso">구글 코드</a>에서 내려 받자.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:0b11dcba-2d15-4ec1-8b8d-6e0c0a63a8b2" class="wlWriterEditableSmartContent"><pre class="brush: text">svn checkout h ttp://imaso.googlecode.com/svn/trunk/ imaso-read-only</pre></div>



<h3>무턱대고</h3>

<p>무턱대고 MSBuild 스크립트가 어떻게 생겼는지 살펴보자.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:003f2920-f44e-4e05-be5f-224072a9d85b" class="wlWriterEditableSmartContent"><pre class="brush: xml">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&gt;

&lt;Target Name="Clean"&gt;
	&lt;Message Text="타겟: Clean" /&gt;
&lt;/Target&gt;

&lt;Target Name="Build"&gt;
	&lt;Message Text="타겟: Build" /&gt;
&lt;/Target&gt;

&lt;Target Name="Rebuild" DependsOnTargets="Clean; Build"&gt;
	&lt;Message Text="타겟: Rebuild" /&gt;
&lt;/Target&gt;

&lt;/Project&gt;
		</pre></div>

<p>MSBuild의 빌드 스크립트를 구성하는 XML 구성요소는 크게 ItemGroup, PropertyGroup, Target, 그리고 Tasks가 있다.</p>

<ul>
  <li><strong>ItemGroup</strong> : C++ 등에 익숙한 프로그래머라면 배열이라 생각하면 된다. </li>

  <li><strong>PropertyGroup</strong> :<strong> </strong>변수를 하나씩 선언할 때 쓴다. </li>

  <li><strong>Target</strong> (작업) : 함수라 생각하면 된다. 위 코드엔 Clean, Build, Rebuild 이렇게 세 가지 Target이 있다. </li>

  <li><strong>Task</strong> : Target 안에서 어떤 기능을 맡아 수행하는 작은 함수이다. 위의 코드에선 Message란 Tasks를 사용했다. </li>
</ul>

<h3>대책 없이</h3>

<p>MSBuild 스크립트를 짜는 법을 자세히 공부하기 전에 우선 돌려나 보자.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:1965e1e0-a904-4822-904d-09d6c2da9d59" class="wlWriterEditableSmartContent"><pre class="brush: text">MSBuild_Win32.bat msbuild.xml /t:Build</pre></div>

<p><span style="color: red">경고</span>(붉은 색 글자)와 <span style="color: yellow">오류</span>(노란 색 글자)가 전혀 없으면 빌드 스크립트는 제대로 실행된 것이다. 메시지를 자세히 살펴보면 “<strong>타겟: Build</strong>”라는 문장이 있다. 이 부분이 <strong>&lt;Message /&gt;</strong> task가 한 일이다.</p>

<br />

<h3>디버깅 기초</h3>

<p>MSBuild 스크립트를 실행하는 msbuild 인터프리터의 명령 줄 옵션부터 살펴보자.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:b8d3fba3-82e2-46d9-b939-45d2162dd8ce" class="wlWriterEditableSmartContent"><pre class="brush: text">MSBuild_Win32.bat /?</pre></div>

<p>자세히 읽어보면 디버깅할 때 유용한 옵션이 몇 개 나오는데 제일 중요한 건 <strong>/v</strong>, <strong>/verbosity</strong> 이다. q, m, n, d, diag 등의 단계가 있는데 디버깅 할 땐 <strong>diag </strong>만 알면 된다.</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:104b31e8-99cf-4265-ae90-411cac08340e" class="wlWriterEditableSmartContent"><pre class="brush: text">MSBuild_Win32.bat msbuild.xml /t:Rebuild /v:diag</pre></div>
										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			<category><![CDATA[소프트웨어 개발]]></category><category><![CDATA[프로그래밍 언어]]></category>
 
			<category><![CDATA[MSBuild]]></category>  
 
			<category><![CDATA[msbuild]]></category>  
 
			<category><![CDATA[빌드+자동화]]></category>  

      
			<pubDate>Mon, 30 Aug 2010 11:07:07 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[안드로메다-토끼의 미투데이 - 2010년 8월 29일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_29/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_29/</guid>
			
			<description><![CDATA[
						
								

					<div class="me2day_daily_digest"><ul><li>멘탈리스트 시즌 2 마지막 편에서 레드존의 첫 대사를 맞췄어!!!<span class="me2_tags">(2fb me2tv 멘탈리스트 2)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/08/29#22:26:47" rel="bookmark" title="퍼머링크" class="datetime">2010-08-29 22:26:47</a> </span></li></ul><p style="background:url('http://me2day.net/images/me2day_icon.gif') no-repeat right top;padding-right:25px;text-align:right; font-size: 0.9em;">이 글은 <a href="http://me2day.net/kaistizen" >안드로메다-토끼</a>님의 <a href="http://me2day.net/kaistizen/2010/08/29#22:26:47">2010년 8월 29일</a>의 미투데이 내용입니다.</p></div>


										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			

      
			<pubDate>Mon, 30 Aug 2010 09:08:41 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[안드로메다-토끼의 미투데이 - 2010년 8월 26일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_26/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_26/</guid>
			
			<description><![CDATA[
						
								

					<div class="me2day_daily_digest"><ul><li>심리학 중에 실용적인 분야를 집중 공부하는데 실생활에 적용하면서 느끼는 바가 많다. 어제 그 말이 그런 뜻이었구나 뒤늦게 깨닫곤 하는데 비슷한 유형의 사람끼리 의사전달이 되려 안 되는 경우였다. 아, 아쉽다. 좋은 기회를 놓쳤네.<span class="me2_tags">(2fb 에구궁)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/08/26#09:14:07" rel="bookmark" title="퍼머링크" class="datetime">2010-08-26 09:14:07</a> </span></li></ul><p style="background:url('http://me2day.net/images/me2day_icon.gif') no-repeat right top;padding-right:25px;text-align:right; font-size: 0.9em;">이 글은 <a href="http://me2day.net/kaistizen" >안드로메다-토끼</a>님의 <a href="http://me2day.net/kaistizen/2010/08/22#20:09:27">2010년 8월 22일</a>에서 <a href="http://me2day.net/kaistizen/2010/08/26#09:14:07">2010년 8월 26일</a>까지의 미투데이 내용입니다.</p></div>


										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			

      
			<pubDate>Fri, 27 Aug 2010 09:19:46 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[안드로메다-토끼의 미투데이 - 2010년 8월 24일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_24_api1/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_24_api1/</guid>
			
			<description><![CDATA[
						
								

					<div class="me2day_daily_digest"><ul><li>제발 표준대로 짜란 말이야. 뒤치닥거리하느라 지친다.<span class="me2_tags">(2fb 스펙 좀 읽어봐)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/08/24#11:40:05" rel="bookmark" title="퍼머링크" class="datetime">2010-08-24 11:40:05</a> </span></li></ul><p style="background:url('http://me2day.net/images/me2day_icon.gif') no-repeat right top;padding-right:25px;text-align:right; font-size: 0.9em;">이 글은 <a href="http://me2day.net/kaistizen" >안드로메다-토끼</a>님의 <a href="http://me2day.net/kaistizen/2010/08/22#20:09:27">2010년 8월 22일</a>에서 <a href="http://me2day.net/kaistizen/2010/08/24#11:40:05">2010년 8월 24일</a>까지의 미투데이 내용입니다.</p></div>


										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			

      
			<pubDate>Thu, 26 Aug 2010 09:11:17 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[안드로메다-토끼의 미투데이 - 2010년 8월 23일]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_23/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/&#45;_&#45;_2010_8_23/</guid>
			
			<description><![CDATA[
						
								

					<div class="me2day_daily_digest"><ul><li>바이널스는 공연 자주 안 하는구나. 오늘 사진 찍고 올 걸. 다음에 앨범 구해서 사인 받고 겸사겸사 한번에 해치우려 했는데 욕심이었네.<span class="me2_tags">(음악 KT올레스퀘어에서 me2music 1집 Illusion)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/08/22#20:09:27" rel="bookmark" title="퍼머링크" class="datetime">2010-08-22 20:09:27</a> </span>            <div class="show_content_layer"><h5>1집 Illusion</h5><div id="cont_img"><a href="http://music.naver.com/album.nhn?tubeid=2kk210019969" ><img src="http://images.music.naver.com/cp/mnet/clipimage/Album/130/000/124/124509.jpg" alt="1집 Illusion" /></a></div></div>
</li><li>뭐랄까. 공연을 현장에서 보기 시작하니까 누가 밴드 리더인지 감 잡는 게 의외로 쉽네. 예전엔 그저 곡만 들을 뿐이었는데 이젠 밴드 내의 역학 관계까지 보인다.<span class="me2_tags">(2fb 바이널스 공연 보고 나서 me2music Step Up (Single))</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/08/22#20:31:20" rel="bookmark" title="퍼머링크" class="datetime">2010-08-22 20:31:20</a> </span>            <div class="show_content_layer"><h5>Step Up (Single)</h5><div id="cont_img"><a href="http://music.naver.com/album.nhn?tubeid=192869" ><img src="http://images.music.naver.com/cp/mnet/clipimage/Album/130/000/192/192869.jpg" alt="Step Up (Single)" /></a></div></div>
</li><li>아바타를 다시 보며 느끼는 점. 미국은 개인주의 사회라 그런지 인물의 성격과 동기가 참 분명하다. 우리가 아니라 '나'이기에.<span class="me2_tags">(me2movie 아바타 2fb)</span><span class="datetime"> <a href="http://me2day.net/kaistizen/2010/08/23#00:35:22" rel="bookmark" title="퍼머링크" class="datetime">2010-08-23 00:35:22</a> </span>              <div class="show_content_layer"><h5>아바타</h5><div id="cont_img"><a href="http://openapi.naver.com/l?AAADWL2wrDIBBEv2Z9DOJaqw8+NE3yH142JJTcrA349zWFwjBzZmCOD6VioX+CuYGW0LfQcjAVOtAImrNcdrLLds7EXlSs5zrcRxmUNlF5dA7DGEUk6b1Exw2bEo12ynkHfIAYqn7nZnUnpSZsy3+p6eerXObdew7NOq2AQ9giAXZKCKW+JLoSF6AAAAA=" ><img src="http://imgmovie.naver.com/mdi/mit110/0622/62266_P174_175810.jpg" alt="아바타" /></a></div></div>
</li></ul><p style="background:url('http://me2day.net/images/me2day_icon.gif') no-repeat right top;padding-right:25px;text-align:right; font-size: 0.9em;">이 글은 <a href="http://me2day.net/kaistizen" >안드로메다-토끼</a>님의 <a href="http://me2day.net/kaistizen/2010/08/22#20:09:27">2010년 8월 22일</a>에서 <a href="http://me2day.net/kaistizen/2010/08/23#00:35:22">2010년 8월 23일</a>까지의 미투데이 내용입니다.</p></div>


										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			

      
			<pubDate>Mon, 23 Aug 2010 10:11:21 +0900</pubDate>
		</item>

		<item>
			<title><![CDATA[프리버드 - 여성보컬데이]]></title>
			
						<link>http://kaistizen.net/EE/index.php/weblog/comments/club_freebird/</link>
			<guid>http://kaistizen.net/EE/index.php/weblog/comments/club_freebird/</guid>
			
			<description><![CDATA[
						
								

					<p><a title="‘제리’의 김혜나 저자와의 만남" href="http://kaistizen.net/EE/index.php/weblog/comments/kim_hye_na/">그제</a>에 이어 어제도 홍대로. </p>

<p>한 가지 다른 점이 있다면 어제 저녁엔 요가 학원이 아닌 클럽으로 향했다는 것이지. 베이스 선생님이 <a href="http://www.clubfreebird.com/">프리버드</a>에서 공연한다는 이야기를 듣고 순환선을 빙 둘러 한참을 달린 끝에 홍대입구 역에 도착했다. </p>

<p>그때가 6시 50분쯤이었나? 어차피 이 날의 첫 주자가 아니기에 느긋한 마음으로 약도를 살피며 길을 걸었다. 하지만 대체 피자헛이 어디 있단 말이더냐? 길을 따라 내려갔다 다시 돌아오기를 반복하다 ”이게 아닌가벼”. 업무용인 회사 프린터를 유용하여 찍어낸 약도를 접고 구글 맵을 검색하여 새로운 루트를 뚫었다. 그렇게 하여 난생 처음 프리버드에 도착하긴 했으나 구글 맵을 보고도 길을 헤매는 천성은 어찌하지 못했다. 35분이나 길을 헤매다 클럽에 도착했을 무렵엔 살인적인 무더위에 맛이 간 나머지 오랜 세월 애써준 필립스 출신의 MP3 플레이어와 신참 소니 이어폰과 영원히 헤어진 후였다. 그나마 이 사실도 클럽을 떠나 지하철로 향하던 길에 깨달았으니……</p>

<p><a href="http://www.flickr.com/photos/kaistizen/2604411522/" title="내가 생각했던 것보다 훨씬 안 좋군 by CHOI, Jae-Hoon, on Flickr"><img src="http://farm4.static.flickr.com/3276/2604411522_6f579f93b7.jpg" width="500" height="210" alt="내가 생각했던 것보다 훨씬 안 좋군" /></a></p>

<p>지인은 “호랑이 담배 피던 시절에 가끔 가던 프리버드가 아직도 있냐?”라고 하던데 아직도 있다. 하기야 내겐 첫 방문이니 어제 간 프리버드가 호랑이 담배 피던 시절의 프리버드인지, 소유주는 여전히 같은 사람인지, 술값은 얼마나 올랐는지 그런 건 모른다. 그저 그러려니 하고 짐작할 뿐.</p>

<p>이 날은 여성보컬데이라 저녁 11시까지 네 개 밴드의 아리따운 여성을 보는 재미와 다양한 음악을 듣는 즐거움이 함께 했다. 라인업은 아래와 같다.</p>

<ul>
  <li><p>Band [스토리셀러] </p></li>

  <li><p>Band [루버더키] </p></li>

  <li><p>Band [<a href="http://club.cyworld.com/hitthenine">힛더나인</a>] </p></li>

  <li><p>Band [<a href="http://cafe.naver.com/bandbemyguest.cafe">비마이게스트</a>] </p></li>
</ul>

<p>시원한 클럽 안으로 들어왔을 땐 스토리셀러의 공연이 절반쯤 끝난 상태. 후에 멜론에서 들었던 앨범보다 현장에서 느끼는 화끈함은 역시, 달.랐.다. 놓쳐버린 곡이 아쉬울 따름이다.</p>

<p>루버더키는 참…… 귀엽더라. 솔직히 음악은 현장보다 앨범이 더 인상적이었는데 라이브 실력이 나빠서가 아니라 그 귀여움에 현혹된 탓이 아니었나 싶다.</p>

<p>힛더나인이 원래 목표로 삼은 밴드. 중간에 들어온 N님을 발견하고 한두 마디 대화를 주고 받았다. 공연 준비로 바쁜 분은 보내드리고 또 다시 나초 한 조각, 맥주 한 모금을 반복했다. 그러고 보니 여담이지만 프리버드 홈페이지에 힉더나인이라 소개됐길래 이 사실을 고자질한 사람이… 그렇다. 바로 나다!!! 번역질을 좀 해서 그런지 오타만 보면 정의감에 불타고 만다. </p>

<p>하여튼 힛더나인은 유투브 동영상으로 봤을 때 어렴풋이 짐작했지만 딱 90년대 스타일이다. 90년대 초부터 <a href="http://www.imbc.com/broad/radio/fm4u/musiccamp/index.html">배철수의 음악캠프</a> 등을 통해 팝 음악에 노출되어 살아온 사람에겐 뭐랄까, 향수를 불러일으킨 달까? 이 날 공연 중에 관객 반응이 가장 좋았던 것도 그런 탓일까? 따지고 보면 드럼을 제외하고도 여성이 무려 다섯이니 숫자로 이미 압도적이긴 했다. 보컬 셋이 앞에서 춤추며 노래를 하니 후끈 달아오르지 않으면 불감증을 의심해봐야 할지도. </p>


<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/9tX9BzgmXs4?fs=1&amp;hl=ko_KR"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/9tX9BzgmXs4?fs=1&amp;hl=ko_KR" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>


<p>그러고 보니 세상엔 몇 가지 부류의 드러머가 있는데 힛더나인의 경우엔 “느끼는&#160; 타입”이더라. 폭넓게 관찰하기 좋은 뒷자리에 앉아 건반부터 드러머까지 면밀히 살펴보았는데, 드러머의 표정이 어찌나 웃기던지. 다음엔 꼭, 그 분의 느끼는 얼굴을 사진으로 남기고 싶다. 흐흐흐.</p>

<p>베이스에 대해선 언급 회피. 일단 객관적인 위치가 아니기 때문에 뭐라 말해도 공정하지 않을 것 같다. 보컬은 안 보고 베이스만 집중해서 보는 건 앞선 공연부터 그랬지만(그러고 보니 베이스가 보컬인 경우도 있긴 했지), 힛더나인에선 정도가 심했던 탓에 보컬이 열심히 율동을 보여줘도 사실 기억이 잘 안 난다. 그러니 더 이상의 언급은 무의미하지 않을까?</p>

<p>마지막으로 본 공연은 Be My Guest.</p>

<p>전자 음악에 액시드 재즈적인 요소가 섞였던데 늦은 밤에 듣기에 더 바랄 게 없었다. 베이스의 그루브가 참 인상적이어서 N님과는 색다른 맛이었다. 카페 가서 살펴보니 기타리스트는 정식 멤버는 아니었나 본데 역시 한 실력했고 보컬, 기타리스트, 베이시스트 셋이 쇼맨십을 보여줄 땐 흥겨움이 배가 됐다. 특히 베이시스트는 그 큰 덩치로 귀여운 동작을 줄곧 보여주니 한편으론 웃기기까지 했다. 그리고 보컬의 Sunnie L.양? 씨? 에겐 제일 중요한 할 말이 있다. </p>
<dl>
<dt>Be My Guest의 보컬 Sunnie L.과 베이스 Jerry </dt>
<dd>
    <p><a title="비마이게스트 #003 by CHOI, Jae-Hoon, on Flickr" href="http://www.flickr.com/photos/kaistizen/4911047816/"><img alt="비마이게스트 #003" src="http://farm5.static.flickr.com/4075/4911047816_d221981bbd.jpg" width="375" height="500" /></a></p>
  </dd><dd>
    <p>클럽에서 사진 찍어본 적이 없어서 이모양 요꼴. 베이스의 그루브는 그렇다 쳐도 보컬의 매력이 사진 노이즈에 가려 안타까울 따름. 알흠다운 본연의 모습을 보고 싶다면 <a href="http://cafe.naver.com/bandbemyguest.cafe">공식 카페</a>에라도 가보면 된다.</p>
  </dd>
  </dl>

<p><strong>“이상형이예요!!!”</strong></p>

<p>사실 그렇다. 이상형이 매번 바뀌긴 한다. 그래도 매력적으로 느껴지긴 하더라. 보컬에 집중하지 않고 연주자를 골고루 보는 편인데 자꾸 눈길이 중앙으로 쏠리는 걸 어찌하긴 힘들었다. 보컬과 마주보는 자리에 앉아서 감미로운 목소리를 듣자니 그 소리가 나만을 위한 것 같기도 하고 자꾸 망상에 들려 하는 걸 간신히 다 잡았다. 다음엔 대형 현수막이라도 제작해 갈까? </p>

<p>이상이 2010년 8월 20일 프리버드에서 있었던 여성보컬데이에 대한 소회였다. 그럼 안녕.</p>
										
				<br/>
				
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.0/kr/80x15.png" /></a><br/>
이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/kr/">크리에이티브 커먼즈 코리아 저작자표시-동일조건변경허락 2.0 대한민국 라이센스</a>에 따라 이용하실 수 있습니다.</p>

				<br/>
				
<ol class="commentlist">
	
	<li class="{switch='alt|notalt'}"	style="display:none">댓글이 없습니다.</li>
	
</ol>

			]]></description>
			
			<category><![CDATA[재훈]]></category><category><![CDATA[일상]]></category>
 
			<category><![CDATA[공연]]></category>  
 
			<category><![CDATA[루버더키]]></category>  
 
			<category><![CDATA[비마이게스트]]></category>  
 
			<category><![CDATA[스토리셀러]]></category>  
 
			<category><![CDATA[음악]]></category>  
 
			<category><![CDATA[콘서트]]></category>  
 
			<category><![CDATA[클럽+프리버드]]></category>  
 
			<category><![CDATA[홍대]]></category>  
 
			<category><![CDATA[힛더나인]]></category>  

      
			<pubDate>Sat, 21 Aug 2010 21:44:30 +0900</pubDate>
		</item>

    
	</channel>
</rss>