🤖
1321 in / 4059 out / 5380 total tokens
Simon Willison이 공개한 세 가지 도구가 Claude Code 생태계에서 어떤 의미를 갖는지 살펴본다. 모두 Claude를 활용해 개발된 오픈소스 도구들로, AI 어시스턴트가 실제 개발 워크플로우에 어떻게 녹아드는지 보여주는 사례다.
🔧 Claude로 만든 보안 도구: scan-for-secrets 0.3
Simon Willison이 Claude와 페어 프로그래밍해서 만든 비밀 스캐닝 도구다. 코드베이스에서 API 키, 비밀번호, 토큰 같은 민감 정보를 자동으로 검출한다. 0.3 버전에서는 성능 개선과 새로운 패턴 매칭 규칙이 추가됐다.
이 도구가 흥미로운 건 "AI가 짠 코드를 또 AI가 검수한다"는 구조다. 게임 개발할 때도 비슷한 패턴이 있다. Unreal의 UHT(Unreal Header Tool)가 C++ 코드를 파싱해서 리플렉션 데이터를 생성하는 것처럼, AI 도구들이 서로 물려서 검증 계층을 형성하는 셈이다. 서버 아키텍처 관점에서 보면 일종의 다중 방어 레이어다.
실무에서는 CI/CD 파이프라인에 이런 스캐너를 꼭 넣어야 한다. 한번 실수로 AWS 키를 깃헙에 올리면 크레딧이 몇천 달러까지 날아간다. 특히 .env 파일이나 config를 하드코딩하는 초보 실수를 잡아주니까. 팀 규모가 커지면 pre-commit hook으로 강제하는 게 좋다.
기술적으로는 정규식 기반 패턴 매칭과 heuristics를 결합했다. 단순 regex면 오탐이 너무 많은데, Claude가 작성한 heuristics 로직이 false positive를 줄여준다. AI가 짠 코드라서 그런지 예외 케이스 처리가 꽤 세심하다.
왜 중요한가: AI 시대에 보안은 더 복잡해진다. 프롬프트에 API 키를 넣는 실수, AI가 생성한 코드에 하드코딩된 시크릿 등 새로운 위협 벡터가 계속 생긴다. 이런 도구는 필수다.
🧹 Claude Code 붙여넣기 정리: Cleanup Claude Code Paste
Claude Code에서 코드를 복사해서 다른 곳에 붙여넣을 때 발생하는 포맷팅 문제를 해결하는 유틸리티다. Claude Code가 생성한 마크다운 코드 블록에서 불필요한 메타데이터를 제거하고, 들여쓰기를 정리하고, 순수 코드만 추출해준다.
이게 왜 필요한지 알겠다. Claude Code 쓰다 보면 코드에 백틱 양옆으로 이상한 문자가 붙거나, 줄번호가 섞이거나, 설명 텍스트가 같이 복사되는 경우가 있다. 특히 긴 파일을 생성하면 끊겨서 나오는데, 그걸 이어붙이면서 포맷이 깨지기도 한다. 수동으로 정리하면 5분씩 날아간다.
도구는 간단한 파이썬 스크립트 형태다. 클립보드를 읽어서 정규식으로 정리한 뒤 다시 클립보드에 쓴다. 파이프라인으로 쓸 수 있게 CLI도 제공한다. UE5 개발할 때도 .generated.h 파일이나 중간 산출물 정리할 때 비슷한 스크립트를 자주 만든다.
더 큰 맥락에서 보면, 이건 "AI-네이티브 개발 워크플로우"의 일환이다. LLM 출력은 사람이 쓴 코드랑 구조가 다르다. 토큰 단위로 생성하니까 중간에 주석이 끼어들거나 네이밍이 일관되지 않는다. 이런 특성에 맞춘 후처리 도구가 필요하다. 게임 개발에서 셰이더 컴파일러가 중간 언어를 최적화하는 것과 비슷하다.
앞서 언급한 scan-for-secrets와도 연결된다. Claude Code가 생성한 코드를 정리한 뒤, scan-for-secrets로 시크릿 검사까지 하면 안전한 워크플로우가 완성된다.
왜 중요한가: AI 도구의 출력을 바로 프로덕션에 쓰는 건 위험하다. 검증, 정리, 변환 파이프라인이 필요한데, 이런 작은 도구들이 그 파이프라인을 채운다.
🗂️ Datasette 포트 관리: datasette-ports 0.1
Datasette 인스턴스의 포트를 체계적으로 관리하는 플러그인이다. 여러 Datasette 서버를 띄울 때 어떤 포트를 쓰는지 추적하고, 충돌을 방지하고, 프록시 설정을 자동화한다.
Datasette를 모르는 독자를 위해 설명하면, SQLite 데이터베이스를 읽기 전용 웹 API로 노출하는 도구다. 데이터 분석가나 저널리스트들이 많이 쓴다. Simon Willison이 만든 걸작인데, 이제 Claude 같은 AI가 데이터를 탐색할 때도 유용하다. SQL을 모르는 사용자가 자연어로 데이터베이스에 질의할 수 있게 해주니까.
포트 관리는 서버 개발의 기본이다. 게임 서버도 마찬가지다. 로비 서버, 게임 서버, 매칭 서버, DB 프록시... 각각 포트를 할당하고 문서화해야 한다. 규칙 없이 막 쓰다 보면 8000, 8080, 8888 이런 걸 다 써버려서 새 서버 추가할 때마다 충돌난다. 이 플러그인은 그걸 체계화한다.
기술적으로는 단순하다. JSON 설정 파일에 포트 할당을 기록하고, 새 인스턴스 시작할 때 사용 가능한 포트를 찾아준다. 하지만 이 "단순함"이 중요하다. 복잡한 오케스트레이션 시스템을 들이미는 것보다, 작은 문제를 작게 푸는 게 낫다. Kubernetes 같은 걸 쓰면 포트 문제는 해결되지만, 그걸 유지보수하는 비용이 만만치 않다.
Claude와의 연관성은? AI 에이전트들이 로컬에서 서비스를 띄우고 통신하는 시나리오가 늘어난다. Model Context Protocol(MCP) 서버도 그렇고, 로컬 RAG 서버도 그렇고. 이런 마이크로서비스들의 포트를 관리하는 건 AI 시대에도 여전히 중요한 문제다.
왜 중요한가: 인프라 관리의 "지루한" 부분을 자동화하는 도구다. 화려하진 않지만, 없으면 삽질하게 된다.
💭 총평: AI 도구의 롱테일
세 도구의 공통점이 있다. 모두 "큰 AI 모델"이 아니라, AI를 쓰면서 생기는 "작은 문제"를 해결한다. 시크릿 검사, 포맷 정리, 포트 관리... 하나씩은 사소해 보이지만, 이런 것들이 쌓이면 개발 경험이 완전히 달라진다.
게임 개발에서도 비슷하다. 언리얼 엔진 자체가 화려하지만, 실제 프로젝트를 꾸려가는 건 Asset Cleaner, Derived Data Cache, Cooker 같은 지루한 도구들이다. AI 생태계도 이제 그 "지루한 인프라"가 채워지는 단계인 것 같다.
Claude Code로 코딩하다가 생기는 자잘한 문제들을, 또 Claude로 만든 도구로 해결한다. AI가 AI를 위한 도구를 만드는 셀프 서포트 루프가 형성되고 있다.