# 새 모델이 나왔을 때 30분 만에 확인하는 법

자비스스튜디오 · 2026-09-04 · 회원가입도 댓글도 필요 없습니다. 그대로 쓰세요.

---

## 0. 왜 이걸 하나

벤치마크 1위가 **내 일의 1위는 아닙니다.** 저희 실측에서 제일 비싼 모델이 제일 느렸고,
답은 그 아래 등급과 똑같았습니다. 그런데 제일 싼 모델은 7편 중 2편을 틀렸어요.

어느 쪽인지는 **재봐야 압니다.** 재는 데 30분이면 됩니다.

---

## 1. 내 코드에 모델 이름이 몇 번 박혀 있나

먼저 이것부터. 모델이 사흘마다 바뀌는데 이름이 여러 군데 박혀 있으면,
값이 내려가도 그 이득을 못 가져갑니다.

```bash
grep -rEo "gpt-[0-9]|claude-[a-z]+|gemini-[0-9.]+" . \
  | sort | uniq -c | sort -rn
```

저희 결과 (2026-09-04):

```
     76 gemini-2.0-flash
     18 gemini-2.0-flash-001
     15 gemini-2.5-flash
      6 gemini-embedding-001
      5 gemini-3-pro-preview

모델 이름이 박힌 파일: 20개 · 중앙 설정: 없음
```

20군데가 넘으면 저희와 같은 부채입니다. 갈아타기 전에 **갈아탈 수 있게** 먼저 만드세요.

---

## 2. 정답 세트 만들기 — 이게 전부입니다

싼 모델이 위험한 게 아니라 **정답 없이 쓰는 게** 위험합니다.

정답 세트의 조건은 셋입니다.

1. **내가 매주 실제로 하는 일**일 것 (남의 벤치마크 말고)
2. **정답을 기계로 뽑을 수 있을** 것 (스크립트로 세지는 것)
3. **10분 안에 끝날** 것 (길면 안 하게 됩니다)

저희가 쓴 과제:

```
지난 글 7편의 파일 14개를 읽고 표로 만들어라.
각 글에 대해 — 카드가 몇 장인지 / 복붙용 카드가 있는지 / 댓글 키워드가 뭔지.
```

정답은 미리 스크립트로 뽑아 둡니다.

```bash
# 예: 카드 장수 세기 (본인 구조에 맞게 바꾸세요)
for d in blog/*/cardnews; do
  echo "$(basename $(dirname $d))  $(ls $d/*-png/*.png 2>/dev/null | wc -l)장"
done
```

**이 파일이 있어야 대조가 됩니다.** 없으면 모델이 그럴듯하게 틀려도 못 잡습니다.
저희가 하이쿠의 오답을 잡은 게 정확히 이 방법이었어요 — 카드 10장을 11장이라고 했는데,
표는 멀쩡해 보였습니다.

---

## 3. 같은 과제를 모델만 바꿔 돌리기

같은 문장을 쓰고 모델만 바꿉니다. 문장을 바꾸면 비교가 안 됩니다.

```bash
# 클로드 코드 기준
claude -p "위 과제문" --model haiku
claude -p "위 과제문" --model sonnet
claude -p "위 과제문" --model opus
```

잴 것은 셋입니다.

| 잴 것 | 어떻게 |
|---|---|
| 걸린 시간 | 초 단위. 체감 말고 실제 값 |
| 든 값 | 세션 사용량 화면에서 |
| 정확도 | **정답 파일과 대조** — 눈으로 보지 않는다 |

---

## 4. 저희 결과 (2026-09-04 실측)

과제: 파일 14개 읽고 표 만들기 · 정답 대조

| 모델 | 걸린 시간 | 든 값 | 정확도 |
|---|---|---|---|
| 하이쿠 4.5 | 96초 | $0.33 | **7편 중 2편 틀림** |
| 소넷 5 | 65초 | $0.78 | 다 맞음 |
| 오퍼스 5 | 60초 | $1.39 | 다 맞음 |
| 페이블 5.1 | 113초 | $2.99 | 다 맞음 |

제일 비싼 것이 제일 느렸고, 답은 소넷과 같았습니다.

왜 느렸는지도 봤습니다 — 오퍼스는 파일을 **6번에 묶어** 읽었는데 페이블은 **21번에 나눠** 읽었습니다.
생각 깊이를 낮춰도 8% 빨라지는 정도였어요. **병목이 지능이 아니라 왕복이었습니다.**

---

## 5. 공식 발표 숫자 — 같은 자로 잰 칸만

시험 이름과 **버전이 정확히 같은 칸만** 뽑았습니다.

| 무슨 시험인가 | GPT-6 Astra | 클로드 페이블 5.1 |
|---|---|---|
| 터미널 코딩 (Terminal-Bench 4.0) | **57.9%** | 55.8% |
| 과학 연구 (Terminal-Bench Science 0.1) | **64.6%** | 52.6% |
| 전문 지식 (GPQA Diamond) | **96.0%** | 93.7% |
| 도구 쓰는 추론 (Humanity's Last Exam) | 57.2% | **65.0%** |

- 마지막 줄은 **OpenAI 발표문 안에** 있습니다. 자기 자료에 남이 이긴 숫자를 지우지 않았어요.
- 터미널 코딩 1위는 둘 다 아닙니다 — 같은 시험에서 **클로드 미토스 5.1이 60.9%** 로 제일 높습니다.

⚠ **컴퓨터 조작(OSWorld 2.0)은 비교하면 안 됩니다.**
OpenAI 는 지연시간을 흉내 낸 조건에서 72.6%, 앤트로픽은 채점 기준을 나눠 77.9%(partial)·41.7%(strict) 로 발표했습니다.
이름은 같은데 잰 방식이 다릅니다.

출처 — [OpenAI 발표문](https://openai.com/index/gpt-6-astra/) · [앤트로픽 발표문](https://www.anthropic.com/claude-fable-and-mythos-5-1)

---

## 6. 검사기는 직접 만드셔야 합니다 — 만드는 법

저희 검사 11종은 **저희가 반복해서 틀린 것**에서 나왔습니다. 여러분이 틀리는 지점은 다릅니다.

**① 매번 눈으로 확인하는 것을 적는다** — 새로 상상하지 않습니다. 한 번 틀려서 다시 올렸던 그것.
저희는 해시태그 `#` 이 빠진 채 5편 35개가 나간 뒤에 검사기를 만들었습니다.

**② 기계가 셀 수 있는 문장으로 바꾼다**

| 못 세는 것 (사람 몫) | 세는 것 (검사기 몫) |
|---|---|
| 제목이 끌리나 | 제목이 32자를 넘나 |
| 이미지가 어울리나 | 선언한 비율이 실제와 1% 넘게 다른가 |
| 글이 설득되나 | 구독 링크가 본문과 하단에 다 있나 |

못 세는 건 사람 몫으로 남깁니다. 여기에 LLM 을 넣고 싶어지는데 **그게 값이 새는 자리**입니다.
판단이 필요하면 사람이, 정답이 정해져 있으면 스크립트가. LLM 은 그 사이의 좁은 자리입니다.

**③ 종료코드로 말하게 한다**

```js
// check-mine.mjs — 검사기 한 개의 최소 뼈대
import fs from "node:fs";
const dir = process.argv[2];
const errors = [], warns = [];

// ① 사실을 잰다 — 눈이 아니라 파일에서
const html = fs.readFileSync(`${dir}/index.html`, "utf8");
const imgs = [...html.matchAll(/<img[^>]*>/g)].map((m) => m[0]);

// ② 규칙을 건다
for (const tag of imgs) {
  if (!/width=/.test(tag) || !/height=/.test(tag))
    errors.push(`크기 없는 img: ${tag.slice(0, 60)}`);
}
if (!/newsletter/.test(html)) warns.push("구독 링크가 없습니다");

// ③ 종료코드로 말한다
errors.forEach((e) => console.log("  [오류]", e));
warns.forEach((w) => console.log("  [경고]", w));
process.exit(errors.length ? 1 : 0);
```

⚠ **경고와 오류를 나눕니다.** 전부 오류로 만들면 통과하는 글이 없어서 결국 검사기를 끄게 됩니다.
저희도 스레드 검사를 엄격하게 걸었더니 64편 중 4편만 통과해서, 오류만 막고 나머지는 경고로 내렸습니다.

**④ 게이트에 물린다 — 이게 없으면 앞의 셋이 무효입니다**

```bash
node check-mine.mjs ./post || exit 1   # 하나라도 오류면 발행이 멈춘다
```

⚠ **문서에만 있는 규칙은 반드시 어긋납니다.** 저희는 "대가를 안 받는 글엔 공정위 고지를 넣지 않는다"를
문서에 적어두고 있었는데, 세어보니 제휴 링크가 하나도 없는 글 2편과 캡션 1건에 고지가 붙어 있었습니다.
검사기를 만들어 돌리기 전까지 아무도 몰랐습니다. 규칙을 지키는 건 의지가 아니라 **종료코드 1** 입니다.

---

## 7. 오늘 이것만

- **정답 세트를 먼저** 만든다 — 없으면 싼 모델도 비싼 모델도 못 믿는다
- **왕복을 줄인다** — 등급 올리기보다 먼저다
- **안 불러도 되는 일을 걷어낸다** — 크기 검사는 ffprobe 가 세면 된다
- 새 모델이 나오면 갈아타지 말고 **갈아탈 수 있는 구조**를 만든다
- 검사기는 남의 것을 받지 말고 **내가 틀린 것**으로 만든다

---

전체 글: https://jarvisstudio-blog.web.app/blog/gpt6-fable-cost-race/
