1

주제: 26번 티켓과의 싸움

26번 티켓과의 길고도 긴 싸움을 오늘로 마무리 짓습니다.

26번 티켓은 'Links those are not encoded correctly' 입니다. 다른 쓰레드에서도 언급된 적이 있듯이, 태터툴즈의 링크들은 인코딩이 되지 않은채로 출력됩니다. 예를 들면

http://playground.postech.ac.kr/blog/forest/entry/Well-made-play와-영어사대주의의-부작용
http://playground.postech.ac.kr/blog/forest/entry/Well-made-play%EC%99%80-%EC%98%81%EC%96%B4%EC%82%AC%EB%8C%80%EC%A3%BC%EC%9D%98%EC%9D%98-%EB%B6%80%EC%9E%91%EC%9A%A9

이 둘의 차이입니다.

윗쪽이 현재 태터툴즈의 방식이고, 아랫쪽은 RFC1738에서 확정되어 있는 국제 인코딩 규격입니다.

양쪽 다 장단점이 있습니다. 윗쪽은 보시다시피 사람이 알아볼 수 있습니다. 그렇지만 한국어 기반이 아닌 운영체제 위의 브라우저에서는 링크가 깨집니다. 또 여러 언어를 섞어서 링크를 만들 경우에도 그 중 하나의 문자셋이라도 로컬 컴퓨터에 저장된 셋이 아니면 브라우저가 해석할 수 없기 때문에 링크가 깨집니다. 희한하지만, UTF-8이라고 해도 예외는 아닙니다. sad

아랫쪽은 사람이 읽어서 해석할 수가 없습니다. (매트릭스의 네오가 아니니까요^^) 그렇지만 브라우저나 언어에 관계없이 항상 접속이 보장되는 진정한 퍼머링크가 가능합니다.

어느쪽이 우선이냐는 문제에 대한 답은 다양할 수 있습니다. 태터앤 컴퍼니에서 내린 결론은 전자이지만, 저는 완전한 다국어 블로그 지원을 위해서는 후자가 지원되어야 한다고 생각하고 있습니다. 그래서 sandbox에 계속 26번 티켓을 업데이트 했습니다.

그런데, 확실히 이쁘지가 않더군요. =_=
링크가 사람이 알아 먹을 수가 있어야 하는데, 갈수록 길어지는 링크를 어떻게 하기도 참 어려웠습니다. 인코딩된 링크를 디폴트로 하기엔 무리가 있겠더군요. 하지만 링크가 깨질 가능성은 언제나 존재하고, 필요한 케이스들도 계속 존재하니까 포기할 수도 없죠.

결국 절충안을 만들어 오늘 sandbox에 commit하였습니다.

디폴트로는 태터툴즈의 원래 정책을 유지하지만, config.php에서 옵션을 주면 링크를 모두 인코딩해서 나가는 방식으로 해 놓았습니다. 보통 건드릴 일이 전혀 없는 옵션이라, 정말로 필요로 하는 사람들만 config에 한 줄 추가하면 되지요.

$service['useEncodedURL'] = true;

일단 이런 방식으로 해 놓는 것이 나을지 모르겠습니다.

다른 티켓은 이틀 넘긴 적이 없었는데, 이번엔 한 티켓으로 참 길었네요.
하지만 덕분에 많은 것을 생각할 수 있었던 기회였습니다. 기술과, 인간과, 그 사이의 절충이라는 점에서요. smile

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

2

답글: 26번 티켓과의 싸움

수고하셨습니다!
어떻게 해결하실 지 조용히 지켜 보고 있었는데요, ^^;
매우 좋은 방향으로 해결하셨다고 생각합니다 smile

3

답글: 26번 티켓과의 싸움

위키를 사용할때도 고민했던 부분인데 다시금 읽고 나니 ... 검색사이트에서 검색만 된다면 이란
안일한 생각으로 ... 전 현재 진행에 동의합니다. config.php를 두어 변경도 가능하게 해두었으니...
한데 제가 php를 몰라서 ㅋㅋ

인간이 노력하는 모든 분야에서 80%의 결과는 20%의 활동으로 생겨난 것이다.

4

답글: 26번 티켓과의 싸움

구현 방법을 조금 변경해서 official svn에 commit하였습니다.
http://dev.tattertools.com/changeset/47

@ 12 revisions를 반영하느라 시간 좀 걸렸습니다...

PAPACHA (2006-04-26 20:23:11)에 의해 마지막으로 수정

5

답글: 26번 티켓과의 싸움

PAPACHA 작성:

구현 방법을 조금 변경해서 official svn에 commit하였습니다.
http://dev.tattertools.com/changeset/47

@ 12 revisions를 반영하느라 시간 좀 걸렸습니다...

죄송합니다 =_=;;;; 워낙 이리저리 돌아다니며 고쳐대서 revision들이 많이 나왔네요...

코드가 어떤 식으로 배치되어 있는지는 확실히 배웠습니다. :D
내일 일과 끝나면 간단하게나마 모델 설명을 써 볼 수 있을것 같습니다. :)

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'