TL;DR
promptfoo는 LLM 앱의 성능 평가(eval)와 보안 레드팀을 하나의 CLI로 통합한 오픈소스 도구입니다. 2026년 3월 OpenAI에 인수됐고, MIT 라이선스를 유지하며 100% 로컬 실행 가능해요. 프롬프트 변경할 때마다 자동으로 품질을 검증하고, 50가지 이상의 공격 패턴으로 취약점을 스캔할 수 있습니다.
문제: LLM 앱 개발의 "감" 기반 테스트
LLM 애플리케이션을 개발할 때 가장 흔한 실수가 뭘까요? "잘 되는 것 같은데?"로 테스트를 끝내는 거예요.
프롬프트를 고쳐봤어요. 결과가 좋아 보입니다.
모델을 바꿔봤어요. 아까보다 빨라진 것 같습니다.
새로운 기능을 추가했어요. 특별히 문제는 없는 것 같습니다.
그런데 이게 정말 나아진 건가요? 이전보다 안 좋아진 케이스는 없나요? 보안 취약점은 없나요?
계획적인 테스트 없이 프롬프트를 계속 수정하면, 어느 순간 몰래 품질이 떨어져 있는데도 모를 수 있어요. 마치 물개구리처럼요. (점점 따뜻해지는 물에 삶아지다가 결국...😅)
해결: promptfoo로 자동화된 품질 검증
promptfoo는 이 "감 기반 테스트"를 "시스템 기반 테스트"로 바꿔줍니다.
# 프롬프트 바꿨어요
npx promptfoo@latest eval
# 1초 만에 결과를 전 모델에서 비교하고,
# "이전보다 2% 정확도 떨어졌습니다"라고 알려줍니다.
OpenAI가 promptfoo를 인수한 이유
2026년 3월 9일, OpenAI는 promptfoo 인수를 공식 발표했어요. 포스트 밸류에이션 기준 $85.5M 이상으로 추정되는 규모죠.
OpenAI가 밝힌 이유는 명확해요:
"Fortune 500 기업의 AI 보안 이슈 82%가 표준 가드레일로 탐지할 수 없습니다."
AI 에이전트가 도구를 호출하고, 데이터에 접근하고, 의사결정을 내리는 시대. 더 이상 보안 테스트는 선택이 아닌 필수가 됐다는 뜻이에요.
promptfoo의 두 가지 핵심 기능
1️⃣ 다중 모델 평가(Eval)
GPT, Claude, Gemini, Llama 등 주요 LLM을 사이드바이사이드로 비교합니다.
# promptfooconfig.yaml
prompts:
- "Translate the following to {{language}}: {{text}}"
providers:
- openai:gpt-4o
- anthropic:messages:claude-sonnet-4-20250514
- google:gemini-2.0-flash
tests:
- vars:
language: Korean
text: "Hello, how are you?"
assert:
- type: contains
value: "안녕"
- type: llm-rubric
value: "Translation is natural and fluent"
- type: latency
value: 2000 # 2초 이내
지원하는 검증 유형(Assertion):
- contains: 특정 키워드 포함 여부
- similar: 임베딩 기반 의미 유사도
- llm-rubric: LLM을 판정관으로 활용하는 LLM-as-Judge 방식
- is-json: JSON 구조 검증
- cost/latency: 비용·응답 시간 제한
100% 로컬에서 실행되며, 프롬프트가 외부 서버로 전송되지 않습니다. GitHub Actions와 네이티브로 통합되어, 프롬프트 변경마다 자동으로 품질 게이트를 적용할 수 있어요.
2️⃣ 레드팀(Red Teaming): 50+ 취약점 자동 스캔
npx promptfoo@latest redteam --strategy injection,jailbreak
promptfoo는 50가지 이상의 취약점 유형을 자동으로 스캔합니다. OWASP LLM Top 10을 모두 커버하고 있어요.
모델 레이어 위협:
- 프롬프트 인젝션 및 탈옥(Jailbreak)
- 혐오 발언, 편향, 독성 콘텐츠 생성
- 환각(Hallucination) 검출
- 저작권 침해 콘텐츠
- 학습 데이터 기반 PII 유출
애플리케이션 레이어 위협:
- 간접 프롬프트 인젝션(RAG 컨텍스트 오염)
- 도구 기반 취약점(SQL 인젝션, 권한 상승)
- 데이터 유출 및 세션 하이재킹
플러그인 아키텍처로 공격 생성기와 전달 기법을 조합하며, 에이전트 레드팀 기능은 다단계 검증 프로세스를 탐색하는 지능형 공격을 시뮬레이션합니다.
실전: 5분 안에 시작하기
설치
# npm (권장)
npx promptfoo@latest init
# Homebrew
brew install promptfoo
# pip
pip install promptfoo
기본 평가 설정
# promptfooconfig.yaml
prompts:
- "Translate the following to {{language}}: {{text}}"
providers:
- openai:gpt-4o
- anthropic:messages:claude-sonnet-4-20250514
tests:
- vars:
language: Korean
text: "Hello, how are you?"
assert:
- type: contains
value: "안녕"
- type: llm-rubric
value: "Translation is natural and fluent"
평가 실행
# 평가 실행
npx promptfoo@latest eval
# 결과 웹 UI 확인
npx promptfoo@latest view
브라우저에서 각 모델별 결과를 비교하는 인터랙티브 UI가 열려요.
트랙션: 실제 도입 현황
promptfoo가 실제로 얼마나 인정받고 있는지 봐요:
- GitHub Stars: 12,000+
- 개발자 사용자: 125,000명+
- Fortune 500 채택: 127개사
- Contributors: 263명
- 총 투자금: $22.68M
Shopify, Amazon, Anthropic 등 거대 기업들이 채택 중이고, 겨우 11명의 팀이 이 규모의 채택을 달성했다는 게 놀랍지 않나요?
사례: Discord Clyde AI
Discord는 AI 챗봇 Clyde를 런칭한 후 "그랜드마 익스플로잇" 등 다양한 탈옥 취약점을 발견했어요. 이후 promptfoo 초기 버전을 도입하고, 모든 프롬프트 및 워크플로우 변경에 평가를 의무화했습니다.
이제 배포 전에 자동으로 보안 검증이 되니까, 배포 후에 문제를 발견할 확률이 극적으로 줄어들었어요.
다른 도구와 비교
| 도구 | 강점 | 약점 |
|---|---|---|
| promptfoo | 평가 + 레드팀 통합, 로컬 실행, 다중 모델 | Node.js 의존 |
| DeepEval | Python 네이티브, 50+ 내장 메트릭 | 보안 테스트 약함 |
| LangSmith | LangChain 관찰성 + 평가 | LangChain 종속 |
| OpenAI Evals | OpenAI 모델 최적화 | OpenAI 전용 |
| Braintrust | SaaS 평가 플랫폼 | 로컬 실행 불가 |
promptfoo의 가장 큰 차별점은 성능 평가와 보안 레드팀을 하나의 도구로 제공한다는 점입니다.
자주 묻는 질문
Q. 무료인가요?
네. MIT 라이선스 오픈소스이며, OpenAI 인수 후에도 라이선스가 유지됩니다. 100% 로컬에서 실행할 수 있어요.
Q. 어떤 LLM을 지원하나요?
OpenAI(GPT), Anthropic(Claude), Google(Gemini), Meta(Llama), Mistral 등 주요 LLM과 커스텀 API를 모두 지원합니다.
Q. CI/CD에 통합할 수 있나요?
네. GitHub Actions와 네이티브로 통합되며, 프롬프트 변경마다 자동으로 평가를 실행할 수 있습니다.
# .github/workflows/promptfoo-eval.yml
name: Evaluate Prompts
on: [push, pull_request]
jobs:
eval:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm install -g promptfoo
- run: promptfoo eval
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Q. DeepEval과 뭐가 다른가요?
DeepEval은 Python 네이티브 평가 도구이고, promptfoo는 평가 + 보안 레드팀을 하나의 도구로 통합합니다. 보안 테스트가 필요하다면 promptfoo가 유리해요.
마무리
LLM 앱 개발에서 가장 큰 위험은 "모르고 배포"하는 거예요. 성능이 조용히 떨어지든, 보안 취약점이 숨어 있든, 사용자에게 배포되기 전까진 모를 수 있거든요.
promptfoo는 이 불확실성을 제거해줍니다.
- 프롬프트 변경? 자동 검증.
- 모델 교체? 즉시 비교.
- 배포? 보안 레드팀 완료 후만 가능.
설정 5분, 가치 무한대. 지금 바로 프로젝트에 promptfoo를 도입해 보세요.
Top comments (0)