← 포트폴리오 목록

바코드 연동 포장 영상 자동 녹화 프로그램

바코드 스캔으로 녹화를 시작하고 재스캔 또는 엔터 입력으로 저장하는 작업대 촬영 화면, 송장번호·촬영 시각 오버레이, H.264 압축, AWS S3 자동 업로드와 3개월 Lifecycle 삭제, 송장번호 기반 CS 영상 조회까지 이어지는 포장 영상 기록 흐름을 Electron(주력)과 C# WinForms/WPF(대안) 구성으로 설계하고 웹 목업으로 구현합니다.

프로젝트 납품 요약

아래 프로젝트 개요와 핵심 기능에서 구현 화면을 확인할 수 있습니다.

서비스 타입Web
업종물류 시스템
기술 스택
C#WinForms/WPFElectronReactNode.jsExpressPostgreSQLFFmpegAWS S3
주요 기능
  • 바코드 스캔 자동 녹화
  • 오버레이·H.264 압축
  • S3 자동 업로드·보관 정책
  • CS 송장번호 영상 조회

프로젝트 개요

범위: 개발, 디자인, 기획

바코드 스캔으로 녹화를 시작하고 재스캔 또는 엔터 입력으로 저장하는 작업대 촬영 화면, 송장번호·촬영 시각 오버레이, H.264 압축, AWS S3 자동 업로드와 3개월 Lifecycle 삭제, 송장번호 기반 CS 영상 조회까지 이어지는 포장 영상 기록 흐름을 Electron(주력)과 C# WinForms/WPF(대안) 구성으로 설계하고 웹 목업으로 구현합니다. 사내 업무 도구에 맞춰 단일 화면 중심 동선으로 구성합니다.

작업 범위

  • 바코드 스캔 자동 녹화: 작업자가 송장 바코드를 스캔하면 녹화가 자동으로 시작되고, 같은 송장을 재스캔하거나 엔터를 누르면 저장과 함께 종료됩니다. 화면에는 라이브 영상 영역, 현재 송장번호, 경과 시간이 한 화면에 표시됩니다
  • 오버레이·H.264 압축: 촬영 영상 위에 송장번호와 촬영 시각을 굽는 오버레이를 적용하고, 업로드 전에 H.264로 압축해 용량을 줄입니다. 작업대 PC 사양에 맞춘 인코딩 프로필을 선택할 수 있습니다
  • S3 자동 업로드·보관 정책: 저장이 끝난 영상은 송장번호_시각.mp4 이름으로 AWS S3에 자동 업로드되고, 실패하면 재시도 큐에 쌓입니다. 버킷에는 3개월 경과 영상을 지우는 Lifecycle 규칙이 적용됩니다
  • CS 송장번호 영상 조회: CS 담당자가 송장번호를 입력하면 해당 포장 영상을 찾아 바로 재생하거나 내려받을 수 있습니다. 같은 송장의 영상이 여러 건이면 시각순으로 나열됩니다

주요 업무

  • 바코드 스캔 자동 녹화 화면: USB 바코드 스캐너의 키보드 입력(HID)을 상태 머신으로 해석하여 대기·녹화·저장 상태를 전환하는 구조로 설계합니다
  • 오버레이·H.264 압축 화면: FFmpeg 필터 체인으로 drawtext 오버레이와 H.264 인코딩을 단일 파이프로 처리하고, 하드웨어 인코더가 없으면 소프트웨어 인코딩으로 폴백합니다
  • S3 자동 업로드·보관 정책 화면: S3 멀티파트 업로드와 로컬 재시도 큐, 업로드 전용 IAM 정책과 Lifecycle 규칙을 코드로 정의하는 구조로 설계합니다
  • CS 송장번호 영상 조회 화면: 송장번호 접두 검색용 S3 키 규칙과 서명 URL 발급으로 영상 재생·다운로드를 처리하는 구조로 설계합니다
바코드 연동 포장 영상 자동 녹화 프로그램
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

4K 웹캠 4대가 동시에 녹화할 때 PC 사양에 따라 인코딩 부하가 달라지므로 해상도·비트레이트 보수 설정과 하드웨어 인코더 폴백 설계

바코드 스캐너 입력이 키보드 입력과 같은 경로로 들어오므로 다른 창 포커스 상태에서도 스캔을 놓치지 않는 입력 수신 구조 설계

업로드 중 네트워크가 끊겨도 영상이 유실되지 않도록 로컬 큐와 재시도

중복 업로드 방지 규칙 설계 필요

C# WinForms/WPF와 Electron 중 작업대 PC 환경과 유지보수 부담을 기준으로 주력 구성을 정하는 선택 기준 정리

구현 내용

핵심 기능 상세

핵심 기능 1

바코드 스캔 자동 녹화

작업자가 송장 바코드를 스캔하면 녹화가 자동으로 시작되고, 같은 송장을 재스캔하거나 엔터를 누르면 저장과 함께 종료됩니다. 화면에는 라이브 영상 영역, 현재 송장번호, 경과 시간이 한 화면에 표시됩니다.

  • 스캐너 입력의 키 간격과 종료 키(엔터)로 스캔과 수동 타이핑을 구분하는 입력 버퍼 구현
  • 대기·녹화중·저장중·오류 4상태 머신과 재스캔 토글 규칙 정의
  • 녹화 시작·종료 이벤트를 로컬 SQLite 작업 로그에 기록하는 구조 설계

스캔 입력이 중복되거나 녹화 중 다른 송장이 스캔되는 경우를 상태 머신 규칙으로 분기하여 영상이 섞이지 않도록 설계합니다.

바코드 스캔 자동 녹화
바코드 스캔 자동 녹화 실제 화면
핵심 기능 2

오버레이·H.264 압축

촬영 영상 위에 송장번호와 촬영 시각을 굽는 오버레이를 적용하고, 업로드 전에 H.264로 압축해 용량을 줄입니다. 작업대 PC 사양에 맞춘 인코딩 프로필을 선택할 수 있습니다.

  • FFmpeg drawtext 필터로 송장번호와 촬영 시각을 영상 프레임에 직접 삽입
  • NVENC·QSV 하드웨어 인코더 탐지 후 libx264 소프트웨어 폴백 구조 설계
  • 해상도·비트레이트 프로필을 작업대별로 저장하고 동시 인코딩 수를 제한하는 작업 풀 구현

4대 작업대가 동시에 녹화하는 상황을 고려해 인코딩 프로필과 동시 처리 수를 제한하는 보수적 설정 구조를 설계합니다.

오버레이·H.264 압축
오버레이·H.264 압축 실제 화면
핵심 기능 3

S3 자동 업로드·보관 정책

저장이 끝난 영상은 송장번호_시각.mp4 이름으로 AWS S3에 자동 업로드되고, 실패하면 재시도 큐에 쌓입니다. 버킷에는 3개월 경과 영상을 지우는 Lifecycle 규칙이 적용됩니다.

  • AWS SDK 멀티파트 업로드와 파트 단위 이어받기 구현
  • 지수 백오프 재시도와 로컬 디스크 영속 큐로 네트워크 단절 대비
  • 업로드 전용 IAM 정책과 Lifecycle 3개월 만료 규칙을 인프라 코드로 정의

업로드가 끝나기 전에는 로컬 원본을 삭제하지 않는 규칙으로 네트워크 단절 시 영상 유실을 막는 구조를 설계합니다.

S3 자동 업로드·보관 정책
S3 자동 업로드·보관 정책 실제 화면
핵심 기능 4

CS 송장번호 영상 조회

CS 담당자가 송장번호를 입력하면 해당 포장 영상을 찾아 바로 재생하거나 내려받을 수 있습니다. 같은 송장의 영상이 여러 건이면 시각순으로 나열됩니다.

  • S3 키를 송장번호 접두로 설계해 ListObjects 접두 검색으로 영상 탐색
  • 만료 시간이 있는 서명 URL로 재생·다운로드 링크 발급
  • HTML5 video 플레이어와 시각 기준 정렬 목록 구현

별도 영상 DB 없이 파일명 규칙과 S3 접두 검색만으로 송장번호 조회를 처리하는 단순 구조를 설계합니다.

CS 송장번호 영상 조회
CS 송장번호 영상 조회 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

스캐너 입력·녹화 상태 머신 설계 · 2026.10

HID 입력 버퍼, 대기·녹화중·저장중 상태 전이 규칙과 작업 로그 구조 설계

STEP 2

웹캠 녹화와 오버레이 인코딩 구현 · 2026.10

MediaRecorder 캡처, FFmpeg drawtext 오버레이와 H.264 인코딩 프로필 구현

STEP 3

S3 업로드 큐와 보관 정책 코드화 · 2026.10

멀티파트 업로드, 재시도 큐, 업로드 전용 IAM과 Lifecycle 3개월 규칙 정의

STEP 4

CS 조회 화면과 설치 구성 · 2026.10

송장번호 접두 검색, 서명 URL 재생, 설치 파일과 자동 시작 구성 구현

개발 결과

스캔 입력 판별 상태 머신 설계키 입력 간격으로 스캐너와 수동 입력을 구분하고 4개 상태 전이로 중복 스캔·송장 혼입을 차단하는 구조 설계
오버레이 인코딩 파이프라인 구축FFmpeg 필터 체인으로 송장번호·시각 오버레이와 H.264 압축을 한 번에 처리, 하드웨어 인코더 폴백 구조 적용
유실 방지 업로드 큐 구현멀티파트 업로드와 디스크 영속 재시도 큐를 구성하고 업로드 완료 확인 전 로컬 원본 보존 규칙을 적용
보관 정책 인프라 코드화S3 버킷, 업로드 전용 IAM, 3개월 Lifecycle 만료 규칙을 코드로 정의해 설정 재현성을 확보하는 구조 설계

기술적 주안점

  • 스캔 입력이 중복되거나 녹화 중 다른 송장이 스캔되는 경우를 상태 머신 규칙으로 분기하여 영상이 섞이지 않도록 설계합니다
  • 4대 작업대가 동시에 녹화하는 상황을 고려해 인코딩 프로필과 동시 처리 수를 제한하는 보수적 설정 구조를 설계합니다
  • 업로드가 끝나기 전에는 로컬 원본을 삭제하지 않는 규칙으로 네트워크 단절 시 영상 유실을 막는 구조를 설계합니다

유사한 프로젝트를 기획하고 계신가요?

필요한 기능과 일정을 알려주시면 개발 범위를 함께 정리하겠습니다.

프로젝트 문의