REA(Reverse Engineer Anything)는 실행 파일이나 배포된 앱을 살펴보고, 특정 기능이 어떻게 동작하는지 근거를 따라가도록 코딩 에이전트를 돕는 오픈소스 도구입니다. 2026년 11월 8일 확인 기준 GitHub 별은 약 44만 개입니다. 처음 살펴볼 곳은 공식 GitHub 저장소 morluto/rea입니다.
Adobe 이야기는 어디서 나왔나
2026년 10월, Brandon Thomas의 ArtCraft 팀이 Photoshop과 비슷한 작업을 할 수 있는 이미지 편집기 PhotoCraft를 공개했습니다. PhotoCraft 팀은 공개 사양과 관찰한 동작을 바탕으로 Rust에서 다시 구현했다고 설명합니다. REA도 비슷한 시기에 주목받았습니다. 두 소식이 함께 퍼졌지만, 공개 자료에서는 ArtCraft 팀이 PhotoCraft를 만드는 데 REA를 사용했다는 근거를 확인할 수 없습니다. 10월 12일 ArtCraft 저장소에 올라온 글도 REA 사용 여부를 묻는 제안입니다. PhotoCraft 저장소 · ArtCraft의 REA 관련 이슈 · ABC 보도
Table 1 · 두 프로젝트가 공개한 것
| 프로젝트 | 공개한 것 |
|---|---|
| REA | 기존 프로그램에서 기능의 동작과 근거를 찾아가는 분석 도구 |
| PhotoCraft | Photoshop과 비슷한 편집 작업을 제공하는 별도의 Rust 앱 |
에이전트와 REA가 맡는 일
에이전트에게 조사할 기능을 하나 줍니다. REA는 MCP라는 연결 규격을 통해 그 에이전트에 분석 도구를 제공합니다. 예를 들어 Electron 앱에서는 화면에서 보낸 메시지가 어떤 함수로 이어지는지 찾을 수 있습니다. 네이티브 실행 파일은 대상에 따라 Ghidra 같은 분석 엔진이 필요합니다. 결과를 읽을 때는 에이전트의 설명과 근거가 된 파일·줄 번호, 그리고 관찰하지 못한 부분을 함께 봅니다. REA CLI와 근거 기록
공식 예제로 내보내기 버튼 추적하기
Node.js와 npm이 준비된 환경에서 아래 명령을 실행합니다. 설치 화면에서 사용할 에이전트와 설정 변경 내용을 확인하고 적용한 뒤 에이전트를 다시 시작합니다. 지원되는 Node.js 버전은 설치 문서에서 확인할 수 있습니다.
npx rea-agents@latest setupREA의 공식 Notes 예제를 내려받아 풀고, 폴더 경로를 에이전트에 줍니다. 이 예제는 Electron을 실행하지 않고도 코드를 읽어 조사할 수 있습니다.
이 Notes 예제에서 내보내기 버튼을 누르면 어떤 일이 일어나나요?
버튼에서 파일을 쓰는 함수까지 이어지는 경로와 파일·줄 번호를 보여 주세요.
CSV가 저장되는 위치와 열 이름을 찾아 주세요.%% Notes의 내보내기 버튼에서 CSV가 저장되기까지
flowchart TD
A["내보내기 버튼 · renderer.js"]
A --> B["notes:export 메시지 · preload.js"]
B --> C["CSV를 만들어 파일에 쓰기 · main.js"]
C --> D["다운로드 폴더의 notes.csv"]예제 코드에서 열 이름은 id와 title입니다. 내려받은 예제의 CSV 변환 함수에 제목 Hello, "REA"를 넣어 직접 실행해 보니, 제목 전체가 한 필드로 묶이고 내부 따옴표가 두 번 쓰였습니다.
id,title
1,"Hello, ""REA"""이 확인으로 알 수 있는 건 변환 함수의 출력입니다. 파일 쓰기에 실패했을 때 화면에 무슨 메시지가 나오는지는 별도 질문으로 추적할 수 있습니다. 소스가 있는 작은 예제나 조사 권한이 있는 자체 앱에서 기능 하나씩 확인하면, 에이전트의 설명을 코드와 대조하기 쉽습니다.