AI가 앱을 뜯어본다고? REA는 어디까지 알아낼까 대표 이미지
입문 노트 · AI 에이전트와 리버스 엔지니어링

AI가 앱을 뜯어본다고? REA는 어디까지 알아낼까계산기 % 버튼 하나로 시작하는 리버스 엔지니어링 안내서

Windows 계산기를 표준 모드로 열어 보세요. 200 + 10 % =를 누르면 220이 나옵니다. 이번에는 200 × 10 % =를 눌러 보세요. 20이 나옵니다. 같은 % 버튼이 연산자에 따라 다른 값을 만듭니다. 이 버튼 안에 무슨 규칙이 숨어 있을까요? 2026년 10월, 이런 질문을 AI에게 대신 파헤치게 해 주는 도구가 깃허브를 뒤흔들었습니다. 이름부터 거창합니다. REA, Reverse Engineer Anything. “뭐든지 뜯어본다”는 뜻입니다.

리버스 엔지니어링확인 2026.10.15·읽는 시간 21분
바쁘다면 이 세 줄
  • REA는 AI 에이전트에게 “완성된 프로그램을 들여다보는 돋보기”를 쥐여 주는 오픈소스 도구입니다.
  • 앱을 통째로 베끼는 복사기는 아닙니다. “이 버튼은 왜 이렇게 동작하지?” 같은 작은 질문에 강합니다.
  • 할 수 있는 것과 해도 되는 것은 다릅니다. 첫 실험은 내가 만든 앱이나 허락받은 대상으로 하세요.
CONCEPT / HOW REA WORKS
완성된 앱소스 코드 없음 분석 기능 연결GhidraHopperIDAJS 내장 AI 에이전트이 % 버튼은 왜 다를까? 확인추정미확인근거 붙은 답 완성된 앱 분석 기능 연결GhidraHopperIDAJS 내장 이 % 버튼은 왜 다를까? 확인추정미확인
REA는 앱을 통째로 복사하는 마법이 아니라, AI 에이전트가 여러 분석 기능을 쓰도록 이어 주는 통로입니다. JavaScript·Electron 앱은 REA 내장 분석기로, 네이티브 실행 파일은 Ghidra·Hopper·IDA 같은 엔진과 연결해 살펴봅니다.
REA 설치 문서에 나온 에이전트 클라이언트 일부와 함께 쓰이는 도구

01계산기 % 버튼에 숨은 두 개의 규칙

다시 계산기로 돌아가 볼까요? 비밀은 단순합니다. 덧셈에서는 “200의 10%”, 즉 20을 구해서 더합니다. 곱셈에서는 10%를 0.1로 바꿔서 곱합니다.

버튼은 하나인데 규칙은 두 개입니다. 매일 쓰던 계산기가 갑자기 조금 수상해 보이지 않나요? 아래에서 연산자를 바꿔 가며 직접 눌러 보세요.

직접 눌러 보기: 같은 10%, 다른 결과

200 + 10%%를 누르면 10%가 20으로 바뀝니다220

더하기에서는 200의 10%인 20을 더합니다.

숫자는 아래 입력칸에서 바꾸고, 계산기에서는 연산자를 선택해 보세요. 숫자 키와 C, ±는 모양만 있는 장식입니다. Windows 계산기 표준 모드의 규칙을 흉내 낸 교육용 모형이며 REA를 실행하지 않습니다.

대부분은 “원래 그런가 보다” 하고 넘어갑니다. 그런데 개발자라면 궁금해집니다. 이 규칙은 프로그램 어디에 적혀 있을까? 내 앱에 똑같이 넣으려면 어떻게 해야 할까?

REA 공식 사이트가 첫 예제로 내세운 것이 바로 이 % 버튼입니다. 앱 전체가 아니라 버튼 하나. 이 선택에 REA를 이해하는 열쇠가 있습니다. 실제로 Microsoft가 공개한 계산기 소스를 보면 덧셈·뺄셈과 곱셈·나눗셈의 퍼센트 처리가 따로 나뉘어 있습니다.[1] ·[2]

260,870GitHub 스타Star History CSV, 2026.10.15
376만“Software is done.” 게시물 조회Matthew Berman, 10.15 확인
231,579npm 주간 다운로드rea-agents, 10.6~10.12
24종지원 에이전트 클라이언트공식 설치 문서 기준

02김치찌개의 비법을 맛으로 알아내기

단골 식당의 김치찌개가 너무 맛있다고 해 봅시다. 조리법은 안 알려 줍니다. 그래도 한 숟갈 떠 보면 꽤 많은 걸 알 수 있습니다. 돼지고기가 들었네. 묵은지구나. 끝맛에 멸치 육수가 느껴지는데?

프로그램도 비슷합니다. 사람이 읽고 쓰는 소스 코드는 조리법이고, 우리가 내려받아 실행하는 앱은 완성된 찌개입니다. 특히 Windows나 Mac에서 바로 실행되는 네이티브 프로그램은 조리법이 찌개가 되는 과정에서 요리사의 메모, 즉 사람이 붙인 이름과 설명이 대부분 사라집니다. 다만 JavaScript로 만든 앱처럼 읽을 수 있는 코드가 꽤 남는 경우도 있습니다.

완성된 찌개를 맛보며 조리법을 거꾸로 추리하는 일. 이것이 역공학(리버스 엔지니어링)입니다. 그렇게 알아낸 조리법은 원본을 닮은 재구성이지, 요리사의 수첩 그 자체는 아닙니다.

역공학은 새로운 기술이 아닙니다. 보안 연구자는 수상한 파일을 뜯어보고, 유지보수 담당자는 소스가 사라진 옛 프로그램을 고칩니다. 미국 국가안보국(NSA)이 공개한 Ghidra, Hopper, 상용 도구 IDA 같은 전문 도구도 오래전부터 있었습니다. 문제는 이 도구들을 다루려면 전문 지식이 많이 필요했다는 점입니다.[3]

REA가 바꾼 건 바로 그 부분입니다. 어려운 도구를 사람 대신 AI 에이전트가 다루게 했습니다. Claude Code나 Codex 같은 에이전트가 “무엇을 알아낼지” 정하면, REA가 실제 분석을 맡고 근거와 한계를 붙여 결과를 돌려줍니다.[4] 둘을 잇는 데는 AI 앱이 외부 도구를 쓰는 표준 규약인 MCP가 쓰입니다. USB 단자에 빗댈 수 있지만, 꽂기만 하면 끝나지는 않습니다. MCP를 지원하는 에이전트에 필요한 설정을 마쳐야 REA를 연결해 쓸 수 있습니다.

AGENT → MCP → TOOLS

질문하는 AI

Claude Code
Codex
Cursor
Gemini CLI
REA알맞은 분석 기능을 골라
근거와 한계를 붙여 돌려줌

실제로 살펴보는 도구

REA 내장 JS·Electron 분석
Ghidra LogoGhidra
HHopper
IIDA
AI가 요청하면 REA가 알맞은 분석 기능을 고릅니다. JavaScript·Electron 정적 분석에는 별도의 네이티브 분석 엔진이 필요 없지만, 네이티브 실행 파일은 Ghidra·Hopper·IDA 같은 엔진이 필요할 수 있습니다.

REA가 늘 남의 도구만 빌려 쓰는 것은 아닙니다. JavaScript나 Electron으로 만든 앱은 별도의 네이티브 분석 엔진 없이 REA가 직접 코드 구조를 조사합니다. Windows나 Mac에서 실행되는 네이티브 프로그램은 Ghidra·Hopper·IDA 같은 도구와 연결해 분석합니다. 웹사이트와 Android 앱 등도 지원하지만, 대상마다 얻을 수 있는 정보와 복원 수준이 다릅니다.[5]

네이티브 실행 파일

Windows·macOS·Linux 프로그램. 함수, 문자열, 호출 관계를 살펴봅니다.

엔진 필요Ghidra · Hopper · IDA
JavaScript · Electron

어떤 코드가 다른 모듈을 불러오는지, 프로세스끼리 어떤 메시지를 주고받는지 조사합니다.

네이티브 엔진 불필요REA 내장 분석기
웹사이트

브라우저에서 보이는 페이지 구조, 스크립트, 네트워크 요청을 관찰합니다. 서버 내부는 보이지 않습니다.

네이티브 엔진 불필요브라우저 도구
Android APK

앱 선언 정보, 클래스, 디컴파일한 메서드를 다룹니다.

도구 필요JADX + JDK
.NET · Go · Rust

대상마다 얻을 수 있는 정보와 복원 수준이 다릅니다.

대상별 상이형식에 따라 다름
펌웨어 · 통신 기록 · WASM

파일에 실제로 담긴 요청과 응답, 추출 가능한 영역을 살펴봅니다.

도구 필요플랫폼 조건 확인

공식 README의 분석 대상 목록을 묶어 정리했습니다. 공식 목록

03별 400개에서 26만 개까지, 한 달 사이 생긴 일

깃허브의 스타는 “이 프로젝트 눈여겨볼게요” 하고 누르는 별입니다. 9월 내내 REA의 별은 400개 언저리였습니다. 그러다 10월 초, 곡선이 가파르게 치솟았습니다. 날짜별 숫자는 그래프와 아래 표에 모아 두고, 여기서는 그 사이에 무슨 일이 있었는지 보겠습니다.

GITHUB STARS / 2026.09.15 – 10.15

조용했던 9월, 폭발한 10월

0100k200k09.1509.3010.1512345
  1. 11만 돌파
  2. 2“Software is done.”
  3. 310만 돌파 후 11.9만
  4. 4한국 그림판 영상
  5. 5260,870
2026년 10월 15일 저장한 Star History CSV 기준입니다. 실시간 수치가 아니며, 스타는 관심의 지표이지 성능 검증이 아닙니다. Star History
날짜별 스타 수 보기
날짜(2026년)스타 수
9월 15일389
10월 1일405
10월 4일2,981
10월 6일10,464
10월 8일30,714
10월 9일53,790
10월 11일119,062
10월 13일218,135
10월 15일260,870

2026년 10월 15일 Star History[6]에서 내려받은 기록입니다. 검토 시점의 깃허브 화면에도 약 26만 2000개가 표시돼 규모가 비슷했습니다.

불씨를 던진 사람 중 하나는 AI 영상 제작자 Matthew Berman입니다. 10월 8일, 그는 REA 저장소 화면에 짧은 한마디를 붙였습니다. “Software is done.” 소프트웨어는 끝났다는 뜻입니다.[7]

Matthew Berman이 REA 저장소 화면과 함께 Software is done이라고 쓴 X 게시물
Matthew Berman의 X 게시물. 2026년 10월 15일 캡처.

재미있는 건 같은 날 남긴 답글입니다. 그는 지금이 냅스터 초기의 무법 시대 같다며 “소송이 몰려올 것”이라고 썼습니다. 환호와 걱정이 처음부터 한 묶음으로 퍼진 겁니다.[8]

화려한 복제 시연만 있었던 건 아닙니다. 10월 12일 Reddit의 문명 5 게시판에는 조금 다른 이야기가 올라왔습니다. Mac판 문명 5에서 다른 문명이 수도를 되찾는 순간 게임이 꺼지는 오래된 버그가 있었는데, 한 사용자가 “Claude와 REA로 원인을 추적해 패치를 만들었다”고 밝힌 겁니다. 함께 공개한 저장소 설명을 보면, 이름이 지워진 게임 파일 속 한 함수가 “앞서는 팀이 없음”을 뜻하는 값을 확인하지 않고 메모리를 읽다가 충돌했습니다. 패치는 그 확인 한 줄을 넣는 방식으로 28바이트만 바꾸고, 원본을 백업하며, 지원하는 파일 버전이 아니면 적용을 거부합니다. 앱을 베끼는 대신 내가 가진 게임의 고장 난 곳을 고친 사례라 REA의 쓰임새를 잘 보여 줍니다. 다만 게시물의 추천 수는 30여 개로 작고, 패치 효과는 작성자와 저장소의 설명 기준입니다. 비슷한 시기 ChatGPT로 같은 버그를 고쳤다는 다른 사용자의 글도 있어, 이 작업이 REA만의 능력이라고 보기도 어렵습니다.[9] ·[10]

화제가 된 게시물과 영상

  1. “Software is done.”

    Matthew Berman의 X 게시물. 조회 약 376만 회(10.15 확인).

  2. Rob Shocks

    직접 만든 앱의 숨은 규칙을 찾게 하고 원본 소스와 대조.

  3. Nick Saraev

    REA를 쓴 쪽과 안 쓴 쪽으로 Mac 미리보기 앱 재현 비교.

  4. 그림판 영상

    성공지식백과, 그림판에 에셋 리스트를 더한 한국어 영상.

  5. 문명 5 버그 패치

    Mac판 문명 5의 수도 탈환 충돌 원인을 Claude와 REA로 추적해 고친 Reddit 사례.

04써 본 사람들의 성적표, 그리고 반전

말은 많았습니다. 그럼 실제로 써 본 사람들은 무엇을 해냈을까요? 영상 설명이나 자막에서 REA 사용이 확인된 시연 세 개를 골랐습니다.[11][12][13] 모두 제작자의 환경에서 한 번 해 본 결과이고, 조회수는 2026년 10월 15일 기준입니다.

성공지식백과2026.10.12 · 약 55만 회CASE 1

그림판에 없던 기능을 붙이다

윈도우 그림판을 분석해 다시 만들고, 붙여 넣은 이미지를 관리하는 에셋 리스트 패널을 더했습니다. 제작자는 약 11분 걸렸다고 말합니다.

주의할 점제작자도 비교적 간단한 앱이라고 언급

해당 장면 보기 (8:35) ↗
Nick Saraev2026.10.10 · 약 112만 회CASE 2

REA를 쓴 쪽과 안 쓴 쪽의 경주

Mac 미리보기 앱을 두 방식으로 동시에 만들게 했습니다. 먼저 끝난 쪽은 REA 없이 만든 버전이었고, 제작자 평가로는 REA 버전이 원본에 더 가까웠습니다.

주의할 점한 번의 시연, 성능 시험 아님

해당 장면 보기 (4:16) ↗
Rob Shocks2026.10.09 · 약 48만 회CASE 3

정답지를 숨겨 두고 시험하다

숨은 잠금 해제 규칙이 있는 자기 앱을 만들고 함수 이름을 지운 뒤 분석시켰습니다. 결과는 보관해 둔 원본 소스와 대조했습니다.

주의할 점본인이 만든 앱을 대상으로 분석

해당 장면 보기 (4:30) ↗

세 장면을 나란히 놓으면 흥미로운 그림이 보입니다. 하나, 그림판에 원래 없던 기능을 얹었습니다. 복제보다 “내 입맛대로 고치기”에 가까웠습니다. 둘, 경주에서 먼저 결승선을 끊은 쪽은 REA를 쓰지 않은 버전이었습니다. 제작자 평가로는 원본에 더 가까운 결과를 REA 쪽이 냈지만요. 셋, 검증 방법이 가장 분명한 시연은 정답지를 숨겨 둔 자기 앱이었습니다.

세 시연은 각각 특정 기능이나 제한된 동작에 초점을 맞췄습니다. 이 결과만으로 원본 앱의 모든 기능과 예외 처리까지 재현했다고 판단하기는 어렵습니다.

보충: 짧게 보고된 사례와 계정 정지 주장

AIWarper의 10월 10일 게시물[14]은 구매한 Steam 게임을 REA로 분석해 30분 안에 Unity에서 실행했다고 주장합니다. 게임 이름이나 재현 자료는 없습니다. Eric Tech의 10월 10일 영상[15]은 REA와 Hopper로 음성 입력 앱 Wispr Flow를 따라 만든 과정을 다룹니다. 이런 보고만으로는 원본과 기능·동작이 모두 같은지, 사용 허락이 있었는지 알 수 없습니다.

한 사용자는 10월 12일 X에서 Codex로 REA를 시험하던 중 2022년부터 쓰던 OpenAI 계정이 정지됐다고 주장했습니다. 정지 원인은 확인되지 않았지만, AI 서비스의 이용 정책도 함께 확인해야 한다는 경고로 읽을 만합니다.[16]

05직접 돌려 봤다: 오류 뒤에 남은 단서들

영상만으로는 판단하기 어려워 직접 돌려 봤습니다. 시험 대상은 Electron 팀이 공개한 예제 앱 Electron API Demos[17]입니다. Electron은 웹 기술로 데스크톱 앱을 만드는 방식으로, 슬랙과 VS Code도 이 방식을 씁니다.

이 앱을 고른 이유는 하나입니다. 정답지가 있으니까요. 소스가 공개돼 있어서 REA의 답을 원본과 한 줄씩 맞춰 볼 수 있습니다. 다만 이 저장소는 2026년 8월 2일 보관 처리돼 읽기 전용이 된 오래된 예제라, 요즘 Electron 앱을 대표하지는 않습니다.

분석은 오류 메시지로 끝났지만, 오류 응답 안에 중간 결과가 일부 남아 있었습니다. 그 결과를 우리가 소스에서 직접 검색한 목록과 비교했습니다.

OUR TEST / ELECTRON API DEMOS

같은 앱, 다른 두 목록

REA가 찾은 IPC 이름
18
직접 텍스트 검색한 후보
20
파일 79개 · JS 54개 해석발견 항목 253건수집 기준이 달라 탐지율 계산 불가검색에만 나온 2개는 추가 후보종료 정리 확인 실패 (ps EPERM)
코드만 읽는 정적 분석 결과입니다. 실행은 프로세스 조회 권한 문제로 종료 정리 여부를 확인하지 못한 채 끝났고, 위 숫자는 그 오류 응답에 담긴 부분 결과입니다. electron-api-demos

18과 20, 무엇이 달랐을까

REA는 79개 파일을 읽고 그중 자바스크립트 54개를 해석했습니다. 그리고 코드 구조에서 IPC 관련 호출 구문을 식별해, 앱 안의 프로세스끼리 주고받는 메시지 이름(IPC 채널) 18개를 기록했습니다. 화면 쪽 코드가 “파일 선택창 열어 줘”라고 보내면, 메인 프로세스(앱의 창과 시스템 기능을 관리하는 쪽)가 받아서 선택창을 띄우는 식의 통로입니다.

우리가 소스를 글자로 검색해 모은 후보는 20개였습니다. 두 개가 더 많지만, REA가 놓쳤다고 단정할 수는 없습니다. REA의 숫자는 코드 구조를 해석해 IPC 호출 구문으로 식별한 결과입니다. 그 코드가 실제로 실행되는지까지 확인한 것은 아닙니다. 글자 검색은 일치하는 곳을 전부 긁어옵니다. 세는 방식이 다르니, 둘을 나눠 탐지율을 계산하면 안 됩니다.

검색에서만 보인 두 이름은 open-file-dialog-sheet와 compute-factorial입니다. open-file-dialog-sheet는 HTML 파일 안의 코드에서, compute-factorial은 HTML 파일과 자바스크립트 파일의 webContents.send 호출에서 보였습니다. HTML 쪽 코드는 데모 앱 특성상 화면에 “이렇게 쓰세요” 하고 보여 주는 예제일 수도 있고, 호출 형태에 따라 세는 방식이 달라졌을 수도 있습니다. 그래서 이 둘은 “누락”이 아니라 추가로 발견한 후보입니다.

요약표의 0, 소스의 true

Electron에는 nodeIntegration이라는 스위치가 있습니다. 앱 창 안의 웹 코드가 내 컴퓨터의 파일 같은 기능에 손댈 수 있게 허락하는 설정입니다. 보안과 직결되는, 꽤 중요한 스위치죠.

REA 요약표에는 창 설정(webPreferences)을 명시한 곳이 0건이라고 나왔습니다. 그런데 소스를 열어 보니 nodeIntegration: true가 여러 파일에 있었습니다. 요약표만 보면 “보안 설정은 신경 쓸 것 없다”고 잘못 읽을 수도 있었습니다. 요약의 0이 원본에 “없다”는 뜻은 아닐 수 있습니다.

오류의 정체

오류는 분석 결과와 별개의 문제였습니다. REA는 분석을 마친 뒤 작업용 프로세스가 잘 정리됐는지 확인하려 했습니다. 그런데 우리 테스트 환경이 프로세스 목록 조회를 막아 둔 탓에 확인하지 못했습니다. 프로세스가 실제로 남았다는 뜻은 아닙니다. 정상적으로 완료된 분석이 아니었으니, 위 숫자를 성능 점수로 쓰지도 않습니다.

실험 환경과 오류 요약
  • 운영체제: sw_vers 출력 기준 macOS 27.2(빌드 26B5112a). 공개 정식 버전 목록과 다를 수 있어 시험용 빌드일 가능성이 있습니다. AI 에이전트용 격리 실행 환경에서 실행했습니다.
  • Node.js 26.5.0, npm 11.17.0
  • REA: rea-agents 6.5.0, analyze_javascript_application으로 로컬 폴더 분석
  • 대상: electron/electron-api-demos master 브랜치 커밋 26b3d1d(2022년 10월 17일)
  • 통계: 관련 파일 79개, 해석한 자바스크립트 54개, 읽은 텍스트 427,872바이트, 발견 항목 253개, 해석 실패 0개
  • 오류 코드: cleanup_incomplete(분류 execution_failure)
  • 오류 메시지: “Provider cleanup could not be fully confirmed. Review the reported local resources before opening another target.”
  • 원인 기록: “process table could not be inspected: spawn EPERM”
  • REA가 결과와 함께 제공한 한계: 정적 분석이라 실제 실행 여부는 증명하지 않으며, HTML 안의 스크립트 일부는 분석하지 않음
  • 전체 원본 JSON 결과(약 17MB)는 공개하지 않고, 위에 핵심 항목만 요약했습니다.

REA는 파일 위치와 관계를 빠르게 정리해 줬습니다. 맞는지 판정한 것은 원본과 맞춰 본 사람이었습니다. 결과는 세 칸으로 나눠 읽으면 됩니다. 직접 본 사실, 근거 있는 추정, 아직 모르는 것입니다.

근거를 세 칸으로 나눠 보기

답을 고르면 이유가 나타납니다.

1. 분석한 파일에서 0.001이라는 숫자를 찾았습니다.

2. 그 숫자가 갱신 코드 가까이에 있으니 속도 증가량일 것 같습니다.

3. 접근할 수 없는 서버가 어떤 추천 공식을 쓰는지는 알 수 없습니다.

아직 답을 고르지 않았습니다.

06할 수 있다고 해도 되는 건 아니다

“내 돈 주고 산 앱인데 뭐 어때?” “혼자만 쓸 건데?” 충분히 나올 법한 말입니다. 하지만 법은 그렇게 단순하지 않습니다. 무엇을, 왜 뜯어보고, 결과를 어디에 쓰느냐가 핵심입니다. 이 글은 법률 자문이 아니니, 실제 판단이 필요하면 전문가에게 물어보세요.

한국 저작권법 제101조의4는 허락 없이 할 수 있는 프로그램코드역분석을 좁게 정해 둡니다. 조건은 세 가지가 모두 맞아야 합니다. 정당한 권한으로 프로그램을 쓰는 사람(또는 그의 허락을 받은 사람)일 것, 다른 프로그램과 호환하는 데 필요한 정보를 쉽게 얻을 수 없고 그 정보의 획득이 불가피할 것, 그리고 호환에 필요한 부분만 분석할 것.

그렇게 얻은 정보도 쓸 곳이 정해져 있습니다. 호환 목적 외에 이용하거나 제3자에게 제공할 수 없고, 원본과 표현이 실질적으로 유사한 프로그램을 개발하거나 제작하거나 판매하는 데 이용해서도 안 됩니다. 판매할 때만이 아니라 개발과 제작 단계도 각각 포함됩니다. 바로 앞 제101조의3에도 프로그램의 아이디어와 원리를 확인하려는 조사·연구·시험 목적의 복제 등에 관한 별도 조건이 있지만, 어느 조항도 “역공학은 다 괜찮다”는 허가증은 아닙니다.[18]

초록불: 마음 편히 연습

내가 만든 앱, 분석과 수정이 허락된 오픈소스, 권리자에게 허락받은 대상.

노란불: 조건을 따져 보기

정당하게 이용하는 프로그램과의 호환을 위한 분석. 저작권법 제101조의4는 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피할 때, 필요한 부분에 한해 허락 없는 역분석을 허용합니다. 얻은 정보는 호환 목적 외 이용·제3자 제공이나, 실질적으로 유사한 표현의 프로그램을 개발·제작·판매하는 데 쓸 수 없습니다.

빨간불: 멈추기

권리자의 허락이나 적용 가능한 이용 근거 없이 보호되는 코드·에셋을 복제·배포하는 일, 라이선스나 결제 우회, 서비스 약관을 어기는 분석.

일반적인 설명이며 법률 자문이 아닙니다. 국가와 계약 조건에 따라 판단이 달라질 수 있습니다. 저작권법 조문

REA 프로젝트 측도 합법적인 연구, 교육, 호환성, 보존, 그리고 분석 권한이 있는 소프트웨어를 강조합니다. REA의 MIT 라이선스는 REA 코드에 대한 것일 뿐, 분석 대상의 권리까지 풀어 주지는 않습니다.[19]

정보가 어디로 흘러가는지도 챙기세요. 분석은 내 컴퓨터에서 해도, 에이전트가 결과를 AI 모델에 보낼 때 코드 조각이 함께 넘어갈 수 있습니다. 회사 앱이라면 회사 규정과 모델 제공업체의 데이터 정책부터 확인하세요.

시작 전 체크리스트

  • 준비물: Node.js 22.x에서는 22.19 이상, 24.x에서는 24.11 이상, 또는 26 이상 버전과 npm이 필요합니다(23·25는 미지원). 그다음 npx rea-agents setup을 실행해 쓸 에이전트를 고르고 변경 사항을 승인합니다.[20]
  • 분석 엔진: JavaScript·Electron 앱은 별도의 네이티브 분석 엔진이 필요 없습니다. 다만 Linux에서는 procps 호환 ps 같은 환경별 조건이 있습니다. 네이티브 프로그램은 Hopper, Ghidra, IDA 중 하나가 필요합니다.
  • 비용: REA 자체는 MIT 라이선스 오픈소스라 무료지만, AI 모델 사용료와 상용 분석 도구 라이선스는 따로 듭니다.
  • 첫 대상: 내가 만든 작은 프로그램이나 분석이 허용된 오픈소스 예제로 시작하세요.

07찌개 맛을 알아내도 식당 운영에는 더 많은 것이 필요하다

다시 김치찌개로 돌아가 봅시다. 열심히 맛을 보고 재료를 알아냈다고 해 볼게요. 비슷한 맛을 내는 데 도전할 수는 있습니다. 그런데 그 식당처럼 장사를 하려면요? 매일 좋은 재료를 구하고, 점심시간 주문을 소화하고, 어제와 똑같은 맛을 오늘도 내야 합니다. 맛의 비밀은 식당이라는 거대한 일의 한 조각일 뿐입니다.

레시피 알아내기REA가 돕는 일
  • 어떤 재료가 들어갔는지
  • 양념을 넣는 순서
  • 불 조절 규칙
  • 비슷한 맛 재현 시도
식당 운영하기그래도 남는 일
  • 서버와 데이터 운영
  • 보안과 개인정보 보호
  • 꾸준한 업데이트
  • 고객 지원
  • 법적 권리와 라이선스
  • 매일 같은 맛 유지하기

소프트웨어도 같습니다. REA는 버튼 하나의 규칙을 찾고 근거를 정리하는 첫 조각을 훨씬 쉽게 만들었습니다. 서버를 운영하고, 업데이트하고, 고객 문의에 답하는 일은 그 뒤에도 남습니다. 레시피를 알아내는 일과 식당을 꾸리는 일은 다른 일입니다.

마지막으로 세 문제

답을 고르면 이유가 나타납니다.

1. REA의 역할에 가장 가까운 설명은?

2. 분석 결과에 어떤 기능이 안 보인다면?

3. 처음 연습할 대상으로 가장 좋은 것은?

아직 답을 고르지 않았습니다.

처음 던져 볼 질문 하나

내가 만든 작은 앱을 열고 이렇게 물어보세요. “이 버튼을 누르면 어떤 함수가 실행되는지, 근거와 아직 모르는 부분을 나눠서 보여 줘.”

읽고 나면 생기는 질문 5가지

REA를 쓰면 앱의 원본 소스 코드를 그대로 돌려받을 수 있나요?

아닙니다. 네이티브 프로그램은 만들어지는 과정에서 사람이 붙인 이름과 설명이 대부분 사라지기 때문에, 분석으로 얻는 코드는 원본을 닮은 재구성입니다. REA는 특정 기능이 어떻게 동작하는지 근거를 찾는 데 강합니다.

코딩을 몰라도 REA를 쓸 수 있나요?

설치와 결과 확인에는 기본적인 터미널 사용이 필요합니다. Node.js와 npm을 설치한 뒤 npx rea-agents setup으로 에이전트를 연결하고, 질문은 일상 언어로 하면 됩니다. 다만 결과가 맞는지 원본과 맞춰 보는 일은 여전히 사람의 몫입니다.

분석을 내 컴퓨터에서 하면 데이터가 밖으로 나가지 않나요?

그렇지 않을 수 있습니다. 분석 자체는 로컬에서 돌아가도, 에이전트가 결과를 AI 모델에 보낼 때 코드 조각이 함께 전달될 수 있습니다. 회사 앱이라면 회사 규정과 모델 제공업체의 데이터 정책을 먼저 확인하세요.

구매한 앱이면 마음대로 분석해도 되나요?

구매만으로 모든 분석과 배포가 허용되지는 않습니다. 한국 저작권법 제101조의4는 정당한 이용자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피할 때, 필요한 부분에 한해 역분석을 허용합니다. 얻은 정보도 호환 목적 외 이용이나 유사한 프로그램 개발에 쓸 수 없습니다.

처음에는 무엇으로 연습하면 좋을까요?

내가 만든 작은 앱이나 분석이 허용된 오픈소스 예제가 좋습니다. 원본 소스가 있으니 REA의 답을 직접 맞춰 볼 수 있고, 권리 문제도 분명합니다.

출처

  1. [1]REA · 공식 사이트 (rea.tools)
  2. [2]Microsoft · Windows Calculator 소스 (GitHub)
  3. [3]NSA · Ghidra (GitHub)
  4. [4]morluto · REA 저장소와 README (GitHub)
  5. [5]morluto · REA README: 분석 대상 (What you can analyze)
  6. [6]Star History · morluto/rea 스타 기록 (2026.10.15 내려받음)
  7. [7]Matthew Berman · “Software is done.” (X, 2026.10.08)
  8. [8]Matthew Berman · 냅스터 비유 답글 (X, 2026.10.08)
  9. [9]Reddit r/civ5 · Fixed the Mac Civ V crash when an AI recaptures its capital (2026.10.12)
  10. [10]jtutlis · civ5-mac-capital-crash-fix (GitHub)
  11. [11]성공지식백과 · 소프트웨어는 끝났다? 앱 통째로 복사하는 미친 오픈소스 (YouTube, 2026.10.12)
  12. [12]Nick Saraev · I Tested The Viral Github Repo To Reverse Engineer Anything (YouTube, 2026.10.10)
  13. [13]Rob Shocks · The Fastest-Rising Repo on GitHub Is a Little Scary REA (YouTube, 2026.10.09)
  14. [14]AIWarper · Steam 게임 디컴파일 주장 (X, 2026.10.10)
  15. [15]Eric Tech · How To Use REA To Clone Any Software In Minutes (YouTube, 2026.10.10)
  16. [16]Vincent_AINotes · OpenAI 계정 정지 주장 (X, 2026.10.12)
  17. [17]Electron · electron-api-demos (GitHub, 2026.08.02 보관 처리)
  18. [18]국가법령정보센터 · 저작권법 제101조의3·제101조의4
  19. [19]morluto · REA DISCLAIMER.md (책임 있는 사용 안내)
  20. [20]morluto · REA README: Quick start (설치 조건)

공식 문서, 공개 저장소, 법령 원문을 먼저 확인했다. 스타 수, 조회수, 다운로드 수는 2026년 10월 15일 기준이며 이후 바뀐다. 영상과 게시물 사례는 제작자와 작성자의 설명이며, 이 글에서 같은 결과를 재현하지는 않았다. 직접 실험은 오류 응답에 남은 정적 분석의 부분 결과다. 그림과 화면은 출처를 밝혀 설명 목적으로 실었다.

상표 고지 · Anthropic, Claude, Claude Code: Anthropic, PBC · OpenAI, ChatGPT, Codex: OpenAI · Google, Gemini, YouTube: Google LLC · Microsoft, Windows, GitHub, GitHub Copilot: Microsoft Corporation · Apple, macOS, Mac, Preview: Apple Inc. · Cursor: Anysphere, Inc. · Electron, Node.js: OpenJS Foundation · Ghidra: 미국 국가안보국(NSA) · Hopper: Cryptic Apps · IDA: Hex-Rays SA · Reddit: Reddit, Inc. · X: X Corp. · Sid Meier’s Civilization: Take-Two Interactive(2K, Firaxis Games). 로고와 상표는 각 소유자의 자산이며, 해당 서비스를 식별하기 위한 용도로만 사용했습니다. 단단한 인생은 위 회사와 제휴하거나 보증·후원을 받지 않은 독립 블로그입니다.

단단한 인생 / Dandan Life · 개인 AI 기술 블로그 / Independent AI technology journal