역링크

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
BackLink 혹은 Wiki:ReverseLink.지금 들어온 페이지의 들어오기 바로 전의 연결들.
위키엔진에서는 바로 전의 연결을 찾아주는 기술/방법에 대한 명칭으로 OriginalWiki와 더불어 대부분의 위키엔진이 이와 같거나 비슷한 기능을 가지고 있다.

원래 인터넷과 WWW을 꿈꾸던 사람(특히, TedNelson)들은 모든 링크가 양방향이기를 원했다. 하지만 현재의 링크는 기본적으로 단방향이다. 야후에서 조선일보로 가는 링크가 있다고 해서 그것이 필연적으로 조선일보 사이트 내에 야후로 돌아가는 연결이 있다는 것을 보장하진 못한다. (물론 WebBrowser의 뒤로 돌아가기 버튼을 누를 수는 있다. 하지만 예를 들어, 알타비스타에서 조선일보로 왔는데, 거기에서, 조선일보로 향한 링크를 갖고 있는 야후 사이트로 갈 수는 없다). 하지만 방향링크역링크를 포함한다.

위키위키에서는 모의 역링크 기능이 있다. 페이지 제목을 클릭하면 해당 페이지를 연결하는(정확하게 말하면 "해당 페이지 이름과 동일한 문자열을 포함한"이므로 링크가 아닐 수도 있다) 페이지들의 리스트를 볼 수 있다. 이 기능은 특히 분류패턴에 사용되고 있다.

지금 분류패턴에서 사용하고 있는 "동일한 문자열 찾기" 말고, 정말 역링크를 찾을수 있도록 구현된 위키엔진도 물론 있다. 원래의 모인모인은 위에서 기술한대로 해당 페이지 이름과 동일한 문자열을 포함한 것을 full text search하지만, 노스모크모인모인은 페이지 이름이 한글일 경우, 텍스트에서 연결만 찾도록 '페이지이름'을 찾는 대신에 '&이지이름&'을 찾는다. SFReaders는 아예 역링크만 찾도록 노스모크모인모인을 고쳐서 사용한다고 한다.

기본적으로 역링크 찾는 일을 한 번 하기 위해서는 "모든 페이지"에 대해서 검색을 해야 되겠죠. 물론 동일한 문자열을 찾는 것 역시도 모든 페이지를 대상으로 하는 것은 마찬가지이지만, 그 와중에 다시 이게 링크냐 아니냐를 따져가면서 걸러 내게 하려면 오버헤드가 클 것 같습니다. 지금 모인모인에서는 링크 관리를 어떻게 하는지 모르겠는데, 제 홈에서 UseModWiki 를 쓰면서 비슷한 생각을 해서 "역링크만" 찾도록 해 봤는데 페이지수가 390 개 정도인 곳에서 full text search 는 0.2초 걸리는데 역링크 검색은 3초 걸리더라고요. -.-; (역링크를 찾는 부분이 좀 비효율적으로 작성되기도 했었지만...) 지금의 문자열 찾기 방식이 "결과는 조금 부정확하지막 속도는 많이 이득을 보는" 것이라 생각합니다. 아니면 페이지를 저장하는 시점에서 링크 목록만 따로 뽑아서 관리하는 수도 있겠죠. 그러면 full text search 보다도 더 빠르게 되겠죠. 제 홈에서는 결국 그렇게 해 버렸습니다만... -- Raymundo
저장하는 시점에서 링크 목록만 따로 뽑아 저장하면...페이지 이름이 변경되거나 삭제된 페이지는 어떻게 하셨나요? --kidfriend
같이 바뀌거나 없어지겠죠. -- bab2
페이지가 삭제되는 것은 문제가 되지 않습니다. 어떤 페이지가 내용이 있건 없건간에, 그 페이지에 대한 링크는 그대로 존재하니까요. 페이지가 이름이 바뀌는 경우는 UseModWiki 에서 기본적으로 '모든 페이지를 검색하여 이름이 바뀐 페이지로 향한 링크를 새 이름으로 변경' 해 주는 기능이 있기 때문에, 링크를 변경하는 김에 링크 목록도 덩달아 갱신하게 했습니다. 이 기능을 사용하지 않을 수도 있는데, 그 경우는 새로운 페이지를 생성하고 기존의 페이지를 삭제한 것과 동일하기 때문에 역시 신경쓰지 않아도 되지요. --Raymundo

모인모인은 링크 정보를 캐싱하게 설계되어 있습니다. 다만, 배포되는 노스모크모인모인은 링크 정보를 캐싱할 때 중복되어 있을 경우를 점검하지 않고 엉터리로 하는 문제가 있습니다. 최신 버전의 모인모인은 제대로 캐싱됩니다. 캐싱된 페이지 정보는 모인모인 1.0이후에 들어있는(?) LocalSiteMap 액션에서 사용하고 있습니다. --무신

위키 내에서가 아니라, 인터넷 전체에 역링크가 있기를 바라는건 꿈일까요. --kidfriend

그러게 말이에요 ;) --방금가입한사람



"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>