포럼

웹에서 마치 워드프로세서를 사용하는 것과 같은 편리함을 주는 글쓰기 도구를 우리는 통상 웹 기반의 위지윅 에디터라고 부릅니다. 오픈소스 XE 개발에 참여하며 오래전부터 심심치 않게 논쟁꺼리가 되어왔던 p, br, p margin 처리 방식을 고민하며 유명한 국내외 웹 에디터가 어떻게 구현되어 있는지 살펴 보았습니다.

인기있는 위지윅 에디터들의 p, br 구현방식
사용지역 에디터 이름 데모 <p>
keyboad
<br>
keyboard
<p>
margin
글로벌 CKEditor 있음 Enter Shift+Enter margin:1em 0
글로벌 TinyMCE 있음 Enter Shift+Enter margin:1em 0
글로벌 WYMeditor 있음 Enter Shift+Enter margin:1em 0
글로벌 widgEditor 있음 Enter Shift+Enter margin:1em 0
한국 SmartEditor Basic 있음 Enter Shift+Enter margin:1em 0
한국 Naver Smart Editor 없음 Enter Shift+Enter margin:0
한국 Daum Open Editor 있음 Enter 지원 안함 margin:0
한국 Xquerd 없음 Enter Shift+Enter margin:0
한국 Nate Editor 없음 Enter (p 대신 div 생성) Shift+Enter margin:0 (div 요소)

모든 웹 기반의 위지윅 에디터를 조사한 것은 아니지만 제가 간단하게 벤치마킹한 결과에 따르면 국내외를 막론하고 대부분의 제품들은 웹 브라우저가 기본으로 제공하는 처리 방식에 따라 p 요소에 Enter키를 맵핑해 두었고 br 요소에 Shift+Enter키를 맵핑해 두었습니다.

한편 글로벌 제품들은 p 요소에 브라우저가 제공하는 기본적인 상하 여백 {margin:1em 0} 스타일을 그대로 살려두는 방식을 채택했는데 국내 제품들은 p 요소에 브라우저가 제공하는 기본적인 상하 여백을 {margin:0} 으로 덮어쓰기 하는 방식으로 리셋 했습니다.

이를 통해서 우리는 다음과 같은 세 가지 사실을 알 수 있습니다.

  • 해외에서는 Enter키를 치면 단락을 변경하는 것으로써 단락 사이의 여백이 학습되어 있다. 행간 여백 없이 줄 바꿈을 하려면 Shift+Enter를 치면 된다.
  • 한국에서는 Enter키를 치면 단락을 변경하는 것이 아니라 단순히 줄 바꿈을 하는것으로 학습되어 있다. 단락을 구분하려면 Enter키를 두번 치면 된다. 문단 요소 p의 여백이 제거되어 있으므로 Shift+Enter를 알 필요도 없다.
  • 외국 사람과 한국 사람은 웹에서 선호하는 글쓰기 모양도 다르고 경험도 다르다. 외국 사람은 하나의 문장에 마침표를 찍더라도 다음 문장을 줄 바꿈 없이 이어쓰며 단락을 바꿀 때에만 Enter를 치는 경향이 있고 한국 사람들은 마침표를 찍으면 다음 문장을 쓰기 위해 줄을 바꾼다. 외국인이 생성하는 태그는 의미론적 관점에서 옳은 방향이나 한국인이 사용하는 방식은 편리하다.

외국인과 한국인의 습성이 다를 뿐만 아니라 글쓰기 교육 시간에 문단을 바꿀 때에만 개행하라고 배웠다 하더라도 한국 사람들의 글쓰기가 틀렸다고 보기는 어렵다고 생각합니다. 국민 모두가 한 방향으로 틀렸다면 그 방향이 우리 나라에서는 사실상 통용되는 표준이라고 인정해야 한다는 생각입니다. 따라서 우리의 고민은 다음과 같이 전개됩니다.

  • 한국에서 제품을 만들기 시작했지만 글로벌 시장에 진출하려면 사실상 국제 표준에 따라야 한다.
  • 글로벌 시장에 진출하더라도 한국 시장은 포기할 수 없다.
  • 우리 제품은 내수용과 수출용 구분이 따로 없다.

'A'도 만족해야 하고 'B'도 만족해야 한다면 둘 다 만족 시켜주자라는 것이 중론인데요. 다음과 같은 제안들이 검토 대상에 올랐습니다.

  • p 요소는 Enter키로 생성하며 br 요소는 Shift+Enter키로 생성한다.
  • p 요소의 여백을 관리자 화면에서 원하는 방식으로 선택할 수 있도록 옵션을 제공한다. "[v] p 요소에 여백 제거"
  • p 요소의 여백을 글 쓰는 사람이 에디터에서 직접 선택할 수 있도록 옵션을 제공한다. "[v] p 요소에 여백 제거"
  • p 요소에 브라우저가 제공하는 기본 마진을 보존한 다음 Enter 한번은 br 요소를 생성하고 Enter 두번은 p 요소를 생성한다. (이 방법은 작년부터 제안되었으나 구현에 대한 난제가 있었던 것으로 지금은 정확히 기억이 나지 않네요)

글 쓰는 사람이 에디터에서 직접 선택할 수 있도록 옵션을 제공하는 방법은 개인적으로 반대하는 방법입니다. 개발자 또는 관리자가 해야 할 선택을 사용자에게 떠넘겨 UI를 복잡하게 만든다는 느낌을 지울 수가 없고 의미를 정확하게 간파하는 사용자도 드물꺼라 생각합니다. XE개발팀에서 XEED라는 새로운 에디터를 개발하며 이 문제를 어떻게 해결하는지 지켜봐주세요. 그리고 좋은 의견이나 경험담이 있으면 댓글로 함께 의견 나누시죠.

글쓴이 제목 최종 글
휘즈 예전에 마소 때문에 아래한글 물먹을 때 [7] 2014.02.20 by 휘즈
Omega3 XE사이트를 운영하기 위해 호스팅어에서 제공하는 VPS를 이용해도 되나요? [4] 2014.02.20 by Omega3
socialskyo NuriCMS 0.1.2가 배포 되었었군요!! [5] 2014.02.19 by 또별
라이머 xe기반의 커뮤니티 사이트 만드려는데 호스팅을 어디서 해야할지... [7] 2014.02.19 by 마음의빈자리
socialskyo 브라우저 HTML5 지원 상태 [2] 2014.02.19 by 심플XE
Omega3 XE 1.5 관리자 페이지가 역대 관리자 페이지 "중"에서는 최악 같지 않았나요? [25] 2014.02.19 by Omega3
bonik 신디케이션 너무 이상하지 않나요? [7] 2014.02.19 by Volun
socialskyo 공홈 메인의 HTML5 CHECKUP 상태  
서은석985 1.7.4 버전 업데이트 후 ...  
choco@_@ 이제 1.4는 다들 쓰는곳이 없는건가요 :) [3] 2014.02.19 by Gunmania
Paul 1.7.4 로 업데이트 한 후에, php 5.4 로 변경하면 여전히 오류가 있는것 같은데요... [33] 2014.02.19 by Paul
숭숭군 1.7.4에서 아이디 찾기 기능 잘되시나요? [2] 2014.02.19 by 시기
socialskyo 저는 변태인가 봅니다. 스팸... [5] 2014.02.18 by 참치.k
심플XE 레이아웃 개발자님들, 시안 어디서 구하세요? [2] 2014.02.18 by 참치.k
qwms 여러분들은 코어를 수정할때 메모를 해두시나요? [22] 2014.02.18 by ForHanbi
misol 안녕하세요. 미솔, 오랜만에 문안 인사 올립니다. [17] 2020.03.14 by Garon
정찬명 국내외 유명 웹 에디터 'p, br' 구현방식 벤치마킹. [11] 2011.04.06 by NIGUS
Omega3 VMWARE에 마이크 연결해서 녹음할 수 있나요? 또는 촬영... 소리랑 목소리를 동시에 녹음...  
ForHanbi 질답에 다행이 쉬운 질문만 남아 있어서.... [6] 2014.02.18 by Omega3
KrteamENT 이글은 XE게시판 하나를 냠냠했능가 [5] 2014.02.18 by Omega3