# InsuRo PWA registerType을 autoUpdate로 변경

## 작업 레벨: Lv.1

## 프로젝트
- InsuRo: `/home/jay/projects/InsuRo`

## 변경 이유
현재 `registerType: "prompt"` 설정으로 인해, 배포 후에도 사용자가 "업데이트" 토스트를 누르지 않으면 구버전 Service Worker 캐시가 계속 서빙됨. 이로 인해 배포했는데 반영이 안 되는 문제가 반복 발생.

## 수정 사항 (2건)

### 1. vite.config.ts — registerType 변경
파일: `vite.config.ts`

```ts
// Before:
VitePWA({
  registerType: "prompt",

// After:
VitePWA({
  registerType: "autoUpdate",
```

### 2. src/main.tsx — prompt UI 제거 + autoUpdate 등록
파일: `src/main.tsx`

현재 코드 (라인 2~24):
```tsx
import { registerSW } from "virtual:pwa-register";
// ... toast import ...

const updateSW = registerSW({
  onNeedRefresh() {
    toast({ title: "새 버전이 출시되었습니다", ... });
  },
  onOfflineReady() {
    console.log("오프라인 사용 준비 완료");
  },
});
```

변경 후:
```tsx
import { registerSW } from "virtual:pwa-register";

registerSW({
  onRegisteredSW(swUrl, registration) {
    // 주기적 업데이트 체크 (1시간마다)
    if (registration) {
      setInterval(() => {
        registration.update();
      }, 60 * 60 * 1000);
    }
  },
  onOfflineReady() {
    console.log("오프라인 사용 준비 완료");
  },
});
```

- `onNeedRefresh` 콜백과 toast UI 제거 (autoUpdate에서는 불필요)
- `updateSW` 변수 불필요 (자동 업데이트이므로)
- `onRegisteredSW`로 1시간마다 SW 업데이트 체크 추가
- toast import 중 `ToastAction`만 사용하는 곳이 없으면 해당 import도 제거

★ toast, ToastAction import가 main.tsx에서만 사용되는지 확인 후, 사용처 없으면 제거.

## affected_files
- `vite.config.ts` (수정 — registerType prompt→autoUpdate)
- `src/main.tsx` (수정 — prompt UI 제거, autoUpdate 등록)

## 검증 시나리오
1. npm run build 성공
2. 빌드된 sw.js에 skipWaiting/clientsClaim 관련 코드 포함 확인
3. 기존 "새 버전이 출시되었습니다" 토스트가 더 이상 뜨지 않음
4. 배포 후 페이지 새로고침 시 자동으로 최신 버전 로드
