DEV Community

정상록
정상록

Posted on

promptfoo: OpenAI가 인수한 LLM 평가·레드팀 도구 완벽 가이드

TL;DR

promptfoo는 LLM 앱의 성능 평가(eval)와 보안 레드팀을 하나의 CLI로 통합한 오픈소스 도구입니다. 2026년 3월 OpenAI에 인수됐고, MIT 라이선스를 유지하며 100% 로컬 실행 가능해요. 프롬프트 변경할 때마다 자동으로 품질을 검증하고, 50가지 이상의 공격 패턴으로 취약점을 스캔할 수 있습니다.

문제: LLM 앱 개발의 "감" 기반 테스트

LLM 애플리케이션을 개발할 때 가장 흔한 실수가 뭘까요? "잘 되는 것 같은데?"로 테스트를 끝내는 거예요.

프롬프트를 고쳐봤어요. 결과가 좋아 보입니다.
모델을 바꿔봤어요. 아까보다 빨라진 것 같습니다.
새로운 기능을 추가했어요. 특별히 문제는 없는 것 같습니다.

그런데 이게 정말 나아진 건가요? 이전보다 안 좋아진 케이스는 없나요? 보안 취약점은 없나요?

계획적인 테스트 없이 프롬프트를 계속 수정하면, 어느 순간 몰래 품질이 떨어져 있는데도 모를 수 있어요. 마치 물개구리처럼요. (점점 따뜻해지는 물에 삶아지다가 결국...😅)

해결: promptfoo로 자동화된 품질 검증

promptfoo는 이 "감 기반 테스트"를 "시스템 기반 테스트"로 바꿔줍니다.

# 프롬프트 바꿨어요
npx promptfoo@latest eval

# 1초 만에 결과를 전 모델에서 비교하고,
# "이전보다 2% 정확도 떨어졌습니다"라고 알려줍니다.
Enter fullscreen mode Exit fullscreen mode

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초 이내
Enter fullscreen mode Exit fullscreen mode

지원하는 검증 유형(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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

기본 평가 설정

# 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"
Enter fullscreen mode Exit fullscreen mode

평가 실행

# 평가 실행
npx promptfoo@latest eval

# 결과 웹 UI 확인
npx promptfoo@latest view
Enter fullscreen mode Exit fullscreen mode

브라우저에서 각 모델별 결과를 비교하는 인터랙티브 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 }}
Enter fullscreen mode Exit fullscreen mode

Q. DeepEval과 뭐가 다른가요?

DeepEval은 Python 네이티브 평가 도구이고, promptfoo는 평가 + 보안 레드팀을 하나의 도구로 통합합니다. 보안 테스트가 필요하다면 promptfoo가 유리해요.

마무리

LLM 앱 개발에서 가장 큰 위험은 "모르고 배포"하는 거예요. 성능이 조용히 떨어지든, 보안 취약점이 숨어 있든, 사용자에게 배포되기 전까진 모를 수 있거든요.

promptfoo는 이 불확실성을 제거해줍니다.

  • 프롬프트 변경? 자동 검증.
  • 모델 교체? 즉시 비교.
  • 배포? 보안 레드팀 완료 후만 가능.

설정 5분, 가치 무한대. 지금 바로 프로젝트에 promptfoo를 도입해 보세요.


참고 자료

Top comments (0)