배경 및 맥락
기업 소프트웨어에서 Java framework migration은 AI coding agent가 실제로 돈을 아낄 수 있는 대표적인 영역이다. 하지만 Spring, Jakarta EE, Quarkus 같은 framework 사이를 옮기는 작업은 annotation 치환만으로 끝나지 않는다. build configuration, dependency injection, persistence configuration, query behavior, runtime descriptor, container startup까지 함께 맞아야 한다.
ScarfBench는 이런 현실적인 migration 작업을 benchmark로 만들었다는 점에서 의미가 있다. 기존 SWE benchmark가 bug fixing과 feature implementation에 집중했다면, ScarfBench는 behavior-preserving modernization이라는 더 운영적인 문제를 다룬다.
핵심 내용
ScarfBench는 Self-Contained Application Refactoring Benchmark의 약자로, enterprise Java framework migration task를 평가한다. 범위는 Spring, Jakarta EE, Quarkus 세 ecosystem이며 34개 applications, 102개 framework implementations, 204개 migration tasks, 약 151K lines of code, 약 2,000개 source/test files, 1,331개 expert-written tests를 포함한다.
평가 기준도 reference code와의 similarity가 아니라 executable validation이다. agent가 migration한 애플리케이션은 build에 성공하고, deploy가 가능하며, behavioral validation을 통과해야 한다. Hugging Face 글은 가장 강한 current agents도 behavioral success에서 낮은 성과를 보였고, arXiv 보고서는 204개 task 중 완전한 behavioral equivalence를 달성한 task가 단 1개였다고 설명한다.
경쟁 구도 / 비교
HumanEval, SWE-bench, repository issue fixing benchmark는 coding agent의 유용성을 넓히는 데 기여했지만, enterprise modernization의 실패 모드를 충분히 포착하지 못한다. Java migration은 컴파일 성공만으로는 부족하고, 런타임 시작과 외부 인터페이스 behavior까지 검증해야 하기 때문이다.
FreshBrew, JMigBench, Migration-Bench 같은 code migration benchmark도 존재하지만, ScarfBench는 cross-framework migration과 containerized deployment, behavior oracle을 강조한다. 이는 agent 성능 비교를 모델 점수 경쟁에서 enterprise delivery risk 측정으로 이동시킨다.
의미
AI agent를 레거시 현대화에 쓰려는 조직은 migration을 거대한 one-shot 작업으로 보면 실패 확률이 높다. ScarfBench가 보여주는 핵심은 agent가 코드를 그럴듯하게 바꾸는 능력과 실제 서비스 behavior를 보존하는 능력이 다르다는 점이다.
실무적으로는 framework migration을 작은 bounded slice로 나누고, 각 slice에 build, deploy, smoke, behavioral regression test를 붙여야 한다. 또한 agent가 “완료”라고 보고한 결과를 신뢰하지 말고 독립적인 executable oracle로 검증해야 하며, 실패 trace를 build, config, persistence, runtime, behavior 계층으로 분류해 다음 자동화 투자를 결정해야 한다.