아주 간단한 고민거리 하나
- Posted at 2007/09/18 18:09
- Filed under 컴퓨터
웹프로그래밍을 하다보면, 게시판의 글보기 화면부터 시작해서 블로그에 이르기까지 plain text로 글 내용을 입력받아 이것을 적절히 formatting해서 보여주어야 하는 경우가 많다. 이때 가장 간단한 구현 방법으로 많이 사용하는 것이 newline 문자를 <br> 태그나 <p> 태그로 바꾸고, 본문에 포함된 URL에 자동 링크를 걸어주는 것이다.
그런데 유니코드 세상이 되면서, URL에도 유니코드가 포함될 수 있게 되었고(적당한 ASCII 문자열로 변환하는 표준 방법이 있다), 그에 따라 "http://www.example.com/한글"과 같은 주소도 자동 링크가 걸리게 처리하는 경우가 많다. 문제는 여기서 발생한다. 한국어에는 다른 서양 언어에서 볼 수 없는 조사라는 개념이 있어서, 글을 쓰다보면 "어쩌구저쩌구 http://www.example.com/에 가면 어쩌구저쩌구"와 같이 쓰는 경우가 많고, 저 '에'를 포함하여 링크가 생성되어 버리는 것이다.
보통 이런 문제를 피하기 위해 영문, 숫자 조합만 URL 덩어리로 인식하게 하든지, 사용자들이 글을 쓸 때 조사 앞을 한 칸 띄우든지 하는 방법을 사용한다. 자동으로 조사임을 인식하여 제거할 수 있을까 하는 생각도 들지만, 그럴 경우 역시 특수한 예외 케이스가 발생할 수 있기 때문에 별로 권장하고 싶은 방법은 아니다.
이 문제를 어떻게 해결하는 것이 가장 좋을까?
- Tag
- Text formatting, URL, 고민, 한글
- Response
- No trackback yet , 10 Comments
- RSS :
- http://daybreaker.info/blog/rss/response/658
Trackback URL : http://daybreaker.info/blog/trackback/658
Comments List
-
디토 2007/09/18 22:07 # M/D Reply Permalink
저는 URL RFC에서 허용하는 문자만 자동으로 링크하는게 맞다고 생각합니다. 다른 문자를 포함한 URL의 경우, 브라우저나 환경에 따라서 매우 다르게 처리될 수 있고, 또 표준에 맞지도 않으니까요.
어차피 대부분의 한글이 포함된 주소의 경우 퍼센트 인코딩이 되어있으니까 괜찮지 않나요?
(뭐 그래서 MetaBBS도 그렇게 되어있어요. =3)-
daybreaker 2007/09/26 18:21 # M/D Permalink
뭐 현재로서는 그편이 가장 편할 것 같아요.
사실 이 글을 올리게 된 게 Django에서 제공하는 urlize 필터 때문인데, 티켓으로 하나 올려둬야겠네요.
추가 : http://code.djangoproject.com/ticket/5606
-
-
spkgenesis 2007/09/26 11:10 # M/D Reply Permalink
"http://www.example.com/에" <-- 에 직접 들어가보고 있으면 저렇게 링크 걸어주면 되고, 아니면 "http://www.example.com/" 에 걸어주면 되지 ㅋㅋㅋ 직접 확인해 보는게 쵝오 -_-b
-
daybreaker 2007/09/26 17:57 # M/D Permalink
...그런 방법도 있긴 있군요. 자동링크의 목적은 아니지만 워드프레스 등에서는 ping-back이라는 이름으로 사용하는 기능이기도 하죠. (단순히 방문해보는 것이 아니라 트랙백처럼 특정 형식의 메시지를 날려서 내가 링크를 걸었음을 알려주는 기능)
하지만 저 방법을 항상 쓸 수는 없는 것이, 매우 많은 사람들이 이용하는 게시판일 경우(예: 디씨) 서버에서 자체적으로 http request를 보내느라 상당한 부하가 걸릴 것 같습니다.;
-
-
spkgenesis 2007/09/26 12:47 # M/D Reply Permalink
그러고 보니 자연어 처리에서 합성어나 동의어 처리가 큰 골치였는데 포탈에서 "자주 쓰는 검색어"를 만들어서 한 방에 처리해버렸지 ㅋㅋㅋ
-
daybreaker 2007/09/26 18:29 # M/D Permalink
가끔은 기술적이지 않은(?) 방법으로 우회해서 해결할 수 있는 경우도 있죠. :)
-
-
기형z 2007/09/27 01:16 # M/D Reply Permalink
가능한 경우를 시도해서 page not found 같은 오류가 안뜨는 곳으로 연결시키는 방법은 없나?
-
daybreaker 2007/10/08 03:40 # M/D Permalink
불가능하지는 않습니다만 위에서 말했다시피 부하가 많이 걸릴 수 있죠.
-
-
정태영 2007/10/28 17:48 # M/D Reply Permalink
rfc2718 에 따르면 utf-8 인 경우 ascii 로 변경할 필요가 없습니다. (적당한 ascii code 로 변경할 필요가 없다는 얘기입니다.)
http://b.mytears.org/2005/03/136-
daybreaker 2007/11/03 18:53 # M/D Permalink
그렇군요. :)
-