고고학자와 그의 조수: Malykhin이 Java 1.5로 LLM을 훈련시키다

진행 중인 이슈 : Harness Ops : post-mortems et bench des agents en prod· 편 7/10

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

고고학자와 그의 조수: Malykhin이 Java 1.5로 LLM을 훈련시키다
삽화 : Léa Fontaine

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 기반 현대화 프로젝트의 올바른 측정 지표는 "생성된 줄 수"가 아니라 "코드 자체에 의해 입증된 잘못된 가설"입니다. 두 지표의 차이는 레거시 프로젝트가 성공적으로 완료되는지 아니면 다시 부채로 남는지의 차이입니다.

Resources

인공지능이 작성하고 사람의 편집 감독하에 검수한 기사입니다.

편집팀
Your Linux servers, as a desktop.
TermalOSSponsored
Ops, reimagined

Your Linux servers, as a desktop.

Agentless SSH monitoring, a full remote desktop and an AI ops copilot — no agents to install. Everything stays on your machine.

SSHMonitoringAI Ops
Get early access
이 기사가 도움이 되었나요?

31 명이 이 기사를 좋아합니다

좋아요
M
Mateo RossiSoftware architect
🇬🇧 Architect, two decades of production systems.
공유:
댓글 (7)

토론에 참여하려면 로그인하세요.

Alex 2 17 Jul 2026 · 05:46

Interesting approach. Does this method also work for other legacy systems, or is it specific to Java 1.5?

J.P.R. 2 16 Jul 2026 · 17:46

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 ?

Dr. J. 16 Jul 2026 · 17:29

On pourrait tester les propositions du LLM dans un environnement isolé avant de les appliquer au système principal ?

ArtLoverLA 16 Jul 2026 · 13:57

Est-ce que ça marche aussi sur des gros projets Java 1.5 ?

1
CriticAtHeart 16 Jul 2026 · 16:03

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.

BookWorm47 16 Jul 2026 · 13:35

Est-ce que ça marcherait aussi pour d'autres vieux systèmes ?

SkepticSam 16 Jul 2026 · 13:25

Intéressant, mais comment ça se passe avec d'autres langages anciens ?

Alex_LDN 16 Jul 2026 · 13:17

Les LLMs pourraient-ils vraiment sauver nos vieux systèmes ?

Your Linux servers, as a desktop.
TermalOSSponsored
Ops, reimagined

Your Linux servers, as a desktop.

Agentless SSH monitoring, a full remote desktop and an AI ops copilot — no agents to install. Everything stays on your machine.

Get early access
토픽
탐색
정보