Go 언어 개발 시 코드 임포트(import) 방식이 특정 Git 호스팅 서비스에 대한 불필요한 종속성(coupling)을 유발할 수 있다는 지적이 나왔습니다. Go는 코드를 가져올 위치를 네임스페이스(namespace)로 지정하는데, 이때 `github.com/user/repo`와 같이 GitHub 주소를 직접 사용하면 해당 코드가 GitHub에 묶이게 됩니다. 이는 오픈소스 라이브러리 버그 보고나 배포에는 편리하지만, 호스팅 서비스를 변경할 경우 모든 코드의 임포트 경로를 수정해야 하는 심각한 문제로 이어질 수 있습니다.
이러한 종속성은 기업에게 막대한 비용과 비효율을 초래할 수 있습니다. 실제로 한 기업은 GitLab, GitHub, Azure DevOps를 동시에 사용하면서도 코드 위치 변경의 어려움 때문에 세 플랫폼을 모두 유지해야 했고, 이는 불필요한 호스팅 비용 지출로 이어졌습니다. 저자는 이 문제를 해결하기 위해 `go.uber.org`나 `go.iain.rocks`와 같은 커스텀 도메인(custom domain)을 사용할 것을 제안합니다. 커스텀 도메인을 사용하면 실제 Git 저장소의 위치가 바뀌더라도 사용자는 동일한 임포트 경로를 유지할 수 있어, 코드 변경 없이 유연하게 호스팅 서비스를 전환할 수 있습니다.
커스텀 도메인 설정은 Nginx와 간단한 HTML 메타 태그를 통해 구현할 수 있습니다. Nginx 설정에서 `go-get=1` 쿼리 스트링이 없는 일반 웹 브라우저 요청은 GitHub 페이지로 리다이렉트하고, Go 툴이 `go-get=1` 파라미터와 함께 요청할 때는 `go-import` 메타 태그가 포함된 HTML 파일을 제공하여 실제 저장소 위치를 알려주는 방식입니다. 이처럼 커스텀 도메인을 활용하면 개발팀은 특정 호스팅 제공업체에 얽매이지 않고, 코드의 이식성과 유지보수성을 크게 향상시킬 수 있습니다. 이는 특히 내부 라이브러리나 패키지를 사용하는 상업용 소프트웨어 개발팀에 필수적인 접근 방식입니다.