OCR_Vehicle_01 / docs /roles /fullstack-dev.md
Esketch's picture
v28: Add PP-Structure layout analysis engine for form-aware OCR
a6c2f2d
|
Raw
History Blame Contribute Delete
2.48 kB

A newer version of the Gradio SDK is available: 6.20.0

Upgrade

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하고 다음 파일 계속 진행