본문으로 건너뛰기

딥보이스 탐지 서비스

2025.04

정보보안 공모전 우수상 (2025.04)

Flask 모델 서버 — 겹치는 요청 처리 방식 바꾸기 1차 · 큐 + 워커 스레드 음성 업로드 Flask /analyze 대기열에 넣고 바로 응답 결과는 응답에 못 실음 프론트가 판정 결과를 받지 못한다 최종 · Lock 순차 처리 음성 업로드 Flask /analyze · 파일 검사 전역 Lock 한 번에 하나씩 추론 합성 점수 + 받아쓰기 응답 본인: Flask 서버 · 팀원: 탐지 모델(ReDimNet)·프론트(React)

문제

팀원이 만든 탐지 모델과 받아쓰기는 명령줄에서만 실행됐다. 웹에서 음성을 올려 결과를 받으려면 서버가 필요했고, 무거운 추론 요청이 겹칠 때를 다뤄야 했다.

내가 한 것

Flask로 업로드 API(/analyze)를 만들었다. 확장자·16MB 제한과 파일명 검사, 프론트 연동용 CORS, 모델 점수를 0~1 판정값으로 바꾸는 변환을 넣었다. 겹치는 요청은 처음에 큐와 워커 스레드로 받았지만 접수 응답만 돌아가 결과를 프론트에 줄 수 없었고, 전역 Lock으로 한 번에 하나씩 추론해 점수와 받아쓰기를 응답으로 돌려주게 바꿨다.

결과

프론트에서 음성을 올리면 구간별 합성 점수와 받아쓰기가 함께 돌아오는 서비스를 완성했다. 「미래와소프트웨어」 정보보안 공모전 우수상.
PythonFastAPIOracle CloudDocker