# InsuRo PDF 편집기 버그 수정 (2건)

## 작업 레벨: Lv.1

## 프로젝트 시스템 3문서
- DevSystem: `/home/jay/workspace/memory/plans/anu-guide-system/plan.md`

## 프로젝트
- InsuRo: `/home/jay/projects/InsuRo`
- 배포: Cloudflare Pages (GitHub push → CI → 자동 배포)

## 버그 상세

### 버그 1: PDF 로딩 실패
- **현상**: PDF 파일 업로드 시 "Failed to load PDF file" 표시, 페이지 수 "1 / 0"
- **위치**: `src/pages/PdfEditor.tsx` — PDF 파일 로딩 로직
- **원인 추정**: FileReader로 읽은 ArrayBuffer가 한 번 사용 후 detach됨. react-pdf의 Document 컴포넌트에 전달할 때 ArrayBuffer 복사(`arrayBuffer.slice(0)`) 누락
- **재현**: PDF 편집기 페이지 → 아무 PDF 업로드 → "Failed to load PDF file"

### 버그 2: 서명 탭 클릭 시 흰 화면 크래시
- **현상**: 서명 탭 클릭 → `TypeError: Cannot perform Construct on a detached ArrayBuffer` → 전체 페이지 흰 화면
- **위치**: `src/pages/PdfEditor.tsx` 또는 `src/hooks/usePdfSignature.ts`
- **에러 스택**: `new Uint8Array(<anonymous>)` → `PdfEditor-BOOdPEij.js:52:95686`
- **원인 추정**: 뷰어에서 ArrayBuffer를 소비한 후 서명 탭에서 같은 buffer 재사용 시도 → detached buffer 접근 → 크래시
- **재현**: PDF 업로드 → 서명 탭 클릭 → 흰 화면

## 수정 방향
1. PDF 파일 로딩 시 `arrayBuffer.slice(0)`로 복사본 생성하여 react-pdf에 전달
2. 각 탭(서명, 주석 등)에서 PDF 데이터 접근 시에도 별도 복사본 사용
3. ErrorBoundary가 있으면 서명 탭 크래시를 잡아서 흰 화면 대신 에러 메시지 표시

## affected_files
- `src/pages/PdfEditor.tsx` (수정)
- `src/hooks/usePdfSignature.ts` (수정 가능)
- `src/components/pdf-editor/SignaturePanel.tsx` (수정 가능)

## 검증 시나리오
1. PDF 편집기에서 PDF 파일 업로드 → 뷰어에서 정상 렌더링 (페이지 수 표시)
2. PDF 로딩 후 서명 탭 클릭 → 크래시 없이 서명 패널 표시
3. PDF 로딩 후 합치기/나누기/변환/주석 탭 전환 → 에러 없음
4. npm run build 성공 확인
5. 기존 이미지 편집기 동작에 영향 없음 확인