- Compiler Explorer는 공유 링크가 오래 살아남도록 2012년부터 저장 방식을 바꿔왔지만, goo.gl 종료로 과거
godbolt.org/g/abc123링크 보존이 급해짐 - 처음에는 전체 컴파일러 상태를 URL에 담았고, 2014년에는 Google URL 단축 서비스를 붙였으며, 2016년 Stack Overflow의 단축 URL 금지 이후
godbolt.org/g/abc123우회 링크를 만들었음 - URL 길이 한계가 커진 2018년부터는 상태를 S3의 JSON 문서로 저장하고, DynamoDB로 짧은 해시와 전체 경로 매핑을 관리하는 자체 방식으로 전환함
- Google이 goo.gl 링크를 2025년 8월 종료하면 기존 goo.gl 기반 링크 해석이 어려워져, 공개 웹과 로그에서 찾은 약 12,000개
g링크와 리디렉션 대상을 자체 데이터베이스로 모으고 있음 - 오래된 Compiler Explorer 링크를 가진 사용자가 지금 링크를 방문하면 보존 목록에 들어갈 가능성이 있으며, 오래 유지돼야 하는 공유 지식은 핵심 인프라를 직접 소유할 때 더 안전함
Compiler Explorer 링크 저장 방식의 변화
- 2012년에는 Compiler Explorer의 전체 상태를 URL 안에 저장했음
- 전체 컴파일러 상태를 URL에 인코딩하는 방식은 길이가 길어져 다루기 어려웠고, 2014년 3월 Google의 goo.gl 단축 URL 지원이 추가됨
- 당시 짧은 링크는
goo.gl/abc123형태였고, 클릭하면 Compiler Explorer 사이트의 전체 URL로 리디렉션된 뒤 URL 안의 상태를 디코딩했음
Stack Overflow 금지 이후의 우회 링크
- 2016년 Stack Overflow는 실제 목적지를 숨길 수 있다는 이유로 링크 단축 서비스를 금지함
- 이 조치로 Compiler Explorer 링크도 영향을 받았고, 당시에는 사용자 데이터를 직접 저장할 의도가 없었음
- 우회책은 goo.gl을 계속 쓰되 사용자에게는
godbolt.org/g/abc123형태의 링크를 제공하는 방식이었음abc123은 goo.gl의 고유 ID였음/g/abc123접근은goo.gl/abc123으로 리디렉션됨- goo.gl은 다시 상태가 담긴 godbolt.org 전체 URL로 리디렉션했음
- 이후에는 Google API를 사용해 여러 단계의 리디렉션 체인을 피했음
2018년 자체 저장소 전환
- 2018년에는 URL 길이 제한이 더 큰 문제가 되었고, 이미 URL 안의 데이터를 압축하고 있었음
- Compiler Explorer는 상태를 직접 저장하는 구조로 바꿈
- 짧은 링크 해시에 불쾌한 단어가 들어가는지도 검사함
- 불쾌한 단어가 나오면 문서에 의도적으로 추가 정보를 넣어 다른 해시가 나오게 함
- 이 동작은 bug #1297로 이어졌음
goo.gl 종료가 만든 보존 문제
- Compiler Explorer는 아직
godbolt.org/g/abc123링크를 지원함 - Google은 기존 링크가 의도한 목적지로 계속 리디렉션된다고 했지만, goo.gl은 몇 년 전 읽기 전용이 되었고 2025년 8월 최종 종료될 예정임
- 종료 이후에는 goo.gl 기반 링크를 더 이상 해석할 수 없음
- 실제
goo.gl링크 자체는 Compiler Explorer 쪽에서 해결할 수 없지만,godbolt.org/g/abc123링크는 자체 데이터베이스로 보존할 수 있음
기존 링크 수집과 자체 데이터베이스
- 지난 며칠 동안 공개된 여러 출처에서 기존 링크와 그 리디렉션 대상 URL을 모으고 있음
- 현재까지 약 12,000개 링크를 찾음
- Google 웹 검색 API
- GitHub API
- 자체 웹 로그
- archive.org의 Stack Overflow 데이터 덤프
- Archive.org가 보관한 웹페이지 목록
- 내부적으로는 goo.gl보다 자체 데이터베이스를 우선 사용하도록 변경했음
- 아직 데이터베이스에 없는 새로운
g링크도 감시하고 있음 - 로컬에는 sqlite 데이터베이스가 있고, 프로덕션 쪽은 Dynamo를 사용함
사용자가 도울 수 있는 일
- 오래된
godbolt.org/g/abc123링크를 따로 보관하고 있다면 지금 각 링크를 방문하는 것이 도움이 됨 - 링크를 방문하면 웹 로그에 남고, 이후 데이터베이스에 추가될 수 있음
- 그렇지 않으면 2025년 8월 이후 해당 링크는 동작하지 않을 수 있음
- 이 사례는 중요한 인프라를 서드파티 서비스에 의존하는 위험을 보여줌
- “영원히 지속되는 URL”이라는 약속을 지키려면 전체 스택을 직접 소유해야 함