# task-1016.1: Lightpanda 헤드리스 브라우저 심층 분석 + 인포키워드 적용 방안

## 목표
Lightpanda 오픈소스 헤드리스 브라우저를 심층 분석하고, 우리 시스템(특히 인포키워드 네이버 검색결과 스크린샷)에 어떻게 적용할 수 있는지 구체적 방안을 도출한다.

## ⚠️ 분석 깊이 규칙
- **표면적 요약 금지** — 파일 내부까지 분석, 체계적·심도있는 A to Z 정리
- 우리 시스템에 어떻게 적용할지까지 구체적 방안 도출

## Phase 1: GitHub 레포 심층 분석

### 분석 대상
- **GitHub 레포**: https://github.com/lightpanda-io/browser
- **공식 사이트**: https://lightpanda.io/

### 분석 항목 (모두 필수)

1. **아키텍처 분석**
   - Zig 기반 구조, Chromium/WebKit과의 근본적 차이
   - 왜 11배 빠르고 9배 메모리 절약인지 기술적 원리
   - JavaScript 엔진 내장 여부 (V8? SpiderMonkey? 자체?)
   - CSS 렌더링 방식 (화면 없이 돌리면 CSS는 어떻게?)

2. **호환성 분석**
   - Playwright 연결 방식 (CDP 프로토콜 상세)
   - 현재 지원하는 Playwright API 범위 (screenshot, evaluate, waitFor 등)
   - **Playwright screenshot() 메서드 지원 여부** — 핵심! 이게 되어야 인포키워드에 쓸 수 있음
   - CSS 렌더링/스크린샷 품질 (Chrome 대비 차이)
   - 한글 폰트 렌더링 테스트 가능 여부

3. **성숙도 평가**
   - 현재 버전, Beta/Stable 상태
   - 알려진 제한사항 (README, Issues 확인)
   - 프로덕션 사용 가능 여부
   - 스크린샷 기능의 안정성 (Issues에서 screenshot 관련 검색)

4. **설치 및 실행**
   - Linux x86_64 바이너리 다운로드 방법
   - 실행 명령어 + CDP 서버 시작
   - Playwright 연결 코드 예시

## Phase 2: 우리 시스템 적용 분석

### 현재 인포키워드 스크린샷 시스템
- **파일**: `/home/jay/projects/InfoKeyword/worker/reporter/screenshot.py`
- **방식**: Playwright + Chromium (headless) → 네이버 검색결과 탭별 스크린샷
- **호출**: `async with async_playwright() as p: browser = await p.chromium.launch(headless=True)`
- **스크린샷 타입**: 블로그탭, 카페탭, 전체 검색결과 등

### 적용 가능성 평가
1. **코드 변경 범위 추정**
   - screenshot.py에서 `p.chromium.launch()` → `p.chromium.connect_over_cdp()` 변경만으로 되는지
   - 아니면 추가 설정/코드 변경이 필요한지
   - Lightpanda의 CDP 엔드포인트 주소 형식

2. **성능 비교 예측**
   - 현재 Chrome headless: 메모리 ~1GB/인스턴스, 스크린샷 소요 시간
   - Lightpanda 전환 시 예상 개선: 메모리 ~110MB, 속도 11배
   - 동시 스크린샷 가능 수 증가 예측

3. **리스크 평가**
   - 네이버 JavaScript 렌더링 호환성 (네이버는 JS 의존도 높음)
   - 한글 폰트 렌더링 품질
   - Beta 단계에서 프로덕션 사용 시 안정성

4. **기타 활용 가능 영역**
   - ThreadAuto 크롤링 (RSS 외 웹 크롤링)
   - 대시보드 자동화 파이프라인에서 웹 작업
   - MediScan 심평원 PDF 다운로드

## Phase 3: 적용 로드맵 제안
- 도입 판단 (Go/No-Go)과 근거
- Go인 경우: PoC 실행 계획 (인포키워드 screenshot.py에 Lightpanda 연결 테스트)
- 단계적 전환 방안 (Chrome fallback 유지하면서 A/B 비교)

## 산출물
- `memory/reports/task-1016.1.md` — 전체 분석 보고서
- 핵심 발견사항 + 적용 방안 + 리스크 + 로드맵

## 한정승인 범위
- Phase 1~3 전체를 팀장 자율 진행
- 리서치 + 분석만 (코드 수정 없음)
