<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>WHiSTLE</title>
		<link>http://blog.ntils.com/</link>
		<description></description>
		<language>ko</language>
		<pubDate>Mon, 08 Mar 2010 10:53:19 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<image>
		<title>WHiSTLE</title>
		<url><![CDATA[http://cfile22.uf.tistory.com/image/157EB70C49E69DF4AFA757]]></url>
		<link>http://blog.ntils.com/</link>
		<description></description>
		</image>
		<item>
			<title>C#으로 Acrobat(PDF) 문서를 이미지로 변환하기</title>
			<link>http://blog.ntils.com/entry/C%EC%9C%BC%EB%A1%9C-AcrobatPDF-%EB%AC%B8%EC%84%9C%EB%A5%BC-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EA%B8%B0</link>
			<description>&lt;P&gt;PDF 문서는 상당히 강력한 기능을 제공하지만, 많은 내용이 담긴 문서의 경우에는 그 용량 또한 무지하지 못할 정도로 커지게 되므로, 웹 상에서 배포할 할 때는 파일이 클라이언트로 모두 다운로드될 때 까지 대기 해야만 합니다.&lt;/P&gt;
&lt;P&gt;구글도서나 YES24와 같은 사이트에는 즉시 응답성을 위해서 이미지 포맷을 이용하여 미리보기를 제공하여 즉시 응답성을 높이고 있는데요. 그래서 PDF 문서를 이미지로 변환하여 웹 상에서 제공할 수 있지 않을까 하고 생각해 보았습니다.&lt;/P&gt;
&lt;P&gt;이미지로 변환하는 기능은 Acrobat에서 제공하고 있으므로, C#에서도 Acrobat의 기능을 이용하여 PDF를 이미지로 변경하는 것이 가능합니다. &lt;br /&gt;
이미지로 변환하기 위해서는 우선 Adobe Acrobat이 설치되어 있어야 합니다. &lt;br /&gt;
애석하게도 Acrobat Reader는 Acrobat관련 인터페이스를 인스턴스화 할 수 있는 COM 인터페이스를 노출하지 않으므로, 사용할 수 가 없습니다.&lt;/P&gt;
&lt;P&gt;이미지 변환을 위해서 우선 프로젝트에 Acrobat Type Library를 COM 항목에서 참조로 추가합니다.&lt;br /&gt;
아래와 같이 Acrobat&amp;nbsp;또는 Adobe Acrobat Type Library를 참조로 추가하여 주세요.&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;img src=&quot;http://cfile3.uf.tistory.com/image/1644D6044B7FE1F0C518AE&quot; height=&quot;316&quot; /&gt;&lt;/P&gt;
&lt;P&gt;그리고, 변환을 하는 코드는 아래와 같습니다.&lt;/P&gt;
&lt;DIV style=&quot;PADDING-BOTTOM: 5px; LINE-HEIGHT: 1.2em; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-FAMILY: nanumgothiccoding, consolas, malgun gothic, courier new; BACKGROUND: white; COLOR: black; FONT-SIZE: 9pt; PADDING-TOP: 5px&quot;&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;// 아크로벳 문서&amp;shy; 객체를 생성하고, 지정한 파일명의 PDF 문서&amp;shy;를 읽어들입니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroPDDoc&lt;/SPAN&gt; pdfDoc = &lt;SPAN style=&quot;COLOR: blue&quot;&gt;new&lt;/SPAN&gt; Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroPDDoc&lt;/SPAN&gt;();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;bool&lt;/SPAN&gt; ret = pdfDoc.Open(fileName);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;if&lt;/SPAN&gt; (ret == &lt;SPAN style=&quot;COLOR: blue&quot;&gt;false&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;{&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;throw&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;new&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;FileNotFoundException&lt;/SPAN&gt;();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;}&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;// 아크로벳 문서&amp;shy;의 전체 페이지 수를 가져옵니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;int&lt;/SPAN&gt; totalPage = pdfDoc.GetNumPages();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;int&lt;/SPAN&gt; currentPage = 0;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;// 문서&amp;shy;에서&amp;shy; 지정한 번호의 페이지를 아크로벳 페이지 객체로 받아옵니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroPDPage&lt;/SPAN&gt; pdfPage = (Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroPDPage)&lt;/SPAN&gt;pdfDoc.AcquirePage(currentPage);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;// 이미지로 만들기 위한 영역을 지정합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroPoint&lt;/SPAN&gt; pdfSize = (Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroPoint&lt;/SPAN&gt;)pdfPage.GetSize();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroRect&lt;/SPAN&gt; pdfRect = &lt;SPAN style=&quot;COLOR: blue&quot;&gt;new&lt;/SPAN&gt; Acrobat.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;AcroRect&lt;/SPAN&gt;();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;pdfRect.Left = 0;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;pdfRect.right = pdfSize.x;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;pdfRect.Top = 0;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;pdfRect.bottom = pdfSize.y;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;// 페이지의 지정된 영역을 100% 크기로 클립보드에 이미지 형태로 복사합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;pdfPage.CopyToClipboard(pdfRect, 0, 0, 100);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: green&quot;&gt;// 클립보드에 저장된 이미지를 파일로 저장합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;IDataObject&lt;/SPAN&gt; clipboardData = &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Clipboard&lt;/SPAN&gt;.GetDataObject();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;if&lt;/SPAN&gt; (clipboardData.GetDataPresent(&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;DataFormats&lt;/SPAN&gt;.Bitmap))&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;{&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Bitmap&lt;/SPAN&gt; pdfBitmap = (&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Bitmap&lt;/SPAN&gt;)clipboardData.GetData(&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;DataFormats&lt;/SPAN&gt;.Bitmap);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pdfBitmap.Save(&lt;SPAN style=&quot;COLOR: #a31515&quot;&gt;&quot;1.jpg&quot;&lt;/SPAN&gt;);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;}&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;문제가 발생 시에는 댓글을 남겨주세요.&lt;/P&gt;</description>
			<category>Tools / Framework</category>
			<category>C#</category>
			<category>PDF</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/51</guid>
			<comments>http://blog.ntils.com/entry/C%EC%9C%BC%EB%A1%9C-AcrobatPDF-%EB%AC%B8%EC%84%9C%EB%A5%BC-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EA%B8%B0#entry51comment</comments>
			<pubDate>Sat, 20 Feb 2010 22:20:00 +0900</pubDate>
		</item>
		<item>
			<title>ASP.NET MVC 에서 사용자 정의 컨트롤의 내용을 문자열로 받기</title>
			<link>http://blog.ntils.com/entry/ASPNET-MVC-%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EC%9D%98-%EB%82%B4%EC%9A%A9%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B0%9B%EA%B8%B0</link>
			<description>&lt;p&gt;간혹 사용자 정의 컨트롤(.ascx) 파일에서 처리한 내용을 Page에 바로 출력하는 것이 아니라, 문자열로 받아야 할 경우가 있습니다.    &lt;br /&gt;ASP.NET 웹 폼의 경우에는 Page.LoadControl() 과 Control.RenderControl() 메서드를 이용하여 아래와 같은 코드로 사용자 정의 컨트롤이 처리한 내용을 문자열로 받아올 수 있습니다.&lt;/p&gt;  &lt;div style=&quot;font-family: consolas, courier new, malgun gothic; background: white; color: black; font-size: 9pt&quot;&gt;   &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;Control&lt;/span&gt; control = LoadControl(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;~/MailTemplate.ascx&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;((&lt;span style=&quot;color: #2b91af&quot;&gt;MailTemplate&lt;/span&gt;)control).DestinationName = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Whistle&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StringBuilder&lt;/span&gt; stringBuilder = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;StringBuilder&lt;/span&gt;();&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; (&lt;span style=&quot;color: #2b91af&quot;&gt;StringWriter&lt;/span&gt; sw = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;StringWriter&lt;/span&gt;(stringBuilder))&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;{&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; (&lt;span style=&quot;color: #2b91af&quot;&gt;HtmlTextWriter&lt;/span&gt; tw = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;HtmlTextWriter&lt;/span&gt;(sw))&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; control.RenderControl(tw);&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;}&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt; messageContent = stringBuilder.ToString();&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;ASP.NET 웹 폼은 자체가 Page 클래스를 상속받으므로, TemplateControl.LoadControl() 메서드를 사용할 수 있으므로, 사용자 정의 컨트롤을 로드하고 HtmlTextWriter를 이용하여 컨트롤의 실행된 내용을 문자열로 받아 올 수 있습니다.&lt;/p&gt;  &lt;p&gt;ASP.NET MVC는 사용자 정의 컨트롤이 ViewUserContol을 상속받게 되며, MVC Controller는 자체적으로 ViewUserControl에 대한 LoadControl을 제공하지 않습니다,    &lt;br /&gt;ViewUserControl 클래스의 인스턴스를 생성은 ViewPage 클래스의 인스턴스 상에서만 가능합니다.&lt;/p&gt;  &lt;p&gt;즉, MVC에서 사용자 정의 컨트롤이 생성하는 HTML을 문자열로 받기 위해서는, 가상의 ViewPage의 인스턴스를 생성하고, 그 ViewPage를 기반으로 사용자 정의 컨트롤을 생성한 후 ASP.NET 웹 폼에서와 같은 방법으로 문자열을 받아 올 수 있습니다.&lt;/p&gt;  &lt;div style=&quot;font-family: consolas, courier new, malgun gothic; background: white; color: black; font-size: 9pt&quot;&gt;   &lt;p style=&quot;margin: 0px&quot;&gt;ViewData[&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;UserName&amp;quot;&lt;/span&gt;] = &lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;Whistle&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;ViewPage&lt;/span&gt; viewPage = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;ViewPage&lt;/span&gt;() { ViewContext = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;ViewContext&lt;/span&gt;() };&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;viewPage.ViewData = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;ViewDataDictionary&lt;/span&gt;(ViewData);&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;viewPage.Controls.Add(viewPage.LoadControl(&lt;span style=&quot;color: #a31515&quot;&gt;&amp;quot;~/Views/Shared/MailTemplate.ascx&amp;quot;&lt;/span&gt;));&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: #2b91af&quot;&gt;StringBuilder&lt;/span&gt; sb = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;StringBuilder&lt;/span&gt;();&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; (&lt;span style=&quot;color: #2b91af&quot;&gt;StringWriter&lt;/span&gt; sw = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;StringWriter&lt;/span&gt;(sb))&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;{&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;using&lt;/span&gt; (&lt;span style=&quot;color: #2b91af&quot;&gt;HtmlTextWriter&lt;/span&gt; tw = &lt;span style=&quot;color: blue&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af&quot;&gt;HtmlTextWriter&lt;/span&gt;(sw))&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; viewPage.RenderControl(tw);&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;}&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&amp;#160;&lt;/p&gt;    &lt;p style=&quot;margin: 0px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;string&lt;/span&gt; message = sb.ToString();&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;위와 같은 형식으로 MVC에서도 사용자 정의 컨트롤의 출력 내용을 문자열로 받아와서 처리가 가능합니다.&lt;/p&gt;</description>
			<category>Web Development</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/50</guid>
			<comments>http://blog.ntils.com/entry/ASPNET-MVC-%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EC%9D%98-%EB%82%B4%EC%9A%A9%EC%9D%84-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%A1%9C-%EB%B0%9B%EA%B8%B0#entry50comment</comments>
			<pubDate>Thu, 14 Jan 2010 13:12:19 +0900</pubDate>
		</item>
		<item>
			<title>Visual Studio 2010 Beta 2 에서 Code Coverage 사용하기</title>
			<link>http://blog.ntils.com/entry/Visual-Studio-2010-Beta-2-%EC%97%90%EC%84%9C-Code-Coverage-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
			<description>Visual Studio 2010 Beta 2 에서는 UnitTest에 대한 Code Coverage 활성화하는 설정방법이 변경되었습니다.&lt;br /&gt;
Visual Studio 2008에서의 Test Setting 과 Visual Studio 2010에서의 Test Setting이 달라서 한동안 애를 먹었는데요.&lt;br /&gt;
&lt;br /&gt;
Visual Studio 2010 Beta 2에서 Code Coverage 를 사용하기 위한 방법은 아래와 같습니다.&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;
&lt;li&gt;테스트 프로젝트가 포함된 솔루션에서 Solution Items 폴더 아래에 존재하는 &lt;span style=&quot;color: rgb(227, 22, 0); font-weight: bold;&quot;&gt;Local.testsettings&lt;/span&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://cfile22.uf.tistory.com/original/161B8E1F4B453B02480B04&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/161B8E1F4B453B02480B04&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;codecoverage_01.png&quot; height=&quot;389&quot; width=&quot;529&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(227, 22, 0); font-weight: bold;&quot;&gt;Data and Diagnostics&lt;/span&gt; 항목을 선택합니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(227, 22, 0); font-weight: bold;&quot;&gt;Code Coverage&lt;/span&gt; 항목의 Enabled 를 체크합니다.&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile25.uf.tistory.com/original/15742A234B453C404D6576&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile25.uf.tistory.com/image/15742A234B453C404D6576&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;codecoverage_02.png&quot; height=&quot;389&quot; width=&quot;528&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: rgb(227, 22, 0); font-weight: bold;&quot;&gt;Configure 버튼&lt;/span&gt;을 클릭하면, Code Coverage Detail 창이 뜹니다.&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/151E34214B453CD85B1670&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/151E34214B453CD85B1670&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;codecoverage_03.png&quot; height=&quot;361&quot; width=&quot;526&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Code Coverage 대상이 될 &lt;span style=&quot;color: rgb(227, 22, 0); font-weight: bold;&quot;&gt;어셈블리를 선택&lt;/span&gt;합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
유닛테스트 실행 후 Code Coverage Results 창을 통해 Code Coverage 정보를 확인 할 수 있습니다.&lt;br /&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile22.uf.tistory.com/original/131E23214B453D9D562A08&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile22.uf.tistory.com/image/131E23214B453D9D562A08&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;codecoverage_04.png&quot; height=&quot;188&quot; width=&quot;501&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-49-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-49-1&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Tools / Framework</category>
			<category>Code Coverage</category>
			<category>unittest</category>
			<category>Visual Studio 2010</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/49</guid>
			<comments>http://blog.ntils.com/entry/Visual-Studio-2010-Beta-2-%EC%97%90%EC%84%9C-Code-Coverage-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#entry49comment</comments>
			<pubDate>Thu, 07 Jan 2010 10:50:12 +0900</pubDate>
		</item>
		<item>
			<title>메서드를 호출한 어셈블리 정보 가져오기</title>
			<link>http://blog.ntils.com/entry/%EB%A9%94%EC%84%9C%EB%93%9C%EB%A5%BC-%ED%98%B8%EC%B6%9C%ED%95%9C-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC-%EC%A0%95%EB%B3%B4-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0</link>
			<description>&lt;P&gt;때때로 작성한 메서드를 과연 어디서 호출하는지 알고 싶을 때가 있습니다. &lt;br /&gt;
동일한 어셈블리 내에서의 호출일 수 도 있겠지만, public으로 노출된 메서드라면 현재 어셈블리 외의 외부에서도 호출이 가능합니다.&lt;/P&gt;
&lt;P&gt;이럴 때 현재 메서드를 어느 어셈블리에서 호출하였는지를 알 수 있는 방법이 있습니다. &lt;br /&gt;
이미 알고 계시는지는 모르겠지만, &lt;FONT color=#e31600&gt;Assembly&lt;/FONT&gt; 클래스의 정적메서드인 &lt;FONT color=#e31600&gt;GetCallingAssembly&lt;/FONT&gt; 메서드가 이 방법을 제공하고 있습니다.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;p id=&quot;more48_0&quot; class=&quot;moreless_fold&quot;&gt;&lt;span style=&quot;cursor: pointer;&quot; onclick=&quot;toggleMoreLess(this, &#039;48_0&#039;,&#039;더보기&#039;,&#039;접기&#039;); return false;&quot;&gt;더보기&lt;/span&gt;&lt;/p&gt;&lt;div id=&quot;content48_0&quot; class=&quot;moreless_content&quot; style=&quot;display: none;&quot;&gt;
&lt;P&gt;아래와 같이 솔루션이 구성되어 있을 때&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile23.uf.tistory.com/original/18466F254AE0511E950ABD&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile23.uf.tistory.com/image/18466F254AE0511E950ABD&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;GetCallingAssembly_01.png&quot; height=&quot;208&quot; width=&quot;278&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;MethodCallAssembly 프로젝트에서 CalledAssembly의 CalledClass내의 메서드를 호출한다고 할 때,&lt;/P&gt;
&lt;DIV style=&quot;FONT-FAMILY: consolas, courier new, malgun gothic; BACKGROUND: white; COLOR: black; FONT-SIZE: 9pt&quot;&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;COLOR: blue&quot;&gt;public&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;class&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;CalledClass&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;{&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;public&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: blue&quot;&gt;void&lt;/SPAN&gt; CalledMethod()&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: green&quot;&gt;// 현재 메서드를 호출한 어셈블리 정보를 가져옵니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Assembly&lt;/SPAN&gt; assembly = System.Reflection.&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Assembly&lt;/SPAN&gt;.GetCallingAssembly();&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: green&quot;&gt;// 어셈블리의 정보를 출력합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style=&quot;COLOR: #a31515&quot;&gt;&quot;FullName: &quot;&lt;/SPAN&gt; + assembly.FullName);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style=&quot;COLOR: #a31515&quot;&gt;&quot;CodeBase: &quot;&lt;/SPAN&gt; + assembly.CodeBase);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style=&quot;COLOR: #a31515&quot;&gt;&quot;Location: &quot;&lt;/SPAN&gt; + assembly.Location);&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style=&quot;COLOR: #a31515&quot;&gt;&quot;GAC: &quot;&lt;/SPAN&gt; + assembly.GlobalAssemblyCache.ToString());&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style=&quot;COLOR: #a31515&quot;&gt;&quot;Runtime Version: &quot;&lt;/SPAN&gt; + assembly.ImageRuntimeVersion.ToString());&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;}&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;위와 같은 코드를 이용하면 호출한 어셈블리의 정보를 얻어 올 수 있으며, &lt;br /&gt;
Assembly 클래스의 인스턴스를 얻을 수 있으므로 Reflection을 이용한 핸들링이 가능해집니다.&lt;/P&gt;
&lt;P&gt;결과는 아래와 같이 출력됩니다.&lt;/P&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a href=&quot;http://cfile5.uf.tistory.com/original/19466F254AE0511E96636C&quot; rel=&quot;lightbox&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://cfile5.uf.tistory.com/image/19466F254AE0511E96636C&quot; alt=&quot;&quot; filemime=&quot;image/jpeg&quot; filename=&quot;GetCallingAssembly_02.png&quot; height=&quot;375&quot; width=&quot;575&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;entry-ccl&quot; style=&quot;clear: both; text-align: right; margin-bottom: 10px&quot;&gt;
	&lt;img id=&quot;ccl-icon-48-0&quot; class=&quot;entry-ccl-by&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; alt=&quot;저작자 표시&quot;/&gt;
	&lt;img id=&quot;ccl-icon-48-1&quot; class=&quot;entry-ccl-sa&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black04.png&quot; alt=&quot;동일 조건 변경 허락&quot;/&gt;
	&lt;!--
	&lt;rdf:RDF xmlns=&quot;http://web.resource.org/cc/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&gt;
		&lt;Work rdf:about=&quot;&quot;&gt;
			&lt;license rdf:resource=&quot;http://creativecommons.org/licenses/by-sa/2.0/kr/&quot; /&gt;
		&lt;/Work&gt;
		&lt;License rdf:about=&quot;http://creativecommons.org/licenses/by-sa/&quot;&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Reproduction&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/Distribution&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Notice&quot;/&gt;
			&lt;requires rdf:resource=&quot;http://web.resource.org/cc/Attribution&quot;/&gt;
			&lt;permits rdf:resource=&quot;http://web.resource.org/cc/DerivativeWorks&quot;/&gt;
		&lt;/License&gt;
	&lt;/rdf:RDF&gt;
	--&gt;
&lt;/div&gt;
</description>
			<category>Language</category>
			<category>assembly</category>
			<category>reflection</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/48</guid>
			<comments>http://blog.ntils.com/entry/%EB%A9%94%EC%84%9C%EB%93%9C%EB%A5%BC-%ED%98%B8%EC%B6%9C%ED%95%9C-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC-%EC%A0%95%EB%B3%B4-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0#entry48comment</comments>
			<pubDate>Thu, 22 Oct 2009 21:35:37 +0900</pubDate>
		</item>
		<item>
			<title>Windows Live Writer Wave 3 Beta 리뷰</title>
			<link>http://blog.ntils.com/entry/Windows-Live-Writer-Wave-3-Beta-%EB%A6%AC%EB%B7%B0</link>
			<description>&lt;P&gt;&lt;STRONG&gt;Windows Live Writer&lt;/STRONG&gt;(이하 WLW)가 새 버전을 내어 놓을 준비를 하고 있네요. 이번에 Windows Live Suite Wave 3 Beta의 출시에 맞춰서 WLW도 새 옷으로 갈아입었습니다.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDAxLnBuZw%3D%3D&quot; height=&quot;463&quot; /&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;우선 디자인 적인 부분에서는 우선 상단 게시 등의 메인 툴바의 아이콘이 빠졌습니다. 어떻게 보면 심플한데 또 어떻게 보면 좀 심심한 것 같기도 하네요. &lt;br /&gt;
&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzYwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzYwMDAwMDAwMDAxLnBuZw%3D%3D&quot; height=&quot;39&quot; /&gt;&lt;/A&gt; &lt;br /&gt;
&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDAyLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDAzLnBuZw%3D%3D&quot; height=&quot;42&quot; /&gt;&lt;/A&gt;&amp;nbsp; &lt;br /&gt;
하지만, 새 버전에서는 &lt;FONT color=#008080&gt;&lt;STRONG&gt;글꼴 변경 관련 기능&lt;/STRONG&gt;&lt;/FONT&gt;과 &lt;STRONG&gt;&lt;FONT color=#008080&gt;문단 정렬 관련 기능&lt;/FONT&gt;&lt;/STRONG&gt;이 툴바로 들어왔습니다. 이전 버전에서는 상당히 자주 사용되는 기능임에도 메뉴바의 “서식”메뉴를 이용해야만 해서 상당히 불편 했었는데(거기다 단축키 조차 지원해 주지 않았었죠..-_-), 툴바로 들어옴으로써 상당히 편해 질 듯 합니다.&lt;/P&gt;
&lt;P&gt;그리고, 좌측 사이드바 또한 디자인을 생략한 하얀 바탕으로 바뀌면서 심플함을 추구하는 듯 합니다. &lt;br /&gt;
&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzYwMDAwMDAwMDAyLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDA0LnBuZw%3D%3D&quot; height=&quot;304&quot; /&gt;&lt;/A&gt;&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDA1LnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTAwMDAwMDAwMDAwLnBuZw%3D%3D&quot; height=&quot;304&quot; /&gt;&lt;/A&gt; &lt;br /&gt;
그리고, 이번 버전부터는 굴림 폰트가 아닌 맑은 고딕 폰트를 이용하고 있어 더 미려해 진 듯 합니다.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTAwMDAwMDAwMDAxLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTAwMDAwMDAwMDAyLnBuZw%3D%3D&quot; height=&quot;33&quot; /&gt;&lt;/A&gt; &lt;br /&gt;
또 한가지 그 동안 아쉬웠던 부분인 &lt;FONT color=#008080&gt;&lt;STRONG&gt;편집/미리 보기/소스 탭&lt;/STRONG&gt;&lt;/FONT&gt;이 생겼습니다. &lt;br /&gt;
이전 버전에서도 지원을 하지 않는 것은 아니었지만 메뉴바에서 “보기” 메뉴를 이용하거나 단축키를 이용해야 했죠. 이번에는 작성 창 하단에 탭이 생겨서 쉽게 전환이 가능합니다.&lt;/P&gt;
&lt;P&gt;그 외 눈에 띄는 부분이 &lt;FONT color=#008080&gt;&lt;STRONG&gt;맞춤법 검사&lt;/STRONG&gt;&lt;/FONT&gt; 부분인데요. 이전 버전까지는 한글을 지원하지 않았는데, 이번 버전부터는 드디어 한글을 지원합니다. MS-Word에서 지원하던 방식인 듯 한데 오피스 프로그램이 설치되어 있지 않아도 적용을 할 수 있는지는 확실치 않지만, 상당히 유용할 것으로 보입니다. &lt;br /&gt;
Word를 이용해서 블로깅 하시는 분들도 계시던데, 맞춤법 때문이라면 이제 WLW로 갈아타셔도 될 듯합니다. &lt;br /&gt;
&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzYwMDAwMDAwMDAzLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTAwMDAwMDAwMDAzLnBuZw%3D%3D&quot; height=&quot;246&quot; /&gt;&lt;/A&gt; &lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzYwMDAwMDAwMDA0LnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTAwMDAwMDAwMDA0LnBuZw%3D%3D&quot; height=&quot;247&quot; /&gt;&lt;/A&gt; &lt;br /&gt;
실시간 맞춤법 검사도 가능하여, 작성하면서 바로 바로 맞춤법을 검사할 수 있습니다. &lt;br /&gt;
&lt;A href=&quot;http://blog.ntils.com/script/powerEditor/pages/http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDA2LnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzYwMDAwMDAwMDA1LnBuZw%3D%3D&quot; height=&quot;65&quot; /&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;그 외에 편집 관련 기능들이 추가되었습니다. &lt;br /&gt;
&lt;/P&gt;
&lt;P&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMDYwMDAwMDAwMDA3LnBuZw%3D%3D&quot; height=&quot;333&quot; /&gt;&lt;/P&gt;
&lt;P&gt;미리 보기 기능에서 실제 게시를 하여 미리 보기 화면을 생성 후 게시한 포스트는 즉시 삭제하여 좀 더 정확한 미리 보기 기능을 제공하는 기능도 추가되었습니다. 이는 스킨 새로고침을 선택하면 적용할 지 여부를 묻는 대화상자가 나타납니다.&lt;/P&gt;
&lt;P&gt;아직까지는 Beta판이지만, 한글판도 지원하고, 큰 문제점은 보이지 않는 듯합니다. &lt;br /&gt;
다운로드는 아래 링크를 이용하시면 됩니다.&lt;/P&gt;
&lt;P&gt;&lt;A target=_blank href=&quot;http://www.liveside.net/main/archive/2008/09/16/windows-live-wave-3-betas-download-now.aspx&quot;&gt;New Windows Live Betas – Download Wave 3 Now! (Updated With International Goodness) - LiveSide -&lt;/A&gt;&lt;/P&gt;</description>
			<category>리뷰로그</category>
			<category>Windows Live</category>
			<category>Windows Live Writer</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/46</guid>
			<comments>http://blog.ntils.com/entry/Windows-Live-Writer-Wave-3-Beta-%EB%A6%AC%EB%B7%B0#entry46comment</comments>
			<pubDate>Fri, 19 Sep 2008 13:09:27 +0900</pubDate>
		</item>
		<item>
			<title>Internet Explorer 8 Beta 2 한글판 다운로드 개시</title>
			<link>http://blog.ntils.com/entry/Internet-Explorer-8-Beta-2-%ED%95%9C%EA%B8%80%ED%8C%90-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EA%B0%9C%EC%8B%9C</link>
			<description>&lt;p&gt;금일 건국대에서 IE8 Beta2 세미나가 진행될 예정이니 지금쯤 Beta2 한글판의 배포가 시작되지 않았을까 하는 생각에 &lt;a target=&quot;_blank&quot; href=&quot;http://www.microsoft.com/korea/downloads&quot;&gt;Microsoft Download 사이트&lt;/a&gt;에 들어가보니 역시 배포가 시작되었네요.&lt;/p&gt;  &lt;p&gt;IE8 Beta2는 &lt;a target=&quot;_blank&quot; href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=6ef71415-646f-4279-8b6b-193435ab2d80&amp;amp;DisplayLang=ko&quot;&gt;여기&lt;/a&gt;서 다운로드 받으실 수 있습니다.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzUwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; border=&quot;0&quot; alt=&quot;설치시작화면&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzUwMDAwMDAwMDAwLnBuZw%3D%3D&quot; width=&quot;507&quot; height=&quot;302&quot; /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;설치 완료 후 실행하니 오류창이 제일 먼저 저를 반기는 군요.. -_-;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzUwMDAwMDAwMDAxLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px&quot; border=&quot;0&quot; alt=&quot;실행시 오류창&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzUwMDAwMDAwMDAyLnBuZw%3D%3D&quot; width=&quot;375&quot; height=&quot;140&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;IE8에 기본적으로 포함된 Developer Toolbar 과 IE7에서 설치해서 사용하던 Developer Toolbar의 충돌 때문에 발생하는 듯 합니다. IE7에서 Internet Explorer Developer Toolbar를 설치하지 않은 사용자에게는 발생하지 않겠죠.   &lt;br /&gt;기존에 설치되어 있던 Internet Explorer Developer Toolbar를 제거하고 새로 실행하니 오류창이 사라졌습니다.&lt;/p&gt;  &lt;p&gt;개발자의 친구 Developer Toolbar를 실행해봤습니다. 단축키는 F12입니다.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzUwMDAwMDAwMDAxLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px&quot; border=&quot;0&quot; alt=&quot;captured_Image.png[3]&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzUwMDAwMDAwMDAzLnBuZw%3D%3D&quot; width=&quot;550&quot; height=&quot;366&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;기존에 제공되던 Developer Toolbar의 기능도 쓸만했었지만, 그래도 이번에 기본으로 포함된 요 녀석은 대충보기에는 거의 Firefox의 Firebug와 맞먹는 기능을 제공해 주고 있습니다.^^; 하긴. 경쟁할려면 당연한건가?   &lt;br /&gt;하지만, 자세하게 보지는 않았으므로 어느게 좋다라고는 말 못하겠네요.&lt;/p&gt;  &lt;p&gt;다음에 IE8의 Internet Explorer Developer Toolbar 와 Firefox의 Firebug 그리고 Chrome의 개발자기능들을 비교해보는 것도 재미가 있을 듯하네요.&lt;/p&gt;  &lt;p&gt;이제 여기저기 돌아다녀 보고 문제점을 찾아봐아겠네요..^^;&lt;/p&gt;</description>
			<category>리뷰로그</category>
			<category>Internet Explorer 8</category>
			<category>Internet Explorer 8 Beta 2</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/45</guid>
			<comments>http://blog.ntils.com/entry/Internet-Explorer-8-Beta-2-%ED%95%9C%EA%B8%80%ED%8C%90-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%EA%B0%9C%EC%8B%9C#entry45comment</comments>
			<pubDate>Wed, 17 Sep 2008 09:59:16 +0900</pubDate>
		</item>
		<item>
			<title>Vista에서 사용자 폴더 안에 내가 필요한 폴더를 등록하기</title>
			<link>http://blog.ntils.com/entry/Vista%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%ED%8F%B4%EB%8D%94-%EC%95%88%EC%97%90-%EB%82%B4%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%ED%8F%B4%EB%8D%94%EB%A5%BC-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0</link>
			<description>&lt;p&gt;Vista에서 사용자 폴더에 등록된 폴더 중 문서, 다운로드, 음악, 비디오 등 기본적으로 제공하는 폴더외의 내가 정한 폴더를 등록하고 싶은 경우가 있습니다.   &lt;br /&gt;이때 사용자 폴더 내에 새로운 폴더를 하나 만들어서 사용하면 되지만, 문서나 기타 다른 폴더들의 위치도 다른 드라이브로 옮겨서 사용하는데, 폴더내에 새로운 폴더를 생성한다는 꺼름직하죠.&lt;/p&gt;  &lt;p&gt;그때 사용할 수 있는 것이 링크폴더를 만드는 것인데요.   &lt;br /&gt;Vista에서는 &lt;strong&gt;mklink&lt;/strong&gt;라는 명령어를 제공하여 &lt;font color=&quot;#ff0000&quot;&gt;심볼릭 링크를 생성&lt;/font&gt;할 수 있도록 해줍니다.&lt;/p&gt;  &lt;p&gt;mklink의 사용법입니다.   &lt;br /&gt;&lt;a href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;325&quot; alt=&quot;mklink 사용방법&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAxLnBuZw%3D%3D&quot; width=&quot;500&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;저는 D:\Projects라는 폴더를 사용자 폴더(C:\Users\Hwikyeom)내에 프로젝트라는 이름으로 링크폴더를 만들려고 합니다.&amp;#160; &lt;br /&gt;이때 링크폴더는 사용자 폴더내에 동일한 이름의 폴더가 존재하지 않아야 합니다.    &lt;br /&gt;만일 이미 C:\Users\Hwikyeom\프로젝트 라는&amp;#160; 폴더가 만들어져 있다면 &lt;em&gt;&amp;quot;파일이 이미 있으므로 만들 수 없습니다.&amp;quot;&lt;/em&gt; 라는 메시지가 나옵니다.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;325&quot; alt=&quot;mklink 명령 실행&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAyLnBuZw%3D%3D&quot; width=&quot;500&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;기호화된 링크가 만들어 졌습니다.&amp;quot;&lt;/em&gt;라는 메시지가 나왔다면, 링크폴더가 정상적으로 만들어 졌습니다.    &lt;br /&gt;탐색기에서 확인을 해보면&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAxLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;393&quot; alt=&quot;생성결과&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAzLnBuZw%3D%3D&quot; width=&quot;274&quot; align=&quot;left&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;결과를 보면 탐색기의 트리뷰에서 프로젝트라는 폴더를 확인 할 수 있습니다.    &lt;br /&gt;그리고, 해당 폴더를 선택하면 위의 주소표시줄과 같이 D:\Project로 표시되는 것이 아니라 사용자폴더내의 프로젝트로 표시가 됨을 보실 수 있습니다.    &lt;br /&gt;하지만, 실제 내용은 D:\Projects 폴더의 내용을 표시하는 것이죠.&lt;/p&gt;  &lt;p&gt;그렇다면, 폴더바로가기를 생성하였을 때와는 어떻게 다를까요?&lt;/p&gt;  &lt;p&gt;폴더 바로가기는 LNK라는 파일을 생성하여 실행시 지정된 폴더로 이동시켜 주는 것입니다.   &lt;br /&gt;즉, 바로가기는 파일이므로 옆의 링크폴더와는 달리 트리뷰에 출력될 수 없습니다.    &lt;br /&gt;그리고, 바로가기를 실행했을 때는 주소 표시줄이     &lt;br /&gt;&lt;a href=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAyLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;32&quot; alt=&quot;captured_Image.png[16]&quot; src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMzEwMDAwMDAwMDAwLnBuZw%3D%3D&quot; width=&quot;219&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;와 같이 지정된 폴더가 출력됩니다.&lt;/p&gt;  &lt;p&gt;mklink는 폴더 뿐만이 아니라 파일에 대한 심볼릭링크의 생성도 가능하며, 옵션에 따라 하드링크나 또는 디렉터리 교차점의 생성도 가능합니다.&lt;/p&gt;  &lt;p&gt;Vista 이전 버전에서는 linkd.exe를 이용하는 방법으로 링크폴더의 생성이 가능합니다. 이 방법에 대한 자세한 내용은 &lt;a href=&quot;http://qaos.com/article.php?sid=2638&quot;&gt;http://qaos.com/article.php?sid=2638&lt;/a&gt; 를 참고하세요.&lt;/p&gt;  &lt;p&gt;그리고, 파일기반 심볼 링크에 대한 부분을 찾아서 참조합니다.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;파일 기반 심볼 링크&lt;/p&gt;    &lt;p&gt;Windows Vista의 I/O 관련 변경 사항으로는 파일 기반 심볼 링크, 보다 효율적인 I/O 완료 처리, 포괄적인 I/O 취소 지원, 우선 순위가 부여된 I/O 등이 있습니다.&lt;/p&gt;    &lt;p&gt;많 은 사용자들이 NTFS에서 누락되었다고 생각하는 파일 시스템 기능인 심볼 파일 링크(UNIX에서는 소프트 링크라고 함)가 마침내 Windows Vista에 포함되었습니다. Windows 2000 버전의 NTFS에서는 다른 디렉터리를 가리키는 디렉터리를 만들 수 있게 해 주는 디렉터리 교차점이라는 심볼 디렉터리 링크가 사용되었지만 Windows Vista 이전 버전의 NTFS에서는 파일의 하드 링크만 지원했습니다.&lt;/p&gt;    &lt;p&gt;Windows 에서 심볼 링크와 디렉터리 교차점을 해결하는 방식의 가장 큰 차이점은 처리가 발생하는 위치입니다. Windows에서 심볼 링크는 원격 파일 서버에 있는 위치를 참조할 때조차 로컬 시스템에서 처리됩니다. Windows에서는 원격 파일 서버를 참조하는 디렉터리 교차점을 해당 서버 내에서 처리합니다. 따라서 서버에 있는 심볼 링크는 다른 클라이언트 볼륨과 같이 클라이언트에서만 액세스할 수 있는 위치를 참조할 수 있지만 디렉터리 교차점은 참조할 수 없습니다. 이 문제를 해결하기 위해 Windows Vista에서는 파일과 디렉터리 모두에 대해 새로운 심볼 링크 유형을 지원합니다.&lt;/p&gt;    &lt;p&gt;심 볼 링크에 내포된 의미를 이해할 수 있도록 다양한 파일 시스템 명령이 업데이트되었습니다. 예를 들어 Delete 명령은 링크를 따르는 대신 링크를 삭제하도록 업데이트되었습니다(링크를 따르면 대상이 삭제됨). 그러나 일부 응용 프로그램에서는 심볼 링크를 올바르게 처리할 수 없으므로 심볼 링크를 만들려면 기본적으로 관리자에게만 부여되는 새로운 심볼 링크 만들기 권한이 있어야 합니다.&lt;/p&gt;    &lt;p&gt;Mklink 명령으로 명령 프롬프트에서 심볼 링크를 만들 수 있습니다. 명령 프롬프트에서 기본으로 제공하는 디렉터리 명령은 &amp;lt;SYMLINK&amp;gt;로 플래그를 지정하고 대상을 괄호 안에 표시하여 심볼 링크를 식별합니다(&lt;strong&gt;그림 5&lt;/strong&gt; 참조). 심볼 링크는 Windows 탐색기에서도 확인할 수 있으며 바로 가기 화살표로 표시됩니다. 찾기 창에 링크 대상 열을 추가하여 탐색기에서 링크의 대상을 볼 수 있습니다.&lt;/p&gt;    &lt;p&gt;원본경로 : &lt;a title=&quot;http://technet.microsoft.com/ko-kr/magazine/cc162494.aspx&quot; href=&quot;http://technet.microsoft.com/ko-kr/magazine/cc162494.aspx&quot;&gt;http://technet.microsoft.com/ko-kr/magazine/cc162494.aspx&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
			<category>생활로그</category>
			<category>tip</category>
			<category>Vista</category>
			<category>Windows</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/44</guid>
			<comments>http://blog.ntils.com/entry/Vista%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%ED%8F%B4%EB%8D%94-%EC%95%88%EC%97%90-%EB%82%B4%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%ED%8F%B4%EB%8D%94%EB%A5%BC-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0#entry44comment</comments>
			<pubDate>Wed, 10 Sep 2008 14:08:04 +0900</pubDate>
		</item>
		<item>
			<title>ASP.NET Generated Image 컨트롤</title>
			<link>http://blog.ntils.com/entry/ASPNET-Generated-Image-%EC%BB%A8%ED%8A%B8%EB%A1%A4</link>
			<description>&lt;p&gt;얼마 전 한 신입사원이 데이터베이스에 저장되어 있는 BLOB형태의 이미지 파일을 ASP.NET 웹페이지로 출력하기 위해서, 데이터베이스에서 byte배열을 얻어서 하드디스크에 GUID형태의 이름을 가지는 이미지로 저장한 다음 그 파일을 출력하고, 이미지를 생성할때 마다 파일이 생성될 폴더에 파일 중 생성시간이 하루 이상 지난파일을 삭제하는 로직으로 짜고 있는것을 본적이 있었습니다.&lt;/p&gt;  &lt;p&gt;검색엔진에 검색 한번으로 엄청난 양의 레퍼런스 코드가 쏟아져 나올텐데도, 자기 나름대로 계획을 세우고 꿋꿋하게 그걸 구현해 나가는 모습을 보고 얘한테 뭐라고해야하나 말아야하나 고민을 했었더랬습니다.&lt;/p&gt;  &lt;p&gt;당시에는 핸들러파일(ashx)파일에서 이미지를 출력하도록하는 방법을 알려주고 끝냈었는데, 오늘 보니 Micorosft에서 ASP.NET Generated Image 라는 상당히 유용해 보이는 컨트롤을 내놓았네요.&lt;/p&gt;  &lt;p&gt;서버 컨트롤형태로 구현되어 있고, 각 용도별 구현을 위해서 ImageHandler를 상속받는 ashx 핸들러 파일을 생성하여 컨트롤에 지정하도록 하고 있습니다.   &lt;br /&gt;즉, 이미지관련 처리를 위한 라이브러리를 제공하고 그 라이브러리를 이용해서 실제 이미지를 그리는 부분은 사용자에게 맡기는 형태입니다.&lt;/p&gt;  &lt;p&gt;예제를 한번 보자면, 페이지에 컨트롤을 올리면   &lt;br /&gt;&lt;a href=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMjQwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;76&quot; alt=&quot;captured_Image.png&quot; src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMjQwMDAwMDAwMDAwLnBuZw%3D%3D&quot; width=&quot;221&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;디자인뷰 코드상에서 보면&lt;/p&gt;  &lt;div&gt;   &lt;div style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;     &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;cc1:GeneratedImage&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;ID&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&amp;quot;GeneratedImage1&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;runat&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;    &lt;span style=&quot;color: #ff0000&quot;&gt;ImageHandlerUrl&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&amp;quot;~/ImageHandler1.ashx&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Parameters&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;      &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;cc1:ImageParameter&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&amp;quot;Msg&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #ff0000&quot;&gt;Value&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;=&amp;quot;Welcome To CodeDigest&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;      &lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;Parameters&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #800000&quot;&gt;cc1:GeneratedImage&lt;/span&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;div&gt;이미지를 처리할 대상을 ImageHandler1.ashx 로 설정하였습니다.
  &lt;br /&gt;즉, 이미지 출력에 관한 모든 것은 ImageHandler1.ashx가 처리하는 것입니다.

  &lt;br /&gt;ImageHandler1.ashx는 아래와 같습니다.

  &lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
  &lt;div style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;
    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&amp;lt;%@ WebHandler Language=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;C#&amp;quot;&lt;/span&gt; Class=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;ImageHandler1&amp;quot;&lt;/span&gt; %&amp;gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; System;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; System.Collections.Specialized;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; System.Drawing;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; Microsoft.Web;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; ImageHandler1 : ImageHandler {&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;    &lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; ImageHandler1() {&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;        &lt;span style=&quot;color: #008000&quot;&gt;// Set caching settings and add image transformations here       &lt;/span&gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;       }&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;    &lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;override&lt;/span&gt; ImageInfo GenerateImage(NameValueCollection parameters) {&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;        &lt;span style=&quot;color: #008000&quot;&gt;// Add image generation logic here and return an instance of ImageInfo&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;        Bitmap bit = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; Bitmap(500, 500);&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;        Graphics gra = Graphics.FromImage(bit);&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;        gra.Clear(Color.AliceBlue);&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;        gra.DrawString(parameters[&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;Msg&amp;quot;&lt;/span&gt;], &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; Font(&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;Verdana&amp;quot;&lt;/span&gt;, 16), Brushes.Black,0 , 150);&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;this&lt;/span&gt;.ImageTransforms.Add(&lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; WaterMark());&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; ImageInfo(bit);&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;    }&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;위 코드는 새로운 Bitmap을 생성하서 그 안에 매개변수로 넘어온 메시지를 드로잉하여 반환합니다.
  &lt;br /&gt;그러므로, 이 예제의 결과는 아래와 같습니다.&lt;a href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMjQwMDAwMDAwMDAxLnBuZw%3D%3D&quot;&gt;
    &lt;br /&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;486&quot; alt=&quot;captured_Image.png[5]&quot; src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMjQwMDAwMDAwMDAxLnBuZw%3D%3D&quot; width=&quot;393&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;하지만, 지정한 핸들러파일의 GenerateImage메서드의 구현에 따라서 이미지는 어떠한 형태로도 출력이 가능해 집니다.
  &lt;br /&gt;DB에서 이미지를 불러와서 출력하는 것도 가능하고, 이미지의 리사이즈 및 이미지에 워터마크를 넣고, 테두리를 입히는 작업등 구현에 따라 다른 형태의 이미지를 출력할 수 있을것입니다.&lt;/p&gt;

&lt;p&gt;컨트롤의 다운로드는 &lt;a href=&quot;http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16449&quot; target=&quot;_blank&quot;&gt;여기&lt;/a&gt;서 가능하시고, .NET Framework 3.5 SP1이 적용되어야 사용이 가능합니다.&lt;/p&gt;

&lt;p&gt;좀더 자세한 내용 및 관련 예제은 다음 글 에서 확인이 가능합니다.
  &lt;br /&gt;&lt;a href=&quot;http://www.codedigest.com/Articles/ASPNET/119_New_Image_Generator_control_in_ASPNet_35.aspx&quot; target=&quot;_blank&quot;&gt;New Image Generator control in ASP.Net 3.5&lt;/a&gt;&lt;/p&gt;</description>
			<category>Web Development</category>
			<category>ASP.NET</category>
			<category>image</category>
			<category>Server Control</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/43</guid>
			<comments>http://blog.ntils.com/entry/ASPNET-Generated-Image-%EC%BB%A8%ED%8A%B8%EB%A1%A4#entry43comment</comments>
			<pubDate>Fri, 05 Sep 2008 10:08:33 +0900</pubDate>
		</item>
		<item>
			<title>운영체제에 등록되지 않은 폰트 사용하기</title>
			<link>http://blog.ntils.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%97%90-%EB%93%B1%EB%A1%9D%EB%90%98%EC%A7%80-%EC%95%8A%EC%9D%80-%ED%8F%B0%ED%8A%B8-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
			<description>&lt;P&gt;응용 프로그램을 작성하다 보면 운영체제의 기본폰트로 등록되지 않은 폰트를 사용해야 할 경우가 있습니다. 이 경우 보통은 설치프로그램에서 폰트를 운영체제에 등록하여 사용하죠. &lt;br /&gt;하지만, 시스템상에 폰트를 많이 설치하면 그만큼 시스템이 평소에 로드하고 있어야 하는 폰트가 많아 지므로 시스템이 느려지게 될 것이고, 자주 사용하지 않는 폰트파일이라면 굿이 등록시켜 사용할 필요가 없습니다.&lt;/P&gt;
&lt;P&gt;그렇다면, 폰트파일을 운영체제에 등록하지 않고, 필요 할때만 잠시 로드하여 사용하면 좋겠죠? &lt;br /&gt;이 부분을 지원을 지원하기 위해서 &lt;FONT face=Corbel&gt;.NET Framework&lt;/FONT&gt; 에서는&amp;nbsp; &lt;FONT face=Consolas color=#666666&gt;&lt;A href=&quot;http://msdn.microsoft.com/ko-kr/system.drawing.text.privatefontcollection.aspx&quot; target=_blank&gt;System.Drawing.Text.PrivateFontCollection&lt;/A&gt;&lt;/FONT&gt; 클래스를 제공하고 있습니다.&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas&gt;PrivateFontCollection&lt;/FONT&gt; 클래스는 운영체제에 등록된 폰트가 아닌 같은 이름의 개인 버전 폰트를 사용할 수 있도록 해주고, 운영체제에 등록되지 않은 글꼴을 임시로 설치해서 사용할 수 있도록 해줍니다.&lt;/P&gt;
&lt;P&gt;다음은 운영체제에 등록되지 않은 &lt;FONT face=&quot;Courier New&quot;&gt;&lt;STRONG&gt;3of9_new.ttf&lt;/STRONG&gt;&lt;/FONT&gt; 라는 바코드 폰트를 이용해서 &lt;FONT face=Consolas&gt;Label&lt;/FONT&gt;에 바코드를 출력하는 예제입니다.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTgwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTgwMDAwMDAwMDAwLnBuZw%3D%3D&quot; height=&quot;246&quot; /&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;솔루션내에 &lt;FONT face=&quot;Courier New&quot;&gt;&lt;STRONG&gt;3of9_new.ttf&lt;/STRONG&gt;&lt;/FONT&gt; 가 포함되어 있으며 &lt;FONT color=#000080&gt;출력 디렉토리로 복사&lt;/FONT&gt; 속성이 &lt;FONT color=#000080&gt;항상 복사&lt;/FONT&gt;로 설정되어 있습니다. &lt;br /&gt;코드를 보면&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   1:&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/SPAN&gt; System.Data;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   2:&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/SPAN&gt; System.Drawing;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   3:&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/SPAN&gt; System.Linq;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   4:&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/SPAN&gt; System.Text;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   5:&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;using&lt;/SPAN&gt; System.Windows.Forms;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   6:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   7:&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;namespace&lt;/SPAN&gt; UsePrivateFont&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   8:&lt;/SPAN&gt; {&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;   9:&lt;/SPAN&gt;     &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;partial&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;class&lt;/SPAN&gt; Form1 : Form&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  10:&lt;/SPAN&gt;     {&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  11:&lt;/SPAN&gt;         &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;public&lt;/SPAN&gt; Form1()&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  12:&lt;/SPAN&gt;         {&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  13:&lt;/SPAN&gt;             InitializeComponent();&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  14:&lt;/SPAN&gt;         }&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  15:&lt;/SPAN&gt;&amp;nbsp; &lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  16:&lt;/SPAN&gt;         &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;private&lt;/SPAN&gt; &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;void&lt;/SPAN&gt; Form1_Load(&lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;object&lt;/SPAN&gt; sender, EventArgs e)&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  17:&lt;/SPAN&gt;         {&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  18:&lt;/SPAN&gt;             System.Drawing.Text.PrivateFontCollection privateFonts = &lt;br /&gt;&lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;                      new&lt;/SPAN&gt; System.Drawing.Text.PrivateFontCollection();&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  19:&lt;/SPAN&gt;             &lt;STRONG&gt;privateFonts.AddFontFile(&lt;SPAN style=&quot;COLOR: #006080&quot;&gt;&quot;3of9_new.ttf&quot;&lt;/SPAN&gt;);&lt;/STRONG&gt;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  20:&lt;/SPAN&gt;             Font font = &lt;SPAN style=&quot;COLOR: #0000ff&quot;&gt;new&lt;/SPAN&gt; Font(&lt;STRONG&gt;privateFonts.Families[0]&lt;/STRONG&gt;, 24f);&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  21:&lt;/SPAN&gt;             label1.Text = &lt;SPAN style=&quot;COLOR: #006080&quot;&gt;&quot;*12315161321*&quot;&lt;/SPAN&gt;;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  22:&lt;/SPAN&gt;             label1.Font = font;&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  23:&lt;/SPAN&gt;         }&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  24:&lt;/SPAN&gt;     }&lt;/PRE&gt;&lt;PRE style=&quot;PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, &#039;Courier New&#039;, courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-STYLE: none&quot;&gt;&lt;SPAN style=&quot;COLOR: #606060&quot;&gt;  25:&lt;/SPAN&gt; }&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;P&gt;코드는 간단합니다. &lt;br /&gt;&lt;FONT face=Consolas&gt;PrivateFontCollection&lt;/FONT&gt; 클래스의 객체를 생성하고 사용하고자 하는 폰트파일의 경로를 추가하는 것 만으로 사용준비가 완료됩니다. &lt;br /&gt;그리고, 사용할때는&amp;nbsp; &lt;FONT face=Consolas&gt;PrivateFontCollection&lt;/FONT&gt; 클래스의 &lt;FONT face=Consolas&gt;Families&lt;/FONT&gt; 속성을 이용하여 추가한 폰트를 가져옵니다.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTgwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTgwMDAwMDAwMDAxLnBuZw%3D%3D&quot; height=&quot;152&quot; /&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;실행결과 입니다. 운영체제에 설치되지 않은 바코드 폰트를 이용하여&lt;FONT face=Consolas&gt; Label&lt;/FONT&gt;로의 출력이 완료되었습니다.&lt;/P&gt;
&lt;P&gt;마지막으로 MSDN에 보면 운영체제에 설치된 컬렉션을 보려면 &lt;A href=&quot;http://msdn.microsoft.com/ko-kr/system.drawing.text.installedfontcollection.aspx&quot; target=_blank&gt;&lt;FONT face=Consolas&gt;System.Drawing.Text.InstalledFontCollection&lt;/FONT&gt;&lt;/A&gt;클래스를 사용한다고 되어 있습니다. &lt;br /&gt;이 두가지 클래스를 이용하면 설치된 폰트를 확인하고, 내가 원하는 폰트파일을 임시로 등록하여, 각 폰트별로 내가 원하는 텍스트에 대한 출력을 미리보기가 가능할 뿐만 아니라 포토샵과 다른 프로그램에서 프로그램이 실행 중일 동안만 사용이 가능하도록 할 수 도 있는 아래와 같은 프로그램을 만들 수 있을 듯합니다. ^^;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTgwMDAwMDAwMDAxLnBuZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTgwMDAwMDAwMDAyLnBuZw%3D%3D&quot; height=&quot;400&quot; /&gt;&lt;/A&gt; &lt;br /&gt;&lt;br /&gt;폰트다운로드: &lt;br /&gt;&lt;div class=&quot;imageblock left&quot; style=&quot;float: left; margin-right: 10px;&quot;&gt;&lt;a href=&quot;http://whistle.tistory.com/attachment/jk180000000001.ttf&quot;&gt;&lt;img src=&quot;http://cfs.tistory.com/blog/image/extension/ttf.gif&quot; alt=&quot;&quot; style=&quot;vertical-align: middle;&quot; /&gt; 3of9_new.ttf&lt;/a&gt;&lt;/div&gt;&lt;/P&gt;</description>
			<category>개발로그</category>
			<category>Barcode</category>
			<category>Font</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/42</guid>
			<comments>http://blog.ntils.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EC%97%90-%EB%93%B1%EB%A1%9D%EB%90%98%EC%A7%80-%EC%95%8A%EC%9D%80-%ED%8F%B0%ED%8A%B8-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#entry42comment</comments>
			<pubDate>Mon, 25 Aug 2008 11:54:50 +0900</pubDate>
		</item>
		<item>
			<title>Visual Studio 2008 한글판에서 ASP.NET MVC 프로젝트 생성</title>
			<link>http://blog.ntils.com/entry/Visual-Studio-2008-%ED%95%9C%EA%B8%80%ED%8C%90%EC%97%90%EC%84%9C-ASPNET-MVC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1</link>
			<description>&lt;p&gt;집에 있는 데스크톱 컴퓨터에 문제가 생겨서 포맷을 하고 재설치중입니다.    &lt;br /&gt;운영체제 및 업데이트는 대충 다 이뤄진듯 하고 이제 Visual Studio를 설치하고 개발환경을 셋팅하고 있는데요.     &lt;br /&gt;그동안은 집에서는 영문버전 Visual Studio를 사용했었는데 이번에는 아무리 찾아도 영문판 Visual Studio 설치DVD가 보이질 않아서 어쩔수 없이 한글판 Visual Studio를 설치하였습니다.     &lt;br /&gt;얼마 전 &lt;u&gt;Visual Studio 2008 SP1&lt;/u&gt;의 경우에는 이미 한글판이 출시되어 있어서 설치를 했습니다. 하지만, 이번 SP1의 경우에는 &lt;strong&gt;&lt;a href=&quot;http://www.asp.net/mvc&quot; target=&quot;_blank&quot;&gt;ASP.NET MVC&lt;/a&gt;&lt;/strong&gt; 는 포함되지 않아서 아직 ASP.NET MVC의 경우에는 아직 한글판이 존재하지 않습니다. 물론, 현재 배포버전인 MVC Preview 3이후에 Preview 4가 나올 듯 하니 아직까지 정식버전 및 한글지원 버전은 좀 더 기다려야 할 듯 합니다. &lt;/p&gt;  &lt;p&gt;하지만, 저같은 경우에는 이전에 MVC로 진행하던 것도 있고 해서 ASP.NET MVC Preview 3를 설치하였습니다. 설치시에는 문제가 없었지만, Visual Studio 실행시 새 프로젝트에서 &amp;quot;&lt;strong&gt;ASP.NET MVC Web Application&lt;/strong&gt;&amp;quot; 프로젝트가 보이질 않았습니다. 설치는 정상적으로 이뤄졌는데, 프로젝트 템플릿이 제대로 로드가 되지 않는듯 하여, 인터넷을 뒤지기 시작했습니다.&lt;/p&gt;  &lt;p&gt;역시, 제가 생각하는 것은 이미 다른 누군가가 고맙게도 해결책을 내놓아 두었더군요.    &lt;br /&gt;이번의 경우에는 &lt;a href=&quot;http://www.taeyo.net&quot; target=&quot;_blank&quot;&gt;taeyo.net&lt;/a&gt;에서 찾았습니다.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.taeyo.net/Columns/View.aspx?SEQ=215&amp;amp;PSEQ=11&amp;amp;IDX=0&quot; target=&quot;_blank&quot;&gt;[MVC] MVC 애플리케이션 개발환경 설정&lt;/a&gt; 글과     &lt;br /&gt;&lt;a href=&quot;http://www.taeyo.net/Forum/Content.aspx?SEQ=1317&amp;amp;TBL=KNOWHOW&quot; target=&quot;_blank&quot;&gt;VS2008 한글 RTM 설치후 추가 작업 해야할 것들&lt;/a&gt; 이라는 두개의 글에 걸쳐서 해결방법이 제시되어 있었습니다.&lt;/p&gt;  &lt;p&gt;다음을 위해서 여기에 정리해 두자면,    &lt;br /&gt;설치후 프로젝트 템플릿이 로드 되지 않는 이유는 영문판과 한글판의 경우 프로젝트 템플릿이 저장되는 경로(버전)이 다르기 때문이며, &lt;font color=&quot;#ff0000&quot;&gt;영문 버전(1033)폴더에 등록되어 있는 프로젝트 템플릿파일(zip파일)을 한글 버전(1042)폴더로 복사해 넣고, 등록과정을 거치면 사용이 가능&lt;/font&gt;합니다.    &lt;br /&gt;유의할 점은 &lt;font color=&quot;#000080&quot;&gt;ASP.NET MVC의 경우 WEB 프로젝트 외에 Test 프로젝트 템플릿도 함께 등록해줘야&lt;/font&gt; 합니다. ASP.NET MVC는 MVC용 테스트 프로젝트가 따로 존재하기 때문입니다.    &lt;br /&gt;그리고, 프로젝트에서 추가할 수 있는 Controller 클래스등의 &lt;font color=&quot;#000080&quot;&gt;아이템 템플릿들도 등록&lt;/font&gt;해야 합니다.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;&lt;em&gt;ASP.NET MVC 프로젝트 템플릿 복사&lt;/em&gt;&lt;/strong&gt;      &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE&lt;strong&gt;\ProjectTemplates\CSharp\Web\1033&lt;/strong&gt; 폴더(VS 영문판용 폴더)에 존재하는 &lt;font color=&quot;#ff0000&quot;&gt;MvcWebApplicationProjectTemplateP3.cs.zip&lt;/font&gt; 파일을       &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\&lt;strong&gt;ProjectTemplates\CSharp\Web\1042&lt;/strong&gt; 폴더(VS 한글판용 폴더)로 복사한다.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;ASP.NET MVC용 테스트 프로젝트 템플릿 복사&lt;/em&gt;&lt;/strong&gt;      &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\&lt;strong&gt;ProjectTemplates\CSharp\Test\1033&lt;/strong&gt; 폴더(VS 영문판용 폴더)에 존재하는       &lt;br /&gt;&lt;font color=&quot;#ff0000&quot;&gt;MvcWebApplicationTestProjectTemplateP3.cs&lt;/font&gt; 파일을      &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\&lt;strong&gt;ProjectTemplates\CSharp\Test\1042&lt;/strong&gt; 폴더(VS 한글판용 폴더)로 복사한다.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;MVC용 아이템 템플릿을 생성&lt;/em&gt;&lt;/strong&gt;      &lt;br /&gt;MVC용 아이템 템플릿은 영문판용 폴더만 존재하고 한글판용 폴더는 존재하지 않습니다.      &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\&lt;strong&gt;ItemTemplates\CSharp\Web\MVC\1033&lt;/strong&gt; 폴더에 포함된 파일들을       &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\&lt;strong&gt;ItemTemplates\CSharp\Web\MVC\1042&lt;/strong&gt; 폴더를 새로 생성하여 추가합니다.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Visual Studio 2008 명령 프롬프트에서      &lt;br /&gt;&lt;strong&gt;devenv.exe /installvstemplates        &lt;br /&gt;devenv.exe /setup&lt;/strong&gt;       &lt;br /&gt;명령을 실행한다. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTcwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px&quot; height=&quot;316&quot; alt=&quot;MVC Project가 추가된 화면&quot; src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTcwMDAwMDAwMDAwLnBuZw%3D%3D&quot; width=&quot;491&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
			<category>Tools / Framework</category>
			<category>ASP.NET MVC</category>
			<category>Visual Studio 2008</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/41</guid>
			<comments>http://blog.ntils.com/entry/Visual-Studio-2008-%ED%95%9C%EA%B8%80%ED%8C%90%EC%97%90%EC%84%9C-ASPNET-MVC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1#entry41comment</comments>
			<pubDate>Sat, 23 Aug 2008 03:45:33 +0900</pubDate>
		</item>
		<item>
			<title>.NET 어셈블리 정보 확인하기 - .NET Assembly Information</title>
			<link>http://blog.ntils.com/entry/NET-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC-%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0-NET-Assembly-Information</link>
			<description>&lt;p&gt;.NET 프로그래밍시에 기존에 존재하는 어셈블리의 상세한 정보가 필요한 경우가 간혹있습니다.    &lt;br /&gt;오늘 저같은 경우에는 ASP.NET에서 web.config에 컨트롤의 tagPrefix를 지정하기 위해서 에셈블리를 등록이 필요하게 되었습니다. &lt;/p&gt;  &lt;div style=&quot;border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; background-color: #f4f4f4&quot;&gt;   &lt;div style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;     &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;&amp;lt;pages&amp;gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;  &amp;lt;controls&amp;gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;    &amp;lt;add tagPrefix=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;asp&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;namespace&lt;/span&gt;=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;System.Web.UI&amp;quot;&lt;/span&gt; assembly=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;    &amp;lt;add tagPrefix=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;asp&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;namespace&lt;/span&gt;=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;System.Web.UI.WebControls&amp;quot;&lt;/span&gt; assembly=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;&lt;/span&gt;/&amp;gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none&quot;&gt;  &amp;lt;/controls&amp;gt;&lt;/pre&gt;

    &lt;pre style=&quot;padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none&quot;&gt;&amp;lt;/pages&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;네임스페이스는 이미 알고 있지만 assembly의 상세한 정보를 어떻게 하면 알수 있을까 하다가 구글검색을 통해서 알게된 프로그램이 &lt;strong&gt;.NET Assembly Information&lt;/strong&gt;입니다.&lt;/p&gt;

&lt;p&gt;다운로드 링크: &lt;a title=&quot;http://www.codeplex.com/AssemblyInformation&quot; href=&quot;http://www.codeplex.com/AssemblyInformation&quot; target=&quot;_blank&quot;&gt;http://www.codeplex.com/AssemblyInformation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.codeplex.com&quot; target=&quot;_blank&quot;&gt;CodePlex&lt;/a&gt;에 오픈소스 프로젝트로 진행되고 있으며, 탐색기와 통합되어 동작합니다.

  &lt;br /&gt;출력되는 정보는&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;컴파일 모드(Debug/Release)&lt;/li&gt;

  &lt;li&gt;.NET 어셈블리 전체 이름&lt;/li&gt;

  &lt;li&gt;참조하고 있는 어셈블리정보&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;가 있습니다. 탐색기에서 .NET 어셈블리를 선택하면 &lt;u&gt;Assembly Information&lt;/u&gt; 기능이 활성화되고(Vista), 오른쪽 클릭하면 &amp;quot;&lt;u&gt;Assembly Information&lt;/u&gt;&amp;quot; 메뉴가 나타납니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTYwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;463&quot; alt=&quot;탐색기와의 통합&quot; src=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTYwMDAwMDAwMDAwLnBuZw%3D%3D&quot; width=&quot;491&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;실행화면에서는 위의 설명과 같이 컴파일 모드 및 전체이름, 참조 어셈블리 정보를 볼수 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTYwMDAwMDAwMDAwLnBuZw%3D%3D&quot;&gt;&lt;img style=&quot;border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px&quot; height=&quot;200&quot; alt=&quot;실행화면&quot; src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTYwMDAwMDAwMDAxLnBuZw%3D%3D&quot; width=&quot;489&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;구성파일에서 어셈블리를 등록할 필요가 있다던가, 참조된 어셈블리의 확인이 필요할때등에 유용하게 사용할 수 있는 유틸리티가 아닌가 합니다.&lt;/p&gt;</description>
			<category>Tools / Framework</category>
			<category>.NET</category>
			<category>assembly</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/40</guid>
			<comments>http://blog.ntils.com/entry/NET-%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC-%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0-NET-Assembly-Information#entry40comment</comments>
			<pubDate>Fri, 22 Aug 2008 09:27:49 +0900</pubDate>
		</item>
		<item>
			<title>Visual Studio 2008 SP1 출시</title>
			<link>http://blog.ntils.com/entry/Visual-Studio-2008-SP1-%EC%B6%9C%EC%8B%9C</link>
			<description>&lt;P&gt;오랫동안 기다리던 Visual Studio 2008 정식판이 금일 출시되었습니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;기대가 컸던 ADO.NET Entity Framework 뿐만 아니라 새로운 기능들이 다수 포함되어 있습니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;Beta 기간동안은 한글판&amp;nbsp; Visual Studio 에서는 설치가 제대로 되지 않은 문제가 있었는데..&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;이번 정식버전이 출시되면서 한글판도 함께 출시되어 이제 한글판 Visual Studio에서도 해당기능들을&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;이용할 수 있게 되었습니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;&lt;A title=http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx href=&quot;http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx&quot; target=_blank&gt;http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx&lt;/A&gt;&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;&lt;STRONG&gt;SP1 설치파일 다운로드&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=f3fbb04e-92c2-4701-b4ba-92e26e408569&amp;amp;DisplayLang=ko&quot; target=_blank&gt;Visual Studio 2008 Express Edition SP1&lt;/A&gt; 
&lt;LI&gt;&lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=27673c47-b3b5-4c67-bd99-84e525b5ce61&amp;amp;DisplayLang=ko&quot; target=_blank&gt;Visual Studio 2008 SP1&lt;/A&gt; (iso버전) - 899.2 MB 
&lt;LI&gt;&lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&amp;amp;DisplayLang=ko&quot; target=_blank&gt;Visual Studio 2008 SP1&lt;/A&gt; (exe버전) - 551 KB &lt;/LI&gt;&lt;/UL&gt;&lt;br /&gt;
&lt;P&gt;포함된 기능을 보자면&lt;/P&gt;&lt;br /&gt;
&lt;UL&gt;
&lt;LI&gt;WPF 디자이너 향상 
&lt;LI&gt;ADO.NET Entity Framework 
&lt;LI&gt;ADO.NET Data Services 
&lt;LI&gt;ASP.NET Dynamic Data 
&lt;LI&gt;ASP.NET AJAX browser history 
&lt;LI&gt;ASP.NET AJAX script combining &lt;/LI&gt;&lt;/UL&gt;&lt;br /&gt;
&lt;P&gt;등이 있습니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;설치후 Visual Studio 정보화면입니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTQwMDAwMDAwMDAwLmpwZw%3D%3D&quot; height=&quot;481&quot; /&gt; &lt;/P&gt;&lt;br /&gt;
&lt;P&gt;RTM의 경우 9.0.21022.8 RTM 으로 표시되던 버전이 9.0.30729.1 SP로 표시되는군요.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;새 프로젝트 화면의 Web부분입니다. &lt;/P&gt;&lt;br /&gt;
&lt;P&gt;&lt;A href=&quot;http://cfs8.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOC50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTQwMDAwMDAwMDAwLmpwZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs9.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzOS50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTQwMDAwMDAwMDAwLmpwZw%3D%3D&quot; width=&quot;606&quot; height=&quot;457&quot; /&gt;&lt;/A&gt;&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;새로생긴 Dynamic Data 관련 웹응용프로그램 프로젝트가 보입니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;하지만, 이번&amp;nbsp; 서비스팩1에 ASP.NET MVC는 포함되지 않은 듯 하네요. ASP.NET MVC는 아직 Preview3 만 공개되어 있는 상태이걸로 &lt;/P&gt;&lt;br /&gt;
&lt;P&gt;따로 출시가 이뤄질 듯 합니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;새 항목 추가화면입니다.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;&lt;A href=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTQwMDAwMDAwMDAxLmpwZw%3D%3D&quot;&gt;&lt;img src=&quot;http://cfs7.tistory.com/upload_control/download.blog?fhandle=YmxvZzI5NDY5QGZzNy50aXN0b3J5LmNvbTovYXR0YWNoLzAvMTQwMDAwMDAwMDAyLmpwZw%3D%3D&quot; width=&quot;607&quot; height=&quot;366&quot; /&gt;&lt;/A&gt; &lt;/P&gt;&lt;br /&gt;
&lt;P&gt;제일 상단에 ADO.NET 엔티티 데이터 모델 항목이 눈에 띄는 군요. LINQ to SQL 의 약점이 얼마나 보완되었을지 빨리 사용해보고 싶네요.&lt;/P&gt;&lt;br /&gt;
&lt;P&gt;각 항목별 상세한 내용은 다음에 기회를 잡아서 따로 포스팅을 하도록 하겠습니다.&lt;/P&gt;</description>
			<category>Tools / Framework</category>
			<category>ASP.NET MVC</category>
			<category>Entity Framework</category>
			<category>Visual Studio 2008</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/39</guid>
			<comments>http://blog.ntils.com/entry/Visual-Studio-2008-SP1-%EC%B6%9C%EC%8B%9C#entry39comment</comments>
			<pubDate>Tue, 12 Aug 2008 10:46:54 +0900</pubDate>
		</item>
		<item>
			<title>MIX08 과 공부할 것들의 러쉬</title>
			<link>http://blog.ntils.com/entry/MIX08-%EA%B3%BC-%EA%B3%B5%EB%B6%80%ED%95%A0-%EA%B2%83%EB%93%A4%EC%9D%98-%EB%9F%AC%EC%89%AC</link>
			<description>&lt;P&gt;오늘 새벽부터 MIX08이 시작되었죠..&lt;/P&gt;
&lt;P&gt;관심이 있으신 분들은 밤잠도 잊으신채 LIVE 로 감상하신 분들도 많으신듯 합니다.&lt;/P&gt;
&lt;P&gt;사실 저도 Keynote에 관심이 많았지만, 밤새고 난 후 뒷 감당이 되지 않을 것 같아 진작에 포기했었더랍니다.&lt;/P&gt;
&lt;br /&gt;
&lt;P&gt;MIX08 덕분에 오늘은 구독하고 있는 블로그의 RSS Feed가 평소의 3-4배는 된 듯합니다.&lt;/P&gt;
&lt;P&gt;실시간으로 중계해주신분 부터, 방금 올라온 것들에 대한 분석 및 소감을 작성해주신 분들까지...&lt;/P&gt;
&lt;P&gt;덕분에 MIX08에 참석하지도 못했고, 동영상으로 감상하지도 못했지만, 나름대로 정리가 되는 듯 하네요..&lt;/P&gt;
&lt;br /&gt;
&lt;P&gt;MIX08 그동안 많이 기다려왔던게 사실입니다. 구슬이 아저씨나 레이 오지 같은 존경할 만 한 분들이 나와서&lt;/P&gt;
&lt;P&gt;MS의 앞으로 발전할 방향을 우리에게 주입교육 시켜주는 것이나, 눈이 휘둥그래질만한 샘플들을 보는 재미도 있겠지만,&lt;/P&gt;
&lt;P&gt;머니머니해도 쏟아져 나오는 신기술이죠..&lt;/P&gt;
&lt;br /&gt;
&lt;P&gt;오늘 Internet Explorer 8 Beta 1도 나왔구요.. 회사 컴퓨터에서 아침에 출근하자 마자 깔아봤더랩니다.&lt;/P&gt;
&lt;P&gt;IE 7보다 더 빨리졌다고 했는데, 저야 가는 사이트는 한정적이나 많은 테스트는 못해봤지만 그다지 빨라진 건 못느끼겠더군요.(주관적인 의견입니다..^^) 하지만, 개발자 툴 하나만큼은 와~ 소리 나올정도로 잘해놨더군요. 그동안 IE에 깔아쓰던 IE Develope Toolbar나 HttpAnalyzer등은 필요치 않을 듯 하더군요. 아직 정확한 기능은 테스트 하지 못한 관계로 테스트 후 블로깅 할 예정입니다.&lt;/P&gt;
&lt;br /&gt;
&lt;P&gt;그리고, Silverlight 2 Beta 1이 나왔습니다. 크게 관심이 두고 있는 분야입니다. 사실 그동안 Silverlight는 큰 관심을 두지 않고 있었습니다. 아직까지는 Flash에 대적할 만한 상대가 못된다(기술적인 면이 아니라 저변 부분에서)는 의견이었습니다. 아직까진 분야 자체도 동영상 스트리밍등에 포커싱되어 있기도 했었기 때문에 큰 흥미를 가지지 못했지요. 하지만 Silverlight 2의 정식판이 나오면 말이 달라집니다. &lt;/P&gt;
&lt;P&gt;Silverlight 2 Beta1의 출시와 함께 나온 Silverlight 2 Control들을 보면 DataGrid, DateTimePicker 등 프로그래밍에 꼭 필요한 컨트롤들이 다수 포함되어 있음을 볼 수 있습니다. 이제 Silverlight는 Flash와 같은 멀티미디어 중심이 아닌 Flex와 같은 비지니스 중심으로 포커싱이 옮겨 오는 것이죠. &lt;br /&gt;거기다, .NET의 가장 큰 단점인 크로스 플랫폼이 가능하고 프로그래밍 언어가 .NET이라는 점에서 폭팔적으로 성장할 가능성이 높아 보입니다. .NET프로그래밍이 가능한 프로그래머라면 누구나 접근 할 수 있다는 얘기가 되는 거니깐요. &lt;br /&gt;물론 지금의 Flex나 Silverlight 1.0 도 Java언어나 javascript만 안다면 누구나 할 수 있긴 합니다만, Silverlight 2 는 자체적으로 작긴 하지만 .NET Framework를 포함한다는 것입니다. 그만큼 프로그래밍이 쉬워 진다는 얘기죠.&lt;/P&gt;
&lt;P&gt;앞으로 집중적으로 공부를 해볼 예정입니다.&lt;/P&gt;
&lt;br /&gt;
&lt;P&gt;그리고 또하나 지난 12에 출시되었던 ASP.NET 3.5 Extension Peview에 포함되었던 ASP.NET MVC 의 Preview 2 가 나왔습니다. &lt;br /&gt;Silverlight보다 더 관심을 두고 있던 부분이었고, &lt;A href=&quot;http://weblogs.asp.net/scottgu&quot; target=_blank&gt;구슬이 아저씨의 블로그&lt;/A&gt;를 통해 약간의 소식은 접하고 있었지만, 이제 실제적으로 그 내용을 파악 해봐야 겠습니다.&lt;/P&gt;
&lt;P&gt;하지만 약간 불만스러운게 있다면 ASP.NET 3.5 Extension 에서 함께 포함되었었던 ADO.NET Entity Framework의 새로운 버전은 포함 되지 않은 것입니다. &lt;br /&gt;그동안 ASP.NET 3.5 Extension Preview의 경우 한글판 VisualStudio 2008에서는 사용할 수 없었는데, 그것은 이번에 나온 것도 마찬가지 인듯하더군요. 한글판을 사용하시는 분들은 조금 더 기다리셔야 할 듯 하네요.&lt;/P&gt;
&lt;br /&gt;
&lt;P&gt;참으로 새로운 공부할 것들이 쏟아져 나와서 좀 부담스럽기는 하지만, 즐거운 하루였습니다.&lt;/P&gt;</description>
			<category>개발로그</category>
			<category>ASP.NET 3.5 Extensions</category>
			<category>ASP.NET MVC</category>
			<category>MIX08</category>
			<category>SilverLight</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/32</guid>
			<comments>http://blog.ntils.com/entry/MIX08-%EA%B3%BC-%EA%B3%B5%EB%B6%80%ED%95%A0-%EA%B2%83%EB%93%A4%EC%9D%98-%EB%9F%AC%EC%89%AC#entry32comment</comments>
			<pubDate>Thu, 06 Mar 2008 23:51:00 +0900</pubDate>
		</item>
		<item>
			<title>2008년 회사내에서 이루고자 하는 일들</title>
			<link>http://blog.ntils.com/entry/2008%EB%85%84-%ED%9A%8C%EC%82%AC%EB%82%B4%EC%97%90%EC%84%9C-%EC%9D%B4%EB%A3%A8%EA%B3%A0%EC%9E%90-%ED%95%98%EB%8A%94-%EC%9D%BC%EB%93%A4</link>
			<description>&lt;p&gt;2008년 새해가 밝았습니다. 모두 올 한해 건강하시고 행복이 가득하시길 바라며, 큰 자신의 발전의 이루시길 기원합니다.&lt;/p&gt;  &lt;p&gt;새해를 맞으며 올 한해 제가 업무적으로 이루고자하는 것들을 정리해보았습니다. 올해의 가장 큰 주제는 나날이 발전하고 혁신을 이루고 있는 개발환경에서 제가 속해있는 조직이 이에 발맞추어 나가지 못하고 있다는 생각이 그동안 계속들었는데,&amp;#160; 제 자신의 직위를 핑계삼아 남이 바꾸어 주길 바라는 것이 아니라 내 스스로 바꾸어 갈 수 있는 길을 제시하고 동료들을 설득하는 것을 목표로 하였습니다.&lt;/p&gt;  &lt;p&gt;이루고자 하는 목표를 우선순위가 아닌 이루고자 하는 순서대로 정리 하자면,&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;팀 및 회사의 개발조직내에 형상관리 및 협업시스템의 정의 및 활용성 강화&lt;/strong&gt;      &lt;br /&gt;현재 소속된 팀에서는 Visual SourceSafe를 이용하여 소스관리를 실시를 하고 있지만, 사실 소스의 보관을 위한 목적이외에 활용되지 못하고 있습니다.      &lt;br /&gt;이에 우선 이루고자 하는것이 Subversion 또는 Team Foundation Server의 도입 및 이슈트랙킹시스템의 도입 과 각 개발자의 협업 프로세스를 확립하는 것을 두고 있습니다.      &lt;br /&gt;개인별로 소스가 관리되고 자신이 맡은 부분의 소스가 완료되고 난 이후에 소스관리서버로 등록하는 형식으로 이루어지고 있는 개발방법을 개발조직 전체가 공유하고 함께 고민하는 형태로 바꾸어 나갈 수 있도록 노력할 예정이며, 이 부분이 어느정도 정착이 되면 Team Build 및 Wiki의 도입까지를 목표로 삼고 있습니다.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;기술 세미나의 정례화&lt;/strong&gt;      &lt;br /&gt;현재 저희 조직내에서 비 정기적으로 이루어지고 있는 기술관련 사내 세미나를 정례화하고 많은 사람이 자율적으로 참여할 수 있는 기반을 닦을수 있도록 노력하고자 합니다.      &lt;br /&gt;다수의 사람들이 스스로 자기개발을 위해 노력하고 있지만, 공유가 되지 못하고 있는데, 다른 사람들과 공유하는 시스템을 정착시킬 수 있도록 노력할 것입니다.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Silverlight 및 .NET Framework 3.5, 웹표준을 적용한 프로젝트 진행&lt;/strong&gt;      &lt;br /&gt;신규 프로젝트로 진행예정인 프로젝트 중 에서 올해 가장 큰 이슈가 될 것으로 보이는 Silverlight 및 .NET Framework 3.5, 웹표준등을 적용하여 프로젝트를 진행할 수 있도록 스스로 프로토타입 및 비전을 제시하여 아직 ActiveX 및 IE에 종속적인 웹개발에서 탈피할 수 있도록 팀원들을 설득해 나갈 예정입니다.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;C# 및 Microsoft기반의 기반의 기술에만 얽매이는 것이 아닌 다양한 기술의 접목&lt;/strong&gt;      &lt;br /&gt;개발 생산성 면에서 각광을 받고 있는 Ruby On Rails 및 Phyton등을 실제 프로젝트에 적용하기는 힘들 수 있겠지만, 개발자 자신들의 안목과 기술적 능력을 키워줄 수 있는 기술들을 도입하고 활용할 수 있도록 노력할 예정입니다.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Enterprise 2.0 개념에 부합하는 신규 Groupware 개발 및 출시&lt;/strong&gt;      &lt;br /&gt;현재 다른 프로젝트에 밀려 하반기로 일정이 잡혀있는 Groupware 신규버전의 개발시 주도적인 역활을 담당하여 Enterprise 2.0에 부합하고, 높은 유연성과 개방성을 가지는 소프트웨어를 개발할 수 있도록 아키텍쳐 설계 및 개발에서 최선을 다할 예정입니다.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;이번 년도를 제 스스로도 그렇지만 팀 및 회사의 개발 수준이 한 단계 진일보 할 수 있도록, 항상 적극적으로 의사를 표현하고 솔선수범하여, 타성에 젓어있는 선배 개발자와 길을 찾지 못해 헤매고 있는 후배 개발자들에 모범이 될 수 있도록 노력할 것입니다.&lt;/p&gt;  &lt;p&gt;나 스스로를 다잡기 위해 쓴 글을 끝까지 읽어주셨다면 정말 감사합니다.&lt;/p&gt;  &lt;p&gt;2008년 1월 노휘겸&lt;/p&gt;</description>
			<category>생활로그</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/28</guid>
			<comments>http://blog.ntils.com/entry/2008%EB%85%84-%ED%9A%8C%EC%82%AC%EB%82%B4%EC%97%90%EC%84%9C-%EC%9D%B4%EB%A3%A8%EA%B3%A0%EC%9E%90-%ED%95%98%EB%8A%94-%EC%9D%BC%EB%93%A4#entry28comment</comments>
			<pubDate>Fri, 04 Jan 2008 09:15:08 +0900</pubDate>
		</item>
		<item>
			<title>VisualStudio 2008 Keybinding Reference Poster</title>
			<link>http://blog.ntils.com/entry/VisualStudio-2008-Keybinding-Reference-Poster</link>
			<description>&lt;P&gt;Visual Studio 2008 RTM버전이 출시되면서 Keybinding Poster가 나왔군요.&lt;/P&gt;
&lt;P&gt;Visual Studio의 단축키 일람을 일목요연하게 표시해놓은 포스터입니다. 한번씩 시간날때 마다 익혀두면 상당히 유용하더라구요. &lt;br /&gt;아래에서 다운로드 하실 수 있습니다.&lt;/P&gt;
&lt;P&gt;Visual C# : &lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=e5f902a8-5bb5-4cc6-907e-472809749973&amp;amp;displaylang=en&quot; target=_blank&gt;Visual C# 2008 Keybinding Reference Poster&lt;/A&gt; &lt;br /&gt;Visual Basic : &lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=255b8cf1-f6bd-4b55-bb42-dd1a69315833&amp;amp;displaylang=en&quot; target=_blank&gt;Visual Basic 2008 Keybinding Reference Poster&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;혹시나 필요하실지 몰라 2005버전 다운로드 링크도 걸어둡니다.&lt;/P&gt;
&lt;P&gt;Visual C# 2005 : &lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=c15d210d-a926-46a8-a586-31f8a2e576fe&amp;amp;DisplayLang=en&quot; target=_blank&gt;Visual C# 2005 Keyboard Shortcut Reference Poster&lt;/A&gt; &lt;br /&gt;Visual Basic 2005 : &lt;A href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=6BB41456-9378-4746-B502-B4C5F7182203&amp;amp;displaylang=en&quot; target=_blank&gt;Visual Basic 2005 Keyboard Shortcut Reference Poster&lt;/A&gt;&lt;/P&gt;</description>
			<category>Tools / Framework</category>
			<category>Keybinding</category>
			<category>microsoft</category>
			<category>Visual Studio 2008</category>
			<author>WHiSTLE</author>
			<guid>http://blog.ntils.com/27</guid>
			<comments>http://blog.ntils.com/entry/VisualStudio-2008-Keybinding-Reference-Poster#entry27comment</comments>
			<pubDate>Wed, 28 Nov 2007 09:30:11 +0900</pubDate>
		</item>
	</channel>
</rss>
