Skip to content

유효하지 않은 링크 발견 후 올바른 링크 찾기 #41

@reddevilmidzy

Description

@reddevilmidzy

내가 지금까지 리포지토리에서 발견했던 유효하지 않은 링크의 유형은 다음과 같다.

각각 다른 방법을 사용하여 유효하지 않았던 링크를 올바른 링크로 변경하였다.

브랜치 이름 변경

github 코드 링크는 새로 변경된 링크를 찾기가 비교적 쉽다.

vercel/turborepo 같은 경우 유효하지 않은 링크를 들어갔을 때

Image

이런 식으로 브랜치 이름이 변경되었다고 알려주었고, 올바른 링크로 리다이렉트 해주었다.

디렉토리 이동

rust-lang/rust 경우에는 404 페이지를 마주했었는데, 이때는 blame 기능을 사용해 해당 파일이 변경되었을 시점으로 커밋을 돌아가서 어떤 파일들이 있었는지 확인하고 어디로 이동되었는지 추적하여 변경된 링크를 찾았다.

도메인 주소 변경

이 부분이 가장 까다로웠는데 python/cpython 에는 www.demo2s.com 라는 도메인을 사용하는 링크가 주석에 있었다. 현재 이 웹사이트는 정상적으로 운영이 되고 있다. 그런데 주석에 있었던 http://www.demo2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm 는 404 페이지를 반환하고 있었다. 이 페이지도 URL이 변경되었겠구나 하고 사이트를 찾아다니는데 Cpp tutorial 중에 set-multiset 하위 개념은 존재하지 않았다.

해당 페이지에서 더 이상의 추가 정보를 얻는 것은 어려울 것 같아 다른 방법을 사용했는데, 웹아카이빙 사이트 https://web.archive.org/ 에서 demo2s.com 의 흔적을 찾기 시작했다. 다행이 이 사이트에서 흔적을 찾을 수 있었다.

Image

여기서 재미있는 점을 발견했다. demo2s.com으로 요청을 했는데 java2s.com 으로 리다이렉팅 한다는 메시지가 나왔다. 그렇다.
demo2s.com에는 Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm 이 없었지만 java2s.com에는 Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm이 존재했다.

그리고 추가로 계속 찾아보던 중 python doc 에는 이미 올바른 링크로 변경이 되어 있다는 것을 발견했다.
https://github.com/python/cpython/blob/main/Doc/library/collections.rst?plain=1#L437


이렇게 유효하지 않은 링크를 발견한 후 올바른 링크를 찾기 위한 과정을 기록해보았는데, 본론은 어떻게 자동으로 유효하지 않은 링크를 유효한 링크로 찾을 수 있을지가 고민 포인트이다.

방법을 정리해보면 이렇다.

  • git blame 사용
  • web.archive.org 에서 검색
  • 구글링
  • docs 탐색

아직 시도해보지 않았는데, AI를 사용해서도 링크를 찾을 수 있을지 모르겠다.
어쨌든 이 기능이 queensac의 핵심 기능이고 다른 서비스와의 차별점이라고 생각한다.
gpt의 표현을 빌려보자면 단순한 dead link checker가 아니라 "스스로 고칠 줄 아는 intelligent fixer"가 될 수 있는 기회다.

Sub-issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

Middlegame

Relationships

None yet

Development

No branches or pull requests

Issue actions