커밋 한 모금
로컬 AI개발 도구

promptfoo, 설치 없이 받아서 직접 돌려 봤다

2026년 10월 25일 · 읽는 데 4분
한 줄 요약LLM 프롬프트 평가·보안 테스트 도구 promptfoo(별 26,383개, MIT)를 받아 봤습니다. 설치는 못 해서 코드를 읽고, 핵심만 다시 만들어 돌려 본 기록입니다.

무엇인가

promptfoo는 LLM(대형 언어 모델) 기반 앱의 품질을 테스트하는 오픈소스 도구입니다. 명령줄(CLI) 도구이자 코드에서 가져다 쓰는 라이브러리이기도 합니다.

README 기준으로 하는 일은 세 가지입니다. 첫째, 프롬프트를 자동으로 평가해 통과율을 냅니다. 둘째, GPT·Claude 등 여러 모델을 나란히 비교합니다. 셋째, 악용 시도를 자동으로 만들어 보안 취약점을 스캔합니다(레드팀, 즉 공격자처럼 테스트하는 것).

라이선스는 MIT, 언어는 TypeScript이고, 별 26,383개·포크 2,569개입니다(2026-10-25 07:25 KST 기준). 2023년 4월에 생성돼 약 42개월 된 프로젝트이며, README에는 "OpenAI에 합류했다"는 공지가 있습니다.

직접 해 본 것

GitHub 저장소(약 245MB)를 받아 코드를 읽었습니다. 인터넷은 연결되지 않은 상태였습니다.

설치는 하지 못했습니다. 의존성 폴더가 없었고, npm을 실행하니 npm error code EPERM ... request to https://registry.npmjs.org/tsc failed가 떠서 패키지 서버에 연결되지 않는다는 것을 확인했습니다.

대신 핵심만 다시 만들어 실행했습니다. 저장소 src/의 동작인 변수를 프롬프트에 대입하기, 파일에서 프롬프트 읽기, 결과에 특정 내용이 포함됐는지 판정하기를 패키지 의존성 없이 node 파일로 재현해 돌렸습니다.

$ node trial-experiment.mjs trial-config-echo.json
{"total":2,"pass":1,"fail":1,"passRate":0.5}
wrote .../trial-results.json
EXIT_ECHO=1
$ node trial-experiment.mjs trial-config-jsonl.json
{"total":2,"pass":2,"fail":0,"passRate":1}
wrote .../trial-results.json
EXIT_JSONL=0

첫 실험은 번역 프롬프트 두 건입니다. 판정 기준 하나를 일부러 반대로 걸어, 통과 1건·실패 1건(통과율 50%, 종료 코드 1)이 나오게 했습니다. 두 번째 실험은 저장소 examples/에 있는 사례(프랑스어·스페인어 2건)를 설정 그대로 돌려 2/2 통과(종료 코드 0)를 확인했습니다. 확인한 범위는 프롬프트 변수 대입, 파일 로딩, 통과/실패 판정, 결과 형식까지입니다.

못 한 것도 있습니다. 실물 실행(설치 안 됨), 실제 모델 호출(로컬 모델 서버가 꺼져 있었음), 웹 화면, 실제 레드팀 엔진입니다. 이번 실험은 평가 코어를 확인한 것이지, 완성된 도구를 검증한 것이 아닙니다.

이 맥에서 쓸 수 있나

시험 환경은 Mac Studio, Apple M5 Max, 메모리 48GB, macOS 27.0.1(빌드 26A434), 디스크 여유 약 200GB입니다. 로컬 AI 모델 서버 Splash 1.2.0이 메모리를 약 34GB 상시 사용합니다.

promptfoo의 요구 사양은 확인한 바로 Node ≥22.22.0입니다. 이 맥의 Node 버전은 읽지 않았습니다. 모델 서버가 떠 있지 않아 실제 모델 호출 실험은 못 했고, 설치(npm, 네트워크)도 되지 않았습니다. 48GB 중 34GB를 모델이 계속 쓰고 있어서, 실제 레드팀 테스트를 돌리기에는 이 맥이 비좁을 수 있습니다.

이런 분께

맞아요 — LLM 앱을 만들면서 프롬프트 품질을 수치로 잡고 싶은 분, 모델을 바꿀 때 회귀 테스트가 필요한 팀, 레드팀(적대적 보안 테스트)을 CI(연속 통합)에 넣고 싶은 분.

안 맞아요 — 설치하고 바로 쓰려는 분(이번 시험은 설치 없이 했고, 실물 사용은 확인하지 못했습니다), 로컬 모델 없이 클라우드 API만 쓰려는 분(OpenAI 합류 이후 클라우드 기능이 어떻게 됐는지는 읽지 못했습니다).

주의할 점

설치에는 네트워크가 필요합니다(npm install, 패키지 245MB). 이번에는 인터넷이 없어 여기서 멈췄습니다.

OpenAI 합류 이후의 거버넌스는 확인하지 못했습니다. README에 링크된 공지도 인터넷이 막혀 읽지 못했습니다. MIT 코어에 클라우드 정책 변화가 어떻게 반영될지는 확인 전입니다.

레드팀 기능은 생성형 모델을 실제로 호출하므로 비용과 시간이 듭니다. 또 저장소 문서(src/prompts/AGENTS.md)는 템플릿 주입 위험을 명시합니다. 사용자 입력 같은 외부 데이터를 템플릿 소스로 흘리면 안 된다는 뜻이고, 이 도구로 자기 앱을 만들 때도 같은 규칙이 적용됩니다.

출처

  • GitHub: https://github.com/promptfoo/promptfoo
  • 확인 시각: 2026-10-25 07:25 KST
  • 별 26,383개, 포크 2,569개, MIT, TypeScript, 2023-04-28 생성

설치·실행 결과는 글쓴이 환경(맥, 인터넷 차단 시험 등) 기준이며 여러분 환경에서는 다를 수 있습니다.