# 작업 보고서: task-256.1

## 작업 내용
네이버 플레이스 모듈(SmartEditor `se-placesMap`) 감지 버그 수정.

SmartEditor의 플레이스 위젯은 `place.naver.com` URL이 아닌 CSS 클래스(`.se-placesMap`)와 `data-linkdata` 속성(`placeId`, `eventTarget`)으로 삽입되어 기존 URL 매칭으로는 감지 불가했음.

## 수정 내용

### 파일: `/home/jay/projects/InfoKeyword/worker/crawler/blog_content.py`
함수: `_detect_naver_special_links()` (라인 219~262)

**변경 1 - CSS 셀렉터 확장 (라인 233)**:
- 기존: `.se-module-map, .se-map, .se_map`
- 수정: `.se-module-map, .se-map, .se_map, .se-placesMap, .se-section-placesMap`

**변경 2 - data-linkdata placeId/eventTarget 감지 추가 (라인 236~254)**:
- `placeId` 키가 존재하면 `has_place = True`
- `eventTarget == "placeDesc"`이면 `has_place = True`
- 기존 URL 기반 감지(`place.naver.com`, `map.naver.com`, `talk.naver.com`, `talkpf.naver.com`) 유지

## 생성/수정 파일 목록
- 수정: `/home/jay/projects/InfoKeyword/worker/crawler/blog_content.py`

## 테스트 결과
- contend14313 (플레이스 있음): `has_place=True` ✅
- hyo761 (플레이스 없음): `has_place=False` ✅

## Worker 재시작
- 포트 8100 재시작 완료
- health check 정상: `{"status":"ok","service":"inforkeyword-worker"}`

## 셀프 QC
- [x] 1. 다른 파일 영향 없음 (함수 시그니처/반환값 변경 없음)
- [x] 2. 엣지 케이스: 빈 data-linkdata → try-except 처리, 빈 placeId → falsy로 감지 안 됨 (정상)
- [x] 3. 작업 지시와 정확히 일치
- [x] 4. 에러 처리: 기존 try-except 패턴 유지
- [x] 5. 테스트: 플레이스 있는/없는 블로그 모두 커버
- 1-B 데이터 계약 체크리스트: 해당 없음 (`workers/`, `src/types/`, `src/services/`, `shared/schemas/` 변경 없음)

## 자동 검증 (qc_verify.py)
```json
{
  "task_id": "task-256.1",
  "verified_at": "2026-03-04T19:28:51",
  "overall": "WARN",
  "checks": {
    "api_health": {"status": "SKIP", "details": ["Skipped via --skip flag"]},
    "file_check": {"status": "PASS", "details": ["OK (12165 bytes): blog_content.py", "DONE FILE FOUND", "REPORT FOUND (2253 bytes)", "3/3 checks passed"]},
    "data_integrity": {"status": "WARN", "details": ["task-timers.json status='running' → end 호출로 해결"]},
    "test_runner": {"status": "SKIP"},
    "schema_contract": {"status": "SKIP"}
  }
}
```

## 마아트 독립 검증
- **판정: PASS**
- CSS 셀렉터 `.se-placesMap`, `.se-section-placesMap` 추가 확인 ✅
- `placeId`, `eventTarget` 감지 추가 확인 ✅
- 기존 URL 기반 감지 유지 확인 ✅
- 실행 테스트 재검증: contend14313=True, hyo761=False - 예상값 일치 ✅
- 재작업 불필요

## 버그 유무
- 발견된 버그 없음

## 비고
- 이 수정은 기존 감지 로직을 **확장**한 것이므로 기존 동작에 영향 없음
- CSS 셀렉터와 data-linkdata 감지를 모두 추가하여 이중 안전장치 구현
