2026년 07월 01일
새 모델이 나올 때마다 발표 자료에 벤치마크 점수가 딸려 온다. SWE-Bench, Terminal-Bench, OSWorld, Humanity’s Last Exam, GDPval… 대개는 “코딩 잘함”, “컴퓨터 잘 씀”, “추론 잘함” 정도로 읽고 넘기게 된다.
그런데 이 점수가 실제로 어떻게 계산되는지는 의외로 잘 안 들여다보게 된다. SWE-Bench 70%가 GitHub 이슈에 정답 코드를 맞힌 비율인지, GUI 평가라면 실제로 마우스를 움직이는지, 터미널은 진짜로 쓰는지 — 확인해보기 전엔 그냥 넘어갔던 것들이다.
다섯 개를 논문이랑 실제 harness 코드까지 확인해보니, 문제만 다른 게 아니라 평가 방식 자체가 딴판이었다. 어떤 건 Docker에서 저장소를 통째로 돌리고, 어떤 건 가상머신을 부팅해서 데스크톱을 조작하고, 어떤 건 사람이 붙어서 결과물을 채점한다. 같은 “벤치마크"인데 안을 열어보면 거의 다른 물건이다. 근거가 되는 논문·저장소는 각 벤치마크 이름에 링크로 걸어뒀다.
2026년 04월 08일
list generator 기반 Argo CD ApplicationSet을 파일 단위 Application(App-of-Apps)으로 안전하게 전환하는 일반 절차.
언제?
- ApplicationSet 템플릿으로 생성되던 자식 Application들을 개별 git 파일로 관리하고 싶을 때
- StatefulSet/PVC 등 데이터 보존이 필요한 워크로드를 무중단으로 옮겨야 할 때
원칙
StatefulSet/PVC를 쓰는 차트는 잘못 전환하면 cascade prune으로 볼륨까지 삭제될 수 있다. 아래 3가지를 반드시 지킬 것.
- spec 일치: 새 Application의 name, namespace, source.path, helm.releaseName, destination, valueFiles가 기존 ApplicationSet 렌더 결과와 동일해야 Argo CD가 기존 helm release를 adopt (diff 0)
- orphan 선행: ApplicationSet이 element 삭제 시 자식 Application을 cascade 삭제하지 못하도록 ownerReferences를 먼저 제거
- 원자적 커밋: ApplicationSet elements 제거 + 새 Application yaml 추가를 같은 커밋으로 push (분리하면 reconcile 레이스 발생)
템플릿
원본 ApplicationSet template.spec을 그대로 복사해서 kind: ApplicationSet → kind: Application으로 바꾸고 제너레이터 변수({{.app}}, {{.namespace}} 등)를 실제 값으로 치환한다.