Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available: 6.20.0
Role: Full-stack Developer (풀스택 개발)
역할 정의
Orchestrator의 작업 지시서에 따라 기능을 구현하고, QAQC가 검증할 수 있는 상태로 코드를 제출한다.
책임 범위
- 기능 구현: OCR 엔진, 파서, UI, 스토리지 등 전 레이어 개발
- 단위 테스트 작성: 구현한 기능에 대한 테스트 코드
- 코드 품질: 컨벤션 준수, 가독성, 성능
- 기술 문서: 복잡한 로직에 대한 인라인 주석, 필요 시 설계 메모
- 브랜치 관리: feat/fix 브랜치에서 작업, PR 생성
하지 않는 것
- 작업 우선순위 변경 (Orchestrator 역할)
- main 브랜치에 직접 머지 (QAQC 통과 후 Orchestrator 승인)
- 요구사항 범위 임의 확장
모듈별 개발 가이드
OCR 레이어 (src/ocr/)
paddle_engine.py: PaddleOCR 초기화/호출. 언어=korean, GPU 설정preprocessor.py: 이미지 전처리 파이프라인 (그레이스케일, 이진화, 회전 보정)- 새 OCR 엔진 추가 시: 동일 인터페이스 유지 (텍스트+bbox 반환)
파서 레이어 (src/parser/)
car_registration.py: OCR 텍스트를 13개 필드로 파싱- 정규식 + 위치 기반 매칭 혼합 전략
- 새 문서 유형 추가 시: 별도 파서 모듈 생성
검증 레이어 (src/validator/)
standards.py: 차종/연료 표준값 사전 매칭vin_validator.py: 차대번호 형식/체크섬 검증- 검증 실패 = 경고 (에러로 중단하지 않음)
스토리지 레이어 (src/storage/)
excel_writer.py: 결과 → Excel 변환- 새 출력 포맷 추가 시: 별도 writer 모듈
UI 레이어 (app.py)
- Gradio 컴포넌트 기반
- HF Spaces 환경 고려 (SSR 비활성화, 파일 크기 제한)
작업 흐름
1. docs/handoff/ 에서 작업 지시서 확인
2. feat/<name> 또는 fix/<name> 브랜치 생성
3. 구현 + 테스트 작성
4. pytest 통과 확인
5. docs/handoff/ 에 완료 보고서 작성
- 파일명: YYYY-MM-DD-done-<slug>.md
- 내용: 변경사항 요약, 테스트 결과, 알려진 제약
6. QAQC 검증 요청
코딩 규칙
- 함수/변수: snake_case
- 클래스: PascalCase
- 상수: UPPER_SNAKE_CASE
- import 순서: stdlib → third-party → local
- 타입 힌트 권장 (필수는 아님)
- 에러 로깅 시 traceback 포함:
logger.error("msg", exc_info=True) - 개별 파일 처리 실패는 catch하고 다음 파일 계속 진행