**task-2208 완료 보고** **task-2208 완료 보고서** **핵심 결과** 3건 모두 수정 완료. (1) viewer/sign/annotate 모드의 공통 PDF 뷰어 구조로 재구성 + ErrorBoundary 추가로 탭 전환 크래시 해소, (2) 드래그 이동/모서리 리사이즈/삭제 버튼 구현, (3) 적용하기→다운로드 2단계 UX 분리. npm run build 성공, tsc 에러 0건. PR #43 머지 완료. ## 수정 파일별 검증 상태 - `src/pages/PdfEditor.tsx` — 탭 전환 구조 변경 + ErrorBoundary + 드래그/리사이즈 + 적용/다운로드 분리 — grep "mode === \"viewer\" || mode === \"sign\"" OK, grep "PdfErrorBoundary" OK, grep "cursor-move" OK, grep "appliedPdfBytes" OK — **verified** - `src/hooks/usePdfSignature.ts` — 변경 없음 (updateOverlay/removeOverlay는 기존 hook에 이미 존재) — **verified** - `src/components/pdf-editor/SignaturePanel.tsx` — 적용하기/다운로드 2단계 버튼 분리 + props 추가 — grep "적용하기" OK, grep "onDownloadApplied" OK — **verified** ## 발견 이슈 및 해결 ### 자체 해결 (3건) 1. **탭 전환 시 Document 컴포넌트 unmount/remount** — viewer/sign/annotate 3개 모드를 하나의 조건 블록으로 통합 **발견/해결 이슈 3건** 1. **탭 전환 시 Document 컴포넌트 unmount/remount** — viewer/sign/annotate 3개 모드를 하나의 조건 블록으로 통합하여 Document 컴포넌트가 유지되도록 변경 2. **드래그/리사이즈 시 매 mousemove마다 React state 업데이트** — Gemini HIGH 리뷰 대응: DOM 직접 조작 후 mouseup에서만 state 반영 3. **적용하기 클릭 시 이전 모드의 적용 결과가 남는 문제** — 모드 탭 전환 시 `setAppliedPdfBytes(null)` 리셋 추가