AI-translated from English; not yet reviewed by a fluent editor.
# REA로 Electron 앱 동작 살펴보기
> REA는 로컬 앱의 모듈과 Electron 경계를 지도처럼 보여 줍니다. 이 가이드는 증거를 따라 기능 하나를 추적하고 동작을 별도로 확인하는 방법을 설명합니다.
By BIG CHANGE Editorial
Published: 2026-10-14T04:55:21.558Z
Updated: 2026-10-14T04:55:21.558Z
Canonical: https://bigchange.ai/blog/rea-static-electron-app-inspection-guide

AI-generated conceptual illustration by BIG CHANGE; no actual REA interface, application finding or runtime result is depicted.
REA는 소스 트리가 없어도 검사 권한이 있는 파일을 바탕으로 로컬 JavaScript 또는 Electron 앱을 매핑할 수 있습니다. 유용한 결과는 한 동작에 대한 증거 경로입니다. 어떤 모듈이 기능을 노출하는지, 호출이 프로세스 경계를 어디서 넘는지, 어떤 부분을 별도로 확인해야 하는지 보여 줍니다. 이 가이드는 [REA 프로젝트의 최신 문서](https://github.com/morluto/rea/blob/main/README.md)를 사용하며, 2026년 10월 14일에 확인했습니다. BIG CHANGE는 어떤 앱에서도 REA를 실행하지 않았습니다.
## 큰 변화
- **무엇이 바뀌었나:** REA는 코딩 에이전트에 제공된 앱 디렉터리 또는 ASAR에서 모듈, 가져오기, 소스 맵, 경로, Electron IPC를 구조화해 보여 줍니다. 각 발견 사항은 근거가 된 파일을 가리킬 수 있습니다.
- **왜 중요한가:** 기능 하나를 조사하는 개발자는 수동으로 무엇을 살펴볼지 정하기 전에 이름이 지정된 API나 IPC 채널을 패키징된 앱 안에서 따라갈 수 있습니다. 질문 범위가 좁아지고 증거도 확인하기 쉬워집니다.
- **주의할 점:** 정적 코드 경로는 후보일 뿐 앱이 실제 사용 중 그 경로를 택한다는 증거는 아닙니다. 특정 동작에 관한 주장은 권한이 있는 대상에서 독립적으로 관찰하거나 시험해야 합니다.
## 시작하기 전에
이 절차는 로컬 JavaScript 또는 Electron 앱을 소유하거나 검사 권한이 있는 개발자를 위한 것입니다. 추출된 앱 디렉터리나 해당 앱의 `app.asar` 파일과 절대 경로가 필요합니다. REA의 [패키지 매니페스트](https://github.com/morluto/rea/blob/main/package.json)에는 `rea-agents` 버전 **6.4.0**과 Node.js 요구 사항이 나와 있습니다. 22.x 계열은 22.19 이상, 24.x 계열은 24.11 이상, 또는 26 이상이 필요합니다. npm도 있어야 합니다. Linux에서는 REA의 정적 JavaScript/Electron 분석에 procps와 호환되는 `ps` 도 필요합니다. REA의 `PATH` 프로세스 소유권 확인에 쓰이며, 자세한 내용은 [설치 가이드](https://github.com/morluto/rea/blob/main/docs/installation.md#linux-owned-process-prerequisite)에 나와 있습니다. 이는 REA 실행 호스트의 요구 사항이며 대상 앱 자체의 실행 요구 사항과는 별개입니다.
정적 JavaScript 작업에는 Hopper, Ghidra, IDA, 브라우저 또는 실행 중인 Electron 프로세스가 필요하지 않습니다. 그런 도구는 REA의 다른 작업 흐름에 속합니다. 대상 앱을 검사할 권한이 있는지 확인하고, 어떤 아티팩트가 결과를 만들었는지 정확히 식별할 수 있도록 원본 파일의 복사본을 보관하세요. 설치할 때는 공식 [`morluto/rea` 저장소](https://github.com/morluto/rea) 또는 연결된 npm 패키지를 사용하세요. 이름이 비슷한 저장소만으로는 출처를 확인할 수 없습니다.
## 1. REA를 설정하거나 일회성 CLI 사용하기
연결된 코딩 에이전트에서는 [문서화된 설정 명령](https://github.com/morluto/rea/blob/main/README.md#quick-start)을 사용합니다:
```sh
npx rea-agents setup
```
에이전트 구성에 제안된 변경 사항을 검토하고 원하는 항목만 승인한 뒤 에이전트를 다시 시작하세요. 터미널에서만 검사하려면 아래 문서화된 명령으로 해당 실행에 패키지를 호출할 수 있습니다. `@latest`는 실행 시점의 최신 릴리스를 선택합니다. 출력 세부 사항은 바뀔 수 있으므로 증거와 함께 실제로 확인한 버전을 기록하세요. 위의 6.4.0은 이 글의 10월 14일 확인 당시 프로젝트 매니페스트에 표시된 버전입니다.
## 2. 제공된 파일 분석하기
예시 경로를 권한이 있는 앱 폴더 또는 ASAR의 절대 경로로 바꾸세요:
```sh
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json > app-evidence.json
```
CLI [가이드](https://github.com/morluto/rea/blob/main/docs/cli.md)는 전체 Evidence가 매우 커질 수 있다고 경고합니다. 파일로 저장한 다음 요약이나 선택한 모듈 보기만 읽으세요. 결과 전체를 프롬프트에 붙여 넣지 마세요. 명령이 실패하면 진단을 위해 오류와 대상 경로를 보존하세요. 종료 코드가 0이어도 일부만 분석되거나 경고 또는 미해결 결과가 있을 수 있습니다. Windows의 경우 README에는 다음과 같은 경로 예가 나옵니다: `"D:/apps/example"`.
아티팩트 재구성 [참고 문서](https://github.com/morluto/rea/blob/main/docs/javascript-artifact-reconstruction.md)에 따르면 이 작업은 앱을 실행하지 않고 선택한 파일을 데이터로 읽습니다. 아티팩트 경로와 해시를 목록화하고, 사용 가능한 JavaScript와 TypeScript를 분석하며, 후보 진입점, 가져오기, 소스 맵, 경로, 네트워크 엔드포인트, Electron preload와 renderer 간 연결, `contextBridge` API, IPC 호출과 핸들러, 네이티브 애드온 요청을 보고합니다. 예상 결과는 그래프, 정적 Electron 요약, 분석 범위와 한계를 담은 Evidence 기록입니다. 보고된 `.node` 바인딩은 살펴볼 관계를 뜻할 뿐 해당 네이티브 모듈을 디코딩한 결과가 아닙니다.
## 3. 한 가지 기능만 추적하기
메뉴 동작이나 노출된 API 메서드처럼 이름을 찾을 수 있는 기능을 고르세요. 사용자에게 보이는 이름을 기록하고 REA 결과에서 해당 모듈, 문자 그대로의 IPC 채널 또는 경로를 검색하세요. 보고된 소스 위치를 순서대로 따라갑니다: renderer 또는 페이지 호출, preload 브리지, IPC 전송, 해당하는 메인 프로세스 핸들러, 이어서 핸들러가 호출하는 파일 또는 서비스 작업입니다. REA의 [Electron CSV 예제](https://rea.tools/guides/javascript/)는 `notes.exportCsv()`, `notes:export` 채널과 메인 프로세스 기록기입니다. 이는 예제 앱의 이름이며 대상 앱에서는 다릅니다.
각 연결에 대해 아티팩트 다이제스트, 파일 경로와 위치, 코드가 실제로 보여 주는 내용을 기록하세요. 문자 그대로의 채널이 하나의 핸들러와 연결된 경우와 계산된 채널 또는 모호한 연결을 구분하세요. 모듈이나 핸들러가 없다고 판단하기 전에 범위와 한계 항목을 확인하세요. REA에 따르면 손상되었거나 사용할 수 없는 파일, 누락된 ASAR 보조 바이트, 해석되지 않은 표현식, 제한된 분석 범위 때문에 관계를 알 수 없는 상태로 남을 수 있습니다. 소스 맵은 원래 소스 이름을 드러낼 수 있지만 원본 소스 트리를 제공한다고 보장하지는 않습니다.
## 4. 동작을 독립적으로 확인하기
정적 추적에서 반증 가능한 주장 하나를 작성하세요. 예: “이 동작은 이 채널을 호출하고 핸들러는 이런 종류의 파일을 기록한다.” 그런 다음 승인된 테스트 환경에서 해당 동작만 수행하고 결과를 직접 관찰하세요. 생성된 파일, 변경된 상태 또는 권한 범위 안에서 수집한 추적이 될 수 있습니다. 앱 버전, 아티팩트 다이제스트, 테스트 단계와 관찰 결과를 기록하세요. 앱 실행 권한이 없다면 주장을 정적 코드 경로 수준으로 제한하세요. REA의 예시는 추론한 경로를 런타임 캡처로 확인할 수 있다고 명시합니다. 정적 그래프만으로는 실제 실행된 분기를 알 수 없습니다.
다른 개발자가 같은 소스 위치를 찾고 정적 연결의 한계를 이해하며 좁은 범위의 검사를 반복할 수 있으면 성공입니다. 분석 명령이 성공했다는 사실만으로 런타임 동작이 확인되거나 앱이 충실하게 재구현되었다고 볼 수 없습니다.
## 결과가 불완전한 경우
먼저 경로가 완전히 추출된 디렉터리나 ASAR를 가리키는지, 필요한 `.asar.unpacked` 보조 파일이 있는지 확인하세요. REA의 범위와 진단을 살펴보세요. 소스가 없거나 읽기에 실패했다면 부정적 발견이 아니라 알 수 없는 상태입니다. 큰 앱에서는 [참고 문서](https://github.com/morluto/rea/blob/main/docs/javascript-artifact-reconstruction.md)에서 정확한 `--source-path` 파일 선택 방법을 설명하지만, 선택되지 않은 파일은 분석 범위 밖에 남습니다. 문자 그대로의 IPC 일치가 모호하거나 채널이 계산되는 경우 인용된 파일을 살펴보고 질문 범위를 좁히세요. 모호함이 남으면 최종 메모에 그대로 적으세요.
REA 코드는 MIT 라이선스지만 대상 소프트웨어와 외부 분석 엔진에는 각각 별도의 라이선스와 약관이 적용됩니다. 정적 분석은 대상 파일을 로컬에서 처리합니다. REA의 결과를 코딩 에이전트에 전달하면 해당 모델 제공업체의 데이터 정책이 적용되므로 조직의 승인을 받기 전에는 비밀 정보나 독점 결과를 보내지 마세요. 사용 전에 에이전트와 선택적 엔진의 약관 및 비용을 확인하세요. 절차와 패키지 버전은 **2026년 10월 14일**에 확인했으며 문서를 바탕으로 합니다.
## Sources
- [REA README](https://github.com/morluto/rea/blob/main/README.md) — 공식 신원, 설정, JS 분석 명령, 출력, Node와 Linux ps 요구 사항, 로컬 처리와 개인정보 보호 범위.
- [REA 패키지 매니페스트](https://github.com/morluto/rea/blob/main/package.json) — rea-agents 6.4.0과 Node 버전 범위.
- [JavaScript 및 Electron 분석 가이드](https://rea.tools/guides/javascript/) — renderer, preload, IPC에서 메인 프로세스 핸들러까지 추적하는 예제. 샘플에는 REA 4.1.0이 기록되어 있습니다.
- [JavaScript 아티팩트 재구성](https://github.com/morluto/rea/blob/main/docs/javascript-artifact-reconstruction.md) — 정적 분석 범위, 소스 선택, 무결성, 커버리지, 해결되지 않은 경로의 의미.
- [CLI 및 Evidence](https://github.com/morluto/rea/blob/main/docs/cli.md) — CLI 명령, 큰 Evidence 출력, 종료 상태의 한계.
- [REA 설치 가이드](https://github.com/morluto/rea/blob/main/docs/installation.md) — Linux의 procps 호환 ps 요구 사항은 복구 안내와 함께 정적 JavaScript/Electron 분석에도 적용된다고 명시합니다.
BIG CHANGE 뉴스레터
큰 그림을 나만의 속도로.
AI와 로봇공학에 관한 최신 기사, 주목할 변화, 활용할 수 있는 실용적인 아이디어입니다. 일일 브리핑, 주간 다이제스트 또는 월간 전망을 선택하세요.
Next scheduled send (UTC): . Your first edition arrives at the next scheduled send after you confirm.
개인정보는 이용자가 선택합니다.
필수 저장소는 사이트 보안을 지원하고 선택 사항을 기억합니다. 선택 사항인 Google Analytics는 허용하기 전까지 꺼져 있습니다. 필수 저장 기능만 사용해 모든 기사를 읽을 수 있습니다. 개인정보 보호 세부 정보