★★ 오래된 코드도 AI 에이전트가 이해할 수 있게: Reversa가 하는 일

제법 쓸만해보이네요. 레거시에 접근할 수 있다면...

https://github.com/sandeco/reversa

쉬운 설명

Reversa는 너무 오래되어 아무도 손대기 두려워하는 낡은 프로그램(레거시 코드)을 AI가 이해할 수 있는 '설명서'로 바꿔주는 도구예요. 예를 들어 오래된 은행 시스템처럼, 왜 이렇게 만들었는지 기록이 전혀 남아 있지 않은 프로그램이 있다고 해볼게요. 사람이라면 복잡한 코드를 일일이 뜯어보며 짐작해야 하지만, Reversa는 여러 AI 에이전트(스스로 일하는 작은 AI 팀원들)를 활용해 코드를 꼼꼼히 분석합니다. 그리고 코드 속에 숨어 있던 업무 규칙과 원래의 설계 의도를 찾아내, 다른 AI 코딩 도구가 참고할 수 있는 '운영 매뉴얼' 형태로 깔끔하게 정리해주죠. 덕분에 새로운 AI 에이전트가 낡은 시스템을 수정할 때도 무엇을 건드리면 안 되는지 미리 파악할 수 있답니다.

요약

요즘 AI 코딩 에이전트는 새로운 프로젝트를 뚝딱 만들어내는 데 꽤 능숙합니다. 하지만 10년 넘게 방치된 낡은 시스템을 고쳐야 하는 상황이라면 이야기가 달라지죠. 새 프로젝트는 사람이 동작 방식을 정리한 '명세서(설계 문서)'를 건네주면 AI가 그대로 작업할 수 있지만, 레거시 시스템에는 애초에 이런 명세서가 남아 있지 않기 때문이에요. 중요한 업무 규칙들은 복잡한 조건문 속에 묻혀 있고, 왜 그렇게 설계했는지에 대한 기록도 사라진 경우가 대부분입니다. 그래서 무턱대고 AI 에이전트에게 수정을 맡겼다가는 기존 기능을 망가뜨리는 위험한 결과를 낳을 수 있죠.

Reversa는 바로 이 작업 순서를 뒤집어 문제를 해결합니다. 사람이 일일이 명세서를 작성하는 대신, AI 에이전트 팀이 기존 코드를 먼저 꼼꼼하게 분석하는 방식이에요. 이 과정에서 업무 규칙과 처리 흐름, 모듈 간의 연결 관계, 그리고 역으로 추론한 설계 의도 등을 추출해 다른 코딩 에이전트가 곧바로 활용할 수 있는 '운영 계약(operational contract)' 형태의 명세서로 만들어줍니다. 연구진은 실제로 COBOL로 작성된 오래된 ATM 시스템을 Go 언어로 전환하는 사례 연구를 진행했는데요. 이를 통해 517개의 주장(claim), 10개의 미확인 공백(gap), 53개의 검증 시나리오를 도출했고, 전체 11개 작업 중 9개까지 재구성 계획을 마쳤습니다. 다만 최종 검증과 실제 시스템 전환 단계까지는 이번 연구에서 모두 끝내지 못했다고 솔직하게 짚고 있습니다.

활용 포인트

실무자라면 유지보수가 까다로운 사내 낡은 시스템(오래된 회계 프로그램, 재고 관리 시스템 등)에 Reversa를 도입해 코드 속에 숨어 있는 '핵심 업무 규칙'을 정리하는 데 활용해볼 수 있습니다. Node.js 18 이상 환경이라면 CLI로 손쉽게 설치할 수 있고, Claude Code, Codex, Cursor처럼 이미 사용 중인 AI 코딩 도구에서 슬래시(/) 명령어로 바로 실행할 수 있어 별도의 API 키를 발급받을 필요도 없어요. 개발팀이라면 리팩터링이나 언어 이전(예: COBOL에서 Go로 전환) 작업을 시작하기 전에 미리 명세서를 뽑아두어, 이후 코드 수정을 맡길 AI 에이전트가 훨씬 안전하게 작업하도록 도울 수 있습니다.

기획자나 개발을 공부하는 분들에게도 좋은 참고 자료가 됩니다. '레거시 시스템 현대화'가 왜 까다로운지, 그리고 여러 AI 에이전트가 협업해 문서를 만드는 과정이 어떻게 문제를 풀어내는지 한눈에 배울 수 있으니까요. 특히 사람이 읽는 단순 문서가 아니라 'AI가 실행에 참고하는 운영 계약'이라는 새로운 접근법은, 앞으로 소프트웨어 문서화가 나아갈 방향을 잘 보여줍니다. 또한 작업 진행 상황이 체크포인트마다 자동으로 저장되기 때문에, 도중에 연결이 끊기더라도 흐름을 잃지 않고 작업을 이어갈 수 있어 실무에서도 무척 편리합니다.

주의 사항

다만 Reversa는 아직 탐색적 사례 연구(exploratory case study) 단계에 있는 프로젝트예요. 논문 저자들 역시 이 방식이 기존 방식보다 압도적으로 뛰어나다고 단정하지는 않는다고 밝히고 있습니다. 앞서 소개한 ATM 시스템 사례에서도 최종 동등성 검증(parity validation)과 실제 전환(cutover)까지는 도달하지 못했기 때문에, Reversa가 만든 명세서가 무조건 완벽하다고 맹신하기는 어렵습니다.

또한 AI 에이전트도 실수를 할 수 있음을 제작진 스스로 인정하고 있습니다. 원본 파일을 직접 건드리지 않는 안전장치(.reversa/ 폴더에만 기록, git restore로 언제든 복구 가능)가 마련되어 있긴 하지만, 실무에 도입하기 전에는 반드시 철저한 백업과 사람이 직접 검토하는 절차를 거쳐야 합니다. 논문 표기 시점(2026년 5월 표기)이나 버전 정보 등은 계속 업데이트될 수 있으니, 최신 공식 자료를 꼼꼼히 확인해보시는 것을 추천합니다.

자체 검증

참고한 세 가지 원문 자료(디스커스 소개글, arXiv 논문 초록, GitHub 저장소 설명)를 교차 검증한 결과, 핵심 내용은 모두 일치하는 것을 확인했습니다. '레거시 시스템에는 명세가 부족해 AI 에이전트가 위험한 수정을 할 수 있다'는 문제의식과, '역할이 나뉜 AI 에이전트들이 파이프라인 형태로 협업해 코드를 분석하고 명세를 추출한다'는 해결 방식은 모든 자료에서 동일하게 나타납니다.

ATM 사례(COBOL→Go)의 구체적인 수치(517개 주장, 10개 공백, 53개 시나리오, 11개 중 9개 작업 완료) 역시 arXiv 초록의 내용을 정확히 반영했습니다. 또한 GitHub 저장소에 안내된 안전장치(기존 파일을 직접 수정·삭제하지 않고 .reversa/ 및 출력 폴더에만 기록)와 '별도 API 키 없이 기존 AI 에이전트를 그대로 활용한다'는 특징도 충실히 옮겨 담았습니다. 최종 검증과 시스템 전환이 미완료 상태라는 한계점 역시 원문 저자들의 설명을 바탕으로 과장 없이 담백하게 정리했습니다.

태그

#AI #코딩에이전트 #레거시코드 #소프트웨어개발 #리버스엔지니어링 #AI도구

원문

https://discuss.pytorch.kr/t/reversa-ai/11785

https://arxiv.org/abs/2605.18684

참고자료

arXiv 신규 논문 목록(cs.SE 분야)

Claude Code 공식 문서

← 새정보 전체 보기