딥페이크 분석 결과의 서비스 연동과 Soft-gate 처리
이 글은 ForenShield에서 GPU 추론 결과를 큐·API·화면까지 연결하고, 얼굴 없음 같은 상황을 soft-gate로 처리한 과정을 정리한 기술 회고다.
프로젝트와 동작 원리
ForenShield는 분석 요청이 들어오면 AI 서버가 영상을 받아 추론하고, 결과를 백엔드에 남겨 프론트에서 보게 하는 구조다. 나는 AI 탐지뿐 아니라 RabbitMQ·S3를 통한 GPU 작업 전달, 분석 결과 API, Recovery Score·CoC 검증 연동, 화면에서 점수와 안내가 맞게 보이도록 하는 쪽까지 작업했다.
원리는 단순해 보인다. 추론이 끝나면 결과를 저장하고 조회하면 된다. 실제로는 분석이 길어서 중간 진행률이 필요하고, overlay 같은 부가 산출물은 본분석과 타이밍이 다르며, 얼굴이 없거나 너무 작은 입력은 “실패”로 둘지 “완료+안내”로 둘지 정책이 필요하다. 모델 점수만 맞아도 서비스 경험이 깨질 수 있는 지점들이었다.
무엇이 문제였나
분석이 끝날 때까지 진행률이 거의 안 움직이면 사용자는 멈춘 줄 안다. overlay를 본분석에 전부 구워 넣으면 파이프가 무거워지고, 재분석 때 예전 overlay가 섞일 위험도 있다. 얼굴이 없는 입력을 그냥 에러로 처리하면, 실제로는 분석이 끝난 건지 실패한 건지 UI에서 구분이 어렵다.
권한·세션 쪽도 서비스 신뢰와 연결됐다. 로그인 rate limit, step-up 세션 연장, 일반 사용자 API에서 관리자 접근 차단처럼, 결과 연동만 보면 안 보이는 문제들이 같이 있었다.
실제로 어떻게 개선했나
추론 → 큐 → 저장
RabbitMQ와 S3로 GPU 분석 작업을 넘기는 구조를 사용했다. 본분석 중에는 mid-run progress를 발행해, 백엔드 상태 폴링이 실제 GPU 단계를 반영하게 맞췄다. 결과가 한 번에 점프하지 않고 진행이 보이게 만드는 쪽이 운영·UX 모두에 필요했다.
증거 상세·분석 결과 API에는 module timeline, overlay URL, soft COMPLETED advisory 같은 정보를 남길 수 있게 정리했다. 모델이 낸 값을 저장만 하는 게 아니라, 화면이 해석할 수 있는 형태로 노출하는 일이었다.
On-demand overlay
본분석 때 overlay MP4를 전부 구워 두지 않고, 필요할 때 overlay job으로 생성하도록 맞춘 흐름이 있었다. job 상태 API와 RabbitMQ 연동으로 결과를 붙이고, 재분석 때 이전 요청의 overlay가 잘못 재사용되지 않게 가드를 뒀다. 무거운 부가 산출물을 본분석 경로에서 분리한 개선이었다.
Soft-gate
얼굴이 없거나(FACE 관련), 너무 작거나, temporal 모듈을 돌리기 어려운 상황을 무조건 실패로 두지 않았다. 일부는 soft COMPLETED와 함께 errorCode·안내 메시지를 남기고, UI에서는 실패 화면이 아니라 advisory로 보이게 했다. 탐지 파이프가 “아무것도 못 했다”와 “조건상 일부 모듈만 돌았다”를 구분할 수 있어야 점수와 종합 소견 해석이 가능하다.
화면·권한 연동
동적 가중 riskScore와 모듈별 임계값 표시, deepfake/forgery 레인 분리가 화면에 맞게 보이도록 맞췄다. 미로그인·권한에 따른 접근 가드도 함께 손봤다. 모델 결과가 맞아도 잘못된 사용자가 보거나, 점수가 화면 규칙과 어긋나면 서비스 신뢰가 깨진다.
정리
서비스 연동에서 한 일은 추론 함수 하나를 호출한 것이 아니었다. 진행률, overlay job, soft-gate, 결과 API, 화면 해석, 권한까지 한 줄로 맞춰야 모델 결과가 제품에 남았다. soft-gate는 예외 처리를 대충 넘긴 게 아니라, 완료와 실패 사이에 있는 분석 상태를 명시적으로 남기기 위한 선택이었다.
다음에 다시 한다면 soft-gate 코드별 사용자 문구와 QA 시나리오를 더 초기에 고정해 두고 싶다.
관련 코드: https://github.com/owhat02/ai-forensic , https://github.com/owhat02/backend-forensic , https://github.com/owhat02/frontend-deepfake
'기술 회고' 카테고리의 다른 글
| [기술 회고] 딥페이크 탐지 Late Fusion 설계와 점수 안정화 (0) | 2026.07.27 |
|---|---|
| [기술 회고] 실시간 경매 마감 처리와 동시성·트랜잭션 개선 (0) | 2026.07.27 |
| [기술 회고] 데이터 부족 환경에서의 LSTM 진행 예측 (0) | 2026.07.27 |
| [기술 회고] Segmentation 모델 실험과 성능 개선 (0) | 2026.07.27 |
| [기술 회고] 라벨링 도구 제작과 마스크 데이터 파이프라인 (0) | 2026.07.27 |