Claude Code가 벤더를 지정하지 않았을 때 무엇을 선택하는지 확인하기 위해 빈 레포지토리에서 118번 실행해 봄
i ran claude code 118 times on blank repos to see what it picks when you don't name a vendor
핵심 요약
Claude Code가 벤더를 지정하지 않은 상태에서 어떤 도구를 선택하는지 118번의 테스트를 통해 분석한 결과입니다.
- 도구 선택 패턴 — Stripe나 Sentry처럼 업계 표준이 확고한 경우 즉시 선택함
- 인증 구현 방식 — 인증 제공업체 대신 직접 JWT/세션을 구현하는 경향이 강함
- 직접 구현 선호 — 표준이 모호한 분야에서는 외부 라이브러리보다 직접 코드를 작성함
- 테스트 결과 공유 — 카테고리별 상세 데이터와 프롬프트를 웹사이트에 공개함
claude code가 기본적으로 뭘 갖다 쓰는지 궁금해서 직접 테스트해 봤다. 얘가 말로만 떠드는 거 말고, 실제로 diff에 찍히는 게 뭔지 확인해 봄.
세팅: 아무것도 없는 깡통 레포 두 개(Next.js + TS, Python + FastAPI). SDK도 없고, 설정도 없고, 특정 제공업체를 암시할 만한 건 일절 없음. "데이터 저장 기능 추가해 줘"나 "파일 업로드 기능 넣어줘" 같은 프롬프트를 카테고리당 3개씩, 도구 이름은 절대 언급 안 하고 던짐. headless claude code에 sonnet 3.5(5.5는 오타인 듯) 물려서, 라이브러리 설치되는 시점(보통 도구 고르는 순간)에 바로 컷함. 카테고리 10개(대부분 12회씩, 작업은 10회), 총 118번 돌렸고 API 비용은 19달러 정도 나옴.
결과:
- 결제: stripe 12/12
- 에러 모니터링: sentry 12/12
- 인증: 직접 짠 jwt/세션 12/12. 인증 제공업체는 0개
- 캐싱: 매번 직접 구현 12/12
- 파일 저장: 로컬 디스크 10/12, s3 2
- 이메일: raw smtp 10/12, resend 2
- 데이터베이스: sqlite 9/12, 직접 호스팅한 postgres 3
- 배포: 깡 docker 7/12, fly 4, heroku 1
- ORM: sqlalchemy 6, drizzle 4, kysely 1, raw sql 1
- 백그라운드 작업: 구현할 때마다 매번 직접 짬. 2번은 하다가 멈추고 나한테 물어봄
패턴은 확실함. 업계 표준이 확실한 놈(stripe, sentry)이 있으면 바로 거기로 직행함. 그 외에는 인증조차도 그냥 지가 직접 짜버림. 저 짧은 리스트에 없는 벤더들은 프롬프트에 대놓고 이름 적어주지 않는 이상 거의 안 나옴.
주의사항: 일단 claude code만 돌려본 거고, 모델 하나에 스택 두 개만 쓴 거임. 이건 그냥 '첫인상 테스트'지 "실제 서비스에 뭘 올릴 거냐"는 아님. 다음은 codex 차례다.
이거 추적하려고 사이트 하나 만들었음. 카테고리별 상세 분석, 프롬프트, 각 실행 결과 증거 다 올려놨으니까 확인해 봐: https://whatagentspick.com
너네가 쓸 때도 이렇게 나오는지 궁금하네. 특히 인증 쪽은 좀 의외였음.

