본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 07. 19:25

Facenox: 실시간 출석 추적을 위한 오프라인 우선 얼굴 인식 시스템. 몇 달간 정체되었던 도전 과제. 이 도전이 마침내 저를 출시하게

요약

실시간 얼굴 인식 출석 시스템인 Facenox의 개발 과정과 기술적 진화 과정을 다룹니다. 단순한 Python 스크립트에서 시작하여 YuNet, EdgeFace, Electron 기반의 완성도 높은 데스크톱 애플리케이션으로 발전시킨 경험을 공유합니다.

핵심 포인트

  • YuNet 및 EdgeFace를 활용한 얼굴 인식 스택 최적화
  • MediaPipe를 대체하는 커스텀 ONNX 안티 스푸핑 모델 적용
  • 보안 강화를 위해 AES-256-GCM 암호화 방식 채택
  • 완벽주의로 인한 과잉 엔지니어링의 위험성과 출시의 중요성

이 게시물은 GitHub Finish-Up-A-Thon Challenge를 위한 제출물입니다.

2025년 6월경, 저는 터미널에서 작동하는 얼굴 인식 출석 시스템을 구축했습니다. 그것은 조잡한 경계 상자(bounding boxes)를 그리기 위해 단순히 Python 명령어로 작동했습니다. 느리고 사용할 수 없는 수준이었습니다.

저는 현실 세계에서 아무도 Python 스크립트를 실행하지 않을 것이라는 점을 알고 있었습니다. 그래서 다시 작성했습니다. 그리고 또 다시 작성했습니다. 그러고 나서 누군가에게 보여주기 전까지 8개월 동안 스스로에게 "한 번만 더 리팩터링(refactor)하자"라고 말하며 시간을 보냈습니다. 저는 Haar Cascade, YOLOv8n, 그리고 SCRFD 등 모든 것을 실험했습니다. YuNet과 EdgeFace가 기존 스택을 대체했습니다... 커스텀 ONNX 안티 스푸핑(anti-spoofing) 모델이 MediaPipe를 대체했습니다. Electron + React가 터미널을 대체했습니다. AES-256-GCM이 pickle 파일을 대체했습니다. 아키텍처는 1년 동안 200줄에서 50,000줄 이상의 코드로 성장했습니다!

14개월 연속으로 스스로에게 "이건 그냥 아주 작은 아키텍처 변경일 뿐이야"라고 말하는 나의 모습.

여러분이 무슨 생각을 하는지 압니다: "심각한 과잉 엔지니어링(over-engineering)의 전형적인 사례군." 여러분의 말이 100% 맞습니다. 저는 로컬 AI 아키텍처를 "결점 없이" 만드는 데 너무 몰두한 나머지 완전히 얼어붙어 버렸습니다.

저는 결코 출시하지 못했습니다. 완벽주의 때문에 몇 달 동안 80% 단계에서 멈춰 있었습니다.
GitHub Finish-Up-A-Thon 마감 기한이 마침내 이 굴레를 끊어주었습니다. 오늘 저는 Facenox Desktop v1.0.0-beta.1을 푸시합니다. 1년 동안 침묵 속에서 개발한 후 맞이하는 저의 첫 번째 베타 릴리스입니다.

제가 만든 것

실시간 출석 추적 (attendance tracking)을 위한 오프라인 우선 (Offline-first) 얼굴 인식. 클라우드 생체 인식 매칭 없음. 특정 업체 하드웨어 불필요. 인터넷 불필요. 원본 사진 저장 안 함. 역추적이 불가능한 암호화된 얼굴 코드 (face codes)만 저장.

대부분의 전통적인 시스템:

  • 클라우드 의존적 (Cloud-Dependent): 생체 데이터를 타인의 서버에 저장합니다.
  • 독점적 (Proprietary): 비싸고 특정 업체에 종속된 (vendor-locked) 하드웨어나 스캐너가 필요합니다.
  • 취약함 (Fragile): 인터넷이 끊기는 즉시 작동을 완전히 멈춥니다.

Facenox는 판도를 바꿉니다. 모든 AI 추론 (inference) 및 생체 인식 매칭이 100% 로컬 (local)에서 유지됩니다. 데이터는 AES-256-GCM으로 저장 시 암호화되며, 모든 표준 웹캠 (내장형, USB, 또는 캡처 카드)에서 완벽하게 작동합니다.

그저 다운로드하고, 설치하고, 카메라를 사람들에게 향하세요. 그게 전부입니다.

🏢 참고: 일반적인 소비자용 데스크톱 유틸리티와 달리, Facenox는 로컬 우선 (local-first) B2B 솔루션으로 설계되었습니다. 이는 제3자 클라우드 업체로 데이터를 유출하지 않고도 기업급 생체 인식 추적이 필요한 기업, 환경 또는 조직을 위해 온프레미스 (on-premise)에서 실행되도록 설계되었습니다.

Facenox Desktop은 AGPL-3.0 라이선스 하에 완전히 오픈 소스 (open-source)입니다. 설치 프로그램을 다운로드하거나, 최신 릴리스를 가져오거나, 소스 코드로부터 직접 빌드할 수 있습니다.

  • 🌐 웹사이트: facenox.com

  • 🐙 GitHub 저장소:

    GitHub logo
    facenox / facenox

    실시간 출석 추적을 위한 오프라인 우선 얼굴 인식 시스템.

    Facenox - Offline-first Face Recognition Software

    License
    Version
    Stars
    Sponsor

    Facenox는 실시간 출석 추적을 위한 오프라인 우선 얼굴 인식 소프트웨어입니다. 사생활 보호를 위해 구축되었습니다: 생체 인식 템플릿은 종단 간 암호화(E2EE)됩니다.

    Facenox Desktop UI - Active Scan

    주의사항

    이곳은 Facenox의 공식 오픈 소스 저장소입니다. 다른 저장소, 설치 프로그램 및 다운로드 파일은 공식 출처에서 제공되지 않는 한 검증되지 않은 것으로 간주하십시오.

    참고

    사생활 보호 우선: Facenox는 얼굴 감지(face detection), 추적(tracking) 및 템플릿 매칭을 로컬에서 처리합니다. 암호화된 얼굴 템플릿은 선택적으로 연결된 장치 간 동기화될 수 있으며, 복호화 키는 오직 페어링된 하드웨어에만 저장됩니다.

    Facenox를 선택해야 하는 이유

    대부분의 얼굴 인식 시스템은 클라우드 기반 생체 인식을 사용합니다. Facenox는 그렇지 않습니다. 생체 인식 매칭은 데스크톱 로컬에서 유지됩니다.

기능Facenox클라우드 기반 시스템
데이터 거주성 (Data Residency)선택적 기기 간 동기화를 포함한 종단간 암호화 (Encrypted End-to-End)원격 클라우드
인터넷 의존성선택 사항필수
지연 시간 (Latency)실시간 (Real-time)네트워크 의존적
개인정보 보호 위험최소화됨높음

기능

  • 로컬 생체 인식 (Local Biometrics): 얼굴 탐지 (Face detection), ByteTrack 피사체 추적 (subject tracking), 그리고 ONNX 생존 확인 (liveness verification).
  • 크로스 플랫폼 (Cross-Platform): Windows, macOS, Linux 네이티브 지원.
  • 동의 인지 (Consent-Aware): 생체 인식 등록 및 삭제 동의를 위한 내장 지원.
  • 피사체 관리 (Subject Management): 전체…

GitHub에서 보기

데모

📸 데스크톱 앱 스크린샷 및 기능 보기

메인 패널

라이브 뷰 (데모)

개요

보고서 관리 및 내보내기

멤버 추가 및 등록

일반 설정

일반 설정

보안 및 암호화 (Security & Encryption)

로컬 데이터베이스 (Local Database)

재도전기 (The Comeback Story)

원래 프로토타입은 200줄의 Python 코드로, 기술적으로는 작동했지만 실제 방 환경(조명 불량, 측면 프로필, 사람이 다른 사람 사진을 들고 위장하는 경우 등)에서 사용하려 하면 무너지는 것이었습니다. 그것은 제품이 아니었습니다. 누군가에게 보여주기엔 너무 두려웠던 개념 증명 (proof of concept)에 불과했습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0