대상 사용자: 프로그래머(Windows 프로그램의 파일·레지스트리·프로세스 동작을 진단하는 개발자). Microsoft Sysinternals의 Process Monitor는 파일 시스템, 레지스트리, 프로세스/스레드 활동을 실시간으로 보여 줍니다. 이 글은 짧은 캡처를 저장하고, 필터로 필요한 사건을 찾은 다음 결과를 해석하는 기본 절차를 다룹니다.
Procmon.exe(x86), Procmon64.exe(x64), Procmon64a.exe(ARM)를 선택하고 관리자 권한으로 실행하도록 안내합니다. 첫 실행에서 표시되는 사용 약관을 검토합니다.Process Name is ... 조건을 넣습니다. Microsoft 안내는 프로세스 트리 또는 PID 필터로 범위를 줄이는 방법을 설명합니다.Result의 NAME NOT FOUND, ACCESS DENIED 등을 살펴보되 한 줄만으로 원인을 단정하지 마세요. 경로를 바꿔 재시도해 성공하는 것이 정상적인 탐색일 수 있습니다. 앞뒤 사건, 대상 경로, 호출 스택과 실제 프로그램 오류를 함께 확인합니다.practice-events.csv는 실제 Process Monitor 기록이 아닌 가상 데이터입니다. DemoApp.exe가 첫 경로에서 설정 파일을 못 찾고 다른 경로에서는 성공하는 사례와, 한 번의 접근 거부 사건이 담겨 있습니다. CSV는 단순 분석 연습용이며 PML로 가져올 수 없습니다.
Python 3가 있으면 압축을 푼 폴더에서 python analyze-practice.py를 실행하세요. 표준 라이브러리만 사용합니다. 기대 출력은 NAME NOT FOUND=1, SUCCESS=2, ACCESS DENIED=1입니다. CSV를 직접 열어 같은 경로의 후속 성공이 있는지 확인하고, 실제 원인 판단은 프로그램 오류와 전체 맥락이 필요하다는 점을 확인합니다. Python이 없으면 텍스트 편집기나 스프레드시트에서 CSV 네 줄을 읽어도 됩니다.
| 증상 | 점검할 점 |
|---|---|
| 대상 사건이 보이지 않음 | 캡처가 켜져 있었는지, 이전 필터가 사건을 숨기는지 확인합니다. 필터를 초기화한 뒤 짧게 다시 기록합니다. |
| 사건이 너무 많음 | 캡처를 멈춘 뒤 Process Tree나 Process Name/PID 필터를 적용합니다. 짧은 시간만 재현합니다. |
| 실행 파일 선택이 헷갈림 | Windows 아키텍처에 맞는 x86·x64·ARM 파일을 선택하고 Microsoft 안내대로 관리자 권한을 확인합니다. |
| PML에 필요한 사건이 없음 | 저장할 때 All events와 Native Process Monitor Format 선택 여부, 캡처 시점의 필터를 확인합니다. |
| 디스크·메모리 사용이 커짐 | 캡처를 중지합니다. Microsoft는 메모리 기반 기록과 크기 제한 없는 파일 기반 기록을 오래 켜 두면 자원 부족이 생길 수 있다고 설명합니다. |
NAME NOT FOUND가 보임 |
같은 작업이 다른 경로에서 성공했는지 앞뒤 사건을 확인합니다. 한 사건만으로 결함을 확정하지 않습니다. |
공식 참고: Process Monitor 다운로드·기능, Microsoft 캡처·저장·문제 해결 예시, Sysinternals 사용 약관.
한국어 설명서·가상 CSV·분석 스크립트·점검표는 JDevCompany가 자체 제작했고 CC0-1.0으로 제공합니다. Microsoft 프로그램과 문서 원본은 첨부하지 않습니다.