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

<channel>
	<title>Ioriy2k&#039;s Knowledgebase &#187; Borland C++ Builder</title>
	<atom:link href="http://ioriy2k.pe.kr/archives/category/borland-c-builder/feed" rel="self" type="application/rss+xml" />
	<link>http://ioriy2k.pe.kr</link>
	<description>ioriy2k의 여러가지 지식 저장소</description>
	<lastBuildDate>Mon, 06 Feb 2012 11:01:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Borland C++ Builder 6: Doxygen으로 Source Code 문서화하기 (Part 2)</title>
		<link>http://ioriy2k.pe.kr/archives/3385</link>
		<comments>http://ioriy2k.pe.kr/archives/3385#comments</comments>
		<pubDate>Mon, 24 Oct 2011 00:00:34 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Borland C++ Builder]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Borland]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Doxygen]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3385</guid>
		<description><![CDATA[이전 Post에 이어서 Borland C++ Builder 6로 작성한 Project를 문서화하기 위해서 Doxygen을 사용하는 방법에 대해 계속해서 알아보겠습니다. 이번 Post에서는 Doxygen의 GUI Configuration Tool인 Doxywizard를 사용하여 편리하게 HTML, CHM 문서를 생성하는 방법을 설명합니다. 4. Doxywizard로 HTML 문서 만들기 Doxygen은 Command-line Tool이기 때문에 Command Interpreter(cmd.exe)를 사용하여 명령행으로 실행해야 합니다. 그리고 Doxygen을 사용하기 위해서는 Doxygen이 문서를 생성하기 위한 [...]]]></description>
			<content:encoded><![CDATA[<p>이전 Post에 이어서 Borland C++ Builder 6로 작성한 Project를 문서화하기 위해서 Doxygen을 사용하는 방법에 대해 계속해서 알아보겠습니다.</p>
<p>이번 Post에서는 Doxygen의 GUI Configuration Tool인 Doxywizard를 사용하여 편리하게 HTML, CHM 문서를 생성하는 방법을 설명합니다.</p>

<h3>4. Doxywizard로 HTML 문서 만들기</h3>
<p>Doxygen은 Command-line Tool이기 때문에 Command Interpreter(cmd.exe)를 사용하여 명령행으로 실행해야 합니다. 그리고 Doxygen을 사용하기 위해서는 Doxygen이 문서를 생성하기 위한 Configuration File이 필요합니다.</p>
<p>그러나 Doxygen의 Front-end인 Doxywizard를 사용하면 쉽게 Configuration File 만들 수 있고, 문서도 또한 쉽게 생성할 수 있습니다.</p>
<p>이번에는 가장 기본적인 문서인 HTML 문서를 생성하기 위해 Doxywizard를 사용하여 설정하는 방법과 실제 문서를 생성하는 방법을 알아봅시다.</p>
<blockquote><p>
Doxygen의 수많은 설정 Option을 설명할 수는 없기 때문에 Doxywizard를 처음 실행한 Default Option에서 꼭 필요하거나 설정하면 편리한 Option만 간단하게 설명합니다. </p>
<p>자세한 Option과 설명이 필요하다면 Doxygen Manual의 <a href="http://www.stack.nl/~dimitri/doxygen/config.html" target="_blank">Reference Manual &#8211; Configuration Section</a>을 참고하기 바랍니다.
</p></blockquote>
<p><span id="more-3385"></span></p>
<div id="attachment_3266" class="wp-caption aligncenter" style="width: 268px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/03-Start-Menu-Doxywizard.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/03-Start-Menu-Doxywizard-258x300.png" alt="Start Menu - Doxywizard" title="Start Menu - Doxywizard" width="258" height="300" class="size-medium wp-image-3266" /></a><p class="wp-caption-text">Start Menu - Doxywizard</p></div>
<p>Doxywizard를 실행하기 위해서 시작 -> 프로그램 -> doxygen -> Doxywizard를 Click합니다.</p>
<div id="attachment_3403" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-Save.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-Save-300x233.png" alt="Doxywizard - Save" title="Doxywizard - Save" width="300" height="233" class="size-medium wp-image-3403" /></a><p class="wp-caption-text">Doxywizard - Save</p></div>
<p>Doxywizard가 위와 같이 실행되면 먼저 File -> Save를 Click하여 Doxygen Configuration을 저장할 File을 생성합니다. File의 위치는 Source Code Folder에서 문서 생성을 하위 Folder를 새로 만들어서 그 곳에 저장하는 것이 사용하기에 편리합니다.</p>
<p>Configuration File을 저장하면 Step 1에 Configuration File이 위치한 경로가 표시됩니다. 생성되는 HTML, CHM 문서는 이 곳에 생성됩니다. Configuration File에 Option 중 경로로를 입력해야 하는 Option이면 대부분 이 Folder에서 부터 상대경로(ex. ../Test)로 찾아가니 이점을 유의하기 바랍니다.</p>
<p>Step 2의 각 Tab에서는 설정을 관리하고 문서를 생성합니다. Wizard Tab으로 간단하게 설정할 수 있지만 Option이 너무 적기 때문에 Expert Tab에서 설정하는 것을 예로 들어 설명하겠습니다. (*로 표시한 것은 반드시 설정해야 합니다.)</p>
<h4>4.1 Project Section</h4>
<div id="attachment_3267" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/04-Doxywizard-Project.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/04-Doxywizard-Project-300x233.png" alt="Doxywizard - Project" title="Doxywizard - Project" width="300" height="233" class="size-medium wp-image-3267" /></a><p class="wp-caption-text">Doxywizard - Project</p></div>
<p>Project Section에서는 문서화하려는 대상 Project와 관련된 Option을 설정할 수 있습니다. Default 상태에서 다음과 같은 Option을 설정합니다.</p>
<ul>
<li>PROJECT_NAME : Project의 이름을 입력합니다. Project 이름은 나중에 생성된 HTML 문서의 최상단에 위치하게 됩니다.</li>
<li>OUTPUT_LANGUAGE<sup>*</sup> : 생성된 문서에서 사용하는 문자열에 대한 언어를 설정합니다. <strong>Korean</strong>으로 설정하면 생성된 문서에서 Doxygen이 자동으로 입력하는 문자열이 모두 한국어로 표시됩니다.</li>
<li>TAB_SIZE : Source Code를 표시할 때 Tab 간격을 설정합니다. 각자 취향에 맞춰서 크기를 입력합니다.</li>
<li>BUILTIN_STL_SUPPORT : Source Code에 STL를 사용할 경우(ex. std::vector) STL의 Source가 Project 내에 존재하지 않더라도 스스로 판단하여 관계를 표시합니다. STL를 상속받아서 사용하거나 Data Structure로 사용한 경우에는 <strong>Check</strong>하는 편이 좋습니다.</li>
</ul>
<h4>4.2 Build Section</h4>
<div id="attachment_3268" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/05-Doxywizard-Build.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/05-Doxywizard-Build-300x233.png" alt="Doxywizard - Build" title="Doxywizard - Build" width="300" height="233" class="size-medium wp-image-3268" /></a><p class="wp-caption-text">Doxywizard - Build</p></div>
<p>Build Section에서는 Source Code에서 문서화를 할 요소들을 선택할 수 있습니다. 다음과 같은 Option을 취향에 맞게 설정합니다.</p>
<ul>
<li>EXTRACT_ALL : 상당히 세밀하게 Source Code에서 각 요소들을 분별하여 문서를 생성합니다. Private Class나 Static Member를 제외한 대부분의 요소에 대한 정보를 포함합니다. Source Code에 대한 자세한 정보를 얻기 위한다면 Check합니다.</li>
<li>EXTRACT_PRIVATE : Check할 경우 Class의 Private Member도 문서에 포함됩니다. </li>
<li>EXTRACT_STATIC : Check할 경우 Static Membr도 문서에 포함됩니다.</li>
<li>SHOW_DIRECTORIES : Source가 여러 Folder로 되어있고 그 Folder들이 문서 생성을 위한 대상 Folder일 경우, Check하면 Folder의 구조를 생성된 문서에서 확인할 수 있습니다.</li>
</ul>
<h4>4.3 Input Section</h4>
<div id="attachment_3309" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-Input-Section.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-Input-Section-300x233.png" alt="Doxywizard - Input" title="Doxywizard - Input" width="300" height="233" class="size-medium wp-image-3309" /></a><p class="wp-caption-text">Doxywizard - Input</p></div>
<p>Input Section은 Doxygen으로 문서를 생성할 Source Code의 위치를 지정하고 그와 관련된 Option을 설정합니다.</p>
<ul>
<li>INPUT<sup>*</sup> : Doxygen으로 문서를 생성할 대상 Folder를 지정합니다. 위의 그림과 같이 오른쪽에 있는 각 Button을 통해서 개별 File이나 Directory를 추가할 수 있습니다. 추가되는 경로는 위의 Step1에 설정된 경로를 기준으로 상대경로로 입력됩니다. 물론 절대경로로도 입력할 수 있으나 추천하지는 않습니다.</li>
<li>INPUT_ENCODING<sup>*</sup> : Doxygen이 문서를 생성하기 위해 Source Code Parsing을 하기 위해서 Source Code에 대한 Encoding을 지정합니다. Borland C++ Builder 6로 생성한 Source에 한글이 들어가 있다면 <strong>CP949</strong>를 입력합니다.</li>
<li>RECURSIVE<sup>*</sup> : 위에 INPUT에 설정한 Folder의 하위 Folder가 존재하고 그 Folder에 Source Code가 존재한다면 <strong>Check</strong>하여 모두 검색하도록 합니다. Uncheck일 경우 하위 Folder를 검색하지 않습니다.</li>
</ul>
<h4>4.4 Source Browser Section</h4>
<div id="attachment_3270" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/07-Doxywizard-Source-Browser.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/07-Doxywizard-Source-Browser-300x233.png" alt="Doxywizard - Source Browser" title="Doxywizard - Source Browser" width="300" height="233" class="size-medium wp-image-3270" /></a><p class="wp-caption-text">Doxywizard - Source Browser</p></div>
<p>Source Browser Section에서는 생성할 문서에 Source Code의 내용을 포함시키는 것과 관련된 Option을 설정할 수 있습니다.</p>
<ul>
<li>SOURCE_BROWSER : Check할 경우 생성할 문서에 Source Code의 Header 뿐만 아니라 Source의 내용이 추가되어 저장됩니다.</li>
<li>INLINE_SOURCES : Check할 경우 생성할 문서에 각 Method나 Enum Type에 대한 설명 바로 밑에 해당 Code가 바로 표시됩니다.</li>
</ul>
<h4>4.5 HTML Section</h4>
<div id="attachment_3308" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-HTML-Section.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-HTML-Section-300x233.png" alt="Doxywizard - HTML" title="Doxywizard - HTML" width="300" height="233" class="size-medium wp-image-3308" /></a><p class="wp-caption-text">Doxywizard - HTML</p></div>
<p>HTML 문서를 생성하기 위한 Option을 설정하는 Section입니다. Default 설정이 HTML 문서를 생성하게 되어있기 때문에 별로 수정할 것은 없으나 아래의 Option을 설정하면 편리합니다.</p>
<ul>
<li>GENERATE_TREEVIEW : Check할 경우 CHM 문서와 같이 생성된 HTML문서의 왼쪽 Frame의 전체 문서의 구조가 Treeview 형태로 표시됩니다.</li>
</ul>
<h4>4.6 LaTeX Section</h4>
<div id="attachment_3272" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/09-Doxywizard-LaTeX.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/09-Doxywizard-LaTeX-300x233.png" alt="Doxywizard - LaTeX" title="Doxywizard - LaTeX" width="300" height="233" class="size-medium wp-image-3272" /></a><p class="wp-caption-text">Doxywizard - LaTeX</p></div>
<p>LaTeX는 문서 조판 System으로서 역사가 깊은 Program입니다. LaTex을 사용하면(System에 LaTeX이 설치되어 있는 경우) Source Code에 대한 PDF문서를 생성할 수 있지만, 여기서는 HTML문서를 생성할 것이므로 다음과 같이 설정합니다.</p>
<ul>
<li>GENERATE_LATEX<sup>*</sup> : <strong>Uncheck</strong>하면 LaTeX 문서를 생성하지 않습니다.</li>
</ul>
<h4>4.7 Dot Section</h4>
<div id="attachment_3273" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/10-Doxywizard-Dot.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/10-Doxywizard-Dot-300x233.png" alt="Doxywizard - Dot" title="Doxywizard - Dot" width="300" height="233" class="size-medium wp-image-3273" /></a><p class="wp-caption-text">Doxywizard - Dot</p></div>
<p>Dot Section에서는 Graphviz Package의 Program 중 하나인 Dot을 사용하여 Class Diagram이나 호출 관계도 등을 그리는 것에 대한 Option을 설정할 수 있습니다.</p>
<ul>
<li>HAVE_DOT<sup>*</sup> : Dot이 System에 설치되어 있는지를 나타내는 Option입니다. 이전 Post에서 Graphviz를 설치했기 때문에 <strong>Check</strong>합니다.</li>
<li>UML_LOOK<sup>*</sup> : <strong>Check</strong>할 경우 Class의 상속 Diagram과 협업 Diagram을 UML에서 정의한 Style로 그립니다.</li>
</ul>
<p>위와 같이 Option을 설정할 경우 Class의 상속 Diagram과 협업 Diagram이 아래와 같이 표시됩니다.</p>
<div id="attachment_3370" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML-Class-Diagram.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML-Class-Diagram-300x180.png" alt="HTML - Class Diagram" title="HTML - Class Diagram" width="300" height="180" class="size-medium wp-image-3370" /></a><p class="wp-caption-text">HTML - Class Diagram</p></div>
<h4>4.8 Run</h4>
<div id="attachment_3301" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-Run-Tab.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/Doxywizard-Run-Tab-300x233.png" alt="Doxywizard - Run Tab" title="Doxywizard - Run Tab" width="300" height="233" class="size-medium wp-image-3301" /></a><p class="wp-caption-text">Doxywizard - Run Tab</p></div>
<p>이제 설정이 완료되었습니다. File -> Save를 Click하여 변경한 내용을 저장하고 Run Tab에서 Run doxygen Button을 Click하면 HTML문서를 생성합니다.</p>
<p>특별한 Error가 없다면 &quot;Doxygen has finished&quot;라는 Message가 표시될 것입니다. 문제가 생겼다면 설정을 다시 한번 확인해보기 바랍니다. Input Section의 INPUT Option에서 Source Code의 경로가 잘못되어 있는 것이 아니라면 대부분 제대로 생성될 것입니다.</p>
<p>생성된 HTML문서를 확인하기 위해서 아래의 Show HTML output Button을 Click하면 System의 기본 Browser를 통해서 생성된 HTML 문서를 확인할 수 있습니다. (생성된 문서는 Step1에 설정한 경로\html\index.html을 열어서 확인할 수도 있습니다.)</p>
<h3>5. Doxywizard로 CHM 문서 만들기</h3>
<p>Doxygen으로 생성한 HTML 문서는 여러 HTML과 CSS, Image 등으로 구성되어 있기 때문에 문서를 보관하거나 이동해서 가지고 다니는 용도로는 조금 부적합합니다.</p>
<p>Doxygen으로 생성할 수 있는 여러 문서 Type 중에서 CHM 문서를 생성하면, 하나의 File로 문서를 보관할 수 있고 또한 문서 내용을 검색할 수 있으며 굳이 문서를 읽기 위해 Viewer를 설치할 필요가 없이 Windows 환경에서 바로 열람이 가능합니다.</p>
<p>이번에는 Doxywizard를 사용해서 Source Code에 대한 CHM 문서를 만들어 봅시다.</p>
<h4>5.1 HTML Help Workshop 설치</h4>
<p>CHM은 Windows의 도움말 File(Microsoft Compiled HTML Help)의 확장자로 실제로는 HTML을 압축한 형태를 띠고 있습니다. 이 CHM 문서를 생성하기 위해서는 MS에서 제공하는 HTML Help Workshop이라는 Program을 설치해야 합니다.</p>
<div id="attachment_3285" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/06-HTML-Help-Workshop-Download.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/06-HTML-Help-Workshop-Download-300x187.png" alt="HTML Help Workshop Download" title="HTML Help Workshop Download" width="300" height="187" class="size-medium wp-image-3285" /></a><p class="wp-caption-text">HTML Help Workshop Download</p></div>
<p>HTML Help Workshop은 MS에서 무료로 배포하고 있으므로 <a href="http://www.microsoft.com/download/en/details.aspx?id=21138" target="_blank">HTML Help Workshop Page</a>에 들어가서 위의 그림과 같이 htmlhelp.exe를 Download한 후 설치합니다.</p>
<h4>5.2 Doxywizard 설정 (HTML Section)</h4>
<div id="attachment_3271" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/08-Doxywizard-HTML.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/08-Doxywizard-HTML-300x233.png" alt="Doxywizard - HTML" title="Doxywizard - HTML" width="300" height="233" class="size-medium wp-image-3271" /></a><p class="wp-caption-text">Doxywizard - HTML</p></div>
<p>CHM을 생성할 때의 Doxywizard의 설정은 위의 HTML 문서를 생성할 때와 동일합니다. 다만 HTML Section에서 아래와 같은 Option을 더 설정해야 합니다.</p>
<ul>
<li>GENERATE_HTMLHELP<sup>*</sup>: <strong>Check</strong>하면 CHM 문서를 생성합니다.</li>
<li>CHM_FILE<sup>*</sup>: CHM File이 저장되는 경로와 File명을 지정합니다. 유의할 것은 다른 설정과 달리 여기의 기본 Folder는 &#8220;Step1에서 지정한 Folder\html&#8221;입니다.</li>
<li>HHC_LOCATION<sup>*</sup>: HTML Help Workshop에서 CHM을 생성하는 Console Program인 hhc.exe의 경로를 지정합니다. 경로는 다음과 같습니다.<br />
32bit OS &#8211; C:\Program Files\HTML Help Workshop\hhc.exe<br />
64bit OS &#8211; C:\Program Files (x86)\HTML Help Workshop\hhc.exe</li>
<li>CHM_INDEX_ENCODING<sup>*</sup>: CHM 문서의 Index Encoding을 지정합니다. 한글이 사용된 경우 <strong>CP949</strong>를 입력합니다.</li>
</ul>
<blockquote><p>GENERATE_HTMLHELP를 Check하여 CHM 문서를 생성할 경우, HTML 문서의 왼쪽 Frame에 Treeview를 만들어 주는 GENERATE_TREEVIEW Option은 동작하지 않습니다.</p></blockquote>
<h4>5.3 Run</h4>
<div id="attachment_3274" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/11-Doxywizard-Run.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/11-Doxywizard-Run-300x233.png" alt="Doxywizard - Run" title="Doxywizard - Run" width="300" height="233" class="size-medium wp-image-3274" /></a><p class="wp-caption-text">Doxywizard - Run</p></div>
<p>File -> Save로 설정을 저장한 다음, Run Tab에서 Run doxygen Button을 Click하면 CHM 문서가 생성됩니다. 위의 그림에 &#8220;Running html help compiler&#8221;라는 Text를 통해서 CHM 문서가 생성된다는 것을 확인할 수 있습니다.</p>
<div id="attachment_3368" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/CHM-Mainpage.png" rel="lightbox[3385]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/CHM-Mainpage-300x180.png" alt="CHM - Mainpage" title="CHM - Mainpage" width="300" height="180" class="size-medium wp-image-3368" /></a><p class="wp-caption-text">CHM - Mainpage</p></div>
<p>만들어진 CHM 문서는 CHM_FILE Option에 설정한 경로에 해당 이름으로 생성됩니다. Double-click해서 문서를 열면 위와 같은 모습이 될 것입니다.</p>
<h3>6. 마치면서&#8230;</h3>
<p>이상으로 Doxygen을 사용하여 Borland C++ Builder 6로 구현한 Project를 문서화하는 방법을 알아봤습니다. </p>
<p>Project를 수행하는 것은 각자 개개인의 Programming 실력을 요구하지만, 또한 그것과 더불어 개발자 간의 Communication이 필요합니다. Doxygen을 이용한 문서화를 통해서 Project 구현에 대한 개발자 간의 Communication이 더 증진되기 바랍니다.</p>
  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/"><img src="http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/">Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3385/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Borland C++ Builder 6: Doxygen으로 Source Code 문서화하기 (Part 1)</title>
		<link>http://ioriy2k.pe.kr/archives/3259</link>
		<comments>http://ioriy2k.pe.kr/archives/3259#comments</comments>
		<pubDate>Wed, 19 Oct 2011 00:00:56 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Borland C++ Builder]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Borland]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Doxygen]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3259</guid>
		<description><![CDATA[Doxygen은 여러 Programming Language를 위한 문서화 도구입니다. Source Code를 문서화한다는 것은 Code내의 주석을 통하여 Code의 구조와 Interface를 문서로 만드는 것을 의미합니다. Doxygen을 사용하면 C++, C, C#, Fortran, Java, Objective-C, PHP, Python 등의 언어를 사용한 Source Code에 Doxygen에서 정의한 Style로 주석을 작성하면 자동으로 문서를 생성할 수 있게 됩니다. 생성된 문서는 마치 MSDN이나 기타 Live API Document와 [...]]]></description>
			<content:encoded><![CDATA[<p>Doxygen은 여러 Programming Language를 위한 문서화 도구입니다. Source Code를 문서화한다는 것은 Code내의 주석을 통하여 Code의 구조와 Interface를 문서로 만드는 것을 의미합니다.</p>
<p>Doxygen을 사용하면 C++, C, C#, Fortran, Java, Objective-C, PHP, Python 등의 언어를 사용한 Source Code에 Doxygen에서 정의한 Style로 주석을 작성하면 자동으로 문서를 생성할 수 있게 됩니다.</p>
<p>생성된 문서는 마치 MSDN이나 기타 Live API Document와 같은 형식으로 Web Browser, PDF Reader, CHM Help 등으로 열람이 가능합니다. 이것은 여럿이 동시에 작업하는 Project에 더욱 유용합니다.</p>
<p>이번 Post에서는 Borland C++ Builder 6로 작성한 Project를 Doxygen을 사용하여 문서화하는 방법을 다루도록 하겠습니다.</p>

<h3>1. Doxygen 설치</h3>
<p>Doxygen 자체는 Source Code의 주석을 사용하여 문서를 자동으로 생성하는 도구로서 IDE와 통합되어 동작하지 않습니다. 다만 Doxygen에서 정의한 Style에 주석을 Project 개발시에 Source Code에 작성하면 됩니다. (Java, Flex의 경우에는 문서화 도구인 JavaDoc, ASDoc Style로 작성한 주석을 바로 Parsing하여 Eclipse에서 해당 Class나 Method에 대한 주석을 바로 확인할 수 있습니다.)</p>
<p><span id="more-3259"></span></p>
<p>또한 Doxygen은 Cross-Platform Tool로서 Windows, Mac OS X, Linux (or Unix-like OS)에서 사용이 가능합니다. 이것은 Windows Application의 Source Code를 Doxygen에서 지정한 형식으로 주석을 작성해 놓으면, Web Server가 동작하는 다른 OS에서 Doxygen을 사용하여 Source Code 문서를 생성할 수 있다는 것을 말합니다. 한마디로 해당 Project에 대한 API Web Service(like MSDN)를 운영할 수 있게 됩니다.</p>
<p>이제 어느정도 설명이 끝났으니 설치를 해보도록 합시다. <a href="http://doxygen.org" target="_blank">Doxygen의 Homepage</a>에 접속합니다.</p>
<div id="attachment_3280" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/01-Doxygen-Site.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/01-Doxygen-Site-300x187.png" alt="Doxygen Site" title="Doxygen Site" width="300" height="187" class="size-medium wp-image-3280" /></a><p class="wp-caption-text">Doxygen Site</p></div>
<p>Program을 Download하기 위해서 오른쪽의 Download를 Click합니다.</p>
<div id="attachment_3281" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/02-Doxygen-Download.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/02-Doxygen-Download-300x187.png" alt="Doxygen Download" title="Doxygen Download" width="300" height="187" class="size-medium wp-image-3281" /></a><p class="wp-caption-text">Doxygen Download</p></div>
<p>여러 OS에 대한 Binary가 존재하는데 여기에서는 32-bit binary distribution for Windows XP/Vista/7 Section의 설치 File을 Download합니다.</p>
<div id="attachment_3264" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/01-Doxygen-Install.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/01-Doxygen-Install-300x231.png" alt="Doxygen Install" title="Doxygen Install" width="300" height="231" class="size-medium wp-image-3264" /></a><p class="wp-caption-text">Doxygen Install</p></div>
<p>Download한 설치 File을 설치합니다. 설치 중간에 위와 같이 Doxygen 구성요소가 나오는데 여기에서 Doxywizard GUI를 선택합니다. </p>
<p>Doxywizard를 사용하면 Command-line 기반의 Doxygen을 좀 더 편리하게 쓸 수 있습니다.</p>
<div id="attachment_3282" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/03-Graphviz-Site.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/03-Graphviz-Site-300x187.png" alt="Graphviz Site" title="Graphviz Site" width="300" height="187" class="size-medium wp-image-3282" /></a><p class="wp-caption-text">Graphviz Site</p></div>
<p>그리고 한 가지 더 설치해야 할 Tool이 있습니다. Doxygen은 문서를 생성할 때 Class나 Method의 관계를 나타내기 위해서 Graphviz라는 Tool을 사용합니다. 이번에는 Graphviz를 설치하도록 합시다.</p>
<p><a href="http://www.graphviz.org" target="_blank">Graphviz의 Homepage</a>에서 왼쪽 Download를 Click합니다.</p>
<div id="attachment_3283" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/04-Graphiviz-License-Agreement.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/04-Graphiviz-License-Agreement-300x187.png" alt="Graphiviz License Agreement" title="Graphiviz License Agreement" width="300" height="187" class="size-medium wp-image-3283" /></a><p class="wp-caption-text">Graphiviz License Agreement</p></div>
<p>License 동의를 위해서 맨 아래쪽의 Agree를 Click합니다.</p>
<div id="attachment_3284" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/05-Graphviz-Download.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/05-Graphviz-Download-300x187.png" alt="Graphviz Download" title="Graphviz Download" width="300" height="187" class="size-medium wp-image-3284" /></a><p class="wp-caption-text">Graphviz Download</p></div>
<p>Windows &#8211; Stable and Development Windows Install Packages를 Click하여 Download한 후 설치하면 모든 준비는 완료됩니다.</p>
<h3>2. Source Code에 문서화를 위한 Comment 작성</h3>
<div id="attachment_3367" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/BCB6-Doxygen-Test-Project.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/BCB6-Doxygen-Test-Project-300x187.png" alt="BCB6 - Doxygen Test Project" title="BCB6 - Doxygen Test Project" width="300" height="187" class="size-medium wp-image-3367" /></a><p class="wp-caption-text">BCB6 - Doxygen Test Project</p></div>
<p>설치가 모두 끝났으니 이제 Source Code에 Doxygen Style의 주석을 달아봅시다. Style 및 사용하는 Metatag는 여러가지가 있는데 여기서는 간단하게 주로 사용하는 것을 Template 형태로 적어보도록 하겠습니다.</p>
<p>좀 더 자세한 내용을 알기 원한다면 아래의 Doxygen Manual을 참조하기 바랍니다.</p>
<ul>
<li>Online Manual : <a href="http://www.stack.nl/~dimitri/doxygen/download.html#latestman" target="_blank">http://www.stack.nl/~dimitri/doxygen/download.html#latestman</a></li>
<li>설치된 Manual : C:\Program Files\doxygen\html\index.html<br />
(64bit OS일 경우에는 C:\Program Files (x86)\doxygen\html\index.html)</li>
</ul>
<h4>2.1 Class comment template</h4>
<p>Class에 대한 주석을 작성할 때는 아래와 같이 작성하면 됩니다. 아래의 예제에서는 Class에 대한 주석 뿐만 아니라, 전역 변수, Method에 대한 주석도 설명하고 있습니다.</p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* 짧은 Class 설명<br />
&nbsp;*<br />
&nbsp;* @author &nbsp;ioriy2k &lt;ioriy2k@ioriy2k.pe.kr&gt;<br />
&nbsp;*<br />
&nbsp;* 긴 Class 설명을 여기에 적습니다.<br />
&nbsp;*/</span><br />
<span style="color: #0000ff;">class</span> Test <span style="color: #008000;">&#123;</span><br />
<br />
<span style="color: #0000ff;">private</span><span style="color: #008080;">:</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666;">/// 전역변수에 대한 한 줄 설명</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">bool</span> test_flag<span style="color: #008080;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp; &nbsp; &nbsp;* 전역변수에 대한 긴 설명을 작성할 수 있습니다.<br />
&nbsp; &nbsp; &nbsp;* 여러 줄로 표현이 가능합니다.<br />
&nbsp; &nbsp; &nbsp;*/</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">bool</span> test_flag1<span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666;">/// Method에 대한 한 줄 설명 &nbsp; &nbsp;</span><br />
&nbsp; &nbsp; Test<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></div></td></tr></tbody></table></div>
<p>위와 같은 주석을 작성한 후, Doxygen으로 문서를 생성한 모습은 다음과 같습니다.</p>
<div id="attachment_3378" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML_Class_Description.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML_Class_Description-300x180.png" alt="HTML - Class Description" title="HTML - Class Description" width="300" height="180" class="size-medium wp-image-3378" /></a><p class="wp-caption-text">HTML - Class Description</p></div>
<h4>2.2 Method comment template</h4>
<p>Class의 Metho에 대한 주석을 작성할 때는 다음과 같이 작성하면 됩니다.</p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* 짧은 Method 주석<br />
&nbsp;*<br />
&nbsp;* 긴 Method 주석을 여기에 작성합니다.<br />
&nbsp;*<br />
&nbsp;* @param &nbsp; &nbsp;run &nbsp; &nbsp;Parameter명을 먼저 적고 그 이후에 변수에 대한 정보를 적습니다.<br />
&nbsp;* @return return 값이 존재하는 경우 Return 값에 대한 정보를 적습니다.<br />
&nbsp;*/</span><br />
<span style="color: #0000ff;">bool</span> Test<span style="color: #008080;">::</span><span style="color: #007788;">RunTest</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> run<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
<br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Parameter가 여러 개일 경우에는 Parameter의 순서대로 @param을 사용하여 설명을 적습니다. 개인적으로는 Debugging을 하기 위해서 header를 반복해서 살펴야 하는 Case를 가능하면 피하기 위해서 Method 주석은 header보다는 cpp에 적는 편입니다.</p>
<p>위와 같이 작성한 주석을 가지고 Doxygen으로 문서를 생성한 모습은 다음과 같습니다.</p>
<div id="attachment_3372" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML-Method-Description.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML-Method-Description-300x180.png" alt="HTML - Method Description" title="HTML - Method Description" width="300" height="180" class="size-medium wp-image-3372" /></a><p class="wp-caption-text">HTML - Method Description</p></div>
<h4>2.3 Mainpage comment template</h4>
<p>Mainpage는 Doxygen 문서의 Mainpage(index.html)를 주석으로 생성하는 것을 의미합니다. Mainpage 주석은 Source에 오직 한 군데만 작성해야 하며 이 곳은 주로 Project의 개관, 알아두어야 할 정보나 Compile 방법 등을 적어 놓는데 사용합니다.</p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* @mainpage Project 제목<br />
&nbsp;*<br />
&nbsp;* @section overview Overview<br />
&nbsp;*<br />
&nbsp;* Section에 대한 설명을 여기에 적습니다.<br />
&nbsp;*<br />
&nbsp;* @section list List<br />
&nbsp;*<br />
&nbsp;* 다음과 같이 순서가 없는 List를 작성할 수 있습니다.<br />
&nbsp;*<br />
&nbsp;* - List 1<br />
&nbsp;* - List 2<br />
&nbsp;* <br />
&nbsp;* 다음과 같이 순서가 있는 List를 작성할 수 있습니다.<br />
&nbsp;*<br />
&nbsp;* -# List 1<br />
&nbsp;* -# List 2<br />
&nbsp;*/</span></div></td></tr></tbody></table></div>
<p>위와 같은 Mainpage Comment를 Doxygen으로 문서화하면 다음과 같은 모습이 됩니다.</p>
<div id="attachment_3371" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML-Mainpage.png" rel="lightbox[3259]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/10/HTML-Mainpage-300x180.png" alt="HTML - Mainpage" title="HTML - Mainpage" width="300" height="180" class="size-medium wp-image-3371" /></a><p class="wp-caption-text">HTML - Mainpage</p></div>
<h3>3. 마치면서&#8230;</h3>
<p>이상으로 Doxygen을 설치하는 방법과 문서 생성을 위해 Source Code에 주석을 다는 방법을 알아봤습니다. 다음 Post에서는 Source Code에 작성한 주석을 Doxywizard를 사용해서 HTML과 CHM 문서로 만드는 방법을 알아보도록 하겠습니다.</p>
  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/"><img src="http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/">Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3259/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Borland C++ Builder 6 : Debugging시 Breakpoint가 제대로 인식되지 않을 경우</title>
		<link>http://ioriy2k.pe.kr/archives/3215</link>
		<comments>http://ioriy2k.pe.kr/archives/3215#comments</comments>
		<pubDate>Mon, 19 Sep 2011 00:00:07 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Borland C++ Builder]]></category>
		<category><![CDATA[Borland]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Debug]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3215</guid>
		<description><![CDATA[Borland C++ Builder 6를 사용하면서 Debugging 시에 Breakpoint가 제대로 동작하지 않는 경우가 있습니다. 특히 여러 Static Library와 DLL, BPL을 참조할 때 해당 LIB, DLL, BPL 내의 Source에 Breakpoint를 설정하는 경우 발생하기 쉽습니다. 이번 Post에서는 이런 경우에 Breakpoint를 정상적으로 동작하도록 설정하는 방법을 다뤄보도록 하겠습니다. Method 1: Project Option을 확인 가장 먼저 이런 경우에 대처할 수 있는 [...]]]></description>
			<content:encoded><![CDATA[<p>Borland C++ Builder 6를 사용하면서 Debugging 시에 Breakpoint가 제대로 동작하지 않는 경우가 있습니다. 특히 여러 Static Library와 DLL, BPL을 참조할 때 해당 LIB, DLL, BPL 내의 Source에 Breakpoint를 설정하는 경우 발생하기 쉽습니다.</p>
<p>이번 Post에서는 이런 경우에 Breakpoint를 정상적으로 동작하도록 설정하는 방법을 다뤄보도록 하겠습니다.</p>
<h3>Method 1: Project Option을 확인</h3>
<div id="attachment_3237" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/01-BCB6-Project-Options-Compiler.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/01-BCB6-Project-Options-Compiler-300x297.png" alt="Project Options - Compiler" title="Project Options - Compiler" width="300" height="297" class="size-medium wp-image-3237" /></a><p class="wp-caption-text">Project Options - Compiler</p></div>
<p>가장 먼저 이런 경우에 대처할 수 있는 방법은 Debugging하려는 최종 DLL, BPL 또는 EXE Project와 참조하는 모든 Static Library가 Debug Mode로 Compile 되었는지 확인하는 것입니다.</p>
<p><span id="more-3215"></span></p>
<p>각 Project의 Project Option (Project -> Options&#8230;)에서 위와 같이 Compiler Tab에서 Full Debug를 눌러 Debugging과 관련된 Compiler Option이 Check되었는지 확인합니다.</p>
<p>이후 관련된 모든 Project를 다시 Build하면 Debug 시에 Breakpoint가 제대로 동작하게 될 것입니다.</p>
<p>이미 Full Debug 상태인데도 제대로 동작하지 않는다면, 관련된 LIB, DLL, BPL 등의 Source가 수정되었으나 Build가 되지 않은 상태이기 때문에 Source가 변경된 Project와 참조하는 다른 Projecct를 다시 Build할 필요가 있습니다.</p>
<h3>Method 2: Module Load Breakpoint를 사용</h3>
<p>Method 1을 실행했는데도 Breakpoint가 동작하지 않는 경우가 있습니다. 이 경우는 IDE인 Borland C++ Builder 6 자체의 문제로 Breakpoint를 잡아내지 못하는 경우입니다.</p>
<p>Source의 양이 많고 Project Group 내에 여러 Project가 포함되며 각 Project가 서로 참조할 경우(Static Linking, Dynamic Linking, Source 참조 etc.) 발생할 수 있습니다.</p>
<p>Borland C++ Builder 6는 Service Pack 4 이후에 추후 지원은 중단된 상태이기 때문에 이 문제에 대한 근본적인 해결방법은 없다고 할 수 있습니다. 다만, 다음과 같이 Module Load Breakpoint를 사용하면 임시적으로 문제를 해결할 수 있습니다.</p>
<div id="attachment_3225" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/02-BCB6-Module-Load-Breakpoint.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/02-BCB6-Module-Load-Breakpoint-300x187.png" alt="BCB6 - Module Load Breakpoint" title="BCB6 - Module Load Breakpoint" width="300" height="187" class="size-medium wp-image-3225" /></a><p class="wp-caption-text">BCB6 - Module Load Breakpoint</p></div>
<p>Module Load Breakpoint는 EXE Project에서 참조하는 EXE, DLL, BPL등이 Memory에 Load되는 시점을 Breakpoint로 설정하는 것입니다. </p>
<p>Loading 시점을 알기 힘든 DLL과 BPL 등을 Debugging하기 위해 만들어진 기능이지만 이 기능을 사용하면 해당 DLL, BPL 내의 Source에 설정한 Breakpoint도 제대로 동작하게 됩니다.</p>
<p>먼저 EXE Project를 실행하기 전에 Run -> Add Breakpoint -> Module Load Breakpoint를 선택합니다. </p>
<div id="attachment_3226" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/03-Add-module.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/03-Add-module-300x111.png" alt="Add module" title="Add module" width="300" height="111" class="size-medium wp-image-3226" /></a><p class="wp-caption-text">Add module</p></div>
<p>Add module Dialog가 표시되면 옆의 Browse를 눌러 Debugging하고자 하는 Source가 포함된 DLL, BPL, EXE등을 선택한 후, 확인을 누른 다음 원하는 Source에 Breakpoint를 설정하여 Debugging하면 됩니다.</p>
<p>예를 들어 Hello.EXE Project가 Hello.DLL을 Load한다면, Add module Dialog에서 Hello.DLL을 선택한 후 확인을 누르면 Hello.DLL Project 안의 Source(또는 Hello.DLL에 Link된 Static Library의 Source)에 Breakpoint를 설정하여 Debugging 할 수 있게 됩니다.</p>
<div id="attachment_3246" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/CPU-View-Module-Load-Breakpoint.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/CPU-View-Module-Load-Breakpoint-300x198.png" alt="CPU View - Module Load Breakpoint" title="CPU View - Module Load Breakpoint" width="300" height="198" class="size-medium wp-image-3246" /></a><p class="wp-caption-text">CPU View - Module Load Breakpoint</p></div>
<p>위의 그림은 DLL에 Module Load Breakpoint을 설정한 다음, 실행할 경우에 표시되는 CPU View입니다. Module이 Loading되는 최초의 순간에 Breakpoint가 설정되는 것이기 때문에 CPU View를 통해 Assembly Code로 보여집니다.</p>
<p>첫번째 jmp Line에 왼쪽 회색원이 Module Load Breakpoint를 나타냅니다. 그 원을 Click해서 Module Load Breakpoint를 해제하거나 Run -> Run을 Click하여 다음 Breakpoint로 넘어가면 됩니다.</p>
<p>Module Load Breakpoint는 Tools -> Environment Options에서 Preference Tab의 Autosave Options -> Project Desktop을 Check하여 저장할 수 있습니다. 그러나 일부 EXE에 설정한 Module Load Breakpoint는 저장되지 않기 때문에 IDE를 실행할 때마다 다시 설정할 필요가 있습니다.</p>
<h3>Method 3: Debug Symbols Search Path를 설정</h3>
<p>마지막으로 3번째 방법은 약간 단순무식하다고 볼 수 있습니다. 이 방법도 Method 1으로 문제가 해결되지 않을 때 취할 수 있는 방법으로, IDE가 Load될 때 Debugging Symbol을 검색하는 Directory를 강제적으로 지정함으로서 Breakpoint가 동작하는 않는 Project에서 Debugging이 가능하도록 설정하는 것입니다.</p>
<div id="attachment_3227" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/04-BCB6-Debugger-Options.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/04-BCB6-Debugger-Options-300x187.png" alt="BCB6 - Debugger Options" title="BCB6 - Debugger Options" width="300" height="187" class="size-medium wp-image-3227" /></a><p class="wp-caption-text">BCB6 - Debugger Options</p></div>
<p>Tools -> Debugger Options를 Click합니다.</p>
<div id="attachment_3228" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/05-Debugger-Options.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/05-Debugger-Options-300x285.png" alt="Debugger Options - General" title="Debugger Options - General" width="300" height="285" class="size-medium wp-image-3228" /></a><p class="wp-caption-text">Debugger Options - General</p></div>
<p>Debugger Options Dialog에서 General Tab의 하단에 Debug Symbols Search Path의 옆에 &#8230; Button을 Click합니다.</p>
<div id="attachment_3240" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/06-Debug-Symbol-Search-Path-Directories.png" rel="lightbox[3215]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/09/06-Debug-Symbol-Search-Path-Directories-300x233.png" alt="Debug Symbols Search Path - Directories" title="Debug Symbols Search Path - Directories" width="300" height="233" class="size-medium wp-image-3240" /></a><p class="wp-caption-text">Debug Symbols Search Path - Directories</p></div>
<p>Directories Dialog에서 하단의 &#8230; Button을 눌러 Debugging하려는 DLL, BPL, EXE Project의 Output Directory(Build된 결과물이 위치한 Directory)를 선택한 다음 Add를 눌러 추가합니다.</p>
<p>마지막으로 OK를 눌러 설정완료한 다음, 원하는 곳에 Breakpoint를 설정하여 Debugging하면 됩니다.</p>
<p>이 방법의 단점은 Debug Symbols Search Path에 속한 DLL, BPL, EXE 등과 관련없는 Project를 개발할 때 Debug Symbol을 검색하기 위해서 이전에 설정한 Directory를 검색하게 된다는 것입니다. 그러나 IDE 실행마다 Module Load Breakpoint를 설정하는 것에 비하면 편리할 수도 있습니다.</p>
  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/"><img src="http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/">Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3215/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7에서 Borland C++ Builder 6의 도움말이 제대로 표시되지 않을 경우</title>
		<link>http://ioriy2k.pe.kr/archives/3107</link>
		<comments>http://ioriy2k.pe.kr/archives/3107#comments</comments>
		<pubDate>Mon, 15 Aug 2011 00:00:53 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Borland C++ Builder]]></category>
		<category><![CDATA[Borland]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Windows7]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3107</guid>
		<description><![CDATA[Borland C++ Builder 6를 사용하다 보면 C++ Builder에서 제공하는 Help를 자주 이용하게 됩니다. MS Visual Studio에 비해서 C++ Builder의 사용자가 적기 때문에 Web Search를 통해서도 원하는 정보를 얻지 못할 때가 많기 때문입니다. 특히 VCL 관련 Class, Method와 BPL 등의 구조를 이해하기 위해서는 Help가 꼭 필요한 것이 사실입니다. 하지만, Windows 7에 설치할 경우 아무래도 출시된 지 [...]]]></description>
			<content:encoded><![CDATA[<p>Borland C++ Builder 6를 사용하다 보면 C++ Builder에서 제공하는 Help를 자주 이용하게 됩니다. MS Visual Studio에 비해서 C++ Builder의 사용자가 적기 때문에 Web Search를 통해서도 원하는 정보를 얻지 못할 때가 많기 때문입니다. 특히 VCL 관련 Class, Method와 BPL 등의 구조를 이해하기 위해서는 Help가 꼭 필요한 것이 사실입니다.</p>
<p>하지만, Windows 7에 설치할 경우 아무래도 출시된 지 오래된 제품이다 보니 제대로 동작하지 않는 것들이 조금씩 보이는데 그 중의 하나가 바로 이 Help입니다. Borland C++ Builder 6에서 F1 Key를 누르거나 Help -> C++ Builder Help를 Click하면 아래와 같은 Dialog가 표시되면서 Help가 나오지 않는 것을 확인할 수 있습니다.</p>
<div id="attachment_3110" class="wp-caption aligncenter" style="width: 208px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/01.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/01-198x300.png" alt="C++ Builder Help - Windows Help Warning" title="C++ Builder Help - Windows Help Warning" width="198" height="300" class="size-medium wp-image-3110" /></a><p class="wp-caption-text">C++ Builder Help - Windows Help Warning</p></div>
<p><span id="more-3107"></span></p>
<p>이번 Post에서는 Windows 7에서 Borland C++ Builder 6를 사용할 때 Help를 볼 수 있는 방법을 소개하도록 하겠습니다. 먼저 위와 같은 Dialog가 표시될 때 그림에 표시된 Microsoft 도움말 및 지원을 Click합니다. (또는 <a href="http://support.microsoft.com/kb/917607" target="_blank">다음 Page</a>에 Internet Explorer로 접속합니다.)</p>
<div id="attachment_3111" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/02.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/02-300x180.png" alt="WinHlp32 Support Page" title="WinHlp32 Support Page" width="300" height="180" class="size-medium wp-image-3111" /></a><p class="wp-caption-text">WinHlp32 Support Page</p></div>
<p>Borland C++ Builder 6의 Help가 표시되지 않는 이유는 WinHlp32라는 Program이 기본으로 설치되지 않기 때문입니다. 이 Program은 *.hlp 확장자를 갖는 도움말 File을 표시해주는 역할을 합니다. </p>
<p>WinHlp32 Support Page에 접속했으면 해결 방법에서 Windows 7용 Windows 도움말 프로그램(WinHlp32.exe)를 Click합니다.</p>
<div id="attachment_3112" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/03.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/03-300x180.png" alt="Windows Help Program for Windows 7 Download Page" title="Windows Help Program for Windows 7 Download Page" width="300" height="180" class="size-medium wp-image-3112" /></a><p class="wp-caption-text">Windows Help Program for Windows 7 Download Page</p></div>
<p>WinHlp32의 Download Page가 표시되면, Change Language에서 Korean을 선택합니다.</p>
<div id="attachment_3113" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/04.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/04-300x180.png" alt="Windows Help Program for Windows 7 Download Page (Korean)" title="Windows Help Program for Windows 7 Download Page (Korean)" width="300" height="180" class="size-medium wp-image-3113" /></a><p class="wp-caption-text">Windows Help Program for Windows 7 Download Page (Korean)</p></div>
<p>한국어 Download Page에서 계속을 누릅니다.</p>
<div id="attachment_3114" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/05.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/05-300x180.png" alt="Install Windows Genuine Advantage" title="Install Windows Genuine Advantage" width="300" height="180" class="size-medium wp-image-3114" /></a><p class="wp-caption-text">Install Windows Genuine Advantage</p></div>
<p>Download를 하기 전에 지금 사용하고 있는 Windows 7이 정품인지를 확인하기 위해서 Windows Genuine Advantage Plugin을 설치합니다. Internet Explorer 9의 아래쪽에 표시된 창에서 설치를 Click합니다. (이전 버전의 Internet Explorer는 위쪽에 표시됨.)</p>
<div id="attachment_3115" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/06.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/06-300x180.png" alt="Windows Help Program for Windows 7 Download" title="Windows Help Program for Windows 7 Download" width="300" height="180" class="size-medium wp-image-3115" /></a><p class="wp-caption-text">Windows Help Program for Windows 7 Download</p></div>
<p>Windows Genuine Advantage가 제대로 설치된 후, 인증이 완료되면 위와 같이 다운로드 Button이 표시됩니다. </p>
<p>Windows 7이 64bit일 경우에는 Windows6.1-KB917607-x64.msu의 다운로드 Button을, 32bit일 경우에는 Windows6.1-KB917607-x86.msu의 다운로드 Button을 Click합니다.</p>
<div id="attachment_3116" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/07.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/07-300x146.png" alt="Instal WinHelp32" title="Instal WinHelp32" width="300" height="146" class="size-medium wp-image-3116" /></a><p class="wp-caption-text">Instal WinHelp32</p></div>
<p>Download가 완료된 후, File을 실행하면 위와 같이 설치 Dialog가 표시됩니다. 확인을 누릅니다.</p>
<div id="attachment_3117" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/08.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/08-300x169.png" alt="EULA" title="EULA" width="300" height="169" class="size-medium wp-image-3117" /></a><p class="wp-caption-text">EULA</p></div>
<p>Software의 사용 조건이 표시됩니다. 동의함을 Click합니다.</p>
<div id="attachment_3118" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/09.png" rel="lightbox[3107]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/08/09-300x239.png" alt="Borland C++ Builder Help" title="Borland C++ Builder Help" width="300" height="239" class="size-medium wp-image-3118" /></a><p class="wp-caption-text">Borland C++ Builder Help</p></div>
<p>설치 모두 완료된 후, Borland C++ Builder 6에서 Help를 실행하면 위의 그림과 같이 제대로 Help가 표시되는 것을 확인할 수 있습니다.</p>
  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/"><img src="http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/">Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3107/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Borland C++ Builder 6 : 나에게 맞는 Desktop 만들기</title>
		<link>http://ioriy2k.pe.kr/archives/2171</link>
		<comments>http://ioriy2k.pe.kr/archives/2171#comments</comments>
		<pubDate>Tue, 17 May 2011 01:00:04 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Borland C++ Builder]]></category>
		<category><![CDATA[Borland]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=2171</guid>
		<description><![CDATA[기존의 다른 IDE를 사용해 본 사람이라면 Borland C++ Builder 6의 Interface는 이상하게 느껴질 것입니다. 보통의 경우 하나의 Window 안에 Subwindow가 존재하는 Interface를 가지는데 반해, BCB6는 위쪽에 Main Window와 도구모음이 있고 그리고 그 아래에 Floating Window로 UI관련 설정을 할 수 있는 Object Inspector, Object Treeview, 그리고 Source Code View와 Class Explorer가 표시되는 다소 독특한 Interface를 하고 [...]]]></description>
			<content:encoded><![CDATA[<p>기존의 다른 IDE를 사용해 본 사람이라면 Borland C++ Builder 6의 Interface는 이상하게 느껴질 것입니다. </p>
<p>보통의 경우 하나의 Window 안에 Subwindow가 존재하는 Interface를 가지는데 반해, BCB6는 위쪽에 Main Window와 도구모음이 있고 그리고 그 아래에 Floating Window로 UI관련 설정을 할 수 있는 Object Inspector, Object Treeview, 그리고 Source Code View와 Class Explorer가 표시되는 다소 독특한 Interface를 하고 있습니다.</p>
<div id="attachment_2174" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/00-Default-desktop.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/00-Default-desktop-300x157.png" alt="Default desktop" title="Default desktop" width="300" height="157" class="size-medium wp-image-2174" /></a><p class="wp-caption-text">Default desktop</p></div>
<p>다소 정신이 없어 보이는 Interface지만 이것은 BCB 특유의 Interface로 취향에 따라 재구성한다면 오히려 하나의 Window에 모든 것을 표현하는 다른 IDE보다 자유롭고 개발에 편리한 환경을 만들 수 있습니다. </p>
<p>이번 Post에서는 Save Destop 기능을 활용하여 자신만의 BCB Interface(Desktop)을 만들어 보도록 하겠습니다.</p>
<p><span id="more-2171"></span></p>
<h3>1. Desktop Customizing</h3>
<p>자신에게 맞는 Desktop은 여러가지가 있지만 편의를 위해서 제가 사용하는 Desktop을 가지고 설명하도록 하겠습니다.</p>
<p>회사 일을 하면서 여러가지로 Desktop을 변경해 보다가 최종으로 만든 Desktop인데 이 구성을 지금도 계속 사용하고 있습니다. Customizing하면서 우선적으로 고려한 것은 아래와 같습니다.</p>
<ol>
<li>Project 관리가 편할 것</li>
<li>UI 편집(Form 변경 등)과 Source 편집에 용이할 것</li>
<li>Debugging이 편리할 것</li>
</ol>
<div id="attachment_2175" class="wp-caption aligncenter" style="width: 188px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/01-view-windows.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/01-view-windows-178x300.png" alt="View menu" title="View menu" width="178" height="300" class="size-medium wp-image-2175" /></a><p class="wp-caption-text">View menu</p></div>
<p>먼저 Main Window의 View Menu를 보면 위와 같이 표시할 수 있는 여러 Floating Window의 종류가 나옵니다. 이 중에서 필요한 것들만 간단하게 설명해 보겠습니다.</p>
<ul>
<li>Project Manager : Project 관리에 꼭 필요한 Window입니다. Project에 포함된 Code를 관리할 수 있고, Project Group에 Project를 추가, 삭제할 수 있습니다.</li>
<li>Object Inspector : Form과 포함된 각 Control의 Property를 설정할 수 있는 Window입니다.</li>
<li>Object TreeView : Form에 포함된 각 Control을 Tree로 보여주는 Window입니다. Form에 포함된 Control이 복잡해서 변경하고자 하는 Control을 Mouse로 선택하기 힘들 때 Object TreeView를 사용하면 간단하게 선택할 수 있습니다.</li>
<li>To-Do List : 처리해야 할 작업들을 관리하는 Window입니다. 개발하면서 개발에 관련된 간단한 To-do를 저장할 수 있습니다.</li>
<li>Class Explorer : 현재 표시된 Source Code를 분석하여 Class와 그 안에 포함된 Property, Member, Method를 Tree로 표시합니다.</li>
<li>Debug Windows : Debugging을 위한 Window로 Call Stack, Breakpoints, Watches 등등이 있습니다.</li>
</ul>
<div id="attachment_2176" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/02-project-manager.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/02-project-manager-300x207.png" alt="Project manager" title="Project manager" width="300" height="207" class="size-medium wp-image-2176" /></a><p class="wp-caption-text">Project manager</p></div>
<p>이제 Desktop을 만들어 봅시다. View -> Project Manager를 Click하여 Project Manager를 표시합니다.</p>
<div id="attachment_2177" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/03-project-manager-1.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/03-project-manager-1-300x208.png" alt="Project manager + Object Inspector" title="Project manager + Object Inspector" width="300" height="208" class="size-medium wp-image-2177" /></a><p class="wp-caption-text">Project manager + Object Inspector</p></div>
<p>이미 화면에 표시되어 있는 Object Inspector를 Drag해서 Project Manager 위로 Mouse Cursor를 옮기면 위와 같이 사각형이 나타날 것입니다. 가운데 사각형이 표시될 때 Mouse 왼쪽 Button을 뗍니다.</p>
<div id="attachment_2178" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/04-Project-manager-object-inspector.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/04-Project-manager-object-inspector-300x207.png" alt="Project manager, Object inspector in one window" title="Project manager, Object inspector in one window" width="300" height="207" class="size-medium wp-image-2178" /></a><p class="wp-caption-text">Project manager, Object inspector in one window</p></div>
<p>그러면 위와 같이 Project Manager와 Object Inspector가 하나의 Window에 표시되는 것을 볼 수 있습니다.</p>
<div id="attachment_2179" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/05-pm-oi-ot-cs.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/05-pm-oi-ot-cs-300x207.png" alt="Project manager,Object inspector,Object treeview,Call stack in one window" title="Project manager,Object inspector,Object treeview,Call stack in one window" width="300" height="207" class="size-medium wp-image-2179" /></a><p class="wp-caption-text">Project manager,Object inspector,Object treeview,Call stack in one window</p></div>
<p>동일한 방법으로 Object TreeView, Call stack을 Drag하면 위의 그림과 같이 됩니다.</p>
<div id="attachment_2180" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/06-Right-tab.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/06-Right-tab-300x222.png" alt="Right tab" title="Right tab" width="300" height="222" class="size-medium wp-image-2180" /></a><p class="wp-caption-text">Right tab</p></div>
<p>Tab 선택을 좀 더 편리하게 하기 위해서 Tab위에서 Mouse 오른쪽 Button을 Click하면 위와 같이 Tab의 위치를 선택할 수 있는 Menu가 표시됩니다. 여기서 Right을 Click하여 Window의 오른쪽에 Tab이 표시되도록 합니다.</p>
<div id="attachment_2227" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/07-Setup-Left-Window.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/07-Setup-Left-Window-300x153.png" alt="Left Window" title="Left Window" width="300" height="153" class="size-medium wp-image-2227" /></a><p class="wp-caption-text">Left Window</p></div>
<p>이제 Window를 전체 화면의 왼쪽에 위치시키고 화면에 맞게 크기를 변경합니다. 그리고 오른쪽에 Edit Window(Source code가 표시되는 Window)의 크기를 화면에 맞게 변경하면 위의 그림처럼 됩니다.</p>
<p>이번에는 Edit Window를 Customizing 해 봅시다. 취향에 따라 차이가 있겠지만 Edit Window에 포함되어 있는 Class Explorer를 닫습니다. Source code가 방대할 경우 Class Explorer는 오히려 Memory를 많이 잡아먹고 IDE 전체를 느리게 만들기 때문에 개인적으로 사용하지 않습니다.</p>
<div id="attachment_2228" class="wp-caption aligncenter" style="width: 214px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-01-Message-View-menu.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-01-Message-View-menu-204x300.png" alt="Message View menu" title="Message View menu" width="204" height="300" class="size-medium wp-image-2228" /></a><p class="wp-caption-text">Message View menu</p></div>
<p>Edit Window에서 Mouse 오른쪽 Popup을 띄우면 위와 같은 Menu가 표시됩니다. 여기서 Message View를 Click합니다.</p>
<div id="attachment_2229" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-02-Add-Message-View.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-02-Add-Message-View-300x170.png" alt="Add Message View" title="Add Message View" width="300" height="170" class="size-medium wp-image-2229" /></a><p class="wp-caption-text">Add Message View</p></div>
<p>Message View는 Compile시 Error나 Warning을 표시하는 Window입니다. Message View를 Edit Window에 포함시키기 위해서 이전에 했던 방식과 동일하게 Drag한 후 Edit Window 아래쪽에 Box가 표시되면 Mouse 왼쪽 Button을 뗍니다.</p>
<div id="attachment_2182" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-Debug-windows.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-Debug-windows-300x279.png" alt="View - Debug windows" title="View - Debug windows" width="300" height="279" class="size-medium wp-image-2182" /></a><p class="wp-caption-text">View - Debug windows</p></div>
<p>이번에는 Debugging을 위해서 필요한 BreakPoint List를 추가해 봅시다. View -> Debug Windows -> Breakpoints를 Click합니다.</p>
<div id="attachment_2230" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-03-Add-Breakpoint-List.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/08-03-Add-Breakpoint-List-300x170.png" alt="Add Breakpoint List" title="Add Breakpoint List" width="300" height="170" class="size-medium wp-image-2230" /></a><p class="wp-caption-text">Add Breakpoint List</p></div>
<p>위와 같이 Breakpoint List가 표시되면 이전과 동일하게 Drag하여 추가하되, Message View안에 Docking될 수 있도록 위와 같은 Box 모양일 때 Mouse Button을 뗍니다.</p>
<div id="attachment_2231" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/10-Desktop-Setup-Complete.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/10-Desktop-Setup-Complete-300x153.png" alt="Desktop Setup Complete" title="Desktop Setup Complete" width="300" height="153" class="size-medium wp-image-2231" /></a><p class="wp-caption-text">Desktop Setup Complete</p></div>
<p>Breakpoint List를 추가한 방식과 동일하게 Watch List(View -> Debug Windows -> Watches)를 추가하면 위의 그림과 같은 Desktop이 완성됩니다.</p>
<div id="attachment_2185" class="wp-caption aligncenter" style="width: 211px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/11-desktop-toolbar.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/11-desktop-toolbar.png" alt="Desktop toolbar" title="Desktop toolbar" width="201" height="76" class="size-full wp-image-2185" /></a><p class="wp-caption-text">Desktop toolbar</p></div>
<p>이제 Desktop을 모두 구성했으니 다음번에도 계속 이 구성으로 사용할 수 있도록 저장해 봅시다. Main Window의 오른쪽 Desktop Toolbar에서 위의 그림에 표시한 Save Current Desktop Button을 Click합니다.</p>
<div id="attachment_2186" class="wp-caption aligncenter" style="width: 294px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/12-save-desktop.bmp" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/12-save-desktop.bmp" alt="Save desktop" title="Save desktop" width="284" height="123" class="size-full wp-image-2186" /></a><p class="wp-caption-text">Save desktop</p></div>
<p>저장할 Desktop의 이름을 입력하고 OK를 누르면 Desktop Customizing이 완료됩니다. BCB6를 종료한 후에 다시 실행해도 위와 같은 Desktop 구성을 계속 유지할 것입니다. 변경하거나 새로 만들려면 Desktop Toolbar를 이용하면 됩니다.</p>
<h3>2. Editor Customizing</h3>
<p>개발에 필수적인 Window를 재배치하여 자신에게 맞는 Desktop을 만들었다면 이제 편집환경을 변경해 봅시다.</p>
<p>이 부분은 개발자마다 취향이 다 다르므로 저의 경우에 맞춰서 설명하는 내용을 보고 자신에게 맞는 환경을 설정하면 될 것입니다.</p>
<div id="attachment_2188" class="wp-caption aligncenter" style="width: 207px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/14-Tool-Editor-options.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/14-Tool-Editor-options-197x300.png" alt="Tool - Editor options" title="Tool - Editor options" width="197" height="300" class="size-medium wp-image-2188" /></a><p class="wp-caption-text">Tool - Editor options</p></div>
<p>Main window에서 Tools -> Editor Options를 Click합니다.</p>
<div id="attachment_2189" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/15-Editor-options-general.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/15-Editor-options-general-300x283.png" alt="Editor options : general" title="Editor options : general" width="300" height="283" class="size-medium wp-image-2189" /></a><p class="wp-caption-text">Editor options : general</p></div>
<p>General Tab에서는 편집에 기본적인 설정을 변경할 수 있습니다. 대부분 Default를 사용하지만 제 경우에는 다음을 변경합니다.</p>
<ul>
<li>Undo after save : 저장 후에도 Undo를 수행할 수 있습니다. 종종 잘못 저장하는 경우를 위해 유용한 기능으로 Check하는 것이 좋습니다.</li>
<li>Block indent : Shift key나 Mouse를 사용하여 Block를 설정한 다음 Tab key를 눌러 Indent를 주는 경우에 크기를 지정합니다. 저의 경우, Tab stops와 맞추어 4로 설정합니다.</li>
<li>Tab stops : Tab Key를 눌러서 indent를 줄 경우에 크기를 지정합니다. 저는 주로 Block indent와 맞추어 4로 설정합니다.</li>
</ul>
<div id="attachment_2190" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/16-Editor-options-display.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/16-Editor-options-display-300x283.png" alt="Editor options : display" title="Editor options : display" width="300" height="283" class="size-medium wp-image-2190" /></a><p class="wp-caption-text">Editor options : display</p></div>
<p>Display Tab에서는 다음을 변경합니다.</p>
<ul>
<li>Create backup file : 저장 시에 변경된 File에 대해서 Filename 끝에 ~를 붙인 Backup file을 생성합니다. 저의 경우. Source code directory가 지저분하게 느껴져서 Uncheck합니다. : )</li>
<li>Editor font, size : Coding시에 가장 신경쓰이는 것 중 하나가 Font 입니다. 가독성이 좋은 Font를 사용하면 그 만큼 능률로 올라갑니다. 저의 경우는 System에 설치된 Courier New, 11pt를 사용합니다.</li>
</ul>
<div id="attachment_2191" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/17-Editor-options-Key-mapping.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/17-Editor-options-Key-mapping-300x283.png" alt="Editor options : Key mapping" title="Editor options : Key mapping" width="300" height="283" class="size-medium wp-image-2191" /></a><p class="wp-caption-text">Editor options : Key mapping</p></div>
<p>Key mapping Tab에서는 IDE에서 사용하는 단축키 Scheme을 선택할 수 있습니다. 저는 Visual Studio를 같이 사용하는 경우가 있어서 Visual Studio emulation으로 설정합니다.</p>
<div id="attachment_2192" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/18-Editor-options-colors.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/18-Editor-options-colors-300x283.png" alt="Editor options : colors" title="Editor options : colors" width="300" height="283" class="size-medium wp-image-2192" /></a><p class="wp-caption-text">Editor options : colors</p></div>
<p>Colors Tab에서는 자신에게 맞는 Editor Color Scheme을 선택하고 세부 설정을 변경할 수 있습니다. 저의 경우는 Vim과 유사한 환경을 좋아하기 때문에 Color SpeedSetting에 Twilight을, 그리고 오른쪽 아래 미리보기 Panel에서 일부 변경해서 사용합니다.</p>
<div id="attachment_2239" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/Editor-Options-Code-Insight.jpg" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/Editor-Options-Code-Insight-300x283.jpg" alt="Editor options : code insight" title="Editor options : code insight" width="300" height="283" class="size-medium wp-image-2239" /></a><p class="wp-caption-text">Editor options : code insight</p></div>
<p>Code Insight Tab에서는 편집 시에 자동으로 Method나 Member, Property를 검색하여 입력하고자 하는 것을 고르거나 자동으로 입력해 주는 편의 기능에 대한 설정을 할 수 있습니다.</p>
<p>제 경우에는 Code Insight이 양이 많거나 복잡한 Source code에서는 시간과 Memory를 많이 잡아먹기 때문에 이 기능을 끄고 사용합니다. (끄기 위해서는 Automatic Features에서 Code completion, Code parameters, Tooltip expression evaluation, Tooip symbol insight을 Uncheck합니다.)</p>
<p>Code Templates는 편집 시에 Template Name을 입력한 후 Ctrl+Enter를 입력하면 자동으로 해당 Template의 Code를 입력해 주는 기능입니다. 필요한 Template을 추가하거나 편집할 수 있습니다. 편리한 기능이기는 한데 잘 사용하지는 않게 되더군요.</p>
<div id="attachment_2232" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/20-Setup-Complete.png" rel="lightbox[2171]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/05/20-Setup-Complete-300x153.png" alt="Customization Complete" title="Customization Complete" width="300" height="153" class="size-medium wp-image-2232" /></a><p class="wp-caption-text">Customization Complete</p></div>
<p>Editor options 설정을 마친 후, 최종적으로 구성된 Desktop은 위의 그림과 같습니다. 마음에 드시나요? Post를 따라서 구성한 Desktop에서 마음에 들지 않는 부분이 있다면 이것저것 변경해 보시기 바랍니다. Coding을 잘 하는 것도 실력이지만 IDE를 잘 사용하여 능률을 높이는 것도 실력 향상에 도움이 될 것입니다.</p>
  
<div class="wp_license">
<p><a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/"><img src="http://i.creativecommons.org/l/by-nc-nd/2.0/kr/88x31.png" alt="Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea" class="alignleft" style="margin-top:4px;" />
</a>This work  is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/kr/">Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Korea</a>.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/2171/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

