AI가 죽은 코드를 작성한다? Go 팀의 deadcode 도구가 한 번의 명령으로 찾아낸다
AI 코딩 에이전트는 코드를 생성하는 데는 뛰어나지만, 사용되지 않는 함수, 도달할 수 없는 분기, 코드베이스를 부풀리고 미래의 독자를 혼란스럽게 만드는 고아 헬퍼와 같은 죽은 코드를 남기는 데도 뛰어납니다. Go 팀의 deadcode 도구는 한 번의 명령으로 이를 찾아냅니다.
deadcode란 무엇인가?
deadcode는 공식 Go 도구(golang.org/x/tools의 일부)로, 프로그램 전체의 도달 불가능성 분석을 수행합니다. 프로그램의 어떤 진입점에서도 호출될 수 없는 함수와 메서드를 보고합니다. 단순한 린터가 아니라 실제 제어 흐름 및 포인터 분석을 수행하여 도달 가능성을 결정합니다.
AI가 작성한 죽은 코드를 찾는 방법
모듈 루트에서 다음을 실행하세요:
go run golang.org/x/tools/cmd/deadcode@latest ./...그러면 전체 모듈을 스캔하고 도달할 수 없는 함수 목록을 출력합니다. 예:
deadcode: unreachable: main/helpers.go:23:7:func helperNeverCalled()특정 패키지나 플래그를 전달할 수도 있습니다:
-test: 분석에 테스트 파일 포함-filter: 정규식과 일치하는 함수만 보고 (예:-filter '_dead')-json: CI 도구와의 통합을 위해 JSON으로 출력
AI 에이전트가 죽은 코드를 남기는 이유
LLM 에이전트는 확률적으로 코드를 생성합니다. 종종 호출하지 않는 유틸리티 함수를 작성하거나, 리팩토링의 백업으로 이전 코드의 사본을 남깁니다. 코드가 컴파일되고 테스트가 통과하기 때문에 놓치기 쉽습니다. deadcode는 이를 결정적으로 잡아냅니다.
죽은 코드를 안전하게 제거하기
deadcode를 실행한 후 각 도달 불가능한 함수를 수동으로 검토하세요. 함수가 리플렉션을 통해 사용되거나, go:linkname에서 호출되거나, 공개 API의 일부인 경우 도달 불가능할 수 있습니다. 이 도구에는 리플렉션을 고려하는 -reflect 플래그가 있습니다. 그러나 대부분의 경우 main(또는 테스트)에서 호출되지 않으면 안전하게 삭제할 수 있습니다.
그런 다음 go test ./...를 실행하여 아무것도 깨지지 않았는지 확인하세요. 죽은 코드 제거는 코드베이스 위생을 위한 가장 쉬운 승리 중 하나이며, 다음 반복을 위해 에이전트의 출력을 더 깨끗하게 만듭니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

Anchormd: 클로드 AI 세션 간 컨텍스트 관리 도구
Anchormd는 선별된 마크다운 계획을 검색 가능한 지식 그래프로 인덱싱하여 Claude AI 세션 간 컨텍스트 손실 문제를 해결하는 오픈소스 도구입니다. 에이전트가 세션 시작 시 프로젝트 개요를 로드하고 필요에 따라 특정 세부 사항을 쿼리할 수 있도록 합니다.

개발자가 Claude Code를 활용해 디자인과 SEO를 위한 AI/ML 구인 게시판을 구축했습니다
한 개발자가 선도적인 연구소와 기업의 AI/ML 채용 정보를 분류하여 제공하는 무료 사이트 MOAIJobs.com을 제작했습니다. 이 사이트는 카테고리, 지역, 급여별 필터링 기능을 제공하며, 디자인과 기술적 SEO 구현은 개발자가 제공한 참고 자료와 설명을 바탕으로 Claude Code가 담당했습니다.

구매자 평가: AI 에이전트 대화를 활용한 B2B 공급업체 평가를 위한 Claude 기술
구매자를 대신해 B2B 소프트웨어 벤더를 평가하는 Claude 스킬로, 귀사의 정보를 조사하고 도메인별 질문을 던지며 Salespeak Frontdoor API를 통해 벤더 AI 에이전트와 직접 대화합니다. 주장을 독립적 출처와 교차 검증하고, 투명한 검증 수준을 가진 증거 기반 점수표를 생성합니다.

LamBench: AI 코딩 에이전트를 위한 람다 계산법 벤치마크 스위트
LamBench는 람다 계산법 과제에 대한 AI 에이전트를 평가하는 벤치마크 스위트로, 지능, 속도, 우아함을 측정합니다. v1 릴리스에는 문제와 점수 매트릭스가 포함되어 있습니다.