AI를 페어 프로그래머로: 하루 만에 depx를 만들다
Source: Dev.to

논쟁 자체가 잘못됐음
프로그래밍에서 AI에 대한 대부분의 논의는 이분법적입니다: “AI가 개발자를 대체할 것이다” 혹은 “AI는 쓰레기이고 언제나 실패한다.” 두 입장 모두 핵심을 놓칩니다.
AI는 컴파일러, IDE, 혹은 Stack Overflow와 같은 도구일 뿐입니다. 중요한 질문은 “사용할지 말지”가 아니라 어떻게 효과적으로 사용할 것인가입니다.
실제로 내가 한 일
어제 나는 Rust로 만든 CLI 도구 depx 를 만들었습니다. 이 도구는 JavaScript/TypeScript 프로젝트를 분석해 node_modules 안에 실제로 무엇이 들어있는지 파악합니다:
- 설치됐지만 한 번도 import되지 않은 패키지 찾기
- 어떤 트랜지티브 의존성이 존재하는지 설명하기
- 실제로 사용 중인 버전에 영향을 주는 취약점 확인하기
- 더 이상 사용되지 않는(deprecated) 패키지 목록 표시하기
이 도구를 crates.io에 배포하고 Reddit에 올렸으며, 25 k개의 패키지를 가진 사용자가 내 audit 명령이 25 000개의 API 요청을 만든다고 피드백을 주었습니다. 몇 시간 안에 배치 쿼리(v0.2.0)를 구현해 요청 수를 약 25개로 줄였습니다.
AI가 어떻게 들어갔는가
전체 과정에서 Claude를 사용했습니다. 실제로는 다음과 같이 진행되었습니다:
내가 한 일
- 문제 정의 (node_modules 혼란)
- 아키텍처 설계 (분석기, 그래프, lockfile 파서, 취약점 검사기)
- 기술 선택 (
oxc_parser,petgraph, OSV API 사용) - 출력 결과 검증 및 엣지 케이스 처리 (
@types패키지, 빌드 도구 등) - 실제 프로젝트에 테스트
- 사용자 피드백에 대응하고 우선순위에 따라 수정
Claude가 한 일
- 내가 타이핑하는 것보다 빠르게 코드 작성
- 내가 정의한 구조 구현
- 디버깅 지원
- 내가 어쨌든 작성했을 보일 보일러플레이트 생성
핵심 인사이트
*“AI가 나쁜 코드를 만든다”*는 사람들은 AI에게 자신을 대체해 달라고 요구합니다. “앱을 만들어 줘”라고 프롬프트하면 쓰레기가 나옵니다.
AI를 효과적으로 활용하는 사람들은 페어 프로그래머처럼 다룹니다. 당신이 주도하고, AI가 가속화합니다. 여전히 필요한 것은:
- 문제를 깊이 이해하기
- 좋은 코드가 어떤 모습인지 알기
- 해결책이 올바른지 평가하기
- 결과에 대한 책임을 지기
투명성
depx의 GitHub 저장소를 보면 Claude가 기여자로 표시된 것을 볼 수 있습니다. 이는 의도적인 선택입니다. AI를 사용했다는 사실을 숨기지 않고, AI를 사용했다고 해서 실제로 무언가를 만들지 못한 것이 아니라는 점을 보여줍니다.
도구는 실제로 동작합니다. 실질적인 문제를 해결하고 있습니다. 사용자들이 피드백을 주고, 나는 개선 사항을 지속적으로 배포하고 있습니다. 이것이 중요한 점입니다.
진짜 질문
“개발자가 AI를 사용해야 할까?” 라는 질문을 멈추세요.
“이제 이 레버리지를 가지고 무엇을 만들 수 있을까?” 라는 질문을 시작하세요.