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

<channel>
	<title>NARADESIGN:BLOG &#187; XE</title>
	<atom:link href="http://naradesign.net/wp/category/xe/feed/" rel="self" type="application/rss+xml" />
	<link>http://naradesign.net/wp</link>
	<description>웹표준, 웹접근성, 유니버설디자인, HTML, CSS, UI, UX, UD</description>
	<lastBuildDate>Tue, 17 Jan 2012 15:18:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>국내외 유명 웹 에디터 &#8216;p, br&#8217; 구현방식 벤치마킹.</title>
		<link>http://naradesign.net/wp/2011/04/06/1461/</link>
		<comments>http://naradesign.net/wp/2011/04/06/1461/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 19:26:39 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[웹표준]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=1461</guid>
		<description><![CDATA[웹에서 마치 워드프로세서를 사용하는 것과 같은 편리함을 주는 글쓰기 도구를 우리는 통상 웹 기반의 위지윅 에디터라고 부릅니다. 오픈소스 XE 개발에 참여하며 오래전부터 심심치 않게 논쟁꺼리가 되어왔던 p, br, p margin 처리 방식을 고민하며 유명한 국내외 웹 에디터가 어떻게 구현되어 있는지 살펴 보았습니다. 인기있는 위지윅 에디터들의 p, br 구현방식 사용지역 에디터 이름 데모 &#60;p&#62; keyboad &#60;br&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>웹에서 마치 워드프로세서를 사용하는 것과 같은 편리함을 주는 글쓰기 도구를 우리는 통상 웹 기반의 위지윅 에디터라고 부릅니다. 오픈소스 XE 개발에 참여하며 오래전부터 심심치 않게 논쟁꺼리가 되어왔던 p, br, p margin 처리 방식을 고민하며 유명한 국내외 웹 에디터가 어떻게 구현되어 있는지 살펴 보았습니다.</p>
<table border="1" cellpadding="1" cellspacing="0" class="ts" style="width:100%;caption-side:top;">
<caption style="text-align:left"> 	인기있는 위지윅 에디터들의 p, br 구현방식 	</caption>
<tbody>
<tr>
<th scope="col">사용지역</th>
<th scope="col">에디터 이름</th>
<th scope="col">데모</th>
<th scope="col">&lt;p&gt; <br />
            keyboad</th>
<th scope="col">&lt;br&gt; <br />
            keyboard</th>
<th scope="col">&lt;p&gt; <br />
            margin</th>
</tr>
<tr>
<th scope="row">글로벌</th>
<th scope="row">CKEditor</th>
<td><a href="http://ckeditor.com/demo">있음</a></td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:1em 0</td>
</tr>
<tr>
<th scope="row">글로벌</th>
<th scope="row">TinyMCE</th>
<td><a href="http://tinymce.moxiecode.com/tryit/full.php">있음</a></td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:1em 0</td>
</tr>
<tr>
<th scope="row">글로벌</th>
<th scope="row">WYMeditor</th>
<td><a href="http://files.wymeditor.org/wymeditor/trunk/src/examples/01-basic.html">있음</a></td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:1em 0</td>
</tr>
<tr>
<th scope="row">글로벌</th>
<th scope="row">widgEditor</th>
<td><a href="http://www.themaninblue.com/experiment/widgEditor/">있음</a></td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:1em 0</td>
</tr>
<tr>
<th scope="row">한국</th>
<th scope="row">SmartEditor Basic</th>
<td><a href="http://naradesign.net/ouif/uio/smartEditorBasic/SEditorDemo.html">있음</a></td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:1em 0</td>
</tr>
<tr>
<th scope="row">한국</th>
<th scope="row">Naver Smart Editor</th>
<td>없음</td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:0</td>
</tr>
<tr>
<th scope="row">한국</th>
<th scope="row">Daum Open Editor</th>
<td><a href="http://uie.daum.net/openeditor/sample/5.4.0/editor.html">있음</a></td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:0</td>
</tr>
<tr>
<th scope="row">한국</th>
<th scope="row">Xquerd</th>
<td>없음</td>
<td>Enter</td>
<td>Shift+Enter</td>
<td>margin:0</td>
</tr>
<tr>
<th scope="row">한국</th>
<th scope="row">Nate Editor</th>
<td>없음</td>
<td>Enter (p 대신 div 생성)</td>
<td>Shift+Enter</td>
<td>margin:0 (div 요소)</td>
</tr>
</tbody>
</table>
<p>모든 웹 기반의 위지윅 에디터를 조사한 것은 아니지만 제가 간단하게 벤치마킹한 결과에 따르면 국내외를 막론하고 대부분의 제품들은 웹 브라우저가 기본으로 제공하는 처리 방식에 따라 p 요소에 Enter키를 맵핑해 두었고 br 요소에 Shift+Enter키를 맵핑해 두었습니다.</p>
<p>한편 글로벌 제품들은 p 요소에 브라우저가 제공하는 기본적인 상하 여백 {margin:1em 0} 스타일을 그대로 살려두는 방식을 채택했는데 국내 제품들은 p 요소에 브라우저가 제공하는 기본적인 상하 여백을  {margin:0} 으로 덮어쓰기 하는 방식으로 리셋 했습니다.</p>
<p>이를 통해서 우리는 다음과 같은 세 가지 사실을 알 수 있습니다.</p>
<ul>
<li>해외에서는 Enter키를 치면 단락을 변경하는 것으로써 단락 사이의 여백이 학습되어 있다. 행간 여백 없이 줄 바꿈을 하려면 Shift+Enter를 치면 된다.</li>
<li>한국에서는 Enter키를 치면 단락을 변경하는 것이 아니라 단순히 줄  바꿈을 하는것으로 학습되어 있다. 단락을 구분하려면 Enter키를 두번 치면 된다. 문단 요소 p의 여백이 제거되어 있으므로 Shift+Enter를 알 필요도 없다.</li>
<li>외국 사람과 한국 사람은 웹에서 선호하는 글쓰기 모양도 다르고 경험도 다르다. 외국 사람은 하나의 문장에 마침표를 찍더라도 다음 문장을 줄 바꿈 없이 이어쓰며 단락을 바꿀 때에만 Enter를 치는 경향이 있고 한국 사람들은 마침표를 찍으면 다음 문장을 쓰기 위해 줄을 바꾼다. 외국인이 생성하는 태그는 의미론적 관점에서 옳은 방향이나 한국인이 사용하는 방식은 편리하다.</li>
</ul>
<p>외국인과 한국인의 습성이 다를 뿐만 아니라 글쓰기 교육 시간에 문단을 바꿀 때에만 개행하라고 배웠다 하더라도 한국 사람들의 글쓰기가 틀렸다고 보기는 어렵다고 생각합니다. 국민 모두가 한 방향으로 틀렸다면 그 방향이 우리 나라에서는 사실상 통용되는 표준이라고 인정해야 한다는 생각입니다. 따라서 우리의 고민은 다음과 같이 전개됩니다.</p>
<ul>
<li>한국에서 제품을 만들기 시작했지만 글로벌 시장에 진출하려면 사실상 국제 표준에 따라야 한다.</li>
<li>글로벌 시장에 진출하더라도 한국 시장은 포기할 수 없다.</li>
<li>우리 제품은 내수용과 수출용 구분이 따로 없다.</li>
</ul>
<p>&#8216;A&#8217;도 만족해야 하고 &#8216;B&#8217;도 만족해야 한다면 둘 다 만족 시켜주자라는 것이 중론인데요. 다음과 같은 제안들이 검토 대상에 올랐습니다.</p>
<ul>
<li>p 요소는 Enter키로 생성하며 br 요소는 Shift+Enter키로 생성한다.</li>
<li>p 요소의 여백을 관리자 화면에서 원하는 방식으로 선택할 수 있도록 옵션을 제공한다. &quot;[v] p 요소에 여백 제거&quot;</li>
<li>p 요소의 여백을 글 쓰는 사람이 에디터에서 직접 선택할 수 있도록 옵션을 제공한다. &quot;[v] p 요소에 여백 제거&quot;</li>
<li>p 요소에 브라우저가 제공하는 기본 마진을 보존한 다음 Enter 한번은 br 요소를 생성하고 Enter 두번은 p 요소를 생성한다. (이 방법은 작년부터 제안되었으나 구현에 대한 난제가 있었던 것으로 지금은 정확히 기억이 나지 않네요)</li>
</ul>
<p>글 쓰는 사람이 에디터에서 직접 선택할 수 있도록 옵션을 제공하는 방법은 개인적으로 반대하는 방법입니다. 개발자 또는 관리자가 해야 할 선택을 사용자에게 떠넘겨 UI를 복잡하게 만든다는 느낌을 지울 수가 없고 의미를 정확하게 간파하는 사용자도 드물꺼라 생각합니다. XE개발팀에서  XEED라는 새로운 에디터를 개발하며 이 문제를 어떻게 해결하는지 지켜봐주세요. 그리고 좋은 의견이나 경험담이 있으면 댓글로 함께 의견 나누시죠.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2011/04/06/1461/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Modal Windowed Login UI.</title>
		<link>http://naradesign.net/wp/2010/03/04/1199/</link>
		<comments>http://naradesign.net/wp/2010/03/04/1199/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:47:40 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[웹접근성]]></category>
		<category><![CDATA[웹표준]]></category>
		<category><![CDATA[유니버설디자인]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/03/04/1199/</guid>
		<description><![CDATA[오늘은 XE에 사용하려고 모달 윈도우 처리된 로그인 UIO(User Interface Object)를 하나 만들었습니다. jQuery를 이용해서 스크립트도 직접 작성해 봤는데 잘 한건지 한 번 봐주시면 좋겠네요.&#160; 미리 알려드립니다만 저는 주로 인터렉션을 프로토타이핑 해서 보여줄 목적으로 자바스크립트를 작성하기 때문에 제 블로그에서 보여드리는 예제 코드가 모두 XE에 반영되는 것은 아닙니다. 예제를 새 창으로 보기 HTML &#8216;LOG-IN&#8217; 링크에 accesskey 속성을 [...]]]></description>
			<content:encoded><![CDATA[<p>오늘은 XE에 사용하려고 모달 윈도우 처리된 로그인 UIO(User Interface Object)를 하나 만들었습니다. jQuery를 이용해서 스크립트도 직접 작성해 봤는데 잘 한건지 한 번 봐주시면 좋겠네요.&nbsp;</p>
<p>미리 알려드립니다만 저는 주로 인터렉션을 프로토타이핑 해서 보여줄 목적으로 자바스크립트를 작성하기 때문에 제 블로그에서 보여드리는 예제 코드가 모두 XE에 반영되는 것은 아닙니다.</p>
<div class="iframe" style="display: block;"><iframe frameborder="0" width="100%" style="display: block; height: 336px;" src="http://naradesign.net/ouif/uio/form/login/mw/xhtml.html" title="예제를 새 창으로 열기"></iframe></div>
<p><a target="_blank" href="http://naradesign.net/ouif/uio/form/login/mw/xhtml.html">예제를 새 창으로 보기</a></p>
<h3 id="h1267712226002">HTML</h3>
<ul>
<li>&#8216;LOG-IN&#8217; 링크에 accesskey 속성을 사용. &#8216;Alt+L&#8217; 또는 &#8216;Alt+Shift+L&#8217; 키를 사용하면 링크에 직접 접근.</li>
<li>논리적인 키보드 접근 순서. 로그인 레이어를 열거나 닫더라도 포커스는 초기화 되지 않고 문맥에 알맞게 순서를 유지.</li>
</ul>
<h3 id="h1267711812402">CSS</h3>
<ul>
<li>화면 전체를 덮는 반투명 레이어.</li>
<li>로그인 상자를 화면의 정 중앙에 배치.</li>
<li>서밋 버튼을 텍스트로 처리해서 텍스트를 교체할 수 있음.</li>
</ul>
<h3 id="h1267711822626">Javascript</h3>
<ul>
<li>&#8216;LOG-IN&#8217; 링크를 클릭해서 모달 윈도우 처리된 레이어 띄우기.</li>
<li>인풋에 포커스가 들어가거나 빠질 때 &#8216;레이블&#8217; 텍스트를 숨기거나 보여주기.</li>
<li>&#8216;로그인 유지&#8217; 항목에 체크하면 경고문 보여주기.</li>
<li>&#8216;ID/PW&#8217;를 입력하지 않았을 때 상황에 맞는 알럿 띄우기.</li>
<li>&#8216;Open ID&#8217; 링크를 클릭하면 오픈 아이디 화면으로 전환하기.</li>
<li>&#8216;ESC&#8217;키를 누르거나 &#8216;여백&#8217; 또는 &#8216;X&#8217; 버튼을 클릭하면 창 닫기.</li>
</ul>
<h3 id="h1267713492795">P.S.</h3>
<p>저는 얼마 전부터 <a target="_self" href="http://www.textyle.kr/">텍스타일</a>에서 글을 쓰고 있습니다. 여러분이 만약 이 글을 <a target="_self" href="http://naradesign.net/">제 워드프레스</a>에서 보셨다면 배달된 글을 보고 계신 겁니다. 텍스타일에서 작성한 글은 워드프레스, 미투데이, 트위터 등으로 자동으로 배달 된답니다. 번거롭게 퍼다 나르고 다닐 일이 없어서 좋네요. 텍스타일 한 번 사용해 보세요. 즐거운 글쓰기 경험도 해 볼겸 해서 말이죠. ^^</p>
<p style="padding: 1em; border: 1px dotted rgb(204, 204, 204); background: none repeat scroll 0% 0% rgb(248, 248, 248); text-align: center;">이 밖에 더 많은 예제들이 <a title="Open User Interface Framework" href="http://naradesign.net/ouif/">OUIF</a>&nbsp;|&nbsp;<a href="http://naradesign.net/xeui/">XEUI</a>&nbsp;페이지에 링크되어 있습니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/03/04/1199/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>CSS Navigation Bar.</title>
		<link>http://naradesign.net/wp/2010/02/11/1185/</link>
		<comments>http://naradesign.net/wp/2010/02/11/1185/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 15:38:46 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 접근성]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[자바스크립트]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/2010/02/11/1185/</guid>
		<description><![CDATA[최근 저희 팀에서는 ProjectXE 라는 것을 준비하고 있습니다. 이슈트래커 또는 버그 트래킹 시스템이라고 불리우는 종류의 프로그램이죠. 현재&#160;issuetrackerXE 라는 이름으로 배포되고 있는 모듈의 기능과 디자인을 조금 더 개선시킨 패키지 버전이라고 볼 수 있습니다. 제가 직접 기획도 했으니까 나중에 배포가 시작되면 피드백도 부탁드려야 겠네요. 이번에는 운이 좋게도 디자인팀으로부터 지원을 받았는데요. 이렇게 디자인팀으로부터 지원을 받은 디자인은 품질이 상당히 [...]]]></description>
			<content:encoded><![CDATA[<p>최근 저희 팀에서는 ProjectXE 라는 것을 준비하고 있습니다. 이슈트래커 또는 버그 트래킹 시스템이라고 불리우는 종류의 프로그램이죠. 현재&nbsp;<a target="_self" href="http://issuetracker.xpressengine.net/">issuetrackerXE</a> 라는 이름으로 배포되고 있는 모듈의 기능과 디자인을 조금 더 개선시킨 패키지 버전이라고 볼 수 있습니다. 제가 직접 기획도 했으니까 나중에 배포가 시작되면 피드백도 부탁드려야 겠네요.</p>
<p>이번에는 운이 좋게도 디자인팀으로부터 지원을 받았는데요. 이렇게 디자인팀으로부터 지원을 받은 디자인은 품질이 상당히 좋아서 한 번 쓰고 말기에는 정말 아깝더라구요. 재 활용 가치가 있는 UI 콤포넌트는 가끔 처음부터 재 사용을 염두해 두고 설계를 합니다. 물론 시간이 무척 오래 걸리는 단점은 있지만 다른 누군가의 시간을 분명히 단축해 줄꺼라 믿고 있습니다.</p>
<p>오늘 공유해 드릴 UI 콤포넌트는 평범한 네비게이션 바 입니다. 이런 종류의 네비게이션은 너무 흔해서 일년에 열두번도 더 코딩을 하지만 항상 재 사용을 염두하지는 않았기 때문에 할 때마다 새로 만들고 처음부터&nbsp;다르게 코딩 합니다. 물론 디자인이 조금씩 달라지는 것도 이유가 있겠지만 다소 소모적인 부분이 있었던 것도 사실입니다. 보기에 평범해 보이지만 재 사용과 보편적 설계를 위해서 제가 이 네비게이션 바에 얼마나 많은 정성을 쏟았는지 한 번 설명드려 보겠습니다.</p>
<div style="display: block;" class="iframe"><iframe frameborder="0" width="100%" title="CSS Navigation Bar. 새 창으로 보기" src="http://naradesign.net/ouif/uio/navigation/horizontal/bar/xhtml.html" style="display: block; height: 300px;"></iframe><span>CSS Navigation Bar. <a target="_blank" href="http://naradesign.net/ouif/uio/navigation/horizontal/bar/xhtml.html">새 창으로 보기</a></span></div>
<h3 id="h1265811047234">보편적이고 사용성이 좋은</h3>
<p>수평 네비게이션은 보편적인 형태지만 하위 메뉴를 처리하는 방법에는 크게 두 가지 형태가 있습니다. 하위 메뉴를 <a target="_self" href="http://www.president.go.kr/kr/index.php">수평으로 늘어뜨리거나</a> 또는 위 예제와 같이 <a target="_self" href="http://www.whitehouse.gov/">수직으로 늘어뜨리거나</a>. 그런데 이 두 가지 형태의 메뉴 구조는 사용성이 크게 다릅니다. 하위 메뉴를 수직으로 늘어뜨리는 것이 사용성과 확장성이 훨씬 좋습니다.</p>
<p>하위 메뉴를 수평으로 열게 되면 사용자는 정확하게 선택하기 위하여 &#8216;L&#8217;자 모양으로 마우스 포인터를 이동시켜야 합니다. 게다가 하위 메뉴 영역을 벗어날 때 하위 메뉴가 사라지도록 처리하는 경우 사용성은 더 나빠집니다. 원하는 메뉴 링크까지 이동하려면 조심스럽게 마우스 포인터를 옮겨야 하니까요. 하위 메뉴를 수직으로 펼치면 마우스의 이동 괘적은 &#8216;I&#8217;자 모양을 그리게 되고 마우스를 옮기는 과정에서 메뉴가 닫힐 위험은 사라집니다.&nbsp;</p>
<h3 id="h1265811982648">웹 표준과 접근성을 지키는</h3>
<p>이런 메뉴 구조를 테이블 &lt;table&gt; 요소를 사용해서 마크업하면 의미에도 맞지 않고 접근성도 떨어집니다. 네비게이션 요소는 HTML로 표현할 때 &#8216;목록&#8217; 요소 &lt;ul&gt;, &lt;li&gt;로 마크업 해야 합니다. 동등한 수준의 내용이 같은 계층에서 여러번 반복 된다면 &#8216;목록&#8217;입니다. 시각장애인이 사용하는 화면 낭독기는 이런 목록에 대하여 목록의 &#8216;시작, 끝, 단계 그리고 항목의 개수&#8217;를 음성으로 알림으로써 목록에 대한 이해를 돕습니다. 상기 예제에서 &#8216;CSS X&#8217; 버튼을 누르면 네비게이션이 어떤 HTML 구조로 마크업 되어 있는지 확인할 수 있습니다. 이렇게 코딩된 네비게이션 바는 다음과 같은 장점을 갖습니다.</p>
<ul>
<li>상-하위 계층 관계가 논리적으로 처리되어 CSS를 지원하지 않거나 걷어낸 장치(예:모바일)에서도 이해하기 쉽습니다.</li>
<li>모든 항목에 키보드 접근이 가능하고 키보드 접근 순서가 의미있게 처리되어 있습니다.</li>
</ul>
<p>이 네비게이션 바는 키보드만을 사용할 수 밖에 없는 시각장애인과 지체장애인도 사용할 수 있습니다. 키보드만으로 탐색을 시도해 보세요.</p>
<h3 id="h1265813663055">유연하고 확장하기 좋은</h3>
<p>하위 메뉴의 개수가 상당히 많이 늘어나는 상황에서 수평으로 열리는 하위 메뉴는 필연적으로 줄바꿈을 동반하거나 메뉴의 개수를 제한하게 되지만 수직으로 열리는 메뉴는 그럴 필요가 없기 때문에 메뉴 데이터가 가변적인 상황에서 확장성이 더 좋습니다.</p>
<p>메뉴의 전체적인 너비는 레이아웃에 맞게 가변폭으로 조절되고 메뉴 항목의 너비도 메뉴 이름의 길이에 따라 모두 가변폭으로 처리되어 있습니다. 디자인 때문에 글자 개수를 자르거나 제한 할 필요가 없습니다.</p>
<p>네비게이션 바의 색상을 바꾸기 위해 새로 이미지를 컷팅할 필요가 없습니다. CSS 편집을 통해 배경색과 보더 색상만 변경해 주면 끝입니다. 은은하게 처리된 그라디언트 효과는 배경색상 위에 반투명 흰색 그라디언트 PNG 이미지를 덧붙이는 기법으로 처리 했습니다.</p>
<h3 id="h1265813998132">이미 널리 쓰이고 있는</h3>
<p><a target="_self" href="http://jquery.com/">jQuery</a> 자바스크립트 프레임웍을 사용했기 때문에 약간의 자바스크립트 코드를 추가하거나 변형하면 누구나 쉽게 사용할 수 있습니다. 물론 지금 그대로 사용해도 될만큼 이미 스크립트가 잘 처리되어 있습니다. 자바스크립트는 <a target="_self" href="http://mygony.com/">행복한고니</a>에 의해 처리 되었습니다.</p>
<h3 id="h1265815149574">브라우저 호환성</h3>
<p>다음과 같은 브라우저에서 테스트 되었고 호환성이 확보되어 있습니다.</p>
<ul>
<li>Internet Explorer 6</li>
<li>Internet Explorer 7</li>
<li>Internet Explorer 8</li>
<li>Firefox 3</li>
<li>Chrome 4</li>
<li>Safari 4</li>
<li>Opera 10</li>
</ul>
<p>이 네비게이션을 처리하기 위하여 테스트 했던 거의 모든 브라우저들의 버그를 다 만났던것 같습니다. 여러분이 보시기에 HTML 코드에 &#8216;이건 왜 이렇게 마크업을 했지?&#8217; 라고 의문이 든다면 그 부분이 바로 그 흔적 입니다. 특히 IE7 브라우저의 경우 링크 영역(width)을 제대로 렌더링하지 못하는 버그 때문에 상당히 고전을 했는데 결국 방법을 찾지 못하고 자바스크립트의 도움을 받아서 디버깅 했습니다. 코딩하는데 1.5일이 걸렸고 디버깅하는 시간도 1.5일이나 걸렸습니다. 3일동안 쳐다보고 있으니 아주 지겨워 죽겠더라구요.</p>
<p style="padding: 1em; border: 1px dotted rgb(204, 204, 204); background: none repeat scroll 0% 0% rgb(248, 248, 248); text-align: center;">이 밖에 더 많은 예제들이 <a title="Open User Interface Framework" href="http://naradesign.net/ouif/">OUIF</a>&nbsp;|&nbsp;<a href="http://naradesign.net/xeui/">XEUI</a>&nbsp;페이지에 링크되어 있습니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2010/02/11/1185/feed/</wfw:commentRss>
		<slash:comments>93</slash:comments>
		</item>
		<item>
		<title>XE는 사용자 경험을 개선해야 한다.</title>
		<link>http://naradesign.net/wp/2009/12/25/1098/</link>
		<comments>http://naradesign.net/wp/2009/12/25/1098/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 17:45:55 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=1098</guid>
		<description><![CDATA[이 글에서 제시하는 견해들은 NHN 또는 XE의 공식적인 견해가 아닌 개인적인 의견임을 밝힙니다. 이미 알고있는 분들도 계시겠지만 저는 오픈소스 XE의 UI 개발을 담당하고 있습니다. 모든 오픈소스가 그렇지만 저희 팀원들의 모토 가운데 하나도 &#8216;내가 불편한 것을 바꾸고 내가 쓰고 싶은 도구로 만들자&#8217;입니다. 이런 모토는 팀원들이 스스로 동기를 유발해서 열정적으로 XE를 개선하는데 도움이 됩니다. 그러나 오픈소스팀이라고 해서 [...]]]></description>
			<content:encoded><![CDATA[<p style="border: 1px dashed rgb(221, 221, 221); padding: 1em; background: rgb(250, 250, 250) none repeat scroll 0% 0%; text-align: center; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">이 글에서 제시하는 견해들은 NHN 또는 XE의 공식적인 견해가 아닌 개인적인 의견임을 밝힙니다.</p>
<p>이미 알고있는 분들도 계시겠지만 저는 오픈소스 XE의 UI 개발을 담당하고 있습니다. 모든 오픈소스가 그렇지만 저희 팀원들의 모토 가운데 하나도 &#8216;내가 불편한 것을 바꾸고 내가 쓰고 싶은 도구로 만들자&#8217;입니다. 이런 모토는 팀원들이 스스로 동기를 유발해서 열정적으로 XE를 개선하는데 도움이 됩니다.</p>
<p>그러나 오픈소스팀이라고 해서 주어진 일정이 없고 언제나 하고 싶은 일만 골라서 할 수 있는것도 아니기 때문에 즉시 실행으로 옮길 수 있는 일이 아니면 개인적으로 마음 한 켠에 쌓아놓을 뿐입니다. 물론 좋은 아이디어를 공유하지 않고 혼자 쌓아두는 것이 좋은 습관은 아니지만 아이디어를 제시하고 토론하는 과정에서 무척 많은 에너지를 필요로 하고 현재의 일에 몰입하는데 방해가 되기 때문에 자주 그러지 못할 뿐입니다.</p>
<p>제가 오늘 하고 싶은 이야기는 XE의 불편한 사용자 경험에 대한 이야기 입니다. XE는 아직 충분히 좋은 사용자 경험을 갖추지 못했지만 고객들은 그걸 잘 모릅니다. &quot;XE는 어렵다&quot; 또는 &quot;XE를 배워야겠다&quot;라는 말을 들을때마다 정말 미안해서 미칠 지경입니다. XE 사용자가 그렇게 말하는 이유는 사용자가 바보이기 때문이 아니라 XE의 사용자 경험이 좋지 않다는 뜻이고 그 책임의 일부는 저에게도 있기 때문입니다. 사용성이 좋지 않은 소프트웨어를 대할 때 사람들은 <a href="http://dobiho.com/?p=829">제품의 문제라고 생각하지 않고 스스로를 비난하는 경향이 있으며 5명 중 1명 정도만 문제제기를 한다</a>고 합니다.</p>
<p>XE와 같은 설치형 소프트웨어의 사용자층은 크게 둘로 나눌 수 있는데 XE를 설치 운영하는 집단과 XE라는 사실조차 알지 못한채로 그저 가볍게 이용하는 사용자 집단 입니다. XE 공식 웹 사이트에 등록되는 버그 또는 이슈들은 대부분 XE를 설치 운영하는 사용자 집단으로부터 나온 것으로써 XE를 가볍게 사용하는 사람들의 문제는 거의 표면적으로 드러나지 않고 있습니다. 따라서 우리는 스스로 문제를 찾아내서 해결해야 합니다.</p>
<h3>XE 개발자는 UX 전문가가 되어야 한다</h3>
<p>지금까지 그러지 못했다는 것이 아니라 충분하지 않다는 의미 입니다. 설계 과정에서 항상 고려가 되지만 섬세하지 못했거나 우선순위가 낮았고 물려받은 유산들 때문에 미시적으로만 접근하는 측면이 있어왔습니다. 이런 문제를 해결하려면 개발자들이 사용자의 심리상태를 이해해야 하는데 사실상 그것은 거의 불가능에 가깝습니다. 프리젠테이션 젠이라는 책에서는 이런것을 두고 지식인의 저주라는 표현을 씁니다. 이미 너무 많은 것을 알기 때문에 모르는 사람들의 상태를 절대 이해할 수 없다는 것입니다. 사용자경험에 대하여 보다 진지하게 이해하고 연구해야 하며 보다 거시적으로 접근할 필요가 있습니다. XE의 Ajax/Javascript UI 개발을 담당하고 있는 <a href="http://mygony.com/">행복한고니</a>는 항상 웹 개발에 문외한인 와이프를 가상의 사용자로 가정한다고 하는데 이런 방법은 비용대비 효과가 괜찮은 작은 실천 중의 하나라고 생각합니다.</p>
<h3>선택의 폭을 줄이고 만족도를 높여야 한다</h3>
<p>XE의 장점 가운데 하나는 많은 사용자로부터 오는 공통된 불만사항을 빠르게 개선해서 반영한다는 점입니다. 이것은 사용자가 답이라는 <a href="http://zero.textyle.kr/">zero</a>님의 운영 철학 가운데 하나 인데요. 이런 철학 때문에 실제로 사용자들이 상상하는 대부분의 모듈들은 이미 존재하거나 개발자가 마음만 먹으면 쉽게 만들 수 있습니다.</p>
<p>그러나 선택의 폭을 줄여야 한다는 주장은 상황에 따라서 zero님의 운영 철학과 충돌하는 측면도 있습니다. 왜냐하면 사용자들의 공통된 피드백을 모두 반영하다보면 그만큼 사용자들은 더 많은 선택의 기로에 놓이게 되는데 이것은 곧 XE가 복잡해진다는 것을 의미하고 사용자들의 만족도를 떨어뜨리는 방향으로 작용할 가능성이 있습니다. XE 관리자 페이지에는 무수히 많은 인풋과 선택지가 있는데 이런 경향이 사용자 페이지에 그대로 전이되는 경우가 있습니다. 딱히 뭘 더 줄이자는 이야기를 여기서 하기에는 너무 지엽적인 문제이기 때문에 언급하지 않는것이 좋겠습니다.</p>
<p>장사가 잘 되는 유명한 식당에 가보면 한 가지 음식만 제공해서 메뉴판이 아예 없는 경우도 있는데 오히려 사람들은 굉장히 만족스러워 합니다. 만약 그 식당의 음식들을 고스란히 뷔페로 옮겨놓으면 어떻게 될까요? 장담컨데 같은 음식에 대한 만족도는 확연하게 차이가 날 것입니다. 뷔페의 음식들은 모두 충분한 퀄러티를 가지고 있지만 모두 그저 그렇게 보이고 딱히 만족스럽지 않는 이유는 너무 많은 선택지가 제공되면서 모든 음식들이 서로의 비교 대상이 되기 때문입니다. 맛있는 음식을 더 많이 제공하면 만족도가 더 많이 올라갈것 같지만 절대로 그렇지 않습니다. 저는 신 김치를 딱히 좋아하지 않지만 다른 반찬이 제공되지 않는다면 맛있게 먹을수 있습니다. 너무 많은 선택지와 옵션을 제공하지 않아야 하는 이유 입니다.</p>
<h3>인간의 생리와 문맥을 고려해야 한다</h3>
<p>XE는 다른 설치형 소프트웨어들와 다르게 기본적으로 다국어환경을 가정합니다. 따라서 기본으로 제공되는 레이아웃을 사용하게 되면 언어를 변경할 수 있는 메뉴가 항상 따라다니는데 유용한 기능임에도 불구하고 좋지 않은 사용자 경험을 제공하는 경우가 훨씬 더 많습니다.</p>
<p>사용자는 보통 다국어 메뉴를 통해서 현재의 웹 사이트에 대한 모든 표현들이 자신의 언어로 변경되는 것을 기대하지만 XE는 이런 기대를 충족해 주지는 않습니다. 아니 정확히 말해서 XE가 충족해 주지 못하는 것이 아니라 XE를 사용하는 콘텐츠 제작자들이 그렇게 해주지를 못하는 것입니다. 다국어는 기계적으로 번역이 되는것이 아니라 콘텐츠 제작자에 의해서 수작업으로 번역이 되는데 대부분의 제작자는 이 기능을 제대로 사용하지 않습니다. 따라서 보통의 사용자들은 다국어 메뉴를 사용할 때 좌절하게 됩니다. 콘텐츠 제작자가 다국어 지원을 하지 않는 경우 다국어 지원 메뉴는 아예 보이지 않도록 처리해야 하는것이 인간의 생리와 문맥을 고려한 설계인데 이것은 문맥을 고려한 설계에 대한 다양한 문제 가운데 한 가지 예시일 뿐입니다.</p>
<p>또한 다국어환경 지원 문제는 다음과 같은 상황에서 매우 까다롭습니다. &quot;A 카테고리에서 검색된 B 키워드가 C개 입니다&quot; 라는 메시지를 출력한다고 가정할 때 이렇게 작성된 한글을 영어 또는 기타 외국어로 변환할 때 어순이 바뀌어야 하는데 저 문장은 A, B, C 를 포함한 6개의 변수로 작성되어 있고 언어 선택에 따라 어순이 바뀌도록 하는 것은 거의 불가능에 가깝기 때문에 실제로 저런 문장은 XE에서는 사용할 수가 없습니다. 이런 문제에 대해서 딱히 해법을 가진것은 아니지만 고민해 볼 필요는 있겠습니다. 다국어 환경 지원 때문에 인간이 쓰는 자연어를 오히려 사용하지 못하게 되는 것이 모순입니다.</p>
<h3>맺음말</h3>
<p>XE뿐만 아니라 모든 웹 개발자는 사용자 환경을 이해하기 어렵고 적절한 피드백을 받는것도 한계가 있기 때문에 사용자 경험에 대한 연구를 통해 직접 문제를 발견하고 해결해야 합니다. 사용자들은 자신들이 스스로 원하는 것을 모두 안다고 생각하지만 실제로는 그렇지 않으며 이슈트래커에 등록된 문제들은 실제 사용자들이 격는 문제의 20% 밖에 되지 않습니다. 인간의 생리를 이해하고 문맥을 고려한 설계를 통해서 사용자 스스로 자각하지 못했던 문제들에 대한 불편함을 개선해야 합니다. 사용자 경험은 UX 전문가들의 고유한 업무 영역이 아니라는 점도 상기해야 합니다. 모두에게 책임이 있다는 뜻입니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2009/12/25/1098/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>XE Camp &#8216;스킨 제작&#8217; 발표자료 공유.</title>
		<link>http://naradesign.net/wp/2009/10/25/1066/</link>
		<comments>http://naradesign.net/wp/2009/10/25/1066/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 15:30:45 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 디자인]]></category>
		<category><![CDATA[웹 표준]]></category>
		<category><![CDATA[NHN]]></category>
		<category><![CDATA[XE Camp]]></category>
		<category><![CDATA[XE Skin]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=1066</guid>
		<description><![CDATA[XE Camp가 열렸습니다. XE Camp란 오픈소스 XE를 다양한 목적으로 이용하기를 원하는 분들을 지원하고 독려하기 위하여 NHN에서 주최하는 무료 행사 입니다. 되도록 많은 분들을 초대했어야 했는데 자원의 제약이 있어 추첨을 통해 70분께만 초대장을 발송 드렸고 64분께서 참석해 주셨습니다. XE 커뮤니티에서 많은 기여를 하시고 활발하게 활동하셨던 분들이 오히려 초대장을 받지 못한 안타까운 사연도 있었습니다. 따라서 행사에 참석하신 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.xpressengine.com/18344075">XE Camp</a>가 열렸습니다. XE Camp란 오픈소스 <a href="http://www.xpressengine.com/">XE</a>를 다양한 목적으로 이용하기를 원하는 분들을 지원하고 독려하기 위하여 NHN에서 주최하는 무료 행사 입니다. 되도록 많은 분들을 초대했어야 했는데 자원의 제약이 있어 추첨을 통해 70분께만 초대장을 발송 드렸고 64분께서 참석해 주셨습니다.</p>
<p>XE 커뮤니티에서 많은 기여를 하시고 활발하게 활동하셨던 분들이 오히려 초대장을 받지 못한 안타까운 사연도 있었습니다. 따라서 행사에 참석하신 분들은 운이 정말 좋으신 겁니다. 초대장을 받지 못한 분들께는 정말 죄송하다는 말씀을 드립니다.</p>
<p>저는 이날 &#8216;XE 스킨 제작 가이드&#8217;라는 개요 세션과 실무 위주의 &#8216;XE 스킨 제작 실습&#8217; 이라는  두 개의 세션을 준비해서 공유해 드렸습니다. 초대받지 못하신 분들께 너무 죄송한 마음에 한시라도 빨리 자료를 공유해야겠다는 생각을 했습니다. &#8216;XE 스킨 제작 가이드&#8217;는 얼마전 있었던 <a href="http://deview.naver.com/">NHN Deview 2009</a> 행사 때 이미 공유했던 자료인데 이날 한번 더 발표를 했고 &#8216;XE 스킨 제작 실습&#8217;이라는 문서는 처음 공유하는 문서 입니다.</p>
<p>아무쪼록 더 많은 분들이 더 쉽게 만들고 접하고 나눌 수 있는 XE가 되었으면 하구요. 아낌없는 투자와 지지를 보내주는 회사에도 감사합니다. 수 일 전부터 이 행사의 모든것을 챙겨주셨던 NHN 고객커뮤니케이션팀 팀원분들과 저희 오픈UI기술팀원들에게도 감사의 인사를 전합니다.</p>
<h3>XE 스킨 제작 가이드</h3>
<p><iframe height="451" frameborder="0" width="600" src="http://docs.google.com/present/embed?id=dd9gps8g_346cfs8h8d9&amp;size=m"></iframe></p>
<h3>XE 스킨 제작 실습</h3>
<p><iframe height="451" frameborder="0" width="600" src="http://docs.google.com/present/embed?id=dd9gps8g_4056mms5ghr&amp;size=m"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2009/10/25/1066/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>XE 텍스타일(Textyle)의 치명적인 &#8217;3가지&#8217; 장점.</title>
		<link>http://naradesign.net/wp/2009/07/29/1008/</link>
		<comments>http://naradesign.net/wp/2009/07/29/1008/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 11:09:46 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[XE]]></category>
		<category><![CDATA[웹 기획]]></category>
		<category><![CDATA[textyle]]></category>
		<category><![CDATA[XpressEngine]]></category>
		<category><![CDATA[텍스타일]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=1008</guid>
		<description><![CDATA[안녕하세요? NHN 오픈UI기술팀에서 텍스타일 UI 개발에 참여했던 정찬명 입니다. 오늘 포스팅은 제가 UI 개발자라는 옷을 벗고 순수하게(물론 절대로 그럴 수 없다는 것을 알아요) 블로거의 한 사람으로써 여러분들께 텍스타일이라는 설치형 블로깅 도구를 소개해 드리는 자리 입니다. 모르긴 해도 아직까지는 텍스타일을 이용해서 진지한 글을 가장 많이 작성한 사람중의 한 사람이 되었습니다. 텍스타일은&#160;이미 다양한 블로깅 도구를 이용하고 있는 [...]]]></description>
			<content:encoded><![CDATA[<div class="document_5370_4 xe_content">
<div class="eArea xe_content xe_dr_txt">
<p>안녕하세요? NHN 오픈UI기술팀에서 텍스타일 UI 개발에 참여했던 정찬명 입니다. 오늘 포스팅은 제가 UI 개발자라는 옷을 벗고 순수하게(물론 절대로 그럴 수 없다는 것을 알아요) 블로거의 한 사람으로써 여러분들께 텍스타일이라는 설치형 블로깅 도구를 소개해 드리는 자리 입니다. 모르긴 해도 아직까지는 텍스타일을 이용해서 진지한 글을 가장 많이 작성한 사람중의 한 사람이 되었습니다. 텍스타일은&nbsp;이미 다양한 블로깅 도구를 이용하고 있는 여러분께도 유용할 것이라고 확신 합니다.</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1248861876595">첫째, 단락 에디터는 검색 엔진과 친합니다.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>텍스타일 &#8216;단락 에디터&#8217;를 사용하면 검색엔진으로부터 더 높은 점수를 받을 확률이 높아집니다. 그 이유는 글쓰기에 익숙한 사람들이 즐겨쓰는 &#8216;소제목&#8217; 작성 기능 때문인데요. 글쓰기에 잔뼈가 굵은 사람들은 하나의 글을 작성할때 &#8216;소제목&#8217;을 즐겨 사용합니다. 하지만 기존의 문서들중 상당수는 &#8216;소제목&#8217;을 단지 &#8216;크고 굵은 글꼴&#8217;로만 표현했기 때문에 &#8216;검색엔진&#8217;과 같은 로봇이 이것을 &#8216;중요한 키워드&#8217;로 인식하지 못했습니다. 텍스타일 단락 에디터의 &#8216;소제목&#8217; 기능을 사용하게 되면 이 문서는 해당 제목을 의미있는 제목 태그 &lt;hx&gt;&#8230;&lt;/hx&gt; 으로 마크업 하기 때문에 검색엔진이 더 높은 가중치를 부여할 수 밖에 없게 됩니다. 글 쓰기 환경에서&nbsp;일반적인 문장과 소제목을 의미있게 분리해서 소제목의&nbsp;사용을 유도하는 것은 사용자의&nbsp;훑어읽기 습성을 고려한 효과적인 글쓰기&nbsp;전략이며 검색엔진 최적화에도 유리하게 작용할 것입니다.</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1248862884246">둘째, 원하는 서비스로 글을 자동 발송 합니다.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>웹에서 글쓰기에 익숙한 사람들은 보통 하나 이상의 서비스 계정을 통해서 자신의 생각을 세상과 공유 합니다. 하지만 여러개의 서비스를 사용하는 사람들은 하나의 글을 여러 서비스에 동시에 공유하고자 할 때 해당 서비스에 일일이 방문하여 &#8216;사이트 접속-로그인-새글 작성&#8217; 하는 과정을 반복 수행해야 합니다. 텍스타일은 이런 비 효율적인 콘텐츠 생산 방식을 획기적으로 바꿔 놓았습니다. 텍스타일에서 작성한 글은 웹 서비스 업체가 제공하는&nbsp;API와 Blog API를 이용하여 &#8216;미투데이, 트위터, 워드프레스, 텍스트큐브, 티스토리, 이글루스&#8230;&#8217; 계정으로 즉각 전송이 가능 합니다. (조만간 네이버 블로그로도 전송 가능) 더 이상 한 번 작성한 글을 복사해서 옮기는 일에 시간을 소비할 필요가 없어졌습니다. 오늘 작성한 이 포스트 또한 &#8216;텍스타일&#8217;에서 작성 되었으나 독자 여러분들은 제가 운영중인&nbsp;&#8217;워드프레스, 텍스타일, 미투데이, 트위터&#8217; 등 다양한 경로를 통해서 접근하게 될 것입니다. 따라서 지금&nbsp;워드프레스를 사용하고 있다면 그것을 포기하지 말고 계속해서 운영하시기 바랍니다. 텍스타일을 오늘 당장 설치해서 사용하더라도 여러분의 독자는 꾸준히 여러분의 워드프레스&nbsp;포스트를 구독할 수 있습니다. 오히려 다양한 서비스로 콘텐츠가&nbsp;자동 배포 되기 때문에 더 많은 독자가 여러분의 팬이 될 것입니다.</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1248862058493">셋째, 텍스타일은 나누어 줄 수 있습니다.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>&#8216;조직 구성원들과 함께 쓰고 싶은데 뭔가&nbsp;좋은 툴이 없을까요?&#8217;, &#8216;팀 블로깅을 하려는데 팀원들의 개인&nbsp;블로그와 팀 블로그를 유기적으로 엮어 놓을 수는 없을까요?&#8217; 라는 욕구는 오래전부터 존재해 왔습니다. 텍스타일은 기본적으로 &#8216;분양&#8217; 기능이 포함되어 있기 때문에 한번 설치하면 &#8216;수천 수만&#8217;명에게라도 분양해 줄 수 있습니다. 물론 분양받는 사람들은 텍스타일을 다시&nbsp;설치할 필요가 없고 단지 &#8216;웹 서비스&#8217;를 이용하는 것처럼 계정을 발급 받는 것만으로도 간단하게 블로그가 생성 됩니다. 텍스타일 블로깅&nbsp;도구는 더이상 혼자쓰는 &#8216;도구&#8217;가 아니라 &#8216;커뮤니티&#8217; 기능을 지원하는 소셜 네트웍 도구로 거듭 났습니다. 개인은 &#8216;텍스타일&#8217;을 분양 받아서 &#8216;팀 블로그&#8217;에 자신의 글을 선택적으로&nbsp;쉽게 공유하고 더 나아가&nbsp;조직 구성원들은 개개인의 글들을 &#8216;광장&#8217;에서 만나게 됩니다. &#8216;광장&#8217;은 아직 공개되지 않았지만 &#8216;분양된 텍스타일들의 피드를 한곳에 모아서 웹 페이지로&nbsp;보여주는&#8217; 역할을 하게 됩니다. 텍스타일은 혼자 쓰기에는 너무나 아까운 도구 입니다.</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1248865168582">밑져야 본전, 경험해 보세요!</h3>
</div>
<div class="eArea xe_content xe_dr_link">
<ul>
<li><a href="http://www.xpressengine.com/aboutTextyle">XE 텍스타일 소개</a> &#8211; 텍스타일을 직접 기획했던 기획자의 출연 동영상을 통해 짧은 시간에 텍스타일의 궁금증을 해소해 드립니다.</li>
<li><a href="http://xe.xpressengine.net/?mid=issuetracker&amp;act=dispIssuetrackerDownload&amp;package_srl=17189941">XE 1.2.4 내려받기</a> &#8211; 텍스타일을 설치 및 분양 하려면 우선 &#8216;XE 1.2.4&#8242; 버전이 설치되어 있어야 합니다. &#8216;xe.1.2.4.zip&#8217; 파일을 내려 받아 설치 합니다.</li>
<li><a href="http://textyle.xpressengine.net/?mid=issuetracker&amp;act=dispIssuetrackerDownload">&#8216;텍스타일&#8217; 내려받기</a> &#8211; XE 설치가 끝나면 텍스타일 모듈 &#8216;textyle_module.zip&#8217; 파일을 내려받은 후 정해진 디렉토리에 업로드 합니다.</li>
<li><a href="http://textyle.xpressengine.net/?mid=wiki&amp;act=dispWikiTreeIndex">텍스타일 사용자 도움말</a> &#8211; 텍스타일 개발에 참여했던 기획자와 개발자들이 텍스타일 사용 전반에 관한 도움말을 작성해 두었습니다.</li>
<li><a href="http://xeui.textyle.kr/">XE UI Lab.</a> &#8211; XE, Textyle의 UI 개발 관련 포스트들이 수록되어 있습니다. 텍스타일 스킨을 직접 꾸미려는 분들에게 길잡이가 될 것입니다.</li>
</ul>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2009/07/29/1008/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>XE CSS Framework for Layout.</title>
		<link>http://naradesign.net/wp/2009/07/17/998/</link>
		<comments>http://naradesign.net/wp/2009/07/17/998/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 11:34:11 +0000</pubDate>
		<dc:creator>정찬명</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[CSS Framework]]></category>

		<guid isPermaLink="false">http://naradesign.net/wp/?p=998</guid>
		<description><![CDATA[&#8216;XE CSS Framework for Layout&#8217; 이란 XE를 이용하여 제작되는 웹 페이지들의 다양한 레이아웃 요소들을 &#8216;이해하기 쉽고, 유연하게 변형이 가능하며, 효과적으로 생성&#8217;하기 위한 HTML과 CSS코드 작성 규칙 입니다. CSS 프레임웍은 다양한 컬럼 구조의 화면 배치와 레이아웃의 성질에 직접적으로 관여하여 스킨 제작자들을 도울 것입니다. 레이아웃 성질의 이해. 레이아웃의 성질이란 쉽게 말해서 레이아웃이 고정폭인지, 가변폭인지, 또는 이 둘을 [...]]]></description>
			<content:encoded><![CDATA[<div class="eArea xe_content xe_dr_txt">
<p>&#8216;XE CSS Framework for Layout&#8217; 이란 <a href="http://xpressengine.com">XE</a>를 이용하여 제작되는 웹 페이지들의 다양한 레이아웃 요소들을 &#8216;이해하기 쉽고, 유연하게 변형이 가능하며, 효과적으로 생성&#8217;하기 위한 HTML과 CSS코드 작성 규칙 입니다. CSS 프레임웍은 다양한 컬럼 구조의 화면 배치와 레이아웃의 성질에 직접적으로 관여하여 스킨 제작자들을 도울 것입니다.</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247812799091">레이아웃 성질의 이해.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>레이아웃의 성질이란 쉽게 말해서 레이아웃이 고정폭인지, 가변폭인지, 또는 이 둘을 적절하게 섞은 혼합폭인지를 의미하는 용어 입니다.</p>
</div>
<div class="eArea xe_content xe_dr_list">
<ul>
<li><span>고정폭 레이아웃(Fixed Lauout) : 모든 레이아웃 요소들의 너비가 절대 단위(px)로 지정된 레이아웃을 말합니다.</span></li>
<li><span>가변폭 레이아웃(Liquid Lauout) : 모든 레이아웃 요소들의 너비가 상대 단위(%)로 지정된 레이아웃을 말합니다.</span></li>
<li><span>혼합폭 레이아웃(Hybrid Lauout) : 레이아웃 너비에 상대 단위(%)와 절대 단위(px)가 함께 사용된 것을 말합니다.</span></li>
</ul>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247815928349">HTML 마크업 구조의 이해.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>XE를 통해 제작되는 다양한 웹 페이지들은 아주 오래전에 제작된 모듈 페이지들을 제외하고 모두 다음과 같은 구조를 지니고 있습니다.</p>
<p>&lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">xe</span></span>&quot; class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">fixed </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">liquid</span></span><span style="color: rgb(255, 0, 0);"> </span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">hybrid</span></span><span style="color: rgb(255, 0, 0);"> </span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">aLeft</span></span><span style="color: rgb(255, 0, 0);"> </span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">aRight</span></span>&quot;&gt;<br />
&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">container</span></span>&quot; class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">c</span></span> | <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">ce </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">ec </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">cee </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">ece </span></span>| <span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">eec</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">header</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;&lt;/h1&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">body</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">content</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension e1</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension e2</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div id=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">footer</span></span>&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class=&quot;<span style="font-style: italic;"><span style="color: rgb(255, 0, 0);">extension</span></span>&quot;&gt;&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;address&gt;&lt;/address&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp; &lt;/div&gt;<br />
&lt;/div&gt;</p>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247815919630">DOM 계층 구조의 이해.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>CSS 또는 DOM을 이용해서 화면 배치를 직접 제어하고자 할 때 아래와 같은 선택자를 이용할 수 있습니다.</p>
</div>
<div class="eArea xe_content xe_dr_list">
<ul>
<li><span>#xe .fixed | .liquid | .hybrid | .aLeft | .aRight </span>
<ul>
<li><span>#container .c | .ce | .ec | .cee | .ece | .eec </span>
<ul>
<li><span>#header </span>
<ul>
<li><span>h1 </span></li>
<li><span>.extension </span></li>
</ul>
</li>
<li><span>#body </span>
<ul>
<li><span>#content </span></li>
<li><span>.extension.e1 </span></li>
<li><span>.extension.e2 </span></li>
</ul>
</li>
<li><span>#footer </span>
<ul>
<li><span>.extension </span></li>
<li><span>address</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247816049297">예약된 CSS 선택자 이름.</h3>
</div>
<div class="eArea xe_content xe_dr_txt">
<p>아 래 표에 명시된 CSS 선택자는 프레임웍에서 사용하는 예약된 이름들 입니다. 따라서 스킨 개발자는 XE에서 아래와 같은 선택자를 이용하되 새로운 선택자를 생성하고자 할 때 동일한 이름을 생성하지 않도록 유념해야 합니다. 전혀 다른 쓰임을 지닌 같은 이름의 선택자가 추가로 발생하는 경우 화면이 깨질 것입니다.</p>
</div>
<div class="eArea xe_content xe_dr_txt">
<table cellspacing="0" border="1" class="displayOn" id="layoutTable">
<thead>
<tr>
<th scope="col">Selector</th>
<th scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">#xe</th>
<td>&#8216;body&#8217; 요소의 최초의 자손으로써 현재의 layout이 XE의 layout용 CSS Framework을 사용하고 있다는 것을 의미 합니다.</td>
</tr>
<tr>
<th scope="row">.fixed | .liquid | .hybrid</th>
<td>&#8216;#xe&#8217; 요소에 함께 선언되는 클래스로써 현재의 layout이 어떤 성질(고정폭, 가변폭, 혼합폭)을 갖는지를 클래스 이름으로 정의 합니다. 스스로는 아무 속성이 없지만 클래스로 하여금 자식 &#8216;#container&#8217;가 다양한 성질을 가질 수 있도록 제어합니다.</td>
</tr>
<tr>
<th scope="row">.aLeft | .aRight</th>
<td>&#8216;#xe&#8217; 요소에 함께 선언되는 클래스로써 현재 layout에 대한 수평 정렬을 제어 합니다. 스스로는 아무 속성이 없지만 클래스로 하여금 자식 &#8216;#container&#8217;가 &#8216;좌/우&#8217;로 정렬 될 수 있도록 제어합니다. 사용하지 않으면 가운데로 정렬 됩니다.</td>
</tr>
<tr>
<th scope="row">#container</th>
<td>&#8216;#xe&#8217; 요소의 첫 번째 자손으로써 &#8216;#header, #body, #footer&#8217;를 자식으로 두며 현재 레이아웃의 너비와 성질(고정폭, 가변폭)에 대한 속성을 지니고 있습니다.</td>
</tr>
<tr>
<th scope="row">.c</th>
<td>&#8216;#content&#8217;를 의미하며 &#8216;#content&#8217; 영역을 하나의 컬럼으로 배치 합니다. &#8216;.c&#8217; 클래스가 사용된 경우 &#8216;.extension&#8217; 요소들은 컬럼이 되지 못하고 아래쪽에 흐릅니다.</td>
</tr>
<tr>
<th scope="row">.ce | .ec</th>
<td>2컬럼 레이아웃 요소들의 수평 배치 순서를 결정하는 클래스 입니다. 각각 &#8216;c=#content,  e=.extension&#8217;을 의미합니다.</td>
</tr>
<tr>
<th scope="row">.cee |  .ece | .eec</th>
<td>3컬럼 레이아웃 요소들의 수평 배치 순서를 결정하는 클래스 입니다. 각각 &#8216;c=#content,  e=.extension&#8217;을 의미합니다.</td>
</tr>
<tr>
<th scope="row">#header</th>
<td>현재 페이지의 &#8216;가장 큰 제목<sup>h1</sup>&#8216;이 들어가며 보통은 웹 사이트의 제목이 출력되고 상단에 배치 됩니다.</td>
</tr>
<tr>
<th scope="row">#body</th>
<td>현재 페이지의 본문인 &#8216;#content&#8217;와 네비게이션 또는 확장 요소인 &#8216;.extension&#8217;을 자손으로 두고 있습니다.</td>
</tr>
<tr>
<th scope="row">#footer</th>
<td>&#8216;저작자 정보<sup>address</sup>&#8216; 또는 웹 사이트 이용안내등 부가 콘텐츠가 포함 되며 보통 하단에 배치 됩니다.</td>
</tr>
<tr>
<th scope="row">#content</th>
<td>&#8216;본문&#8217;으로써 다양한 형태의 정보들이 포함되며 &#8216;.section&#8217; 요소를 자손으로 지닐 수 있습니다.</td>
</tr>
<tr>
<th scope="row">.extension</th>
<td>현재 사이트를 탐색하기 위한 &#8216;네비게이션&#8217; 또는 &#8216;확장&#8217; 으로써 &#8216;.section&#8217; 요소를 자손으로 지닐 수 있습니다.</td>
</tr>
<tr>
<th scope="row">.e1 | .e2</th>
<td>&#8216;#body&#8217;의 자손인 &#8216;.extension&#8217; 클래스와 동일한 요소에  적용되어 있는 클래스로써 두 개의 &#8216;.extension&#8217;이 각자 다른 배치를 가질 수 있도록 식별하는 역할을 합니다.</td>
</tr>
<tr>
<th scope="row">.section</th>
<td>내용을 더욱 의미있는 단위로 작게 구분할 필요가 있을 때 어느 곳에서든 사용합니다. 하나인 경우 생략할 수 있고 두 덩어리 이상을 구분할 필요가 있을 때 반드시 사용 합니다.</td>
</tr>
</tbody>
</table>
</div>
<div class="eArea xe_content xe_dr_hx">
<h3 id="h1247820676671">CSS 프레임웍 파일과 프레임웍을 이용하여 구현된 예제.</h3>
</div>
<ul>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/">CSS 프레임웍을 이용하여 간단하게 화면의 배치와 성질을 바꿀 수 있도록 구현한 예제</a>.</li>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/layoutTemplate.html">HTML 보기</a>.</li>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/css/layout.css">CSS 프레임웍 파일</a>.</li>
<li><a target="_self" href="http://naradesign.net/open_content/reference/layout/css/layout@style.css">CSS 프레임웍 파일에 사용자 정의 스타일 코드를 추가(override)한 파일</a>.</li>
</ul>
<p style="padding: 1em; border: 1px dotted rgb(204, 204, 204); background: none repeat scroll 0% 0% rgb(248, 248, 248); text-align: center;">이 밖에 더 많은 예제들이 <a title="Open User Interface Framework" href="http://naradesign.net/ouif/">OUIF</a>&nbsp;|&nbsp;<a href="http://naradesign.net/xeui/">XEUI</a>&nbsp;페이지에 링크되어 있습니다.</p>
]]></content:encoded>
			<wfw:commentRss>http://naradesign.net/wp/2009/07/17/998/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
	</channel>
</rss>

