크래프트 Jul 16, 2026 at 17:457북마크에 추가

Nik Malykhin은 현대 하드웨어에서 Java 1.5 기반을 실행해야 했습니다. 그의 LLM의 첫 번째 답변은 그럴듯했지만 저장소에 맞지 않았습니다. 해결책: 그의 말을 무조건 믿지 말고, 증거에 기반하도록 강제하는 것입니다.
레거시 코드에 LLM을 적용하면 듣기에는 그럴듯한 답변이 나오지만 실제 프로젝트와 맞지 않을 수 있습니다. 효과적인 방법은 LLM이 기억이 아닌 코드, 테스트, 산출물 등 증거를 기반으로 작업하도록 강제하는 것입니다.
Nik Malykhin은 2026년 7월 16일 martinfowler.com에 Java 1.5에서 최신 환경으로의 레거시 현대화 경험을 공유했습니다. 문제는 현대 분석 및 리팩토링 도구가 Java 1.5를 지원하지 않는다는 점입니다. 그가 처음 시도한 방법은 LLM에게 직접 수정 사항을 요청하는 것이었는데, 그 결과는 "plausible"한 답변이었지만 "코드베이스에서 통하지 않는" 코드였습니다. 즉, Java 1.5로 작성된 좋은 코드처럼 보였지만 실제 저장소와는 맞지 않았습니다.
핵심은 방법론의 전환입니다. Malykhin은 LLM을 작성자가 아닌 분석가 및 검증자로 활용했습니다. 각 단계는 저장소에 기반을 두고 진행되었습니다: 기존 코드 철저한 분석, 테스트 및 실행 traces를 통한 가설 검증, 코드 자체로 증명할 수 있는 것보다 빠르게 진행하지 않기 등입니다. 이 글의 메시지는 단순합니다: 레거시 현대화에 LLM을 적용한다고 작업 속도가 빨라지는 것이 아니라, 고고학자처럼 증거 기반으로 천천히 진행하되, 증명 과정에서의 오류를 줄일 수 있다는 것입니다.
이 패턴은 현대 에이전트 도구에서 evidence-first prompting, grounded reasoning, retrieval-first 등으로 불립니다. 핵심 규칙은 동일합니다: LLM의 모든 주장은 저장소의 산출물(파일, 줄, 테스트 등)에 근거해야 한다는 것입니다. 이 제약이 없다면 레거시 코드에서 LLM이 내놓는 가장 치명적인 "허위 양성"이 발생합니다: 대상 버전보다 późniejszym APIs, 존재하지 않는 메서드, 잘못된 import 등이 그 예입니다.
레거시 코드를 다루는 팀에게 LLM "코파일럿"은 작성 도구가 아니라 검색 도구입니다. 진정한 생산성은 LLM이 읽고 분석하도록 하는 데서 오며, LLM이 추측하도록 내버려 두는 데서 오지 않습니다. CTO를 위한 교훈: AI 기반 현대화 프로젝트의 올바른 측정 지표는 "생성된 줄 수"가 아니라 "코드 자체에 의해 입증된 잘못된 가설"입니다. 두 지표의 차이는 레거시 프로젝트가 성공적으로 완료되는지 아니면 다시 부채로 남는지의 차이입니다.
인공지능이 작성하고 사람의 편집 감독하에 검수한 기사입니다.
Interesting approach. Does this method also work for other legacy systems, or is it specific to Java 1.5?
Est-ce qu'on peut vérifier les suggestions du LLM avant de les implémenter, surtout sur un vieux système comme Java 1.5 ?
On pourrait tester les propositions du LLM dans un environnement isolé avant de les appliquer au système principal ?
Est-ce que ça marche aussi sur des gros projets Java 1.5 ?
Est-ce que ça marche aussi sur des gros projets Java 1.5 ? Les LLM ont du mal avec le code ancien très imbriqué, leurs suggestions sont moins fiables.
Est-ce que ça marcherait aussi pour d'autres vieux systèmes ?
Intéressant, mais comment ça se passe avec d'autres langages anciens ?
Les LLMs pourraient-ils vraiment sauver nos vieux systèmes ?
Harness Ops : post-mortems et bench des agents en prod