<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Ioriy2k's Knowledgebase</title>
	
	<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>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ioriy2k" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="ioriy2k" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fioriy2k" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fioriy2k" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ioriy2k" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fioriy2k" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fioriy2k" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.hanrss.com/add_sub.qst?url=http%3A%2F%2Ffeeds.feedburner.com%2Fioriy2k" src="http://static.hanrss.com/images/add_to_hanrss2.gif">Subscribe with HanRSS</feedburner:feedFlare><item>
		<title>Ubuntu Oneiric Ocelot 11.10을 설치한 후 해야 할 것들 (2. Desktop 설정)</title>
		<link>http://ioriy2k.pe.kr/archives/4357</link>
		<comments>http://ioriy2k.pe.kr/archives/4357#comments</comments>
		<pubDate>Wed, 11 Jan 2012 00:00:06 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Linux, Just For Fun]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oneiric Ocelot]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=4357</guid>
		<description><![CDATA[이전 Post에 이어서 이번에는 상당한 삽질을 필요로 했던 Desktop 설정에 관한 내용을 적어보려 합니다. 11. GNOME Tweak Tool 설치 GNOME 3에서는 기존의 GNOME 설정 Tool들을 하나로 통합하려는 시도를 하는 것 같습니다. 하지만, 이전 만큼 자세한 설정을 할 수 없게 되어서 불편한 부분이 많습니다. GNOME Tweak Tool은 사용자에 필요하지만 숨겨진 기능들을 설정하기 위해 만들어진 Program입니다. GNOME [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ioriy2k.pe.kr/archives/3927" title="Ubuntu Oneiric Ocelot 11.10을 설치한 후 해야 할 것들 (1. System 설정)" target="_blank">이전 Post</a>에 이어서 이번에는 상당한 삽질을 필요로 했던 Desktop 설정에 관한 내용을 적어보려 합니다.</p>
<div id="toc_container" class="no_bullets"><p class="toc_title">Contents</p><ul class="toc_list"><li><a href="#11_GNOME_Tweak_Tool">11. GNOME Tweak Tool 설치</a></li><li><a href="#12_Desktop_Shell">12. Desktop Shell 설정</a><ul><li><a href="#121_Gnome_Classic">12.1. Gnome Classic</a></li><li><a href="#122_Unity">12.2. Unity</a><ul><li><a href="#1221_Notification_Area">12.2.1. Notification Area 설정</a></li><li><a href="#1222_Unity">12.2.2. Unity 설정</a></li><li><a href="#1223_Zeitgeist">12.2.3. Zeitgeist 설정</a></li></ul></li><li><a href="#123_Gnome_Shell">12.3. Gnome Shell</a><ul><li><a href="#1231_GNOME_Sushi">12.3.1. GNOME Sushi 설치</a></li><li><a href="#1232_GNOME_Contacts">12.3.2. GNOME Contacts 설치</a></li><li><a href="#1233_GNOME_Shell">12.3.3. GNOME Shell 설정</a></li><li><a href="#1234_Extension">12.3.4. Extension</a><ul><li><a href="#12341_Extension_Classic_Systray">12.3.4.1. Extension: Classic Systray</a></li><li><a href="#12342_Extension_No_Accessibility">12.3.4.2. Extension: No Accessibility</a></li><li><a href="#12343_Extension_Alternative_Status_Menu">12.3.4.3. Extension: Alternative Status Menu</a></li><li><a href="#12344_Extension_Weather_Indicator">12.3.4.4. Extension: Weather Indicator</a></li></ul></li><li><a href="#1235_Theme">12.3.5. Theme 설정</a><ul><li><a href="#12351_GNOME_Shell_Theme">12.3.5.1. GNOME Shell Theme 설정</a></li><li><a href="#12352_GTK_3_Theme">12.3.5.2. GTK+ 3 Theme 설정</a></li><li><a href="#12353_Icon_Theme">12.3.5.3. Icon Theme 설정</a></li></ul></li><li><a href="#1236_GNOME_Shell_Google_Calendar">12.3.6. GNOME Shell의 달력과 Google Calendar를 연동하는 방법</a></li><li><a href="#1237">12.3.7. 검색시 최근 항목을 삭제하는 방법</a></li></ul></li></ul></li><li><a href="#13_IME">13. IME 설정</a><ul><li><a href="#131_iBus">13.1. iBus</a></li><li><a href="#132_Nabi">13.2. Nabi</a></li><li><a href="#133_SCIM_Recommend">13.3. SCIM (Recommend!)</a></li></ul></li><li><a href="#14_XScreenSaver">14. XScreenSaver 설치</a></li><li><a href="#15">15. 사용자 설정 단축키 만들기</a></li><li><a href="#16_Screenshot_Mouse_Pointer">16. Screenshot에서 Mouse Pointer를 포함하지 않는 방법</a></li><li><a href="#17">17. 나눔글꼴 설치</a></li><li><a href="#18_8230">18. 마치면서&#8230;</a></li></ul></div>

<h3><span id="11_GNOME_Tweak_Tool">11. GNOME Tweak Tool 설치</span></h3>
<div id="attachment_4390" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/01-Gnome-Tweak-Tool.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/01-Gnome-Tweak-Tool-300x239.png" alt="Gnome Tweak Tool" title="Gnome Tweak Tool" width="300" height="239" class="size-medium wp-image-4390" /></a><p class="wp-caption-text">Gnome Tweak Tool</p></div>
<p>GNOME 3에서는 기존의 GNOME 설정 Tool들을 하나로 통합하려는 시도를 하는 것 같습니다. 하지만, 이전 만큼 자세한 설정을 할 수 없게 되어서 불편한 부분이 많습니다.</p>
<p>GNOME Tweak Tool은 사용자에 필요하지만 숨겨진 기능들을 설정하기 위해 만들어진 Program입니다.</p>
<p>GNOME Tweak Tool을 설치하려면 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-tweak-tool</div></td></tr></tbody></table></div>
<p><span id="more-4357"></span></p>
<div id="attachment_4397" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/06-Dash-Advanced-Settings.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/06-Dash-Advanced-Settings-300x232.png" alt="Dash - Advanced Settings" title="Dash - Advanced Settings" width="300" height="232" class="size-medium wp-image-4397" /></a><p class="wp-caption-text">Dash - Advanced Settings</p></div>
<p>Dash에서 개인화 -> Advanced Settings를 Click합니다. (Gnome Shell의 경우는 기타 -> Advanced Settings)</p>
<div id="attachment_4391" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/02-Gnome-Tweak-Tool-Desktop.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/02-Gnome-Tweak-Tool-Desktop-300x239.png" alt="Gnome Tweak Tool - Desktop" title="Gnome Tweak Tool - Desktop" width="300" height="239" class="size-medium wp-image-4391" /></a><p class="wp-caption-text">Gnome Tweak Tool - Desktop</p></div>
<p>GNOME Tweak Tool은 Desktop, Fonts, Shell, Shell Extensions, Theme, Windows에 대한 설정을 변경할 수 있는데 여기서는 GNOME Shell과 관련된 Shell, Shell Extensions를 제외한 나머지에 대해서 설명하도록 하겠습니다. (Shell, Shell Extensions에 대해서는 Gnome Shell을 설명하는 부분에서 설명합니다.)</p>
<p>먼저 Desktop에서 설정할 수 있는 것은 다음과 같습니다.</p>
<ul>
<li>Have file manager handle the desktop: Nautilus가 바탕화면을 관리하도록 설정할 수 있습니다. (default: On)</li>
<li>Computer icon visible on desktop: 바탕화면에 Computer Icon을 표시합니다. (default: Off)</li>
<li>Home icon visible on desktop: 바탕화면에 Home Icon을 표시합니다. (default: Off)</li>
<li>Network Servers icon visible on the desktop: 바탕화면에 Network Servers Icon을 표시합니다. (default: Off)</li>
<li>Trash icon visible on desktop: 바탕화면에 휴지통 Icon을 표시합니다. (default: Off)</li>
<li>Show mounted volumes on the desktop: Mount된 Partition의 Icon을 바탕화면에 표시합니다. (default: Off)</li>
</ul>
<div id="attachment_4392" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/03-Gnome-Tweak-Tool-Fonts.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/03-Gnome-Tweak-Tool-Fonts-300x239.png" alt="Gnome Tweak Tool - Fonts" title="Gnome Tweak Tool - Fonts" width="300" height="239" class="size-medium wp-image-4392" /></a><p class="wp-caption-text">Gnome Tweak Tool - Fonts</p></div>
<p>Font에서는 다음과 같은 설정을 변경할 수 있습니다.</p>
<ul>
<li>Text Scaling Factor: Desktop에 적용된 Font의 크기를 확대, 축소하는 값을 설정합니다. (default: 1.0)</li>
<li>Default font: 응용프로그램의 기본 글꼴을 변경합니다. (default: Ubuntu, 11pt)</li>
<li>Document font: 문서에 사용되는 기본 글꼴을 변경합니다. (default: Sans, 11pt)</li>
<li>Monospace font: Terminal과 같은 고정폭 글꼴이 필요한 곳에서 사용되는 글꼴을 변경합니다. (default: Ubuntu Mono, 13pt)</li>
<li>창 제목 글꼴: Window Titlebar에 표시되는 창 제목을 위해 사용되는 글꼴을 변경합니다. (default: Ubuntu Bold, 11pt)</li>
<li>Hinting: 글자 표현시에 가독성을 높이는 방법으로 사용되는 Hinting을 적용하는 정도를 설정합니다. (default: Slight)</li>
<li>Antialiasing: 글자의 Aliasing을 보정하는 방법을 설정합니다. (default: Rgba)</li>
</ul>
<div id="attachment_4393" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/04-Gnome-Tweak-Tool-Theme.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/04-Gnome-Tweak-Tool-Theme-300x239.png" alt="Gnome Tweak Tool - Theme" title="Gnome Tweak Tool - Theme" width="300" height="239" class="size-medium wp-image-4393" /></a><p class="wp-caption-text">Gnome Tweak Tool - Theme</p></div>
<p>Theme에서는 다음과 같은 설정을 변경할 수 있습니다.</p>
<ul>
<li>Shell theme: Gnome Shell의 Theme를 설정합니다. 아래의 Gnome Shell 항목에서 다시 설명합니다.</li>
<li>Menus Have Icons: Menu에 각 항목에 Icon을 표시합니다. (default: Off)</li>
<li>Buttons Have Icons: Button에 Icon을 표시합니다. (default: Off)</li>
<li>Cursor theme: Mouse Cursor의 Theme를 변경합니다. (default: DMZ-White)</li>
<li>Keybinding theme: 편집 시에 사용되는 기본 단축키(ex. Ctrl + A)를 변경하는 Keybinding Theme를 설정합니다. (default: default)</li>
<li>Icon theme: Icon의 Theme를 변경합니다. (default: Ubuntu-mono-dark)</li>
<li>GTK+ theme: GTK+ Component의 Theme를 설정합니다. (default: Ambiance)</li>
<li>Window theme: Window Frame의 Theme를 설정합니다. (default: Adwaita)</li>
</ul>
<div id="attachment_4394" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/05-Gnome-Tweak-Tool-Windows.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/05-Gnome-Tweak-Tool-Windows-300x239.png" alt="Gnome Tweak Tool - Windows" title="Gnome Tweak Tool - Windows" width="300" height="239" class="size-medium wp-image-4394" /></a><p class="wp-caption-text">Gnome Tweak Tool - Windows</p></div>
<p>Windows에서는 다음과 같은 설정을 변경할 수 있습니다.</p>
<ul>
<li>제목을 두 번 누를 때 동작: Window의 상단 Title Bar를 Double-Click할 경우의 동작을 설정합니다. (default: 최대화)</li>
<li>제목에 마우스 가운데 단추를 누를 때 동작: Window의 상단 Title Bar에서 Mouse 가운데 Button을 눌렀을 때의 동작을 설정합니다. (default: 창 뒤로 보내기)</li>
<li>제목을 마우스 오른쪽 단추를 누를 때 동작: Window의 상단 Title Bar에서 Mouse 오른쪽 Button을 눌렀을 때의 동작을 설정합니다. (default: Menu)</li>
<li>창 포커스 모드: Window가 Focus를 얻는 방법을 설정합니다. (default: Click)</li>
</ul>
<h3><span id="12_Desktop_Shell">12. Desktop Shell 설정</span></h3>
<div id="attachment_4405" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/07-LightDM.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/07-LightDM-300x222.png" alt="LightDM" title="LightDM" width="300" height="222" class="size-medium wp-image-4405" /></a><p class="wp-caption-text">LightDM</p></div>
<p>Ubuntu Oneiric Ocelot 11.10에서는 여러가지 Desktop Shell을 사용할 수 있습니다. LightDM에서 위의 그림과 같이 설정 Icon을 Click하면 다음과 같은 Shell을 선택할 수 있습니다.</p>
<ul>
<li>GNOME Classic: Desktop Shell이 적용되기 이전의 GNOME을 사용할 수 있습니다.</li>
<li>GNOME Classic (No Effects): GNOME Classic에서 3D Effect가 제거된 것입니다.</li>
<li>Ubuntu 2D: Ubuntu의 기본 Desktop Shell인 Unity에서 3D Effect가 제거된 것입니다.</li>
<li>그놈: GNOME 3의 Default Shell인 GNOME Shell을 사용합니다. </li>
<li>우분투: Ubuntu의 기본 Desktop Shell인 Unity를 사용합니다.</li>
</ul>
<h4><span id="121_Gnome_Classic">12.1. Gnome Classic</span></h4>
<div id="attachment_4406" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/08-GNOME-Classic.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/08-GNOME-Classic-300x222.png" alt="GNOME Classic" title="GNOME Classic" width="300" height="222" class="size-medium wp-image-4406" /></a><p class="wp-caption-text">GNOME Classic</p></div>
<p>Gnome Classic은 Ubuntu에 Unity가 적용되기 이전의 GNOME의 모습으로 사용하는 것을 의미합니다. </p>
<p>다음과 같이 Terminal에서 입력하여 설치한 후, LightDM에서 GNOME Classic을 선택하고 Login하면 됩니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-session-fallback</div></td></tr></tbody></table></div>
<h4><span id="122_Unity">12.2. Unity</span></h4>
<div id="attachment_4407" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/09-Unity-default.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/09-Unity-default-300x222.png" alt="Unity (default)" title="Unity (default)" width="300" height="222" class="size-medium wp-image-4407" /></a><p class="wp-caption-text">Unity (default)</p></div>
<p>Unity는 Ubuntu에서 이전에 Netbook과 같은 작은 해상도를 가진 Device를 위해 만든 Desktop Shell로 Ubuntu의 기본 Desktop Shell입니다. (LightDM에서 우분투로 표시됨)</p>
<p>이전 Release보다는 편해진 감이 있지만, 아무래도 iBus를 사용했을 때 한글입력에 관한 문제가 Unity에 있다보니 잘 사용되지 않네요. (자세한 내용은 IME 설정의 내용을 참조) 기본적인 설정만 소개하도록 하겠습니다.</p>
<h5><span id="1221_Notification_Area">12.2.1. Notification Area 설정</span></h5>
<p>GNOME의 System Tray는 Notification Area(알림 영역)에서 Indicator로 변경되는 추세입니다. 아직 Indicator를 지원하지 않는 Application을 위해 Notification Area를 사용하는 방법을 설명합니다.</p>
<p>먼저, GNOME 3의 설정 Daemon인 dconf를 편집할 수 있는 Program을 설치해야 합니다. Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> dconf-tools</div></td></tr></tbody></table></div>
<div id="attachment_4408" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/10-Dash-dconf-Editor.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/10-Dash-dconf-Editor-300x195.png" alt="Dash - dconf Editor" title="Dash - dconf Editor" width="300" height="195" class="size-medium wp-image-4408" /></a><p class="wp-caption-text">Dash - dconf Editor</p></div>
<p>Dash에서 시스템 -> dconf Editor를 Click합니다.</p>
<div id="attachment_4409" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/11-dconf-Editor-systray-whitelist.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/11-dconf-Editor-systray-whitelist-300x236.png" alt="dconf Editor - systray-whitelist" title="dconf Editor - systray-whitelist" width="300" height="236" class="size-medium wp-image-4409" /></a><p class="wp-caption-text">dconf Editor - systray-whitelist</p></div>
<p>왼쪽 Treeview에서 Desktop -> Unity -> Panel을 선택하면 systray-whitelist라는 Key가 표시됩니다. </p>
<p>systray-whitelist의 Value를 Click하여 위와 같이 ['all']을 입력하면 Notification Area를 지원하는 모든 Application이 System tray에 표시됩니다.</p>
<h5><span id="1222_Unity">12.2.2. Unity 설정</span></h5>
<p>Unity를 설정하기 위해서는 CompizConfig Settings Manager가 필요합니다. Terminal에서 다음과 같이 입력하여 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> compizconfig-settings-manager</div></td></tr></tbody></table></div>
<div id="attachment_4410" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/12-Dash-Compizconfig-Settings-Manager.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/12-Dash-Compizconfig-Settings-Manager-300x195.png" alt="Dash - Compizconfig Settings Manager" title="Dash - Compizconfig Settings Manager" width="300" height="195" class="size-medium wp-image-4410" /></a><p class="wp-caption-text">Dash - Compizconfig Settings Manager</p></div>
<p>Dash에서 개인화 -> 컴피즈 설정 관리자를 Click합니다.</p>
<div id="attachment_4411" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/13-CCSM-Ubuntu-Unity-Plugin.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/13-CCSM-Ubuntu-Unity-Plugin-300x191.png" alt="CCSM - Ubuntu Unity Plugin" title="CCSM - Ubuntu Unity Plugin" width="300" height="191" class="size-medium wp-image-4411" /></a><p class="wp-caption-text">CCSM - Ubuntu Unity Plugin</p></div>
<p>CompizConfig Settings Manager를 실행한 모습입니다. 원래 Desktop의 3D 효과를 담당하는 Daemon인 Compiz를 설정하기 위한 Program인데 여기서 Unity의 설정도 같이 변경할 수 있습니다. 데스크탑의 Ubuntu Unity Plugin을 Click합니다.</p>
<div id="attachment_4412" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/14-Ubuntu-Unity-Plugin-Behaviour.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/14-Ubuntu-Unity-Plugin-Behaviour-300x191.png" alt="Ubuntu Unity Plugin - Behaviour" title="Ubuntu Unity Plugin - Behaviour" width="300" height="191" class="size-medium wp-image-4412" /></a><p class="wp-caption-text">Ubuntu Unity Plugin - Behaviour</p></div>
<p>자신의 취향에 맞게 설정을 변경합니다. Unity Plugin 설정의 Behavior Tab에서는 다음과 같은 설정을 할 수 있습니다.</p>
<ul>
<li>Reveal Mode: 왼쪽에 위치한 Launcher가 숨겨진 경우 다시 표시하기 위해서 인식할 화면 상의 Mouse 위치를 선택할 수 있습니다. (default: 왼쪽)</li>
<li>Edge Reveal Timeout: Launcher가 숨겨진 경우 다시 표시하기 위해 Mouse Cursor를 화면 왼쪽 가장자리에 가져간 다음 얼마 후에 Launcher를 표시할 지를 설정합니다. (default: 300ms)</li>
<li>Hide Launcher: Launcher를 숨겨할 경우를 선택합니다. (default: Window가 Launcher에 닿은 경우)</li>
<li>Key to show the launcher: 숨겨진 Launcher를 화면에 표시할 Key를 설정합니다. (default: Super Key(Windows Key))</li>
<li>Key to put keyboard-focus on launcher: Launcher가 Key 입력을 받도록 Focus를 주는 Key를 설정합니다. (default: Alt + F1)</li>
<li>Key to execute a command: Dash의 실행 창을 표시할 Key를 설정합니다. (default: Alt + F2)</li>
<li>Key to open the first panel menu: Unity가 지원하는 Global Menu(Application의 Menu가 Panel에 표시되는 것)에서 첫번째 Menu를 표시할 Key를 설정합니다. (default: F10)</li>
</ul>
<div id="attachment_4413" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/15-Ubuntu-Unity-Plugin-Switcher.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/15-Ubuntu-Unity-Plugin-Switcher-300x191.png" alt="Ubuntu Unity Plugin - Switcher" title="Ubuntu Unity Plugin - Switcher" width="300" height="191" class="size-medium wp-image-4413" /></a><p class="wp-caption-text">Ubuntu Unity Plugin - Switcher</p></div>
<p>Switcher Tab에서는 Alt + Tab으로 표시되는 Window Switcher에 대한 설정을 다룹니다. 다음과 같은 설정을 변경할 수 있습니다.</p>
<ul>
<li>Automatically grid windows on timer in switcher: Window Switcher의 Window가 선택된 상태에서 Alt Key를 계속 누르고 있으면 해당 Window의 화면을 보여주는 기능을 사용할 지 여부를 설정합니다. (default: Check)</li>
<li>Bias alt-tab sorting to prefer windows on the current viewport: Window Switcher에서 현재 사용자가 위치하고 있는 화면에 있는 Window가 우선으로 표시되도록 정렬합니다.(default: Uncheck)</li>
<li>Key to start the switcher: Window Switcher를 표시하는 단축키를 설정합니다. (default: Alt + Tab)</li>
<li>Key to start the switcher in reverse: Window Switcher에서 역방향으로 Window를 Switching하는 Key를 설정합니다. (default: Shift + Alt + Tab)</li>
<li>Go right in the switcher: Window Switcher가 표시된 상태에서 오른쪽 Window를 선택하는 Key를 설정합니다. (default: Alt + Right)</li>
<li>Go left in the switcher: Window Switcher가 표시된 상태에서 왼쪽 Window를 선택하는 Key를 설정합니다. (default: Alt + Left)</li>
<li>Key to expose the windows in the switcher: Window Switcher에 표시된 Window가 Dialog와 같은 하위 Window를 가지고 있을 경우 세부적인 Window를 표시하는 Key를 설정합니다. (default: Alt + Down)</li>
<li>Key to collapse windows in the switcher: Window Switcher에 표시된 Window의 하위 Window가 표시된 상태에서 다시 상위 Window만 표시하도록 변경하는 Key를 설정합니다. (default: Alt + Up)</li>
<li>Key to flip through windows in the switcher: Window Switcher에서 선택한 Window의 화면을 바로 표시해주는 Key를 설정합니다. 제대로 동작하지 않는군요. <img src='http://ioriy2k.pe.kr/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (default: Disable)</li>
<li>Key to flip through windows in the switcher backwards: Window Switcher에서 역순으로 선택한 Window의 화면을 바로 표시해주는 Key를 설정합니다. 제대로 동작하지 않는군요. <img src='http://ioriy2k.pe.kr/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (default: Disable)</li>
<li>Show minimized windows in switcher: Check할 경우 Window Switcher에 최소화된 Window도 포함합니다. (default: Check)</li>
</ul>
<div id="attachment_4414" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/16-Ubuntu-Unity-Plugin-Experimental.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/16-Ubuntu-Unity-Plugin-Experimental-300x191.png" alt="Ubuntu Unity Plugin - Experimental" title="Ubuntu Unity Plugin - Experimental" width="300" height="191" class="size-medium wp-image-4414" /></a><p class="wp-caption-text">Ubuntu Unity Plugin - Experimental</p></div>
<p>Experimental Tab에서는 다음과 같은 설정을 할 수 있습니다.</p>
<ul>
<li>Backlight Mode : Launcher의 각 Icon의 배경에 칠해지는 Backlight을 언제 표시할 지를 설정합니다. (default: Backlight Always On)</li>
<li>Launch Animation : Launcher에서 Icon을 Click하여 Application을 실행하는 동안에 Icon Animation을 설정합니다. (default: Pulse Until Running)</li>
<li>Urgent Animation : Application에서 알림을 표시할 때 Launcher의 Icon에 Animation 효과를 설정합니다. (default: Wiggle)</li>
<li>Panel Opacity : Unity 상단의 Panel에 투명 효과를 줄 수 있습니다. (default: 1)</li>
<li>Launcher Opacity: Launcher의 투명도를 조절합니다. (deafult: 0.6667)</li>
<li>Launcher Icon Size : Launcher의 Icon 크기를 설정할 수 있습니다. (default: 48 pixel)</li>
<li>Hide Animation : Launcher가 숨겨질 때 Animation을 설정할 수 있습니다. (default: Fade and Slide)</li>
<li>Dash Blur : Unity의 Application Menu인 Dash에 Blur 효과를 줍니다. (default: Active Blur)</li>
<li>Automaximize value: Window가 화면에 몇 %이상의 크기를 가지고 있으면 다음 실행 때 자동으로 최대화하여 실행합니다. (default: 75)</li>
<li>Show Devices: System에 연결된 Block Device 중 Launcher에 표시할 것을 설정합니다. (default: Only Mounted)</li>
</ul>
<h5><span id="1223_Zeitgeist">12.2.3. Zeitgeist 설정</span></h5>
<div id="attachment_4415" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/17-Activity-Log-Manager.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/17-Activity-Log-Manager-300x215.png" alt="Activity Log Manager" title="Activity Log Manager" width="300" height="215" class="size-medium wp-image-4415" /></a><p class="wp-caption-text">Activity Log Manager</p></div>
<p>Unity에서는 사용자가 사용하는 Application, File을 Tracking해서 정보를 표시하기 위해 Zeitgeist라는 Service Daemon을 사용합니다.</p>
<p>Zeitgeist를 설정할 수 있는 방법을 기본적으로 제공하지는 않지만, Activity Log Manager를 설치하면 Zeitgeist를 통해 Log로 저장할 정보를 선택하거나 지울 수 있습니다. </p>
<p>자세한 내용은 <a href="http://ioriy2k.pe.kr/archives/2310" title="Ubuntu Natty Narwhal 11.04에서 Zeitgeist 설정하기" target="_blank">Ubuntu Natty Narwhal 11.04에서 Zeitgeist 설정하기</a>를 참고하기 바랍니다.</p>
<h4><span id="123_Gnome_Shell">12.3. Gnome Shell</span></h4>
<div id="attachment_4448" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/19-GNOME-Shell.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/19-GNOME-Shell-300x168.png" alt="GNOME Shell" title="GNOME Shell" width="300" height="168" class="size-medium wp-image-4448" /></a><p class="wp-caption-text">GNOME Shell</p></div>
<p>GNOME Shell은 GNOME 3의 Default Desktop Shell입니다. Unity가 Netbook을 Target으로 한 UX라면 GNOME Shell은 Touch기반 Interface를 중심으로 UX를 설계한 듯 보입니다.</p>
<p>특징으로는 기본적으로 모든 것을 Activity Window(위의 그림)에서 처리하도록 만들어 놓았다는 것입니다. 현재 활동을 Click하거나 마우스를 화면의 왼쪽 위 가장자리로 가져가면 표시되는 Activity Window는 Window Switcher와 App Launcher, Program Menu, Search가 모두 통합되어 있습니다.</p>
<p>좀 특이한 것은 Default로 Window Titlebar에 닫기 Button밖에 없다는 것입니다. Window를 최소화하려면 Titlebar에서 Mouse 오른쪽 Button으로 Popup을 열어서 하거나 아니면 GNOME Tweak Tool로 설정을 변경해야 합니다.</p>
<p>또한, Unity와는 달리 가상화면의 개수를 따로 설정할 수 없습니다. 현재 가상화면에 표시된 Window에 따라 동적으로 가상화면의 개수가 변경됩니다.</p>
<p>GNOME Shell은 Ubuntu 설치 시에 기본적으로 설치되지 않습니다. 설치를 위해서 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-shell</div></td></tr></tbody></table></div>
<p>설치 후, LightDM에서 그놈을 선택한 후 Login하면 GNOME Shell을 사용할 수 있습니다.</p>
<h5><span id="1231_GNOME_Sushi">12.3.1. GNOME Sushi 설치</span></h5>
<div id="attachment_4449" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/20-GNOME-Sushi.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/20-GNOME-Sushi-300x175.png" alt="GNOME Sushi" title="GNOME Sushi" width="300" height="175" class="size-medium wp-image-4449" /></a><p class="wp-caption-text">GNOME Sushi</p></div>
<p>GNOME Sushi는 Nautilus에서 File의 간단하 미리보기를 보여주는 Program으로 GNOME 3에서 기본 제공하는 Program이지만 Ubuntu에서는 기본적으로 설치되지 않습니다. </p>
<p>GNOME Sushi를 설치하려면 다음과 같이 Terminal에서 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-sushi<br />
$ nautilus <span style="color: #660033;">-q</span></div></td></tr></tbody></table></div>
<p>GNOME Sushi를 사용하려면 Nautilus에서 미리보기를 원하는 File을 선택한 다음 Space Bar를 누르면 됩니다.</p>
<h5><span id="1232_GNOME_Contacts">12.3.2. GNOME Contacts 설치</span></h5>
<div id="attachment_4450" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/21-GNOME-Contacts.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/21-GNOME-Contacts-300x215.png" alt="GNOME Contacts" title="GNOME Contacts" width="300" height="215" class="size-medium wp-image-4450" /></a><p class="wp-caption-text">GNOME Contacts</p></div>
<p>GNOME Contacts도 GNOME 3의 기본 Program이지만 Ubuntu에는 Default로 설치되지 않습니다. 이 Program은 연락처를 관리하는 Application으로 Online 계정(현재는 Google만을 지원)을 GNOME과 연동하면 해당 계정의 연락처를 읽어와서 GNOME Contacts로 관리할 수 있습니다.</p>
<p>설치를 하려면 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-contacts</div></td></tr></tbody></table></div>
<div id="attachment_4466" class="wp-caption aligncenter" style="width: 260px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/35-GNOME-Shell-Status-Menu.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/35-GNOME-Shell-Status-Menu-250x300.png" alt="GNOME Shell - Status Menu" title="GNOME Shell - Status Menu" width="250" height="300" class="size-medium wp-image-4466" /></a><p class="wp-caption-text">GNOME Shell - Status Menu</p></div>
<p>먼저 사용을 위해서 Online 계정을 설정해야 합니다. 상단의 Status Menu에서 온라인 계정을 Click합니다.</p>
<div id="attachment_4467" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/36-GNOME-Control-Center-Online-Accounts.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/36-GNOME-Control-Center-Online-Accounts-300x159.png" alt="GNOME Control Center - Online Accounts" title="GNOME Control Center - Online Accounts" width="300" height="159" class="size-medium wp-image-4467" /></a><p class="wp-caption-text">GNOME Control Center - Online Accounts</p></div>
<p>온라인 계정 설정창에서 +를 누릅니다.</p>
<div id="attachment_4468" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/37-Online-Accounts-Add.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/37-Online-Accounts-Add-300x159.png" alt="Online Accounts - Add" title="Online Accounts - Add" width="300" height="159" class="size-medium wp-image-4468" /></a><p class="wp-caption-text">Online Accounts - Add</p></div>
<p>현재 지원되는 Online 계정으로는 Google이 유일합니다. 추가를 누릅니다.</p>
<div id="attachment_4469" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/38-Online-Accounts-Google-Login.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/38-Online-Accounts-Google-Login-300x274.png" alt="Online Accounts - Google Login" title="Online Accounts - Google Login" width="300" height="274" class="size-medium wp-image-4469" /></a><p class="wp-caption-text">Online Accounts - Google Login</p></div>
<p>Google의 Login Page가 표시됩니다. Email와 Password를 입력하고 Sign In을 Click합니다.</p>
<div id="attachment_4470" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/39-Online-Accounts-Grant-Access.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/39-Online-Accounts-Grant-Access-300x274.png" alt="Online Accounts - Grant Access" title="Online Accounts - Grant Access" width="300" height="274" class="size-medium wp-image-4470" /></a><p class="wp-caption-text">Online Accounts - Grant Access</p></div>
<p>Google 계정에 접근하기 위한 권한을 허락할 지를 물어봅니다. Grant Access를 Click합니다.</p>
<div id="attachment_4472" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/40-Online-Accounts-Google.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/40-Online-Accounts-Google-300x159.png" alt="Online Accounts - Google" title="Online Accounts - Google" width="300" height="159" class="size-medium wp-image-4472" /></a><p class="wp-caption-text">Online Accounts - Google</p></div>
<p>설정이 완료되면 위의 그림과 같이 Google 계정과 연동이 됩니다.</p>
<p>연동이 된 후에는 Activity Window에서 프로그램 -> 보조 프로그램 -> 연락을 Click하면 연락처를 관리할 수 있습니다.</p>
<h5><span id="1233_GNOME_Shell">12.3.3. GNOME Shell 설정</span></h5>
<div id="attachment_4451" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/22-Advanced-Settings_001.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/22-Advanced-Settings_001-300x236.png" alt="Advanced Settings - Shell" title="Advanced Settings - Shell" width="300" height="236" class="size-medium wp-image-4451" /></a><p class="wp-caption-text">Advanced Settings - Shell</p></div>
<p>GNOME Shell의 자세한 설정을 위해서는 GNOME Tweak Tool을 사용해야 합니다.</p>
<p>프로그램 -> 기타 -> Advanced Settings를 Click하여 GNOME Tweak Tool을 실행한 다음, 왼쪽의 Shell을 Click하면 위와 같은 설정화면을 확인할 수 있습니다.</p>
<p>설정할 수 있는 항목은 다음과 같습니다.</p>
<ul>
<li>Show date in clock: 상단 Panel의 시계에 날짜를 표시합니다. (default: Off)</li>
<li>Show time with seconds: 상단 Panel의 시계에 초를 표시합니다. (default: Off)</li>
<li>Show the week date in the calendar: 상단 Panel의 시계를 Click하면 표시되는 달력에 몇 번째 주인지를 표시합니다. (default: Off)</li>
<li>Arrangement of buttons on the titlebar: Window Titlebar 오른쪽에 표시할 Button을 설정합니다. (default: Close Only)</li>
<li>Laptop lid close action on battery: Battery상태에서 Laptop을 닫을 때의 행동을 설정합니다. (default: suspend)</li>
<li>Laptop lid close action when on AC: AC 전원이 연결된 상태에서 Laptop을 닫을 때의 행동을 설정합니다. (default: suspend)</li>
</ul>
<div id="attachment_4452" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/23-Run-Command.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/23-Run-Command-300x71.png" alt="Run Command" title="Run Command" width="300" height="71" class="size-medium wp-image-4452" /></a><p class="wp-caption-text">Run Command</p></div>
<p>설정을 변경해도 제대로 적용이 되지 않을 때에는 Alt + F2를 눌러서 위와 같이 Command 창을 띄운 후, r을 입력하고 Enter를 누르면 GNOME Shell이 다시 시작되면서 변경된 설정이 적용됩니다.</p>
<h5><span id="1234_Extension">12.3.4. Extension</span></h5>
<p>GNOME Shell은 Extension을 통해 사용하기 편리한 기능들을 추가할 수 있습니다.</p>
<p>기본적으로 Ubuntu Repository에서 GNOME Shell Extension을 지원하지 않기 때문에 PPA를 사용해서 설치해야 합니다. Extension을 설치하기 전에 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:webupd8team<span style="color: #000000; font-weight: bold;">/</span>gnome3<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get update</span></div></td></tr></tbody></table></div>
<h6><span id="12341_Extension_Classic_Systray">12.3.4.1. Extension: Classic Systray</span></h6>
<div id="attachment_4453" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/24-Extension-Classic-Systray.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/24-Extension-Classic-Systray-300x106.png" alt="Extension - Classic Systray" title="Extension - Classic Systray" width="300" height="106" class="size-medium wp-image-4453" /></a><p class="wp-caption-text">Extension - Classic Systray</p></div>
<p>Classic Systray는 화면 아래의 Message Panel에 표시되는 Indicator나 Notification Area를 사용하는 Program들을 화면 상단의 Panel에 표시하게 해주는 Extension입니다.</p>
<p>설치를 위해서 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-shell-classic-systray</div></td></tr></tbody></table></div>
<p>설치한 후에는 GNOME Shell을 다시 시작합니다. (Alt + F2, r, Enter)</p>
<div id="attachment_4454" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/25-Advanced-Settings-Classic-Systray-Extension.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/25-Advanced-Settings-Classic-Systray-Extension-300x236.png" alt="Advanced Settings - Classic Systray Extension" title="Advanced Settings - Classic Systray Extension" width="300" height="236" class="size-medium wp-image-4454" /></a><p class="wp-caption-text">Advanced Settings - Classic Systray Extension</p></div>
<p>Activity Windows에서 프로그램 -> 기타 -> Advanced Settings를 Click하여 GNOME Tweak Tool을 실행한 다음, Shell Extensions에서 gnome-shell-classic-systray Extension을 켬으로 변경합니다.</p>
<p>그리고 GNOME Shell을 한 번 더 다시 시작하면 제대로 적용이 된 것을 확인할 수 있습니다.</p>
<h6><span id="12342_Extension_No_Accessibility">12.3.4.2. Extension: No Accessibility</span></h6>
<div id="attachment_4455" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/26-Extension-No-Accessibility.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/26-Extension-No-Accessibility-300x187.png" alt="Extension - No Accessibility" title="Extension - No Accessibility" width="300" height="187" class="size-medium wp-image-4455" /></a><p class="wp-caption-text">Extension - No Accessibility</p></div>
<p>No Accessibility는 상단 Panel에 표시되는 접근성 Icon을 없애는 Extension입니다. 설치를 위해서 다음과 같이 Terminal에서 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-shell-extensions-noa11y</div></td></tr></tbody></table></div>
<p>설치한 후에는 GNOME Shell을 다시 시작합니다. (Alt + F2, r, Enter)</p>
<div id="attachment_4456" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/27-Advanced-Settings-noa11y-Extension.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/27-Advanced-Settings-noa11y-Extension-300x236.png" alt="Advanced Settings - noa11y Extension" title="Advanced Settings - noa11y Extension" width="300" height="236" class="size-medium wp-image-4456" /></a><p class="wp-caption-text">Advanced Settings - noa11y Extension</p></div>
<p>Activity Windows에서 프로그램 -> 기타 -> Advanced Settings를 Click하여 GNOME Tweak Tool을 실행한 다음, Shell Extensions에서 noa11y Extension을 켬으로 변경합니다.</p>
<p>그리고 GNOME Shell을 한 번 더 다시 시작하면 제대로 적용이 된 것을 확인할 수 있습니다.</p>
<h6><span id="12343_Extension_Alternative_Status_Menu">12.3.4.3. Extension: Alternative Status Menu</span></h6>
<div id="attachment_4457" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/28-Extension-Alternative-Status-Menu.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/28-Extension-Alternative-Status-Menu-300x201.png" alt="Extension - Alternative Status Menu" title="Extension - Alternative Status Menu" width="300" height="201" class="size-medium wp-image-4457" /></a><p class="wp-caption-text">Extension - Alternative Status Menu</p></div>
<p>기본적으로 Status Menu에는 전원 끄기 기능이 표시되지 않습니다. Status Menu가 표시된 상태에서 Alt Key를 누르면 전원 끄기가 표시되지만 사용하기에 조금 불편합니다.</p>
<p>Alternative Status Menu는 Alt Key를 누르지 않고도 전원 끄기가 표시되도록 만들어주는 Extension입니다.</p>
<p>설치를 위해서 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-shell-extensions-alternative-status-menu</div></td></tr></tbody></table></div>
<p>설치한 후에는 GNOME Shell을 다시 시작합니다. (Alt + F2, r, Enter)</p>
<div id="attachment_4458" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/29-Advanced-Settings-Alternative-Status-Menu-Extension.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/29-Advanced-Settings-Alternative-Status-Menu-Extension-300x236.png" alt="Advanced Settings - Alternative Status Menu Extension" title="Advanced Settings - Alternative Status Menu Extension" width="300" height="236" class="size-medium wp-image-4458" /></a><p class="wp-caption-text">Advanced Settings - Alternative Status Menu Extension</p></div>
<p>Activity Windows에서 프로그램 -> 기타 -> Advanced Settings를 Click하여 GNOME Tweak Tool을 실행한 다음, Shell Extensions에서 Alternative Status Menu Extension을 켬으로 변경합니다.</p>
<p>그리고 GNOME Shell을 한 번 더 다시 시작하면 제대로 적용이 된 것을 확인할 수 있습니다.</p>
<h6><span id="12344_Extension_Weather_Indicator">12.3.4.4. Extension: Weather Indicator</span></h6>
<div id="attachment_4459" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/30-Extension-Weather-Indicator.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/30-Extension-Weather-Indicator-300x178.png" alt="Extension - Weather Indicator" title="Extension - Weather Indicator" width="300" height="178" class="size-medium wp-image-4459" /></a><p class="wp-caption-text">Extension - Weather Indicator</p></div>
<p>Weather Indicator는 상단 Panel 가운데에 있는 시계 옆에 간단한 날씨를 표시해 줍니다. 설치를 위해서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-shell-extensions-weather</div></td></tr></tbody></table></div>
<p>설치한 후에는 GNOME Shell을 다시 시작합니다. (Alt + F2, r, Enter)</p>
<div id="attachment_4460" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/31-Advanced-Settings-Weather-indicator-Extensioin.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/31-Advanced-Settings-Weather-indicator-Extensioin-300x236.png" alt="Advanced Settings - Weather indicator Extensioin" title="Advanced Settings - Weather indicator Extensioin" width="300" height="236" class="size-medium wp-image-4460" /></a><p class="wp-caption-text">Advanced Settings - Weather indicator Extensioin</p></div>
<p>Activity Windows에서 프로그램 -> 기타 -> Advanced Settings를 Click하여 GNOME Tweak Tool을 실행한 다음, Shell Extensions에서 Weather Indicator Extension을 켬으로 변경합니다.</p>
<p>그리고 GNOME Shell을 한 번 더 다시 시작합니다.</p>
<div id="attachment_4463" class="wp-caption aligncenter" style="width: 267px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/34-Weather-Indicator-Preferences.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/34-Weather-Indicator-Preferences-257x300.png" alt="Weather Indicator - Preferences" title="Weather Indicator - Preferences" width="257" height="300" class="size-medium wp-image-4463" /></a><p class="wp-caption-text">Weather Indicator - Preferences</p></div>
<p>원하는 지역의 날씨를 표시하기 위해서 Weather Indicator를 Click한 다음, Preferences(오른쪽 상단의 설정 Icon)를 Click하면 위와 같은 설정창이 표시됩니다.</p>
<p>지역을 설정하려면 WOEID에 weather.com의 해당 지역 ID를 입력한 후 Enter를 누르면 됩니다.</p>
<div id="attachment_4461" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/32-weather.com-South-Korea-Weather.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/32-weather.com-South-Korea-Weather-300x240.png" alt="weather.com - South Korea Weather" title="weather.com - South Korea Weather" width="300" height="240" class="size-medium wp-image-4461" /></a><p class="wp-caption-text">weather.com - South Korea Weather</p></div>
<p>weather.com에서 지역 ID를 얻으려면 먼저 <a href="http://www.weather.com/outlook/weatherbycountry/south_korea" target="_blank">weather.com의 South Korea Weather Page</a>를 방문하여 원하는 지역을 선택합니다.</p>
<div id="attachment_4462" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/33-weather.com-Seoul.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/33-weather.com-Seoul-300x240.png" alt="weather.com - Seoul" title="weather.com - Seoul" width="300" height="240" class="size-medium wp-image-4462" /></a><p class="wp-caption-text">weather.com - Seoul</p></div>
<p>해당 지역의 날씨가 표시된 Page에서 Web Browser의 URL에 끝에 있는 8개 문자로 된 Code를 복사합니다.</p>
<p>그리고 이 Code를 WOEID에 입력하면 해당 지역의 날씨를 Weather Indicator를 통해 확인할 수 있습니다.</p>
<h5><span id="1235_Theme">12.3.5. Theme 설정</span></h5>
<p>GNOME Shell에서 Theme를 설정하기 위해서는 GNOME Shell, GTK+, Icon Theme를 설정해야 합니다. 또한 GNOME Control Center에서 설정할 수 있는 부분이 제한적이기 때문에 자세한 설정을 위해서 GNOME Tweak Tool을 사용해야 합니다.</p>
<h6><span id="12351_GNOME_Shell_Theme">12.3.5.1. GNOME Shell Theme 설정</span></h6>
<p>GNOME Shell Theme는 GNOME Shell의 Activity Window와 상단, 하단 Panel의 모양을 변경합니다. 설정을 위해서는 먼저 GNOME Shell Theme Extension을 설치해야 합니다. 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gnome-shell-extensions-user-theme</div></td></tr></tbody></table></div>
<p>설치한 후에는 GNOME Shell을 다시 시작합니다. (Alt + F2, r, Enter)</p>
<div id="attachment_4497" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/45-Advanced-Settings-User-Themes-Extension.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/45-Advanced-Settings-User-Themes-Extension-300x236.png" alt="Advanced Settings - User Themes Extension" title="Advanced Settings - User Themes Extension" width="300" height="236" class="size-medium wp-image-4497" /></a><p class="wp-caption-text">Advanced Settings - User Themes Extension</p></div>
<p>Activity Window에서 프로그램 -> 기타 -> Advanced Settings를 실행한 다음, 위와 같이 Shell Extensions에서 User Themes Extension을 활성화하고 GNOME Tweak Tool을 종료합니다.</p>
<div id="attachment_4498" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/46-GNOME-Shell-Theme-Elementary-Luna.jpg" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/46-GNOME-Shell-Theme-Elementary-Luna-300x169.jpg" alt="GNOME Shell Theme - Elementary Luna" title="GNOME Shell Theme - Elementary Luna" width="300" height="169" class="size-medium wp-image-4498" /></a><p class="wp-caption-text">GNOME Shell Theme - Elementary Luna</p></div>
<p>제가 사용하고 있는 GNOME Shell Theme는 Elementary Luna입니다. <a href="http://half-left.deviantart.com/art/GNOME-Shell-Elementary-Luna-251149793" target="_blank">다음 Page</a>에서 Download File을 Click하여 Download한 다음, 아래와 같이 입력하여 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">unzip</span> gnome_shell<span style="color: #000000; font-weight: bold;">*</span>.zip <br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">unzip</span> Elementary-Luna-<span style="color: #000000;">3.2</span>.zip <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>themes<span style="color: #000000; font-weight: bold;">/</span></div></td></tr></tbody></table></div>
<div id="attachment_4499" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/47-Advanced-Settings-Shell-Theme.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/47-Advanced-Settings-Shell-Theme-300x236.png" alt="Advanced Settings - Shell Theme" title="Advanced Settings - Shell Theme" width="300" height="236" class="size-medium wp-image-4499" /></a><p class="wp-caption-text">Advanced Settings - Shell Theme</p></div>
<p>설치한 후에는 GNOME Tweak Tool을 다시 실행하여 Theme의 Shell Theme에서 Elementary-Luna-3.2를 선택한 다음, GNOME Shell을 다시 시작하면 Theme가 적용됩니다.</p>
<h6><span id="12352_GTK_3_Theme">12.3.5.2. GTK+ 3 Theme 설정</span></h6>
<div id="attachment_4500" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/48-GTK3-Theme-Radiamentary.jpg" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/48-GTK3-Theme-Radiamentary-300x168.jpg" alt="GTK3 Theme - Radiamentary" title="GTK3 Theme - Radiamentary" width="300" height="168" class="size-medium wp-image-4500" /></a><p class="wp-caption-text">GTK3 Theme - Radiamentary</p></div>
<p>이번에는 GTK+ 3 Theme를 설치해 보도록 하겠습니다. 제가 사용하고 있는 Radiamentary Theme는 <a href="http://nanabuluku.deviantart.com/art/Radiamentary-255615403" target="_blank">다음 Page</a>에서 Download 할 수 있습니다. </p>
<p>Download한 File을 설치하기 위해서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">unzip</span> radiamentary<span style="color: #000000; font-weight: bold;">*</span>.zip <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>themes<span style="color: #000000; font-weight: bold;">/</span></div></td></tr></tbody></table></div>
<div id="attachment_4501" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/49-Advanced-Settings-Window-and-GTK-Theme.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/49-Advanced-Settings-Window-and-GTK-Theme-300x236.png" alt="Advanced Settings - Window and GTK+ Theme" title="Advanced Settings - Window and GTK+ Theme" width="300" height="236" class="size-medium wp-image-4501" /></a><p class="wp-caption-text">Advanced Settings - Window and GTK+ Theme</p></div>
<p>설치 후, GNOME Tweak Tool을 실행하여 Theme의 GTK+ Theme, Window Theme를 RadienceBlue_0_66로 변경합니다. 그리고 GNOME Shell을 다시 시작하면 Theme가 적용됩니다.</p>
<h6><span id="12353_Icon_Theme">12.3.5.3. Icon Theme 설정</span></h6>
<div id="attachment_4502" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/50-Icon-Theme-Faenza.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/50-Icon-Theme-Faenza-300x225.png" alt="Icon Theme - Faenza" title="Icon Theme - Faenza" width="300" height="225" class="size-medium wp-image-4502" /></a><p class="wp-caption-text">Icon Theme - Faenza</p></div>
<p>이번에는 Icon Theme를 설치해 보겠습니다. 제가 사용하고 있는 Faenza Icon Theme를 설치하려면 다음과 같이 Terminal에서 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:tiheum<span style="color: #000000; font-weight: bold;">/</span>equinox<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get update</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> faenza-icon-theme</div></td></tr></tbody></table></div>
<p>보통 Icon Theme는 /usr/share/icons에 설치하면 됩니다. Faenza의 경우는 PPA를 통해 Package를 제공하고 있기 때문에 위와 같은 방법으로 설치한 것입니다.</p>
<div id="attachment_4503" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/51-Advanced-Settings-Icon-Theme.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/51-Advanced-Settings-Icon-Theme-300x236.png" alt="Advanced Settings - Icon Theme" title="Advanced Settings - Icon Theme" width="300" height="236" class="size-medium wp-image-4503" /></a><p class="wp-caption-text">Advanced Settings - Icon Theme</p></div>
<p>Icon Theme도 마찬가지로, GNOME Tweak Tool에서 Theme의 Icon Theme를 Faenza-Radiance로 변경하면 Theme가 적용됩니다.</p>
<h5><span id="1236_GNOME_Shell_Google_Calendar">12.3.6. GNOME Shell의 달력과 Google Calendar를 연동하는 방법</span></h5>
<div id="attachment_4487" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/41-GNOME-Shell-Google-Calendar.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/41-GNOME-Shell-Google-Calendar-300x159.png" alt="GNOME Shell - Google Calendar" title="GNOME Shell - Google Calendar" width="300" height="159" class="size-medium wp-image-4487" /></a><p class="wp-caption-text">GNOME Shell - Google Calendar</p></div>
<p>GNOME Shell Google Calendar는 Google Calendar와 GNOME Shell의 달력을 연동하여 일정을 확인할 수 있도록 만들어 줍니다.</p>
<p>설치를 하려면 Git를 사용하여 Source를 가져온 다음, E-Mail과 Password를 입력하여 정보를 저장해야 합니다. Terminal에서 다음과 같이 입력합니다.</p>
<blockquote><p>
입력한 계정 정보는 Gnome Keyring으로 관리되기 때문에 안전하며 간편합니다.
</p></blockquote>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> git-core python-gtk2 python-dbus python-gdata python-iso8601 python-gnomekeyring<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">git clone</span> https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>vintitres<span style="color: #000000; font-weight: bold;">/</span>gnome-shell-google-calendar.git <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>gnome-shell-google-calendar<br />
$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>gnome-shell-google-calendar<br />
$ .<span style="color: #000000; font-weight: bold;">/</span>gnome-shell-google-calendar.py<br />
<br />
Please enter your Google Calendar <span style="color: #c20cb9; font-weight: bold;">login</span> information.<br />
The email and password will be stored securely <span style="color: #000000; font-weight: bold;">in</span> your keyring.<br />
E-mail: <span style="color: #7a0874; font-weight: bold;">&#40;</span>GMail 주소 입력<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
Password: <span style="color: #7a0874; font-weight: bold;">&#40;</span>Password 입력<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<p>정상적으로 Login이 되었다면 게정의 모든 Calendar의 일정을 읽어와서 연동할 것입니다. </p>
<div id="attachment_4488" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/42-Program-Startup-Application.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/42-Program-Startup-Application-300x168.png" alt="Program - Startup Application" title="Program - Startup Application" width="300" height="168" class="size-medium wp-image-4488" /></a><p class="wp-caption-text">Program - Startup Application</p></div>
<p>GNOME Shell Google Calendar를 GNOME Shell 시작 시에 항상 실행되도록 만드려면 시작 프로그램에 등록하면 됩니다.</p>
<p>Activity Window의 Program -> 기타 -> 시작 프로그램을 Click합니다.</p>
<div id="attachment_4489" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/43-Startup-Application.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/43-Startup-Application-300x237.png" alt="Startup Application" title="Startup Application" width="300" height="237" class="size-medium wp-image-4489" /></a><p class="wp-caption-text">Startup Application</p></div>
<p>시작 프로그램에서 추가를 누릅니다.</p>
<div id="attachment_4490" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/44-Startup-Application-Add.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/44-Startup-Application-Add-300x170.png" alt="Startup Application - Add" title="Startup Application - Add" width="300" height="170" class="size-medium wp-image-4490" /></a><p class="wp-caption-text">Startup Application - Add</p></div>
<p>추가 창에서 다음과 같이 입력하고 확인을 누르면 다음 Login시 부터 자동으로 Google Calendar와 GNOME Shell의 달력이 연동됩니다.</p>
<ul>
<li>이름: GNOME Shell Google Calendar</li>
<li>명령: /usr/local/lib/gnome-shell-google-calendar/gnome-shell-google-calendar.py</li>
</ul>
<h5><span id="1237">12.3.7. 검색시 최근 항목을 삭제하는 방법</span></h5>
<div id="attachment_4504" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/52-GNOME-Shell-Search-Results.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/52-GNOME-Shell-Search-Results-300x168.png" alt="GNOME Shell - Search Results" title="GNOME Shell - Search Results" width="300" height="168" class="size-medium wp-image-4504" /></a><p class="wp-caption-text">GNOME Shell - Search Results</p></div>
<p>GNOME Shell은 Zeitgeist를 이용하여 사용자의 행동을 Tracking하는 Unity와는 달리 최근 File 목록을 XML File로 보관하고 있습니다.</p>
<p>검색 결과의 최근 항목을 삭제하려면 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> ~<span style="color: #000000; font-weight: bold;">/</span>.local<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>recently-used.xbel</div></td></tr></tbody></table></div>
<h3><span id="13_IME">13. IME 설정</span></h3>
<p>이번 Oneiric Ocelot에서는 IME 문제로 많은 삽질을 하게 되는군요. 이전 Release에서 잘 작동하던 iBus가 말썽을 일으킨 것이 원인입니다.</p>
<p>이번 항목에서는 한글입력을 위한 IME를 설정하는 방법을 알아봅니다.</p>
<h4><span id="131_iBus">13.1. iBus</span></h4>
<div id="attachment_4534" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/62-IME-iBus.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/62-IME-iBus-300x221.png" alt="IME - iBus" title="IME - iBus" width="300" height="221" class="size-medium wp-image-4534" /></a><p class="wp-caption-text">IME - iBus</p></div>
<p>iBus의 경우에는 Unity에서 한글 입력시 IME Composition 상태에서 Space Bar를 누르면 Space가 Composition 상태의 글자 앞에 들어가는 문제가 발생합니다. (위의 그림 참조)</p>
<p>물론 Desktop Shell을 Unity 2D(우분투 2D)나 GNOME Shell을 사용할 경우 문제가 GTK Application에 대해서는 해결이 됩니다.</p>
<p>그러나 위의 그림과 같이 GNOME Terminal이나 Adobe AIR와 QT 4기반 Application에서 여전히 문제가 발생합니다.</p>
<p>Case는 여러가지가 있는데 정확한 원인은 모르겠군요. 다만 GTK_IM_MODULE 환경변수가 xim으로 되어 있을 때 문제가 발생하는 것으로 보아 iBus의 XIM mode가 제대로 동작하지 않는 것으로 보입니다.</p>
<p>만약 Terminal에서</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$GTK_IM_MODULE</span><br />
xim</div></td></tr></tbody></table></div>
<p>와 같이 표시된다면, 다음과 같이 Terminal에서 입력하면 그나마 문제를 줄일 수 있습니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ im-switch <span style="color: #660033;">-s</span> ibus<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>X11<span style="color: #000000; font-weight: bold;">/</span>xinit<span style="color: #000000; font-weight: bold;">/</span>xinput.d<span style="color: #000000; font-weight: bold;">/</span>ibus<br />
<br />
<span style="color: #007800;">XIM</span>=ibus<br />
<span style="color: #007800;">XIM_PROGRAM</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>ibus-daemon<br />
<span style="color: #007800;">XIM_ARGS</span>=<span style="color: #ff0000;">&quot;--xim&quot;</span><br />
<span style="color: #007800;">GTK_IM_MODULE</span>=ibus<br />
<span style="color: #007800;">QT_IM_MODULE</span>=xim</div></td></tr></tbody></table></div>
<h4><span id="132_Nabi">13.2. Nabi</span></h4>
<div id="attachment_4535" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/63-IME-Nabi.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/63-IME-Nabi-300x221.png" alt="IME - Nabi" title="IME - Nabi" width="300" height="221" class="size-medium wp-image-4535" /></a><p class="wp-caption-text">IME - Nabi</p></div>
<p>Nabi는 우리나라에서 Open-source로 개발한 잘 만들어진 한글 전용 IME입니다. </p>
<p>하지만, iBus에 비해서 한글만을 지원한다는 부분이 조금 아쉽고, 또한 위의 그림과 같이 한글 입력시 중간에 글자를 추가하는 경우, Composition이 완료되기 전 화살표를 누르면 추가하는 글자와 그 다음 글자의 위치가 바뀌어 버리는 문제가 있습니다.<br />
(Libre Office, Adobe AIR 기반 App, Freemind와 같은 일부 Java App에서 발생)</p>
<p>그러나 이외의 경우에서는 잘 동작하기 때문에 위와 같은 문제가 별로 신경쓰이지 않는다면 Nabi를 사용하면 됩니다.</p>
<p>Nabi를 사용하려면 다음과 같이 Terminal에서 입력하고 Logout하면 됩니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span>im-switch <span style="color: #660033;">-s</span> nabi</div></td></tr></tbody></table></div>
<h4><span id="133_SCIM_Recommend">13.3. SCIM (Recommend!)</span></h4>
<p>SCIM은 iBus 이전에 사용하던 여러가지 언어를 지원하는 IME입니다. iBus와 Nabi와는 달리 SCIM을 사용하면 Unity나 다른 Desktop Shell에서 안정적으로 문제없이 한글을 입력할 수 있습니다.</p>
<p>SCIM을 설치하려면 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> scim scim-hangul<br />
$ im-switch <span style="color: #660033;">-s</span> scim-bridge</div></td></tr></tbody></table></div>
<p>SCIM의 환경설정 File에 문제가 좀 있습니다. 다음과 같이 입력해서 해당 File을 수정해야 합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>X11<span style="color: #000000; font-weight: bold;">/</span>xinit<span style="color: #000000; font-weight: bold;">/</span>xinput.d<span style="color: #000000; font-weight: bold;">/</span>scim-bridge</div></td></tr></tbody></table></div>
<p>scim-bridge File에서,</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>gtk-<span style="color: #000000;">2.0</span><span style="color: #000000; font-weight: bold;">/*/</span>immodules<span style="color: #000000; font-weight: bold;">/</span>im-scim-bridge.so <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span></div></td></tr></tbody></table></div>
<p>를 다음과 같이 변경하고 저장합니다.</p>
<ul>
<li>64bit:
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>x86_64-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>gtk-<span style="color: #000000;">2.0</span><span style="color: #000000; font-weight: bold;">/</span>2.10.0<span style="color: #000000; font-weight: bold;">/</span>immodules<span style="color: #000000; font-weight: bold;">/</span>im-scim-bridge.so <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span></div></td></tr></tbody></table></div>
</li>
<li>32bit:
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>i386-linux-gnu<span style="color: #000000; font-weight: bold;">/</span>gtk-<span style="color: #000000;">2.0</span><span style="color: #000000; font-weight: bold;">/</span>2.10.0<span style="color: #000000; font-weight: bold;">/</span>immodules<span style="color: #000000; font-weight: bold;">/</span>im-scim-bridge.so <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span></div></td></tr></tbody></table></div>
</li>
</ul>
<div id="attachment_4536" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/64-SCIM-SCIM-Settings.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/64-SCIM-SCIM-Settings-300x195.png" alt="SCIM - SCIM Settings" title="SCIM - SCIM Settings" width="300" height="195" class="size-medium wp-image-4536" /></a><p class="wp-caption-text">SCIM - SCIM Settings</p></div>
<p>Logout한 다음에 다시 Login하면 SCIM이 실행되어 있을 것입니다. 이제 설정을 위해서 SCIM icon에 Mouse 오른쪽 Click Popup을 띄운 다음, SCIM 설정을 Click합니다.</p>
<div id="attachment_4537" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/65-SCIM-Settings-Shortcut.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/65-SCIM-Settings-Shortcut-300x258.png" alt="SCIM Settings - Shortcut" title="SCIM Settings - Shortcut" width="300" height="258" class="size-medium wp-image-4537" /></a><p class="wp-caption-text">SCIM Settings - Shortcut</p></div>
<p>SCIM 입력기 설정에서 프론트엔드 &#8211; 전체 설정을 선택한 다음, 단축키에서 전환키를 추가하기 위해서 &#8230; Button을 Click합니다.</p>
<div id="attachment_4538" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/66-SCIM-Settings-Add-Shortcut.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/66-SCIM-Settings-Add-Shortcut-300x198.png" alt="SCIM Settings - Add Shortcut" title="SCIM Settings - Add Shortcut" width="300" height="198" class="size-medium wp-image-4538" /></a><p class="wp-caption-text">SCIM Settings - Add Shortcut</p></div>
<p>전환기 선택창에서 키 코드 옆에 &#8230;을 누른 다음, 한/영 변환을 위해 사용되는 한/영 Key를 누릅니다.</p>
<p>그리고 추가 Button을 누르고 확인을 누르면 전환키에 한/영 Key가 추가됩니다.</p>
<div id="attachment_4539" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/67-SCIM-Settings-Apply.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/67-SCIM-Settings-Apply-300x259.png" alt="SCIM Settings - Apply" title="SCIM Settings - Apply" width="300" height="259" class="size-medium wp-image-4539" /></a><p class="wp-caption-text">SCIM Settings - Apply</p></div>
<p>마지막으로 설정을 적용하기 위해서 확인 Button을 Click하면 SCIM이 재시작되면서 한/영 Key와 한자 key를 사용하여 원활하게 한글과 한자를 입력할 수 있게 됩니다.</p>
<h3><span id="14_XScreenSaver">14. XScreenSaver 설치</span></h3>
<p>Ubuntu Oneiric Ocelot 11.10에서는 이전과 달리 Screen Saver를 선택할 수가 없습니다. 그냥 Black Screen만 표시되는데 좀 더 화려한 Screen Saver를 원한다면 Default로 설치된 GNOME Screen Saver 대신 XScreenSaver를 설치하여 사용하면 됩니다.</p>
<p>Terminal에서 다음과 같이 입력하여 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get remove</span> gnome-screensaver<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> xscreensaver xscreensaver-gl-extra xscreensaver-data-extra<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-sf</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>xscreensaver-command <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>gnome-screensaver-command</div></td></tr></tbody></table></div>
<div id="attachment_4488" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/42-Program-Startup-Application.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/42-Program-Startup-Application-300x168.png" alt="Program - Startup Application" title="Program - Startup Application" width="300" height="168" class="size-medium wp-image-4488" /></a><p class="wp-caption-text">Program - Startup Application</p></div>
<p>설치한 XScreenSaver를 Login 시에 자동으로 시작하게 만드려면 Startup Application에 등록해야 합니다.</p>
<p>Activity Windows에서 프로그램 -> 기타 -> 시작 프로그램을 Click합니다. (Unity의 경우는 개인화 -> 시작 프로그램)</p>
<div id="attachment_4526" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/53-Startup-Application.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/53-Startup-Application-300x237.png" alt="Startup Application" title="Startup Application" width="300" height="237" class="size-medium wp-image-4526" /></a><p class="wp-caption-text">Startup Application</p></div>
<p>시작 프로그램 기본 설정에서 추가를 누릅니다.</p>
<div id="attachment_4518" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/54-Startup-Application-Add.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/54-Startup-Application-Add-300x170.png" alt="Startup Application - Add" title="Startup Application - Add" width="300" height="170" class="size-medium wp-image-4518" /></a><p class="wp-caption-text">Startup Application - Add</p></div>
<p>각 항목에 다음과 같이 입력합니다.</p>
<ul>
<li>이름: XScreenSaver</li>
<li>명령: /usr/bin/xscreensaver -no-splash</li>
</ul>
<div id="attachment_4519" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/55-Activity-Window-ScreenSaver.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/55-Activity-Window-ScreenSaver-300x168.png" alt="Activity Window - ScreenSaver" title="Activity Window - ScreenSaver" width="300" height="168" class="size-medium wp-image-4519" /></a><p class="wp-caption-text">Activity Window - ScreenSaver</p></div>
<p>Logout한 다음, 다시 Login하면 XScreenSaver가 실행되어 있는 상태가 됩니다.</p>
<p>XScreenSaver를 설정하기 위해서 Activity Window의 프로그램 -> 기타 -> 화면 보호기를 Click합니다. (Unity에서는 개인화 -> 화면 보호기)</p>
<div id="attachment_4520" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/56-XScreenSaver.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/56-XScreenSaver-300x195.png" alt="XScreenSaver" title="XScreenSaver" width="300" height="195" class="size-medium wp-image-4520" /></a><p class="wp-caption-text">XScreenSaver</p></div>
<p>화면 보호기 기본 설정에서는 표시할 화면 보호기의 종류, 화면 꺼지는 시간, 화면 보호기 변경 시간, 화면 보호기 잠금 시간 등을 설정할 수 있습니다.</p>
<p>설정한 화면 보호기를 Test하고 싶다면 Ctrl + Alt + L을 누르거나 Status Menu에서 Lock Screen(화면 잠그기)를 누르면 됩니다.</p>
<h3><span id="15">15. 사용자 설정 단축키 만들기</span></h3>
<p>GNOME에서는 사용자 설정 단축키를 지정하여 원하는 Program을 단축키로 간편하게 실행할 수 있습니다.</p>
<p>MS Windows의 장치관리자를 실행하는 방법과 유사하게 단축키로 GNOME System Monitor를 실행하는 방법을 예로 들어보도록 하겠습니다.</p>
<div id="attachment_4521" class="wp-caption aligncenter" style="width: 227px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/57-Status-Menu-System-Settings.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/57-Status-Menu-System-Settings-217x300.png" alt="Status Menu - System Settings" title="Status Menu - System Settings" width="217" height="300" class="size-medium wp-image-4521" /></a><p class="wp-caption-text">Status Menu - System Settings</p></div>
<p>먼저, Status Menu에서 System Settings(시스템 설정)를 Click합니다.</p>
<div id="attachment_4522" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/58-GNOME-Control-Center-Keyboard.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/58-GNOME-Control-Center-Keyboard-300x223.png" alt="GNOME Control Center - Keyboard" title="GNOME Control Center - Keyboard" width="300" height="223" class="size-medium wp-image-4522" /></a><p class="wp-caption-text">GNOME Control Center - Keyboard</p></div>
<p>GNOME Control Center에서 키보드를 Click합니다.</p>
<div id="attachment_4523" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/59-Keyboard-Add-ShortCut.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/59-Keyboard-Add-ShortCut-300x195.png" alt="Keyboard - Add ShortCut" title="Keyboard - Add ShortCut" width="300" height="195" class="size-medium wp-image-4523" /></a><p class="wp-caption-text">Keyboard - Add ShortCut</p></div>
<p>바로 가기 Tab에서 사용자 설정 바로가기를 선택하고 +를 누릅니다.</p>
<div id="attachment_4524" class="wp-caption aligncenter" style="width: 237px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/60-Add-ShortCut.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/60-Add-ShortCut.png" alt="Add ShortCut" title="Add ShortCut" width="227" height="141" class="size-full wp-image-4524" /></a><p class="wp-caption-text">Add ShortCut</p></div>
<p>다음과 같이 각 항목에 입력하고 적용을 누릅니다.</p>
<ul>
<li>이름: GNOME System Monitor</li>
<li>명령: /usr/bin/gnome-system-monitor</li>
</ul>
<div id="attachment_4525" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/61-Keyboard-GNOME-System-Monitor.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/61-Keyboard-GNOME-System-Monitor-300x195.png" alt="Keyboard - GNOME System Monitor" title="Keyboard - GNOME System Monitor" width="300" height="195" class="size-medium wp-image-4525" /></a><p class="wp-caption-text">Keyboard - GNOME System Monitor</p></div>
<p>마지막으로, GNOME System Monitor 항목을 Click한 다음, 바로가기 Key를 입력하면 단축키를 사용하여 GNOME System Monitor를 실행할 수 있게 됩니다.</p>
<h3><span id="16_Screenshot_Mouse_Pointer">16. Screenshot에서 Mouse Pointer를 포함하지 않는 방법</span></h3>
<p>PrtSc 또는 Alt + PrtSc을 눌러서 Screenshot을 얻게 되면 기본적으로 Mouse Cursor가 Screenshot에 포함됩니다. dconf Editor를 사용하여 Key값을 변경하면 이것을 방지할 수 있습니다.</p>
<p>dconf Editor가 설치되어 있지 않다면 다음과 같이 Terminal에서 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> dconf-tools</div></td></tr></tbody></table></div>
<div id="attachment_4408" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/10-Dash-dconf-Editor.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/10-Dash-dconf-Editor-300x195.png" alt="Dash - dconf Editor" title="Dash - dconf Editor" width="300" height="195" class="size-medium wp-image-4408" /></a><p class="wp-caption-text">Dash - dconf Editor</p></div>
<p>Dash에서 시스템 -> dconf Editor를 Click합니다. (GNOME Shell에서는 시스템 도구 -> dconf Editor)</p>
<div id="attachment_4437" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/18-dconf-Editor-include-pointer.png" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/18-dconf-Editor-include-pointer-300x236.png" alt="dconf Editor - include-pointer" title="dconf Editor - include-pointer" width="300" height="236" class="size-medium wp-image-4437" /></a><p class="wp-caption-text">dconf Editor - include-pointer</p></div>
<p>dconf Editor에서 org.gnome.gnome-screenshot.include-pointer를 Uncheck하면 Screenshot에서 Mouse Cursor가 포함되지 않게 됩니다.</p>
<h3><span id="17">17. 나눔글꼴 설치</span></h3>
<div id="attachment_4697" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/NAVER-Nanum-Font.jpg" rel="lightbox[4357]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2012/01/NAVER-Nanum-Font-300x168.jpg" alt="NAVER - Nanum Font" title="NAVER - Nanum Font" width="300" height="168" class="size-medium wp-image-4697" /></a><p class="wp-caption-text">NAVER - Nanum Font</p></div>
<p>Naver에서 무료로 제공하는 <a href="http://hangeul.naver.com/font" target="_blank">나눔글꼴</a>을 Ubuntu Repository를 통해서 간단히 설치할 수 있습니다. </p>
<p>설치를 위해 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> ttf-nanum ttf-nanum-extra ttf-nanum-coding</div></td></tr></tbody></table></div>
<p>설치 후에 Desktop Font를 나눔글꼴로 바꾸고 싶다면 GNOME Tweak Tool(Unity: 개인화 -> Advanced Settings, Gnome Shell: 기타 -> Advanced Settings)의 Font에서 설정을 변경할 수 있습니다. 나눔글꼴로 Font를 설정할 때 Hinting을 Medium이나 Full로 설정하면 글꼴이 좀 더 예쁘게 표현됩니다.</p>
<h3><span id="18_8230">18. 마치면서&#8230;</span></h3>
<p>Desktop Shell과 IME에 대한 내용을 정리하다 보니 상당히 글이 길어졌네요. 다음 Release에는 좀 삽질이 줄어들었으면 하는 바람이 있습니다.</p>
<p>그리고 굳이 Release 주기를 맞추느라 불완전한 배포판을 내놓는 것보다 1년 정도를 주기로 해서 배포판을 내놓는 것이 어떨까 하는 생각입니다. 물론 LTS가 있지만 그것은 또 너무 주기가 느립니다. <img src='http://ioriy2k.pe.kr/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>어쨌던, Desktop 설정을 지나 다음 Post에서는 마지막으로 유용한 App을 소개하는 글을 적으려 합니다. 하지만 요즘 일 때문에 바빠서 시간을 내기가 좀 어렵내요. 늦더라도 이해 부탁합니다. <img src='http://ioriy2k.pe.kr/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </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>
<p><a href="http://feedads.g.doubleclick.net/~a/jNnDpiKB4DDjD9poU54nWEC4teY/0/da"><img src="http://feedads.g.doubleclick.net/~a/jNnDpiKB4DDjD9poU54nWEC4teY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jNnDpiKB4DDjD9poU54nWEC4teY/1/da"><img src="http://feedads.g.doubleclick.net/~a/jNnDpiKB4DDjD9poU54nWEC4teY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ioriy2k?a=DMkUT00FIt0:uWXXnUyiEt0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=DMkUT00FIt0:uWXXnUyiEt0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=DMkUT00FIt0:uWXXnUyiEt0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=DMkUT00FIt0:uWXXnUyiEt0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=DMkUT00FIt0:uWXXnUyiEt0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=DMkUT00FIt0:uWXXnUyiEt0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=DMkUT00FIt0:uWXXnUyiEt0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=DMkUT00FIt0:uWXXnUyiEt0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ioriy2k/~4/DMkUT00FIt0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/4357/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ubuntu Oneiric Ocelot 11.10을 설치한 후 해야 할 것들 (1. System 설정)</title>
		<link>http://ioriy2k.pe.kr/archives/3927</link>
		<comments>http://ioriy2k.pe.kr/archives/3927#comments</comments>
		<pubDate>Mon, 02 Jan 2012 00:00:25 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Linux, Just For Fun]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oneiric Ocelot]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3927</guid>
		<description><![CDATA[Ubuntu Oneiric Ocelot 11.10이 나온지가 좀 되었는데 개인적인 사정으로 차일피일 Update를 미루다가 얼마 전에 새로 설치하게 되었습니다. 이번 Release는 이전에 비해서 상당히 불안정한 느낌을 갖습니다. 한글 입력에서 부터 Java 설치까지 이래저래 번거로운 부분도 많고 삽질을 요하는 부분이 많네요. 이전에 작성했던 Ubuntu Natty Narwhal 11.04를 설치한 후 해야 할 것들 Post를 수정하는 것보다는 바뀐 부분을 가지고 [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu Oneiric Ocelot 11.10이 나온지가 좀 되었는데 개인적인 사정으로 차일피일 Update를 미루다가 얼마 전에 새로 설치하게 되었습니다.</p>
<p>이번 Release는 이전에 비해서 상당히 불안정한 느낌을 갖습니다. 한글 입력에서 부터 Java 설치까지 이래저래 번거로운 부분도 많고 삽질을 요하는 부분이 많네요.</p>
<p>이전에 작성했던 <a href="http://ioriy2k.pe.kr/archives/2350" title="Ubuntu Natty Narwhal 11.04를 설치한 후 해야 할 것들 (Part 1)" target="_blank">Ubuntu Natty Narwhal 11.04를 설치한 후 해야 할 것들</a> Post를 수정하는 것보다는 바뀐 부분을 가지고 새롭게 재구성해서 쓰는 것이 좋을 것 같아서 이렇게 Post로 남깁니다.</p>
<p>OS를 설치한 후 Fresh한 상태에서 하나씩 설정해 가는 것을 기준으로 작성해 보았습니다. 이번 Post에서는 먼저 System 설정을 위해 필수적으로 해야할 것들을 소개합니다.</p>
<blockquote><p>
Ubuntu Oneiric Ocelot 11.10 Alternative 64bit ISO를 가지고 Test하였습니다. 32bit도 일부 64bit를 위한 특별한 Case 빼고는 모두 동일하게 설정하면 됩니다.
</p></blockquote>
<p><span id="more-3927"></span></p>
<div id="toc_container" class="no_bullets"><p class="toc_title">Contents</p><ul class="toc_list"><li><a href="#1_Software_Source__Update">1. Software Source 변경 및 Update 설치</a></li><li><a href="#2">2. 추가 드라이버 설치</a></li><li><a href="#3_Ubuntu_Restricted_Extras">3. Ubuntu Restricted Extras 설치</a></li><li><a href="#4_Medibuntu">4. Medibuntu 저장소 추가</a></li><li><a href="#5_Java">5. Java 설치</a><ul><li><a href="#51_OpenJDK_6">5.1. OpenJDK 6 설치</a></li><li><a href="#52_OpenJDK_7">5.2. OpenJDK 7 설치</a></li><li><a href="#53_Oracle_Java_6">5.3. Oracle Java 6 설치</a></li><li><a href="#54_Oracle_Java_7">5.4. Oracle Java 7 설치</a></li></ul></li><li><a href="#6_Vim">6. Vim 설치</a></li><li><a href="#7_Swap">7. Swap 설정</a></li><li><a href="#8_Gufw__Program">8. Gufw (방화벽 관리 Program) 설치</a></li><li><a href="#9_Synaptic_Package_Manager">9. Synaptic Package Manager 설치</a></li><li><a href="#10_8230">10. 마치면서&#8230;</a></li></ul></div>

<h3><span id="1_Software_Source__Update">1. Software Source 변경 및 Update 설치</span></h3>
<p>OS가 설치가 완료된 후, LightDM에서 사용자 암호를 입력하고 나면 Unity 2D 환경의 Desktop이 표시됩니다.</p>
<p>먼저 Release 이후에 변경된 내용을 System에 적용하기 위해서 Update를 설치해 봅시다.</p>
<div id="attachment_3965" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/01-Dash-Update-Manager.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/01-Dash-Update-Manager-300x225.png" alt="Dash - Update Manager" title="Dash - Update Manager" width="300" height="225" class="size-medium wp-image-3965" /></a><p class="wp-caption-text">Dash - Update Manager</p></div>
<p>Dash에서 시스템 -> 업데이트 관리자를 Click합니다.</p>
<div id="attachment_3966" class="wp-caption aligncenter" style="width: 295px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/02-Update-Manager.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/02-Update-Manager-285x300.png" alt="Update Manager" title="Update Manager" width="285" height="300" class="size-medium wp-image-3966" /></a><p class="wp-caption-text">Update Manager</p></div>
<p>업데이트 관리자를 통해서 Update를 설치하기 전에 설정을 해보도록 합시다. 왼쪽 아래의 설정 Button을 누릅니다.</p>
<div id="attachment_3967" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/03-Software-Source-Update.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/03-Software-Source-Update-300x246.png" alt="Software Source - Update" title="Software Source - Update" width="300" height="246" class="size-medium wp-image-3967" /></a><p class="wp-caption-text">Software Source - Update</p></div>
<p>소프트웨어 소스 설정에서 업데이트 Tab의 제안하는 업데이트 (oneiric-proposed)를 Check합니다.</p>
<div id="attachment_3968" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/04-Software-Source-Software.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/04-Software-Source-Software-300x246.png" alt="Software Source - Software" title="Software Source - Software" width="300" height="246" class="size-medium wp-image-3968" /></a><p class="wp-caption-text">Software Source - Software</p></div>
<p>기타 소프트웨어 Tab에서는 위의 그림과 같이 케노니칼 파트너, 케노니칼 파트너 (소스 코드)를 Check합니다.</p>
<div id="attachment_3969" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/05-Software-Source-Ubuntu.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/05-Software-Source-Ubuntu-300x245.png" alt="Software Source - Ubuntu" title="Software Source - Ubuntu" width="300" height="245" class="size-medium wp-image-3969" /></a><p class="wp-caption-text">Software Source - Ubuntu</p></div>
<p>Ubuntu 소프트웨어 Tab에서 다운로드 위치를 변경하여 좀 더 빨리 Package를 Download할 수 있도록 설정해 봅시다. 다운로드 위치에서 기타를 Click합니다.</p>
<div id="attachment_3970" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/06-Software-Source-Download-Server.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/06-Software-Source-Download-Server-300x196.png" alt="Software Source - Download Server" title="Software Source - Download Server" width="300" height="196" class="size-medium wp-image-3970" /></a><p class="wp-caption-text">Software Source - Download Server</p></div>
<p>대한민국 -> ftp.daum.net을 선택하고 서버 선택 Button을 누릅니다.</p>
<div id="attachment_3971" class="wp-caption aligncenter" style="width: 295px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/07-Update-Manager.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/07-Update-Manager-285x300.png" alt="Update Manager - Update" title="Update Manager - Update" width="285" height="300" class="size-medium wp-image-3971" /></a><p class="wp-caption-text">Update Manager - Update</p></div>
<p>소프트웨어 소스 Dialog에서 닫기를 누른 다음, 업데이트 관리자에서 점검을 눌러 Repository 정보를 Update합니다.</p>
<p>그리고 마지막으로 설치를 위해서 업데이트 깔기 Button을 누릅니다.</p>
<blockquote><p>
이번 Release에서 설치라는 단어는 모두 깔기라는 단어로 번역이 바뀌었습니다. 한자어를 배제하기 위함인지는 모르겠지만 어감이 그다지 좋지 않네요. </p>
<p>무리해서 순우리말로 바꾸려하는 것 보다는 기존에 익숙한 것을 쓰는 것이 더 낫지 않을까 하는 생각이 듭니다. 다음 Release에서는 꼭 변경되었으면 좋겠네요. <img src='http://ioriy2k.pe.kr/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p></blockquote>
<h3><span id="2">2. 추가 드라이버 설치</span></h3>
<p>이제 Graphic Card Driver를 설치해 봅시다. Ubuntu에서는 License 문제로 인해서 Graphic Chip 회사의 Driver를 자동으로 설치하지 않습니다. 대신 추가 드라이버 Program을 통해서 사용자가 선택하여 설치할 수 있습니다.</p>
<div id="attachment_3972" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/08-Dash-Additional-Drivers.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/08-Dash-Additional-Drivers-300x232.png" alt="Dash - Additional Drivers" title="Dash - Additional Drivers" width="300" height="232" class="size-medium wp-image-3972" /></a><p class="wp-caption-text">Dash - Additional Drivers</p></div>
<p>Dash에서 개인화 -> 추가 드라이버를 Click합니다.</p>
<div id="attachment_3973" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/09-Additional-Drivers-NVIDIA.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/09-Additional-Drivers-NVIDIA-300x271.png" alt="Additional Drivers - NVIDIA" title="Additional Drivers - NVIDIA" width="300" height="271" class="size-medium wp-image-3973" /></a><p class="wp-caption-text">Additional Drivers - NVIDIA</p></div>
<p>NVIDIA의 경우 위와 같은 화면이 표시될 것입니다. 이 중에서 NVIDIA 그래픽 가속 드라이버 (버전 current)를 선택하고 활성화를 누르면 Driver가 설치됩니다.</p>
<p>설치된 후에는 Rebooting하여 제대로 Graphic Driver가 인식되는지 확인합니다. NVIDIA Driver를 설치하니 Plymouth(Ubuntu Booting 화면)에서도 제대로 화면을 인식하더군요. Plymouth 화면이 깨져서 나오는 분들은 Driver를 설치하면 될 것 같습니다.</p>
<p>그리고 NVIDIA Chipset의 Graphic Card에 Dual Monitor를 연결해서 사용하는 분들은 <a href="http://ioriy2k.pe.kr/archives/843" title="Ubuntu에서 Dual Monitor 설정하기 (NVIDIA)" target="_blank">Ubuntu에서 Dual Monitor 설정하기 (NVIDIA)</a>를 참고하기 바랍니다.</p>
<h3><span id="3_Ubuntu_Restricted_Extras">3. Ubuntu Restricted Extras 설치</span></h3>
<p>Ubuntu에서는 License 문제로 기본적으로 Media File 중 상용 Format에 대한 Codec을 설치하지 않습니다. 그것을 지원하려면 Ubuntu Restricted Extras를 설치해야 합니다. 이 Package를 설치하면 Flash Plugin, Gstreamer Plugin 등을 자동으로 설치하게 됩니다. 다음과 같이 Terminal에서 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> ubuntu-restricted-extras ubuntu-restricted-addons</div></td></tr></tbody></table></div>
<h3><span id="4_Medibuntu">4. Medibuntu 저장소 추가</span></h3>
<p>Medibuntu는 Ubuntu에 Multimedia관련 Package를 추가한 배포판으로 Ubuntu가 License 문제로 포함하지 않은 Package를 제공합니다. 다음과 같이 Medibuntu 저장소를 추가하여 필요한 Package를 Update합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-s</span> <span style="color: #660033;">-H</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">--output-document</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>medibuntu.list http:<span style="color: #000000; font-weight: bold;">//</span>www.medibuntu.org<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>$<span style="color: #7a0874; font-weight: bold;">&#40;</span>lsb_release -cs<span style="color: #7a0874; font-weight: bold;">&#41;</span>.list <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #660033;">--quiet</span> update <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #660033;">--yes</span> <span style="color: #660033;">--quiet</span> <span style="color: #660033;">--allow-unauthenticated</span> <span style="color: #c20cb9; font-weight: bold;">install</span> medibuntu-keyring<br />
$ <span style="color: #c20cb9; font-weight: bold;">apt-get update</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">apt-get dist-upgrade</span></div></td></tr></tbody></table></div>
<p>Dual Layer DVD를 Ubuntu에서 지원하려면 Medibuntu 저장소의 libdvdcss2를 다음과 같이 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> libdvdcss2</div></td></tr></tbody></table></div>
<p>Ubuntu에서 제공하지 않는 Win32 Non-Free Multimedia Codec을 Medibuntu에서는 Package로 제공합니다. 이 Codec은 동영상 Player인 MPlayer에서 사용됩니다. 다음과 같이 입력하여 설치합니다.</p>
<ul>
<li>64bit일 경우:
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> w64codecs</div></td></tr></tbody></table></div>
</li>
<li>32bit일 경우:
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> w32codecs</div></td></tr></tbody></table></div>
</li>
</ul>
<h3><span id="5_Java">5. Java 설치</span></h3>
<p>Oneiric Ocelot으로 오면서 Java 설치에 애로사항이 많네요. Oracle이 배포판에서 Repository의 Package 형태로 Java를 배포하는 License(JDL)를 포기함에 따라서 일반적인 방법으로는 Oracle Java를 설치할 수가 없습니다.</p>
<p>개인적으로 Oracle이 Sun을 인수하면서 Open-source 진영을 돕는 정책을 통해 기존의 자사의 이미지가 개선되기를 바랬는데 최근의 행보는 상당히 실망스럽네요. <img src='http://ioriy2k.pe.kr/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Ubuntu에 Java를 설치하기 위해서는 OpenJDK를 사용하는 방법 또는 Package 형태로 배포가 가능한 마지막 Version인 Java 6를 PPA를 통해서 설치하거나 아니면 Oracle Site에서 직접 Download해서 설치하는 방법이 있습니다. 이 중에서 취향대로 골라서 설치하면 됩니다.</p>
<h4><span id="51_OpenJDK_6">5.1. OpenJDK 6 설치</span></h4>
<p>OpenJDK는 Sun 시절에 Java를 Open-source로 만들겠다는 취지에서 추진된 Project입니다. 대부분의 Code는 공개되었지만 Java에 사용하는 일 부 Thrid-Party Code는 License 문제로 공개할 수 없었습니다.</p>
<p>때문에 Third-Party Code를 공개 가능한 Open-source Code로 대체한 Java Version이 OpenJDK입니다.</p>
<p>앞으로 License 문제로 Packaging된 Oracle Java가 더 이상 제공되지 않기 때문에 End-user 입장에서는 그다지 큰 차이가 없는 OpenJDK를 설치해서 사용해도 될 것이라고 생각합니다.</p>
<p>다만 Java 개발을 위해서는 Oracle Java를 사용하기를 권장합니다. Android 개발 시에 제대로 Compile 되지 않는다는 이야기가 있네요.</p>
<p>대충 흘러가는 사정을 알았으니 OpenJDK를 설치해 봅시다. Terminal에서 다음과 같이 입력합니다.</p>
<blockquote><p>
위에서 Ubuntu Restricted Addons를 설치했다면 OpenJDK 6(JRE, Browser Plugin)가 System에 설치되어 있습니다.
</p></blockquote>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> openjdk-<span style="color: #000000;">6</span>-jdk openjdk-<span style="color: #000000;">6</span>-jre icedtea-plugin</div></td></tr></tbody></table></div>
<p>설치를 마쳤다면 다음과 같이 입력하여 System의 Default Java를 설정해 줍니다. (64bit OS일 경우의 출력 예)</p>
<blockquote><p>
update-java-alternatives를 실행 시에 발생하는 Error Message는 무시해도 됩니다.
</p></blockquote>
<div class="codecolorer-container bash 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="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ update-java-alternatives <span style="color: #660033;">-l</span><br />
java-1.6.0-openjdk <span style="color: #000000;">1061</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-1.6.0-openjdk<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>32bit OS, 64bit OS일 경우<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> update-java-alternatives <span style="color: #660033;">-s</span> java-1.6.0-openjdk<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>Java Version 확인<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ java <span style="color: #660033;">-version</span><br />
java version <span style="color: #ff0000;">&quot;1.6.0_23&quot;</span><br />
OpenJDK Runtime Environment <span style="color: #7a0874; font-weight: bold;">&#40;</span>IcedTea6 1.11pre<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>6b23~pre11-0ubuntu1.11.10<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
OpenJDK <span style="color: #000000;">64</span>-Bit Server VM <span style="color: #7a0874; font-weight: bold;">&#40;</span>build <span style="color: #000000;">20.0</span>-b11, mixed mode<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<h4><span id="52_OpenJDK_7">5.2. OpenJDK 7 설치</span></h4>
<p>만약 최신의 OpenJDK 7을 설치하기 원한다면 다음과 같이 Terminal에서 입력합니다.</p>
<blockquote><p>
OpenJDK 7의 경우 Browser Plugin(icedtea-plugin)이 Ubuntu Repository에 존재하지 않습니다.
</p></blockquote>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">&#40;</span>기존의 OpenJDK <span style="color: #000000;">6</span>를 제거할 경우<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get remove</span> openjdk-<span style="color: #000000;">6</span>-<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #660033;">--purge</span><br />
<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> openjdk-<span style="color: #000000;">7</span>-jdk openjdk-<span style="color: #000000;">7</span>-jre</div></td></tr></tbody></table></div>
<p>설치를 마쳤다면 다음과 같이 입력하여 System의 Default Java를 설정해 줍니다. (64bit OS일 경우의 출력 예)</p>
<blockquote><p>
update-java-alternatives를 실행 시에 발생하는 Error Message는 무시해도 됩니다.
</p></blockquote>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ update-java-alternatives <span style="color: #660033;">-l</span><br />
java-1.6.0-openjdk <span style="color: #000000;">1061</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-1.6.0-openjdk<br />
java-1.7.0-openjdk-amd64 <span style="color: #000000;">1051</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-1.7.0-openjdk-amd64<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>64bit OS일 경우<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> update-java-alternatives <span style="color: #660033;">-s</span> java-1.7.0-openjdk-amd64<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>32bit OS일 경우<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> update-java-alternatives <span style="color: #660033;">-s</span> java-1.7.0-openjdk-i386<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>Java Version 확인<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ java <span style="color: #660033;">-version</span><br />
java version <span style="color: #ff0000;">&quot;1.7.0_147-icedtea&quot;</span><br />
OpenJDK Runtime Environment <span style="color: #7a0874; font-weight: bold;">&#40;</span>IcedTea7 <span style="color: #000000;">2.0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">7</span>~b147-<span style="color: #000000;">2.0</span>-0ubuntu0.11.10.1<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
OpenJDK <span style="color: #000000;">64</span>-Bit Server VM <span style="color: #7a0874; font-weight: bold;">&#40;</span>build <span style="color: #000000;">21.0</span>-b17, mixed mode<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<h4><span id="53_Oracle_Java_6">5.3. Oracle Java 6 설치</span></h4>
<p>Oracle Java 6의 경우에는 PPA를 통해 Package 형태로 설치할 수 있습니다. Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> add-apt-repository ppa:ferramroberto<span style="color: #000000; font-weight: bold;">/</span>java<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get update</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-jre sun-java6-plugin</div></td></tr></tbody></table></div>
<p>64bit OS에서 Oracle Java 6 32bit를 사용하고 싶다면 다음과 같이 입력하여 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> ia32-sun-java6-bin</div></td></tr></tbody></table></div>
<p>이제 설치한 Oracle Java 6를 System의 Default Java로 설정하기 위해서 다음과 같이 입력합니다. (64bit OS의 출력 예)</p>
<blockquote><p>
update-java-alternatives를 실행 시에 발생하는 Error Message는 무시해도 됩니다.
</p></blockquote>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ update-java-alternatives <span style="color: #660033;">-l</span><br />
java-1.6.0-openjdk <span style="color: #000000;">1061</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-1.6.0-openjdk<br />
java-1.7.0-openjdk-amd64 <span style="color: #000000;">1051</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-1.7.0-openjdk-amd64<br />
java-<span style="color: #000000;">6</span>-sun <span style="color: #000000;">63</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>jvm<span style="color: #000000; font-weight: bold;">/</span>java-<span style="color: #000000;">6</span>-sun<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>64bit OS, 32bit OS일 경우<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> update-java-alternatives <span style="color: #660033;">-s</span> java-<span style="color: #000000;">6</span>-sun<br />
<br />
<span style="color: #7a0874; font-weight: bold;">&#40;</span>Java Version 확인<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
$ java <span style="color: #660033;">-version</span><br />
java version <span style="color: #ff0000;">&quot;1.6.0_26&quot;</span><br />
Java<span style="color: #7a0874; font-weight: bold;">&#40;</span>TM<span style="color: #7a0874; font-weight: bold;">&#41;</span> SE Runtime Environment <span style="color: #7a0874; font-weight: bold;">&#40;</span>build 1.6.0_26-b03<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
Java HotSpot<span style="color: #7a0874; font-weight: bold;">&#40;</span>TM<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">64</span>-Bit Server VM <span style="color: #7a0874; font-weight: bold;">&#40;</span>build <span style="color: #000000;">20.1</span>-b02, mixed mode<span style="color: #7a0874; font-weight: bold;">&#41;</span></div></td></tr></tbody></table></div>
<h4><span id="54_Oracle_Java_7">5.4. Oracle Java 7 설치</span></h4>
<p>최신의 Oracle Java 7을 설치하려면 Oracle Java Homepage에서 Binary를 Download한 후, Ubuntu Java 관리 System에 맞춰서 설정해 줘야 합니다.</p>
<p>번거로운 작업을 조금은 간편하게 한 Post가 있어서 소개합니다. 아래의 Post를 따라 작업하면 됩니다.</p>
<ul>
<li>HOW TO INSTALL ORACLE JAVA 7 (JDK) IN UBUNTU: <a href="http://www.webupd8.org/2011/09/how-to-install-oracle-java-7-jdk-in.html" target="_blank">http://www.webupd8.org/2011/09/how-to-install-oracle-java-7-jdk-in.html</a></li>
</ul>
<h3><span id="6_Vim">6. Vim 설치</span></h3>
<p>저의 경우 Main Editor로 Vim을 사용합니다. 하지만 기본적으로 설치된 Vim Tiny는 Vim의 최소 기능만 Compile된 Version이기 때문에 제대로 사용하기 위해서는 다른 Package를 설치해야 합니다. Vim을 주로 사용한다면 아래와 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get remove</span> vim-tiny <span style="color: #660033;">--purge</span><br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> <span style="color: #c20cb9; font-weight: bold;">vim</span> vim-gnome vim-gtk</div></td></tr></tbody></table></div>
<h3><span id="7_Swap">7. Swap 설정</span></h3>
<p>요새는 RAM의 가격도 낮아지고 용량도 커졌기 때문에 Disk Swap을 잘 쓰지 않으려 하는 추세입니다. 하지만 System의 설정으로 인해서 실제 Memory가 부족하게 되면 부득이하게 Disk Swap을 자동으로 사용하는데 Linux에서는 vm.swappiness Kernel 변수를 통해서 그 비율을 조절할 수 있습니다.</p>
<p>이 변수를 Tuning하여 가능하면 Disk Swap을 사용하지 않도록 설정해 System의 성능을 향상시켜봅시다. 다음과 같이 Terminal에서 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysctl.d<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">60</span>-swap.conf<br />
<br />
vm.swappiness = <span style="color: #000000;">10</span><br />
<br />
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> service procps start</div></td></tr></tbody></table></div>
<h3><span id="8_Gufw__Program">8. Gufw (방화벽 관리 Program) 설치</span></h3>
<p>Linux에서는 방화벽으로 iptables를 사용합니다. 다재다능한 iptables이지만 설정하는 것은 어려운 편에 속해서 사용자들이 다가가기가 어려웠는데, 이것을 사용자가 편하게 사용할 수 있도록 Ubuntu에서 만든 것이 UFW(Uncomplicated Firewall) 입니다.</p>
<p>UFW는 새로운 방화벽이 아니라 iptables를 기본으로 하는 Command Line Front-end입니다. 이 UFW를 좀 더 쉽게 관리하기 위해서 GUI Front-end인 Gufw를 설치하여 방화벽을 관리해봅시다. 설치를 위해서 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> gufw</div></td></tr></tbody></table></div>
<div id="attachment_3974" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/10-Dash-Gufw.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/10-Dash-Gufw-300x225.png" alt="Dash - Gufw" title="Dash - Gufw" width="300" height="225" class="size-medium wp-image-3974" /></a><p class="wp-caption-text">Dash - Gufw</p></div>
<p>Dash에서 시스템 -> Firewall Configuration을 선택합니다.</p>
<div id="attachment_3975" class="wp-caption aligncenter" style="width: 292px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/11-Gufw.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/11-Gufw-282x300.png" alt="Gufw" title="Gufw" width="282" height="300" class="size-medium wp-image-3975" /></a><p class="wp-caption-text">Gufw</p></div>
<p>Gufw의 처음 실행화면입니다. 먼저 왼쪽 아래의 자물쇠 Button을 눌러 Superuser 권한을 얻습니다.</p>
<div id="attachment_3976" class="wp-caption aligncenter" style="width: 292px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/12-Gufw-Enable-Firewall.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/12-Gufw-Enable-Firewall-282x300.png" alt="Gufw - Enable Firewall" title="Gufw - Enable Firewall" width="282" height="300" class="size-medium wp-image-3976" /></a><p class="wp-caption-text">Gufw - Enable Firewall</p></div>
<p>기본적으로 UFW가 System에 설치는 되었지만 아직 활성화된 상태는 아닐 것입니다. Status를 Check하여 UFW를 활성화 시킵니다.</p>
<p>UFW의 기본 설정은 내 PC에 들어오는 모든 연결은 막고 나가는 모든 연결은 허용할 것입니다. 여기에 사용자 설정을 추가하려면 아래의 + Button을 Click합니다.</p>
<div id="attachment_3977" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/13-Gufw-Add-Rule.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/13-Gufw-Add-Rule-300x104.png" alt="Gufw - Add Rule" title="Gufw - Add Rule" width="300" height="104" class="size-medium wp-image-3977" /></a><p class="wp-caption-text">Gufw - Add Rule</p></div>
<p>새로운 규칙을 추가하는 방법은 여러가지가 있습니다. 여기서는 편리하게 aMule(eDonkey Clone으로 Linux용 Client)를 위한 설정을 해 보도록 하겠습니다.</p>
<p>편리하게 Tab에서 프로그램, aMule을 선택하고 추가 Button을 누릅니다.</p>
<div id="attachment_3978" class="wp-caption aligncenter" style="width: 292px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/14-Gufw-Rule-Added.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/14-Gufw-Rule-Added-282x300.png" alt="Gufw - Rule Added" title="Gufw - Rule Added" width="282" height="300" class="size-medium wp-image-3978" /></a><p class="wp-caption-text">Gufw - Rule Added</p></div>
<p>aMule을 위한 규칙이 추가된 모습입니다. 이렇게 추가 되면 aMule에서 Server 접속시 LOW ID가 떨어지는 것을 방지할 수 있습니다.</p>
<p>이 외에 더 자세한 설명을 얻기 원한다면 아래의 Link를 참고하기 바랍니다.</p>
<ul>
<li>UFW : <a href="https://help.ubuntu.com/community/UFW" target="_blank">https://help.ubuntu.com/community/UFW</a></li>
<li>Gufw : <a href="https://help.ubuntu.com/community/Gufw" target="_blank">https://help.ubuntu.com/community/Gufw</a></li>
</ul>
<h3><span id="9_Synaptic_Package_Manager">9. Synaptic Package Manager 설치</span></h3>
<div id="attachment_3979" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/15-Synaptic.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/15-Synaptic-300x232.png" alt="Synaptic" title="Synaptic" width="300" height="232" class="size-medium wp-image-3979" /></a><p class="wp-caption-text">Synaptic</p></div>
<p>Synaptic은 이전 배포판에서 주로 사용되던 Package 설치 Tool입니다. Oneiric Ocelot으로 오면서 Synaptic 대신 우분투 소프트웨어 센터를 통해서 설치하도록 정책이 바뀐 것 같은데 아무래도 그것만으로는 부족한 것이 사실입니다.</p>
<p>이전의 Synaptic을 다시 설치하려면 아래와 같이 Terminal에서 입력하면 됩니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> synaptic</div></td></tr></tbody></table></div>
<div id="attachment_3980" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/16-Dash-Synaptic.png" rel="lightbox[3927]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/12/16-Dash-Synaptic-300x225.png" alt="Dash - Synaptic" title="Dash - Synaptic" width="300" height="225" class="size-medium wp-image-3980" /></a><p class="wp-caption-text">Dash - Synaptic</p></div>
<p>설치된 Synaptic은 위의 그림과 같이 Dash에서 개인화 -> Synaptic Package Manager를 통해 실행할 수 있습니다.</p>
<h3><span id="10_8230">10. 마치면서&#8230;</span></h3>
<p>System 설정은 이 정도면 충분할 것 같네요. 다음 Post에서는 말도 많고 탈도 많은 Desktop 설정(특히 IME 설정)에 대해서 알아보도록 하겠습니다.</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>
<p><a href="http://feedads.g.doubleclick.net/~a/rzLsg8Jjgfk6U9ahJJvUe3t3BQI/0/da"><img src="http://feedads.g.doubleclick.net/~a/rzLsg8Jjgfk6U9ahJJvUe3t3BQI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rzLsg8Jjgfk6U9ahJJvUe3t3BQI/1/da"><img src="http://feedads.g.doubleclick.net/~a/rzLsg8Jjgfk6U9ahJJvUe3t3BQI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ioriy2k?a=87DSqyN9Oc8:f6EmYS9mT1I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=87DSqyN9Oc8:f6EmYS9mT1I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=87DSqyN9Oc8:f6EmYS9mT1I:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=87DSqyN9Oc8:f6EmYS9mT1I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=87DSqyN9Oc8:f6EmYS9mT1I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=87DSqyN9Oc8:f6EmYS9mT1I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=87DSqyN9Oc8:f6EmYS9mT1I:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=87DSqyN9Oc8:f6EmYS9mT1I:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ioriy2k/~4/87DSqyN9Oc8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3927/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Happy Christmas!!</title>
		<link>http://ioriy2k.pe.kr/archives/4007</link>
		<comments>http://ioriy2k.pe.kr/archives/4007#comments</comments>
		<pubDate>Sat, 24 Dec 2011 00:00:30 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[My Life]]></category>
		<category><![CDATA[Christmas]]></category>
		<category><![CDATA[Jesus]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=4007</guid>
		<description><![CDATA[벌써 한 해가 거의 다 저물고 Christmas가 다가왔네요. 사람들은 저마다 즐겁게 이 날을 누리며 행복을 얻지만, 이 날의 진정한 의미를 알고 기뻐하는 사람들은 적은 것 같습니다. 용서 받는 입장인 이 땅에 사는 죄 많은 우리들에게는 예수님의 탄생은 그저 기쁘기만한 복된 소식이지만, 용서하기 위해 이 땅에 오신 주님과 하나님 아버지께는 우리를 위한 사랑의 표현임과 동시에 가슴 [...]]]></description>
			<content:encoded><![CDATA[<p>벌써 한 해가 거의 다 저물고 Christmas가 다가왔네요. 사람들은 저마다 즐겁게 이 날을 누리며 행복을 얻지만, 이 날의 진정한 의미를 알고 기뻐하는 사람들은 적은 것 같습니다.</p>
<p>용서 받는 입장인 이 땅에 사는 죄 많은 우리들에게는 예수님의 탄생은 그저 기쁘기만한 복된 소식이지만, 용서하기 위해 이 땅에 오신 주님과 하나님 아버지께는 우리를 위한 사랑의 표현임과 동시에 가슴 아픈 일이지 않았을까 하는 생각이 듭니다.</p>
<p>자기 자식을 죽음에 내놓을 때의 아버지의 심정은 어떨까요. 하나님도 당신의 사랑하는 외아들인 예수님을 이 땅에 보내셨을 때 그런 아버지의 심정이지 않았을까요.</p>
<p>믿지 않는 분들에게는 상관없는 이야기겠지만, 적어도 믿는 우리들은 이 부분을 한 번 생각해 봤으면 합니다. 단지 성탄의 분위기에 취해 또는 교회 행사와 세상 즐거움에 취하는 것이 아니라, 사랑하는 이들과 함께 성탄의 기쁨을 나누는 가운데서도 주님의 사랑과 십자가의 희생을 기억하고 감사와 영광을 주님께 돌리는 진실된 모습이 믿는 우리들에게 있었으면 좋겠습니다.</p>
<p>주님 안에서 사랑하는 사람들 그리고 가족들과 함께 기쁨과 즐거움을 누리는 성탄이 되시길 기도합니다.</p>
<p><em>&#8220;주님, 십자가의 은혜로 말미암아 우리는 주님을 믿음으로 모든 죄를 용서받아 값없이 구원을 얻었습니다. 그 주님이 이 땅에 오셔서 행하신 모든 일과 또한 부활하시고 하늘에 오르셔서 지금도 우리와 함께 계심을 믿습니다. 용서해 주신 그 은혜와 항상 함께 하시는 사랑에 감사하며 모든 영광을 주께 올려 드립니다. 주님의 은혜와 사랑이 가득한 성탄절이 되게 하소서. 예수님의 이름으로 기도합니다. 아멘.&#8221;</em></p>
<p><span id="more-4007"></span></p>
<p>Christmas를 위한 작은 선물로 Natalie Cole의 The First Noel(저 들 밖에 한밤중에, 찬 123)을 띄워 보냅니다. Bless all of you.</p>
<p><center><br />
<iframe src="http://www.youtube.com/embed/rf6fTRTQrG4?version=3&amp;rel=0&amp;wmode=transparent" width="560" height="340" title="YouTube video player" style="background-color:#000;display:block;margin-bottom:0;max-width:100%;" frameborder="0" allowfullscreen></iframe><p style="font-size:11px;margin-top:0;"><a href="http://www.youtube.com/watch?v=rf6fTRTQrG4" target="_blank" title="Watch on YouTube">Watch this video on YouTube</a>.</p><br />
</center></p>
<blockquote><p>
The first Noel the angels did say<br />
Was to certain poor shepherds in fields as they lay<br />
In fields where they lay keeping their sheep<br />
On a cold winter&#8217;s night that was so deep</p>
<p>They looked up and saw a star<br />
Shining in the East, beyond them far<br />
And to the earth it gave great light<br />
And so it continued both day and night</p>
<p>This star drew nigh to the North-West<br />
O&#8217;er Bethlehem it took its rest<br />
And there it did both stop and stay<br />
Right over the place where Jesus lay</p>
<p>Then entered in those wise men three<br />
Full reverently, upon bended knee<br />
And offered there, in His presence<br />
Their gold and myrrh and frankincense</p>
<p>Noel, Noel<br />
Noel, Noel<br />
Born is the King of Israel</p>
<p>Noel
</p></blockquote>

<p><a href="http://feedads.g.doubleclick.net/~a/jZkyv_SeXNYmO6vweVqO-2P3soQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/jZkyv_SeXNYmO6vweVqO-2P3soQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jZkyv_SeXNYmO6vweVqO-2P3soQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/jZkyv_SeXNYmO6vweVqO-2P3soQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ioriy2k?a=NDoHL4a0ok8:gvMp7tBHFFU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=NDoHL4a0ok8:gvMp7tBHFFU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=NDoHL4a0ok8:gvMp7tBHFFU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=NDoHL4a0ok8:gvMp7tBHFFU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=NDoHL4a0ok8:gvMp7tBHFFU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=NDoHL4a0ok8:gvMp7tBHFFU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=NDoHL4a0ok8:gvMp7tBHFFU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=NDoHL4a0ok8:gvMp7tBHFFU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ioriy2k/~4/NDoHL4a0ok8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/4007/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu에서 Valgrind로 Memory Leak 검사하기 (활용편)</title>
		<link>http://ioriy2k.pe.kr/archives/3864</link>
		<comments>http://ioriy2k.pe.kr/archives/3864#comments</comments>
		<pubDate>Mon, 12 Dec 2011 00:00:46 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Linux, Just For Fun]]></category>
		<category><![CDATA[Leak]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Valgrind]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3864</guid>
		<description><![CDATA[지난 Post에 이어서 Ubuntu에서 Valgrind로 Memory Leak을 검사하는 방법의 활용편으로 Valgrind의 GUI Front-end로 Memory Leak을 검사하는 방법과 Callgrind를 사용하는 간단한 방법, 그리고 Eclipse 내에서 Valgrind를 사용하는 방법을 알아보도록 하겠습니다. 5. 유용한 Front-end Valgrind를 사용해서 Terminal에서 Memory Leak을 검사하는 방법을 알아봤지만, 아무래도 좀 더 보기 편리하고 사용하기 쉬운 쪽이 생산성이 좋을 것입니다. 그래서 이번에는 Valgrind를 위한 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ioriy2k.pe.kr/archives/3754" title="Ubuntu에서 Valgrind로 Memory Leak 검사하기 (기본편)" target="_blank">지난 Post</a>에 이어서 Ubuntu에서 Valgrind로 Memory Leak을 검사하는 방법의 활용편으로 Valgrind의 GUI Front-end로 Memory Leak을 검사하는 방법과 Callgrind를 사용하는 간단한 방법, 그리고 Eclipse 내에서 Valgrind를 사용하는 방법을 알아보도록 하겠습니다.</p>
<div id="toc_container" class="no_bullets"><p class="toc_title">Contents</p><ul class="toc_list"><li><a href="#5_Front-end">5. 유용한 Front-end</a><ul><li><a href="#51_Alleyoop_Memory_Checker">5.1. Alleyoop Memory Checker</a></li><li><a href="#52_KCachegrind">5.2. KCachegrind</a></li></ul></li><li><a href="#6_Eclipse_CDT">6. Eclipse CDT와 함께 사용하기</a></li><li><a href="#7_8230">7. 마치면서&#8230;</a></li></ul></div>

<h3><span id="5_Front-end">5. 유용한 Front-end</span></h3>
<p>Valgrind를 사용해서 Terminal에서 Memory Leak을 검사하는 방법을 알아봤지만, 아무래도 좀 더 보기 편리하고 사용하기 쉬운 쪽이 생산성이 좋을 것입니다. 그래서 이번에는 Valgrind를 위한 유용한 Front-end를 소개하려 합니다.</p>
<h4><span id="51_Alleyoop_Memory_Checker">5.1. Alleyoop Memory Checker</span></h4>
<p>Alleyoop은 GTK+ 기반으로 만들어진 GUI Front-end입니다. 이 Program은 Valgrind의 Memcheck Tool의 결과를 좀 더 보기 쉽게 표현해 주고 해당 Code를 쉽게 확인할 수 있습니다.</p>
<p><span id="more-3864"></span></p>
<p>먼저 설치를 위해서 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> alleyoop</div></td></tr></tbody></table></div>
<p>위에서 작성한 Test Program을 가지고 Alleyoop을 사용해서 Memory Leak을 검사해 봅시다. Terminal에서 다음과 같이 입력합니다. (아래의 예는 Source의 Directory가 ~/test, 실행 File이 ./test일 경우)</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span>alleyoop <span style="color: #660033;">-R</span> ~<span style="color: #000000; font-weight: bold;">/</span>test<span style="color: #000000; font-weight: bold;">/</span> .<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span></div></td></tr></tbody></table></div>
<p>-R Option을 사용하면 해당 Directory 내에서 Memory Leak이 발생한 Source Code를 찾게 됩니다. 만약 Memory Leak을 검사할 Program이 Argument(명령행 인자)를 가지고 있다면, 위의 명령에서 검사할 Program 뒤에 그대로 이어서 적으면 됩니다.</p>
<div id="attachment_3825" class="wp-caption aligncenter" style="width: 301px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/01-Alleyoop-Preferences.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/01-Alleyoop-Preferences-291x300.png" alt="Alleyoop - Preferences" title="Alleyoop - Preferences" width="291" height="300" class="size-medium wp-image-3825" /></a><p class="wp-caption-text">Alleyoop - Preferences</p></div>
<p>실행한 다음, 설정 -> 기본 설정에서 Memory Leak을 검사하기 위한 설정을 해야 합니다. 위의 그림과 같이 Memcheck Tab에서 Leak Check를 full로, Leak Resolution을 high로 설정하고 OK를 누릅니다.</p>
<div id="attachment_3826" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/02-Alleyoop-Run.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/02-Alleyoop-Run-300x300.png" alt="Alleyoop - Run" title="Alleyoop - Run" width="300" height="300" class="size-medium wp-image-3826" /></a><p class="wp-caption-text">Alleyoop - Run</p></div>
<p>그 다음 상단 Toolbar의 Run을 누르면 Program이 실행됩니다. Test Program이 종료된 후에는 위의 그림과 같이 Valgrind의 Memcheck Tool을 통해 얻은 정보가 아래의 Treeview에 표시됩니다.</p>
<p>Memory Leak이 발생한 경우에는 위의 그림과 같이 해당 Source의 일부분과 발생한 Line을 표시해 주기 때문에 쉽게 문제가 발생한 부분을 확인할 수 있습니다.</p>
<div id="attachment_3827" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/03-Gedit.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/03-Gedit-300x216.png" alt="Gedit" title="Gedit" width="300" height="216" class="size-medium wp-image-3827" /></a><p class="wp-caption-text">Gedit</p></div>
<p>그리고 Memory Leak을 나타내는 Code를 Double-Click하면 문제가 발생한 부분을 쉽게 편집할 수 있도록 Gedit가 실행되면서 해당 Source에서 Memory Leak이 발생한 Line에 Cursor를 위치시켜 줍니다.</p>
<p>이외에도 Alleyoop을 사용하면 NCURSES(Console 화면 출력을 쉽게 다루기 위한 Library)를 사용한 Console Program도 쉽게 Memory Leak을 검사할 수 있습니다. </p>
<p>NCURSES를 사용한 Program의 경우, Alleyoop에서 Run을 누르면 Alleyoop을 실행한 Terminal에서 Program이 실행되며 Program이 종료되면 결과가 Alleyoop에 표시되게 됩니다.</p>
<h4><span id="52_KCachegrind">5.2. KCachegrind</span></h4>
<p>KCachegrind는 정확하게 말하면 Memory Leak을 검사하기 위한 Front-end는 아닙니다. 하지만, Program의 Performance 향상을 위해 사용되는 상당히 좋은 Tool로 Valgrind에 대해서 설명하는 이 Post에서 잠깐 다뤄보려 합니다.</p>
<p>KCachegrind는 Valgrind의 도구 중 하나인 Callgrind가 생성한 Profile Data를 시각화하여 보여주는 Tool입니다.</p>
<p>이 Program을 사용하면 AQTime 방식과 유사하게 Callgrind로 분석한 ASCII Data를 보기 편리하게 GUI를 통해 시각화하여 보여줌으로서 사용자에게 편의를 제공합니다. 또한 이 것을 통해서 각 Function 별 Cost(비용)와 호출 관계등을 알 수 있습니다.</p>
<p>먼저, 설치를 위해서 Terminal에서 다음과 같이 입력합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> kcachegrind</div></td></tr></tbody></table></div>
<p>설치가 완료되었다면 이제 KCachegrind를 사용하기 위한 Profile Data를 얻어봅시다.</p>
<p>다음과 같이 Terminal에서 입력하여 Test할 Application의 Data를 얻습니다. (아래는 이전에 작성한 test Program의 예)</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">valgrind</span> <span style="color: #660033;">--tool</span>=callgrind .<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span></div></td></tr></tbody></table></div>
<p>Callgrind도 마찬가지로 Runtime에 수행이 되기 때문에 Program 실행 시에 수행되지 않은 Function에 대한 Data를 얻지 못하는 것을 유의해야 합니다.</p>
<p>실행이 완료되면 Callgrind를 통해서 얻은 Data는 Console에 표시되는 것이 아니라 File(일반적인 경우 callgrind.out.*)로 저장됩니다.</p>
<div id="attachment_3832" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/01-Unity-KCachegrind.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/01-Unity-KCachegrind-300x190.png" alt="Unity - KCachegrind" title="Unity - KCachegrind" width="300" height="190" class="size-medium wp-image-3832" /></a><p class="wp-caption-text">Unity - KCachegrind</p></div>
<p>이제 Data도 얻었으니 분석을 위해서 KCachegrind를 실행해 봅시다. Unity Dash에서 개발자 도구를 선택한 다음, KCachegrind를 Click합니다.</p>
<div id="attachment_3833" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/02-KCachegrind.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/02-KCachegrind-300x213.png" alt="KCachegrind" title="KCachegrind" width="300" height="213" class="size-medium wp-image-3833" /></a><p class="wp-caption-text">KCachegrind</p></div>
<p>KCachegrind를 실행한 화면입니다. 일부 한글로 번역이 되어있으나 완전치는 않습니다.</p>
<p>분석한 Data를 Load하기 위해서 위의 그림과 같이 Toolbar의 열기를 누릅니다.</p>
<div id="attachment_3834" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/03-Select-Callgrind-Profile-Data.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/03-Select-Callgrind-Profile-Data-300x173.png" alt="Select Callgrind Profile Data" title="Select Callgrind Profile Data" width="300" height="173" class="size-medium wp-image-3834" /></a><p class="wp-caption-text">Select Callgrind Profile Data</p></div>
<p>Dialog에서 Callgrind Data가 생성된 Directory로 이동한 다음 Data File을 선택하고 열기를 누릅니다.</p>
<p>만약 Data의 이름을 다른 것으로 변경했다면 아래의 Filter에서 Callgrind Profile Data 대신 All Files를 선택하여 모든 File이 List에 표시되도록 변경한 후 선택하면 됩니다.</p>
<div id="attachment_3835" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/04-KCachegrind-Callee-Map-and-Call-Graph.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/04-KCachegrind-Callee-Map-and-Call-Graph-300x213.png" alt="KCachegrind - Callee Map and Call Graph" title="KCachegrind - Callee Map and Call Graph" width="300" height="213" class="size-medium wp-image-3835" /></a><p class="wp-caption-text">KCachegrind - Callee Map and Call Graph</p></div>
<p>Data를 제대로 Load했다면 위의 그림과 같이 표시될 것입니다.</p>
<p>분석을 위해서 간단하게 설명하면, 왼쪽 위의 최고비용 호출 스택은 Program 수행 시에 Cost가 가장 많이 발생한 Function의 순서대로 List에 표시합니다.<br />
(Ir은 CPU에서 계산을 위해 Memory에서 Instruction을 가져오는 것을 나타내는 Instruction Fetch의 Cost(%)를, 호출은 호출 횟수를 나타냅니다.)</p>
<p>그리고 왼쪽 아래의 균일한 프로파일은 Runtime에 수행된 거의 모든 Function(Cost가 너무 낮은 것은 제외됨)의 Cost(%)와 호출 횟수를 표시합니다.<br />
(포함은 각 Function 내에서 호출된 다른 Function의 Cost(%)까지를 포함한 값입니다. 그리고 Self는 호출된 다른 Function을 제외한 Function 자체의 Cost(%)를 나타내며, 호출됨은 해당 Function이 호출된 횟수를 나타냅니다.)</p>
<p>이 외에도, 오른쪽 상단과 하단에서는 균일한 프로파일에서 선택한 Function에 대하여 다음과 같은 정보를 제공합니다.</p>
<ul>
<li>Callers: 해당 Function을 호출한 호출자를 List로 표시합니다.</li>
<li>All Callers: 호출자 뿐만 아니라 호출자를 호출한 호출자까지 포함한 List입니다.(Recursive)</li>
<li>Callee Map: Function 내부에서 호출한 다른 Function의 Cost값을 가지고 Visual한 Map을 표시합니다.</li>
<li>Source Code: Function의 Source가 존재할 경우, 해당 Function의 Code를 표시하며 각 Line 별로 Cost를 표시합니다. Source가 다른 곳에 위치할 경우, 설정 -> KCachegrind 설정 -> Annotations Tab에서 Source Directory를 추가할 수 있습니다.</li>
<li>Callee: Function 내부에서 호출한 다른 Function의 List입니다.</li>
<li>Call Graph: 해당 Function과 호출자와 호출한 다른 Function간의 호출 관계도를 표시합니다.</li>
<li>All Callees: Function 내부에서 호출한 다른 Function에서 또 다른 Function을 호출한 것까지 List로 표시합니다. (Recursive)</li>
<li>Caller Map: 호출자의 Cost값을 가지고 Visual한 Map으로 표시합니다.</li>
</ul>
<p>KCachegrind로 얻은 위와 같은 정보를 통해서 Cost가 많이 발생하거나 호출 빈도가 높은 Function에 대해서 최적화를 수행하거나 설계 구조를 변경함으로서 Application의 Performance 향상을 꾀할 수 있을 것입니다.</p>
<p>KCachegrind의 자세한 기능및 분석 방법을 알고 싶다면 <a href="http://kcachegrind.sourceforge.net/html/Documentation.html" target="_blank">KCachegrind의 Documentation</a>을 참고하기 바랍니다.</p>
<h3><span id="6_Eclipse_CDT">6. Eclipse CDT와 함께 사용하기</span></h3>
<p>Eclipse CDT를 사용하여 개발하는 C/C++ Project에서도 IDE와 통합하여 쉽게 Valgrind로 Memory Leak을 검사할 수 있습니다.</p>
<p>Eclipse Classic 3.7.1 Indigo의 Linux version(또는 Eclipse IDE for C/C++ Linux Developers 1.4.1)을 통해 사용법을 간단하게 설명해 보도록 하겠습니다.</p>
<p>만약 Eclipse가 System에 설치되어 있지 않다면, <a href="http://ioriy2k.pe.kr/archives/3620" title="Ubuntu에서 Eclipse CDT를 사용하여 Autotools Project 만들기 (Part 1)" target="_blank">Ubuntu에서 Eclipse CDT를 사용하여 Autotools Project 만들기 (Part 1)</a>을 참고하여 설치하기 바랍니다.</p>
<div id="attachment_3811" class="wp-caption aligncenter" style="width: 253px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/01-Valgrind-Tools.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/01-Valgrind-Tools-243x300.png" alt="Install Valgrind Tools Integration" title="Install Valgrind Tools Integration" width="243" height="300" class="size-medium wp-image-3811" /></a><p class="wp-caption-text">Install Valgrind Tools Integration</p></div>
<p>Eclipse Classic에서 CDT를 설치한 경우라면 Valgrind를 사용하기 위한 Plugin을 설치해야 합니다. (Eclipse IDE for C/C++ Linux Devlopers를 설치했다면 이 과정은 무시해도 좋습니다.)</p>
<p>먼저 Help -> Install New Software를 Click하면 위와 같은 설치 Dialog가 표시됩니다.</p>
<p>위의 그림에서와 같이 Work with에서 Indigo를 선택하면 아래에 설치 가능한 Plugin의 List가 표시됩니다. </p>
<p>List에서 Linux Tools -> Valgrind Integration (Incubation)을 Check하고 Next를 눌러 설치과정을 모두 진행하면 기본적인 준비는 모두 완료됩니다.</p>
<div id="attachment_3812" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/02-Memory-Leak-Code.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/02-Memory-Leak-Code-300x205.png" alt="Memory Leak Code" title="Memory Leak Code" width="300" height="205" class="size-medium wp-image-3812" /></a><p class="wp-caption-text">Memory Leak Code</p></div>
<p>Memory Leak을 검사하기 위한 Source Code가 위와 같다고 가정해 봅시다. </p>
<p>위의 Code에서 malloc() 호출 후에 System에 반환하지 않았기 때문에 Memory Leak이 발생할 것을 알 수 있습니다.</p>
<div id="attachment_3813" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/03-Eclipse-Profile.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/03-Eclipse-Profile-300x205.png" alt="Eclipse - Profile" title="Eclipse - Profile" width="300" height="205" class="size-medium wp-image-3813" /></a><p class="wp-caption-text">Eclipse - Profile</p></div>
<p>이제 이 Program을 Valgrind를 통해 Memory Leak을 검사해 봅시다. Run -> Profile을 Click합니다.</p>
<div id="attachment_3814" class="wp-caption aligncenter" style="width: 181px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/04-Profile-As.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/04-Profile-As-171x300.png" alt="Profile As" title="Profile As" width="171" height="300" class="size-medium wp-image-3814" /></a><p class="wp-caption-text">Profile As</p></div>
<p>처음 Profile을 실행하게 되면 Profile As Dialog가 위와 같이 표시됩니다. 여기서 Profile With Valgrind를 선택하고 OK를 누릅니다.</p>
<div id="attachment_3815" class="wp-caption aligncenter" style="width: 310px"><a href="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/05-Valgrind-Memcheck.png" rel="lightbox[3864]"><img src="http://ioriy2k.pe.kr/wordpress/wp-content/uploads/2011/11/05-Valgrind-Memcheck-300x205.png" alt="Valgrind - Memcheck" title="Valgrind - Memcheck" width="300" height="205" class="size-medium wp-image-3815" /></a><p class="wp-caption-text">Valgrind - Memcheck</p></div>
<p>아래의 Console View에 Program이 실행되면서 출력된 내용이 표시되고, Program이 종료된 이후에 Valgrind View에 Memory Leak이 발생한 내용이 표시됩니다. </p>
<p>Memory Leak이 발생한 내용을 Double-click하거나 Problems View에서 해당 Problem을 Double-click하면 위의 그림과 같이 Memory Leak이 발생한 Line이 선택되면서 쉽게 확인이 가능하게 됩니다.</p>
<h3><span id="7_8230">7. 마치면서&#8230;</span></h3>
<p>지금까지 Ubuntu에서 Valgrind를 사용하여 Memory Leak을 검사하는 여러가지 방법들을 알아봤습니다. Console 기반이라 쓰기 어렵다고 느껴질 수도 있지만, Front-end와 같이 사용하면 그다지 어렵게만 느껴지지 않을 것입니다.</p>
<p>Valgrind를 사용하여 Debugging과 Profiling을 수행함으로서, 개발하는 Application에 대한 안정성과 성능을 높이는 계기가 될 수 있기를 바랍니다.</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>
<p><a href="http://feedads.g.doubleclick.net/~a/x-JfWaek7Af7zp4H2gSjs-mU3hY/0/da"><img src="http://feedads.g.doubleclick.net/~a/x-JfWaek7Af7zp4H2gSjs-mU3hY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/x-JfWaek7Af7zp4H2gSjs-mU3hY/1/da"><img src="http://feedads.g.doubleclick.net/~a/x-JfWaek7Af7zp4H2gSjs-mU3hY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ioriy2k?a=kfUR7v7yubg:cSAW6jENz0k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=kfUR7v7yubg:cSAW6jENz0k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=kfUR7v7yubg:cSAW6jENz0k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=kfUR7v7yubg:cSAW6jENz0k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=kfUR7v7yubg:cSAW6jENz0k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=kfUR7v7yubg:cSAW6jENz0k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=kfUR7v7yubg:cSAW6jENz0k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=kfUR7v7yubg:cSAW6jENz0k:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ioriy2k/~4/kfUR7v7yubg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3864/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu에서 Valgrind로 Memory Leak 검사하기 (기본편)</title>
		<link>http://ioriy2k.pe.kr/archives/3754</link>
		<comments>http://ioriy2k.pe.kr/archives/3754#comments</comments>
		<pubDate>Mon, 05 Dec 2011 00:00:47 +0000</pubDate>
		<dc:creator>ioriy2k</dc:creator>
				<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Linux, Just For Fun]]></category>
		<category><![CDATA[Leak]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Valgrind]]></category>

		<guid isPermaLink="false">http://ioriy2k.pe.kr/?p=3754</guid>
		<description><![CDATA[Windows에서 개발을 한 경험이 있는 분들이라면, AQTime(예전 이름은 Memproof)이라는 상용 Tool을 잘 아실 것입니다. AQTime은 Runtime 검사를 통해서 Application의 Performance를 진단하고 Memory Leak(Heap Memory를 할당했을 경우 사용 후에 System에 반환하지 않아서 발생하는 누수현상)을 검사할 수 있는 유명한 Profiling Tool입니다. 이러한 Profiling Tool을 사용하면 개발자가 미처 파악하지 못한 Application의 문제를 해결하고 Performance를 향상시킬 수 있기 때문에 [...]]]></description>
			<content:encoded><![CDATA[<p>Windows에서 개발을 한 경험이 있는 분들이라면, AQTime(예전 이름은 Memproof)이라는 상용 Tool을 잘 아실 것입니다.</p>
<p><a href="http://smartbear.com/products/development-tools/performance-profiling/" target="_blank">AQTime</a>은 Runtime 검사를 통해서 Application의 Performance를 진단하고 Memory Leak(Heap Memory를 할당했을 경우 사용 후에 System에 반환하지 않아서 발생하는 누수현상)을 검사할 수 있는 유명한 Profiling Tool입니다.</p>
<p>이러한 Profiling Tool을 사용하면 개발자가 미처 파악하지 못한 Application의 문제를 해결하고 Performance를 향상시킬 수 있기 때문에 Project의 안정화 시에 주로 사용됩니다. </p>
<p>이번 Post에서는 이와 비슷한 기능을 Linux에서 수행하는 Command-line Tool인 Valgrind를 통해서 Memory Leak을 검사하는 방법을 알아보도록 하겠습니다.</p>
<div id="toc_container" class="no_bullets"><p class="toc_title">Contents</p><ul class="toc_list"><li><a href="#1_Valgrind">1. Valgrind?</a></li><li><a href="#2">2. 설치</a></li><li><a href="#3_Memory_Leak">3. Memory Leak 검사하기</a></li><li><a href="#4_8230">4. 마치면서&#8230;</a></li></ul></div>

<h3><span id="1_Valgrind">1. Valgrind?</span></h3>
<p>Valgrind는 앞서 말한 대로 Linux Program의 Profiling을 위한 Application입니다. (지원하는 Platform과 Architecture를 확인하려면 <a href="http://valgrind.org/info/platforms.html" target="_blank">여기</a>를 방문하면 됩니다.) 그리고 License가 GPL이기 때문에 AQTime과 달리 사용하는데 전혀 비용이 들지 않습니다. </p>
<p><span id="more-3754"></span></p>
<p>또한 <a href="http://valgrind.org/gallery/" target="_blank">수많은 Open-source Project</a>가 Valgrind를 통해서 Debugging과 Profiling을 수행하고 있다는 것은 이 Program의 정확성과 안정성을 증명합니다.</p>
<p>Valgrind는 엄밀하게 말하면 Profiling Suite로 여러가지 Profiling을 위한 도구를 포함하고 있으며 각각의 도구는 valgrind 명령을 통해 통합되어 수행됩니다. 그 중 일부를 소개하면 다음과 같습니다.</p>
<ul>
<li>Memcheck: Memory 관리의 문제를 진단하는 Tool입니다. 할당받지 않은 Heap Memory에 접근하는 것이나 Memory Leak과 같은 문제를 이 Tool을 통하여 발견할 수 있습니다.</li>
<li>Callgrind: Runtime 시에 각 함수의 호출 history와 실행 Function간의 Call Graph를 만들기 위한 정보를 기록하는데 사용하는 도구입니다. 저장된 내용은 Command-line Tool이나 KCachegrind를 통해서 분석할 수 있습니다. KCachegrind에 대해서는 이후에 간단한 사용법을 설명하겠습니다.</li>
<li>Massif: Heap Memory에 대한 사용 정보를 확인할 수 있습니다. 간단한 예제와 설명은 <a href="http://terascafe.tistory.com/19" target="_blank">여기</a>를 참고하기 바랍니다.</li>
<li>Helgrind: POSIX Thread(간단히 PThread)를 Program에서 사용할 때 각 Thread간의 동기화와 관련된 문제를 진단하기 위한 Tool입니다.</li>
</ul>
<p>Valgrind는 좋은 Tool이지만 사용할 때 유의할 점이 있습니다. Valgrind는 Code 상의 오류를 검사할 수 있지만, 문맥적인 오류는 잡아내지 못합니다. 다시 말하면, 기술적으로 해당 Program이 문제가 없다는 것을 증명할 수는 있지만, 실제 그 Program이 사용자가 원하는 대로 제대로 동작한다는 것을 증명할 수 없다는 것입니다. 생각 외로 이런 Profiling Tool을 과신하는 경우가 종종 있는데 그런 점은 조심해야 합니다.</p>
<p>좀 더 자세한 Valgrind의 정보를 얻기 원한다면 다음 Link를 방문하기 바랍니다.</p>
<ul>
<li>Valgrind&#8217;s Tool Suite: <a href="http://valgrind.org/info/tools.html" target="_blank">http://valgrind.org/info/tools.html</a></li>
<li>Valgrind User Manual: <a href="http://valgrind.org/docs/manual/manual.html" target="_blank">http://valgrind.org/docs/manual/manual.html</a></li>
</ul>
<h3><span id="2">2. 설치</span></h3>
<p>Valgrind를 설치하는 것은 간단합니다. Terminal을 새로 열어서 다음과 같이 입력하여 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;"># </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> <span style="color: #c20cb9; font-weight: bold;">valgrind</span></div></td></tr></tbody></table></div>
<p>다음 Section에서는 Test Program을 Build하면서 설명을 진행합니다. System에 Build를 위한 Package가 설치되어있지 않다면 다음과 같이 입력하여 설치합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> build-essential</div></td></tr></tbody></table></div>
<h3><span id="3_Memory_Leak">3. Memory Leak 검사하기</span></h3>
<p>Valgrind가 무엇인지에 대해서 알아봤고 설치도 마쳤으니, 이제 Test Program을 만들어서 Valgrind의 Memcheck 도구를 사용하여 Memory Leak을 검사하는 방법을 알아봅시다.</p>
<p>Gedit나 Vim과 같은 편집기를 사용해서 다음과 같은 내용을 입력한 후 test.c라고 저장합시다.</p>
<div class="codecolorer-container c 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 /></div></td><td><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;stdlib.h&gt;</span><br />
<br />
<span style="color: #993333;">void</span> test<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>c <span style="color: #339933;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/malloc.html"><span style="color: #000066;">malloc</span></a><span style="color: #009900;">&#40;</span><span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">char</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>위의 C Code를 보면 test()에서 malloc()을 통해서 Heap Memory를 할당받았지만 사용 후에 free()를 사용하여 System에 반환하지 않았기 때문에 Memory Leak이 발생하는 것을 알 수 있습니다.</p>
<p>이제 이 Source를 Compile해 봅시다. Terminal에서 다음과 같이 입력하여 Debugging이 가능하도록 Option을 적용하여 Compile합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">gcc</span> <span style="color: #660033;">-g</span> <span style="color: #660033;">-o</span> <span style="color: #7a0874; font-weight: bold;">test</span> test.c</div></td></tr></tbody></table></div>
<p>test.c를 Compile하여 생성된 test라는 실행 File에 대해서 이제 Valgrind를 사용하여 Memory Leak을 검사해 봅시다. Terminal에서 다음과 같이 입력하여 Valgrind를 실행합니다.</p>
<div class="codecolorer-container bash 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 /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">valgrind</span> <span style="color: #660033;">--leak-check</span>=<span style="color: #c20cb9; font-weight: bold;">yes</span> .<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span></div></td></tr></tbody></table></div>
<p>만약 Memory Leak을 검사할 Program이 Argument(명령행 인자)를 가지고 있다면, 위의 명령에서 검사할 Program 뒤에 그대로 이어서 적으면 됩니다.</p>
<p>위의 명령을 실행하면 먼저 test Program이 실행되고 종료된 후에 Valgrind가 검사한 정보가 Terminal에 출력됩니다.</p>
<div class="codecolorer-container text 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 /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">==8067== Memcheck, a memory error detector<br />
==8067== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.<br />
==8067== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info<br />
==8067== Command: ./test<br />
==8067== <br />
==8067== <br />
==8067== HEAP SUMMARY:<br />
==8067== &nbsp; &nbsp; in use at exit: 10 bytes in 1 blocks<br />
==8067== &nbsp; total heap usage: 1 allocs, 0 frees, 10 bytes allocated<br />
==8067== <br />
==8067== 10 bytes in 1 blocks are definitely lost in loss record 1 of 1<br />
==8067== &nbsp; &nbsp;at 0x4C28FAC: malloc (vg_replace_malloc.c:236)<br />
==8067== &nbsp; &nbsp;by 0x400505: test (test.c:5)<br />
==8067== &nbsp; &nbsp;by 0x400514: main (test.c:10)<br />
==8067== <br />
==8067== LEAK SUMMARY:<br />
==8067== &nbsp; &nbsp;definitely lost: 10 bytes in 1 blocks<br />
==8067== &nbsp; &nbsp;indirectly lost: 0 bytes in 0 blocks<br />
==8067== &nbsp; &nbsp; &nbsp;possibly lost: 0 bytes in 0 blocks<br />
==8067== &nbsp; &nbsp;still reachable: 0 bytes in 0 blocks<br />
==8067== &nbsp; &nbsp; &nbsp; &nbsp; suppressed: 0 bytes in 0 blocks<br />
==8067== <br />
==8067== For counts of detected and suppressed errors, rerun with: -v<br />
==8067== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)</div></td></tr></tbody></table></div>
<p>위의 내용은 Valgrind를 실행하여 얻은 출력화면입니다. 중요한 부분은 11~14번째 Line에 있는 Memory Leak정보로, 이것은 test.c의 5번째 줄에 위치한 test()의 Code에서 Memory Leak이 발생했다는 것을 나타냅니다.</p>
<p>이와 같이 Memory Leak 정보에 표시된 Call Stack을 통해서 Source Code의 어느 함수의 몇번째 Line에서 Memory Leak이 발생했는지를 확인할 수 있습니다.</p>
<p>유의해야할 점은, Valgrind는 검사할 Program을 실행한 상태(Runtime)에서 검사하기 때문에 실행 시에 수행되지 않은 Code에 대해서는 검사할 수 없다는 것입니다. 그래서 Test Case를 잘 수행하지 않으면 Memory Leak을 검사하지 못할 수 있기 때문에 실행하기 전에 Test Case를 미리 준비하는 것이 좋습니다.</p>
<h3><span id="4_8230">4. 마치면서&#8230;</span></h3>
<p>지금까지 Valgrind를 사용하여 Memory Leak을 검사하는 방법을 간단하게 알아봤습니다. 다음 Post에서는 Valgrind의 Front-end를 사용하여 좀 더 쉽게 Memory Leak을 검사하는 방법과 Eclipse CDT로 Program을 개발했을 때 Eclipse 상에서 Valgrind를 사용하는 방법에 대해서 알아보도록 하겠습니다.</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>
<p><a href="http://feedads.g.doubleclick.net/~a/55lEazbH9z5j9YwWZ9gv2gGvlMU/0/da"><img src="http://feedads.g.doubleclick.net/~a/55lEazbH9z5j9YwWZ9gv2gGvlMU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/55lEazbH9z5j9YwWZ9gv2gGvlMU/1/da"><img src="http://feedads.g.doubleclick.net/~a/55lEazbH9z5j9YwWZ9gv2gGvlMU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ioriy2k?a=awOiKgryX2s:C9tyDtSGqV0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=awOiKgryX2s:C9tyDtSGqV0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=awOiKgryX2s:C9tyDtSGqV0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=awOiKgryX2s:C9tyDtSGqV0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=awOiKgryX2s:C9tyDtSGqV0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=awOiKgryX2s:C9tyDtSGqV0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ioriy2k?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ioriy2k?a=awOiKgryX2s:C9tyDtSGqV0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ioriy2k?i=awOiKgryX2s:C9tyDtSGqV0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ioriy2k/~4/awOiKgryX2s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ioriy2k.pe.kr/archives/3754/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

