Go 환경을 깨끗하게 유지 관리하는 방법
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
go clean
을 사용하여 빌드 결과물과 캐시된 테스트 결과를 제거하십시오.- 디스크 공간을 확보하기 위해 모듈 및 빌드 캐시를 주기적으로 비우십시오.
- 의도하지 않은 삭제를 방지하기 위해 실행하기 전에
-n
으로 정리 작업을 미리 보십시오.
깨끗한 Go 개발 환경을 유지하는 것은 효율적인 워크플로와 최적의 성능에 필수적입니다. 시간이 지남에 따라 다양한 빌드 결과물과 캐시된 파일이 누적되어 디스크 공간을 소비하고 잠재적으로 불일치를 초래할 수 있습니다. Go는 개발자가 이러한 불필요한 파일을 제거하는 데 도움이 되는 go clean
명령을 제공합니다.
go clean
명령 이해하기
go clean
명령은 Go 작업 공간에서 객체 파일과 캐시된 데이터를 제거하도록 설계되었습니다. Go는 대부분의 객체를 임시 디렉터리에 빌드하지만, 특히 다른 도구나 수동 빌드 프로세스에서 생성된 일부 파일은 유지될 수 있습니다. go clean
명령은 이러한 잔여 파일을 제거하여 이 문제를 해결합니다.
기본 사용법
현재 모듈의 디렉터리를 정리하려면 모듈의 루트로 이동하여 다음을 실행하기만 하면 됩니다.
go clean
이 명령은 모듈에 특정한 객체 파일과 캐시된 테스트 결과를 제거합니다.
설치된 패키지 정리하기
패키지와 연결된 설치된 아카이브 또는 바이너리 파일을 제거하려면 -i
플래그를 사용하십시오.
go clean -i [package_name]
[package_name]
을 특정 패키지 경로로 바꾸십시오. 이것은 패키지를 제거하거나 새 빌드를 보장해야 할 때 특히 유용합니다.
종속성을 재귀적으로 정리하기
정리 작업을 패키지 및 모든 종속성에 적용하려면 -r
플래그를 활용하십시오.
go clean -r [package_name]
이렇게 하면 지정된 패키지뿐만 아니라 모든 종속 패키지도 정리됩니다.
빌드 캐시 제거하기
Go는 후속 컴파일 속도를 높이기 위해 빌드 출력을 캐시합니다. 그러나 빌드 불일치를 해결하거나 디스크 공간을 회수하는 것과 같이 빌드 캐시를 지워야 하는 시나리오가 있습니다. 전체 빌드 캐시를 제거하려면 다음을 실행하십시오.
go clean -cache
이 명령은 빌드 캐시 디렉터리의 모든 파일을 삭제합니다. 다음을 사용하여 찾을 수 있습니다.
go env GOCACHE
캐시를 지우면 Go가 처음부터 패키지를 다시 빌드해야 하므로 후속 컴파일의 빌드 시간이 더 오래 걸릴 수 있습니다.
모듈 다운로드 캐시 지우기
모듈 다운로드 캐시는 중복 네트워크 호출을 방지하기 위해 다운로드된 모듈을 저장합니다. 이 캐시를 지우려면 다음을 사용하십시오.
go clean -modcache
이 명령은 모듈 캐시에 저장된 모든 모듈을 제거합니다. 일반적으로 $GOPATH/pkg/mod
에 있습니다. 모듈 캐시를 지우면 특히 수많은 종속성으로 작업한 경우 상당한 디스크 공간을 확보할 수 있습니다.
테스트 결과 캐시 만료
Go는 테스트 성능을 최적화하기 위해 테스트 결과를 캐시합니다. 캐시된 모든 테스트 결과를 만료해야 하는 경우 다음을 실행하십시오.
go clean -testcache
이렇게 하면 Go가 모든 테스트를 다시 실행하여 결과가 코드베이스의 현재 상태를 반영하도록 합니다.
퍼즈 테스트 캐시 제거하기
Go의 퍼즈 테스트 기능을 활용하는 개발자의 경우 퍼즈 캐시는 코드 적용 범위를 확장하는 입력을 저장합니다. 이 캐시를 지우려면 다음을 실행하십시오.
go clean -fuzzcache
이러한 파일을 제거하면 동일한 적용 범위를 제공하는 새로운 입력이 발견될 때까지 퍼징이 덜 효과적일 수 있습니다.
추가 플래그
go clean
명령은 동작을 제어하기 위한 여러 플래그를 제공합니다.
-n
: 실제로 실행하지 않고 실행될 명령을 인쇄합니다.-x
: 명령이 실행될 때 인쇄합니다.-v
: 자세한 출력을 활성화하여 정리 프로세스를 자세히 설명합니다.
예를 들어 삭제하지 않고 제거될 파일을 보려면 다음을 사용하십시오.
go clean -n
모범 사례
- 정기적인 유지 관리: 디스크 사용량을 효과적으로 관리하기 위해 빌드 및 모듈 캐시를 주기적으로 정리하십시오.
- 플래그 사용 시 주의:
-cache
및-modcache
와 같은 플래그는 모든 프로젝트에 영향을 미치는 글로벌 캐시를 제거하므로 신중하게 사용하십시오. - 삭제 전 검토:
-n
플래그를 사용하여 실행하기 전에 작업을 미리 보고 의도하지 않은 파일이 제거되지 않도록 하십시오.
go clean
명령을 개발 워크플로에 통합하면 깔끔한 Go 환경을 유지 관리하여 예측 가능한 빌드와 효율적인 프로젝트 관리를 할 수 있습니다.
FAQs
디스크 공간을 회수하기 위해 모듈 캐시에서 다운로드한 모든 Go 모듈을 제거합니다.
빌드 불일치가 발생하거나 처음부터 패키지를 다시 빌드해야 할 때 사용하십시오.
아니요, 빌드 결과물, 캐시된 파일 및 테스트 결과만 제거하고 소스 코드는 제거하지 않습니다.
저희는 Go 프로젝트 호스팅을 위한 최고의 선택 Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 지불하십시오(요청 없음, 요금 없음).
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불하십시오.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅
손쉬운 확장성 및 고성능
- 쉬운 동시성을 처리하기 위한 자동 확장
- 운영 오버헤드가 없음(구축에만 집중하십시오).
문서에서 자세히 알아보십시오!
X에서 저희를 팔로우하세요: @LeapcellHQ