# task-2291 완료 보고서

## S - Situation
task-2290에서 InsuRo 소식지/보험료 보험사 드롭다운을 insurance-companies.ts 기준 정식명칭으로 동기화 완료. 그러나 서버 COMPANY_PATTERNS 키값과 DB(newsletters, premium_data)에는 여전히 약칭(DB손보, KB손보 등)이 저장되어 프론트-백엔드 간 불일치 발생.

## C - Complication
드롭다운에는 "DB손해보험"이 표시되지만 서버 자동감지는 "DB손보"를 반환하여 매칭 실패. AXA손보→AIG손해보험 이름 변경도 반영 필요.

## Q - Question
서버 COMPANY_PATTERNS, 교정사전, DB 데이터를 정식명칭으로 통일하여 프론트-백엔드 정합성을 확보할 수 있는가?

## A - Answer
3개 수정 모두 완료: (1) COMPANY_PATTERNS 키 8개를 정식명칭으로 변경 + 약칭 패턴 유지, (2) INSURANCE_TEXT_CORRECTIONS에 약칭→정식 교정 8쌍 추가, (3) DB 마이그레이션 SQL 16건(newsletters 8건 + premium_data 8건) 생성. python3 -m py_compile 통과, npm run build 13.16s 성공.

## 수정 파일 목록

| 파일 | 변경 내용 | grep 검증 | 상태 |
|------|-----------|-----------|------|
| server/main.py:3825-3840 | COMPANY_PATTERNS 키 8개 정식명칭 변경 + 패턴 리스트 확장 | grep "DB손해보험" OK (3건), grep "AIG손해보험" OK (2건) | verified |
| server/main.py:3878-3882 | INSURANCE_TEXT_CORRECTIONS에 약칭→정식 교정 8쌍 추가 | grep "AXA손보.*AIG손해보험" OK | verified |
| supabase/migrations/20260428_company_name_migration.sql | newsletters+premium_data 약칭→정식 UPDATE 16건 (신규) | grep "AIG손해보험" OK (2건), grep "NH농협손해보험" OK (2건) | verified |

## 변경 상세

### COMPANY_PATTERNS 변경 매핑
- 한화손보 → 한화손해보험 (패턴: 한화손해, 한화손보, 한화, hanwha)
- DB손보 → DB손해보험 (패턴: DB손해, DB손보, DB손해보험, DB생명)
- 농협손보 → NH농협손해보험 (패턴: NH농협, 농협손보, NH농협손해, 농협)
- KB손보 → KB손해보험 (패턴: KB손해, KB손보, KB손해보험, KB생명)
- 롯데손보 → 롯데손해보험 (패턴: 롯데손해, 롯데손보, 롯데)
- MG손보 → MG손해보험 (패턴: MG손해, MG손보)
- 하나손보 → 하나손해보험 (패턴: 하나손해, 하나손보)
- AXA손보 → AIG손해보험 (패턴: AIG, AXA, AXA손보)

## 발견 이슈 및 해결

### 자체 해결 (1건)
1. **AXA→AIG 이름 불일치** — COMPANY_PATTERNS에서 AXA손보 키를 AIG손해보험으로 변경하되, AXA/AXA손보 패턴을 유지하여 기존 PDF에서 AXA 문자열 감지 시에도 AIG손해보험으로 매핑되도록 처리

### 범위 외 미해결 (1건)
1. **DB 마이그레이션 실행** — SQL 파일은 생성했으나 실제 Supabase DB 실행은 운영 환경에서 수행 필요. 범위 외 사유: 프로덕션 DB 직접 실행은 승인 필요

## L1 스모크테스트 결과
- 서버 재시작: 성공 (PID 2969605, localhost:8000)
- API 응답 확인: curl http://localhost:8000/api/status → 200 OK, {"status":"ok","version":"2.1.0-realdata"}
- Python 컴파일: `python3 -m py_compile server/main.py` — 성공
- npm run build: 성공 (13.16s, dist/ 타임스탬프 2026-04-28 20:58)
- 로직 테스트 (7건 ALL PASS):
  - _detect_company("DB손보 보험료 안내") → "DB손해보험" PASS
  - _detect_company("AXA손보 소식지") → "AIG손해보험" PASS
  - _detect_company("AXA 보험 상품") → "AIG손해보험" PASS
  - _detect_company("농협손보 가입 안내") → "NH농협손해보험" PASS
  - _detect_company("KB손보 보험료") → "KB손해보험" PASS
  - correct_insurance_text("DB손보 상품 안내") → "DB손해보험 상품 안내" PASS
  - correct_insurance_text("AXA손보 보험료") → "AIG손해보험 보험료" PASS
- 스크린샷: 해당없음 (백엔드 딕셔너리 변경, UI 없음)
- pytest: 2524 passed, 0 failed (102.43s)

## 빌드 결과
- 빌드 결과: 성공
- 타임스탬프: 2026-04-28 20:58
- dist/ 159 precache entries (5640.32 KiB)

## 검증 시나리오 확인
1. "DB손보" 텍스트 → COMPANY_PATTERNS에서 "DB손해보험"으로 매핑: verified (패턴 리스트에 "DB손보" 포함)
2. "AXA" 또는 "AXA손보" → "AIG손해보험"으로 매핑: verified (패턴 리스트에 AIG, AXA, AXA손보 포함)
3. 마이그레이션 SQL 정상 생성: verified (16건 UPDATE, 파일 존재 확인)
4. 서버 import 정상: verified (py_compile 통과)
5. npm run build 성공: verified (13.16s)

## 모델 사용 기록
- 팀원: 스바로그 / 작업: COMPANY_PATTERNS + 교정사전 수정 / 모델: sonnet
- 팀원: 벨레스 / 작업: SQL 마이그레이션 파일 생성 / 모델: sonnet

## 세션 통계
- 총 도구 호출: 약 25회

## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회


## 세션 통계
- 총 도구 호출: 0회

