이 글의 목적은 Office 텔레메트리와 관련 도구를 활용하여 Word, Excel, PowerPoint, Outlook 등 Microsoft 365 앱의 성능 저하를 체계적으로 진단하고, 원인을 정량적으로 규명하며, 현장에서 즉시 적용 가능한 점검·자동화 절차와 보고 체계를 제공하는 것이다.
개요: Office 텔레메트리로 무엇을 측정하고 개선하는가
Office 텔레메트리는 앱의 로드 시점, 문서 열기 지연, 애드인 로드 시간, 충돌 발생 패턴 등 운영 중 성능 지표를 수집하여 병목을 가시화하는 접근법이다. 수집된 텔레메트리 데이터는 사용자 체감 속도 저하의 주요 요인인 애드인, 플러그인, 네트워크 대기, 파일 I/O 지연, 손상된 Normal 템플릿, 클라우드 동기화 지연 등을 구분하고, 조치 우선순위를 정하는 근거가 된다. 조직 환경에서는 중앙 수집을 통해 사용자 그룹별·버전별·기기 구성별 성능 편차를 비교하여 표준 이미지를 개선하는데 활용한다.
핵심 용어와 범위 정의
| 용어 | 정의 | 활용 포인트 |
|---|---|---|
| 앱 시작 시간(App Launch Time) | 프로세스 시작 후 UI 사용 가능까지 경과 시간이다. | 그래픽 가속, 프로필 손상, 애드인 지연 영향 확인에 사용한다. |
| 문서 열기 지연(Document Open Latency) | 파일 더블클릭 또는 열기 명령부터 편집 가능까지의 시간이다. | 네트워크, 바이러스 백신 검사, OLE/링크 해석 영향 분리에 사용한다. |
| 애드인 로드 시간(Add-in Load) | COM/VSTO/웹 애드인의 초기화 소요 시간이다. | 문제 애드인 식별 및 차단 페이즈 설계에 사용한다. |
| 충돌/중단(Crash/Hang) | 비정상 종료 및 장시간 응답 없음이다. | 문제 버전·드라이버·서드파티 상호작용 규명에 사용한다. |
| 네트워크 왕복(RTT) | SharePoint/OneDrive/메일 서버와의 HTTP/SMTP 왕복 시간이다. | 지역·구간별 병목 지도화에 사용한다. |
점검 아키텍처: 로컬 로그 + 중앙 집계 + 대시보드
현장 적용을 위해서는 최소한 다음 세 레이어를 구성한다.
- 로컬 수집 레이어: Office 앱 로그, 애드인 이벤트, Windows 성능 카운터, WMI, ETW 추적을 수집한다.
- 전송·집계 레이어: 수집 로그를 보안 경로로 중앙 저장소에 집계한다.
- 가시화·분석 레이어: KPI, 백분위수, 트렌드, 상관관계를 대시보드로 제공한다.
사전 준비 체크리스트
| 항목 | 체크 방법 | 기준 |
|---|---|---|
| Office 빌드 통일 | 조직 표준 채널 및 빌드 목록화 | 주요 BU 별 2개 이하 빌드 유지 |
| 애드인 인벤토리 | 레지스트리·파일 스캔으로 목록화 | 업무 필수/선택 구분 |
| 보안 솔루션 예외 | 실시간 검사 예외 경로 검토 | Office 설치·캐시 경로 예외 설정 |
| 로그 보존 정책 | 개인정보 영향 평가 및 보존 기간 정의 | 30~90일 순환 보존 |
| 네트워크 경로 | 프록시, SSL 검사, WAN 경로 파악 | 업데이트 및 클라우드 트래픽 우선순위 지정 |
수집 소스 구성: 어디서 어떤 데이터를 가져오는가
1) Office 애플리케이션 계측
- 시작·종료 이벤트, 문서 열기, 저장, 애드인 초기화, 충돌 덤프 요약을 수집한다.
- Outlook은 OST/캐시 재색인, RPC/HTTP, MAPI over HTTP, 검색 인덱싱 상태를 포함한다.
- Excel은 외부 연결, Power Query, 대용량 수식 재계산, 매크로 실행 시간을 포함한다.
2) Windows 성능 카운터·ETW
- Process, LogicalDisk, Network Interface, TCPv4, GPU Engine 등 카운터를 동기 수집한다.
- ETW(이벤트 추적)로 디스크 I/O, DLL 로딩, 레이아웃·JIT, UI 스레드 블로킹을 관찰한다.
3) 애드인·확장 진단
- COM/VSTO/Office JS 애드인의 로드 시간, 오류 코드, 초기화 시 호출 지연을 기록한다.
- 필수 애드인 외에는 단계적 격리로 영향도를 측정한다.
권장 KPI와 목표치
| KPI | 정의 | 권장 목표 | 측정 포인트 |
|---|---|---|---|
| 앱 cold start P90 | 재부팅 후 첫 시작 90백분위수 | ≤ 3.0초 | Word/Excel/Outlook 별 집계 |
| 문서 열기 P90 | 로컬·네트워크 파일 편집 가능까지 | 로컬 ≤ 2.0초, 네트워크 ≤ 4.0초 | 파일 위치·크기별 세분화 |
| 애드인 로드 합계 | 활성 애드인 로드 시간 총합 | ≤ 500ms | 각 애드인 개별 기여도 표시 |
| 충돌률 | 1000 앱 시작당 충돌 수 | < 0.3 | 버전·드라이버별 분해 |
| Outlook 동기화 P90 | 신규 프로필 초기 동기화 시간 | ≤ 20분 | 사서함 크기·네트워크 별 |
수집·배포 자동화 스크립트 예시
다음 예시는 표준 Windows 환경에서 Office 성능 카운터와 프로세스 메트릭을 주기 수집하고 CSV로 저장하는 기본 틀이다.
# PowerShell 실행 정책과 관리자 권한 확인 후 사용한다. $intervalSec = 5 $durationMin = 30 $out = "$env:ProgramData\OfficePerf\perf_{0:yyyyMMdd_HHmmss}.csv" -f (Get-Date) New-Item -ItemType Directory -Force -Path (Split-Path $out) | Out-Null
$counters = @(
'\Process(OUTLOOK)% Processor Time',
'\Process(OUTLOOK)\Working Set - Private',
'\Process(EXCEL)% Processor Time',
'\Process(EXCEL)\Working Set - Private',
'\LogicalDisk(C:)\Avg. Disk sec/Read',
'\LogicalDisk(C:)\Avg. Disk sec/Write',
'\Network Interface(*)\Bytes Total/sec'
)
$end = (Get-Date).AddMinutes($durationMin)
while((Get-Date) -lt $end) {
$ts = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$vals = (Get-Counter -Counter $counters -ErrorAction SilentlyContinue).CounterSamples |
Select-Object Path, CookedValue
foreach($v in $vals) {
'{0},{1},{2}' -f $ts, $v.Path, [math]::Round($v.CookedValue,3) | Out-File -FilePath $out -Append -Encoding utf8
}
Start-Sleep -Seconds $intervalSec
}
Write-Host "Saved: $out"
Office 앱 자체 로그 확보 팁
- Outlook은 안전 모드에서 /safe 스위치로 시작하여 애드인 영향 없는 기준선을 확보한다.
- Excel은 수식 재계산 시간 측정을 위해 수식 옵션에서 수동 계산으로 전환한 뒤 F9 기준 시간을 기록한다.
- Word는 Normal.dotm 교체 전후 시작 시간 차이를 비교한다.
중앙 수집 및 저장 구조 설계
중앙 서버에는 다음 구조를 권장한다.
\\DataLake\Office\ ├─ raw\yyyy=2025\mm=10\dd=09\device=HOST123\*.csv ├─ stage\hourly\*.parquet └─ mart\kpi_daily\*.parquet - raw에는 에이전트가 전송한 원본 CSV를 저장한다.
- stage는 시간별 집계 및 정규화를 수행한다.
- mart는 KPI 테이블과 백분위수 분포를 제공한다.
대시보드 핵심 시각화
- 앱별 시작 시간 분포 히스토그램과 P50·P90·P99 라인을 표시한다.
- 애드인별 로드 시간 상위 10개 바 차트로 기여도를 나타낸다.
- 버전별 충돌률 트렌드로 위험 빌드를 강조한다.
- 지리·네트워크 구간별 문서 열기 지연 박스플롯으로 경로 병목을 찾는다.
문제 유형별 진단 플레이북
1) Outlook 시작·검색이 느린 경우
- OST 크기, 디스크 I/O 지연, 인덱싱 상태를 동시에 기록한다.
- 보안 솔루션 예외 경로에 OST와 검색 인덱스 위치 포함 여부를 확인한다.
- 문제 애드인 비활성화 후 기준선과 비교한다.
2) Excel 대용량 파일 열기 지연
- 외부 연결 차단 상태에서 열기 시간을 측정한다.
- Power Query 단계별 적용 시간과 재계산 시간을 분리 기록한다.
- XLL/COM 애드인 로드 시간을 따로 분해한다.
3) Word 시작이 느리고 간헐적 멈춤
- Normal.dotm 재생성 후 시작 시간을 비교한다.
- 프린터 드라이버 기본값을 Microsoft Print to PDF로 바꾸어 UI 블로킹 여부를 확인한다.
- 클라우드 폰트 동기화 지연 여부를 네트워크 관점에서 점검한다.
애드인 거버넌스: 영향도 기반 승인 체계
애드인 승인은 기능 필요성과 성능 영향의 곱으로 평가한다. 텔레메트리에서 애드인별 평균 로드 시간과 오류율을 추출하고, 임계치를 초과하면 격리·업데이트·대체를 진행한다.
| 평가 항목 | 지표 | 임계 기준 | 조치 |
|---|---|---|---|
| 로드 시간 | 평균·P95(ms) | P95 > 300ms | 지연 원인 분석 및 최적화 요청 |
| 오류율 | 1000 로드당 오류 수 | > 1.0 | 버전 롤백 또는 패치 |
| 충돌 기여 | 충돌 스택 내 빈도 | 상위 3위 내 | 즉시 격리 |
네트워크·프록시 환경 점검 포인트
- SSL 검사 장비가 Office 클라우드 엔드포인트를 가로채지 않는지 확인한다.
- 문서 열기 지연이 위치별로 상이하면 DNS, Anycast 경로, 프록시 PAC 규칙을 점검한다.
- 대역폭보다 지연 변동성(jitter)이 체감 속도에 더 큰 영향을 주는 경우가 많으므로 RTT의 P90과 표준편차를 모두 본다.
보안·개인정보 보호 준수
- 문서 경로, 메일 제목 등 개인식별 가능 정보는 수집 단계에서 해시·마스킹한다.
- 사용자 단말에서 서버로 전송 시 TLS를 강제하고, 저장 시 암호화를 활성화한다.
- 보존 기간 만료 시 즉시 삭제되도록 수명 주기를 자동화한다.
표준 운영 절차(SOP) 예시
- 수집 에이전트 배포 상태와 로그 전송 성공률을 점검한다.
- 전일 KPI를 집계하여 기준 대비 편차를 계산한다.
- P95 악화 애드인·버전·지역을 자동 탐지하여 티켓을 발행한다.
- 조치 후 48시간 내 재측정하여 개선 효과를 확인한다.
- 월간 리포트에서 상위 원인과 재발 방지책을 문서화한다.
현장 진단 폼 템플릿
| 항목 | 입력 예시 | 비고 |
|---|---|---|
| 사용자 그룹 | 영업본부_수도권 | OU 기준 |
| 앱/버전 | Excel 2308 | 채널 포함 |
| 증상 | 문서 열기 지연 | 재현 조건 명시 |
| KPI 변화 | P90 2.1 → 5.8초 | 기간 명시 |
| 상관 변수 | 신규 DLP 정책 배포 | 배포 타임라인 연결 |
| 가설 | DLP 실시간 검사 영향 | 검증 계획 작성 |
| 조치 | 예외 경로 추가 | A/B 비교 |
| 결과 | P90 5.8 → 2.4초 | 재발 방지책 포함 |
현실적인 최적화 순서
- 문제 애드인을 우선 격리한다.
- 디스크 I/O와 네트워크 지연의 상위 20% 단말을 먼저 개선한다.
- 표준 빌드와 GPO 템플릿을 정리하여 변수를 줄인다.
- 캐시·임시 파일 경로를 SSD 로컬 디스크로 일원화한다.
- 배포 파이프라인에 성능 회귀 감지를 포함한다.
성능 리그레션 방지: 배포 전·후 게이트
- 사전 게이트: 파일 열기 P90이 기준 대비 10% 이상 악화 시 배포 중단한다.
- 사후 게이트: 24시간 내 충돌률이 임계치 초과 시 자동 롤백한다.
- 롤링 배포: 5% → 25% → 100% 단계로 확장하며 각 단계에서 KPI를 검증한다.
문서·메일 처리량이 높은 팀을 위한 추가 팁
- Outlook 검색 인덱스는 사용자 프로필 초기화 시 야간 시간대 프리시딩을 고려한다.
- Excel 대용량 모델은 계산 옵션, 스파스 데이터 구조, Power Query 단계 축소로 재계산 시간을 단축한다.
- Word 템플릿은 매 분기 표준 검증을 통해 매크로 지연을 제거한다.
분석 자동화 예제: CSV → KPI 집계
# PowerShell: 수집 CSV를 읽어 P90을 계산한다. param([string]$Path="C:\Data\raw") $files = Get-ChildItem $Path -Filter *.csv -Recurse $result = @() foreach($f in $files){ $data = Import-Csv $f -Header Time,Metric,Value $group = $data | Group-Object Metric foreach($g in $group){ $vals = $g.Group | Select-Object -ExpandProperty Value | ForEach-Object {[double]$_} | Sort-Object if($vals.Count -gt 0){ $p90Index = [math]::Floor(0.9 * ($vals.Count-1)) $p90 = $vals[$p90Index] $result += [pscustomobject]@{ Metric=$g.Name; P90=[math]::Round($p90,3); Count=$vals.Count; File=$f.Name } } } } $result | Export-Csv "$Path\..\mart\kpi_daily.csv" -NoTypeInformation -Encoding UTF8 보고서 구성 예시
- 요약: 영향 사용자 수, 업무 영향 범주, 개선 효과
- KPI 변화: 배포 전후 P50/P90/P99 차트
- 원인 분석: 상위 애드인·버전·네트워크 경로
- 조치 사항: 즉시, 단기, 중기 항목
- 재발 방지: 정책·구성 변경과 검증 계획
FAQ
개별 사용자 민감 정보 없이도 실효성 있는 분석이 가능한가
가능하다. 단말 식별자는 해시 처리하고 파일 경로와 메일 제목은 패턴만 저장해도 성능 원인을 규명할 수 있다.
애드인을 모두 끄면 속도가 빨라지는데 업무 영향이 크다
영향도 기반으로 필수 애드인만 유지하고, 성능 지연이 큰 애드인은 공급사 최적화와 업데이트를 병행한다. 단계적 격리와 A/B 테스트로 최소 영향 구성을 찾는다.
네트워크와 디스크 중 어디를 먼저 개선해야 하나
문서 열기 지연과 앱 시작 지연의 상관관계를 분석하여 기여도가 큰 영역부터 개선한다. 일반적으로 디스크 I/O 병목이 우선순위가 높은 경우가 많다.
충돌률이 낮아도 체감 속도가 나쁜 이유는 무엇인가
충돌률은 안정성 지표이고 체감 속도는 지연 분포 문제이다. P90·P99 지연이 길면 충돌이 없어도 사용 경험이 나빠질 수 있다.
표준 빌드가 여러 개인데 통합이 어려운가
텔레메트리로 빌드별 KPI를 비교하여 최적 빌드만 남기고 나머지는 단계적으로 축소한다. 드라이버·애드인 호환성을 함께 검토한다.