AI Debugging/2026.05.03/8 min read

모바일 AI 분석이 멈춘 것처럼 보이던 문제

사진 촬영, 업로드, 분석 요청이 이어지는 모바일 AI 흐름에서 타임아웃과 재시도 기준을 나눈 기록입니다.

ExpoAI AnalysisTimeout

Code notes

코드에서 확인한 구현 포인트

배포 기준 2026.05.03

관련 파일

apps/mobile/app/trouble-check/index.tsxapps/mobile/app/eye-wrinkle/index.tsxapps/mobile/lib/server.ts

구현 메모

모바일 분석 흐름은 세션 생성, 이미지 업로드, AI 분석 요청을 분리해 각 단계의 실패와 timeout을 다르게 처리한다.

카메라 preview, 재촬영, 이미지 선택 취소 같은 AI 이전 단계도 분석 실패처럼 보일 수 있어 상태를 나눠 관리한다.

사용자에게는 한 단계에서 멈춘 느낌보다 재시도 가능한 상태와 다음 행동을 보여주는 방향으로 정리했다.

사용자는 어느 단계에서 멈췄는지 모른다

AI 분석 흐름은 모바일에서 특히 길다. 카메라 권한을 받고, 사진을 찍고, 이미지를 업로드하고, 서버 분석을 기다리고, 리포트 화면으로 이동한다.

개발자는 로그를 보면 단계가 보이지만 사용자는 로딩 화면 하나만 본다. 그래서 어느 단계가 느린지 구분하지 않으면 사용자는 앱이 멈춘 것으로 느낀다.

업로드와 분석 타임아웃을 분리하다

모바일 코드에서는 세션 생성, 이미지 업로드, 분석 요청의 timeout을 각각 다르게 봤다. 업로드가 오래 걸리는 것과 AI 분석이 오래 걸리는 것은 원인도 대처도 다르기 때문이다.

또 실패 메시지도 한 문장으로 뭉개지 않고, 다시 촬영할지, 네트워크를 확인할지, 잠시 후 재시도할지를 사용자가 판단할 수 있는 방향으로 나눴다.

카메라와 미리보기는 재시도가 필요하다

AI 문제가 아니어도 분석이 시작되지 않을 수 있다. 카메라 preview가 준비되지 않았거나, 이미지 picker가 취소되었거나, 파일 크기와 네트워크 상태가 맞물릴 수 있다.

그래서 카메라 준비 상태와 재촬영 흐름을 분리했다. 분석 품질 이전에 사용자가 안정적으로 사진을 제출할 수 있어야 한다.

AI 기능의 UX 기준

AI 분석은 오래 걸릴 수 있다. 중요한 것은 시간이 걸린다는 사실을 숨기는 것이 아니라, 앱이 살아 있고 다음 행동이 있다는 느낌을 주는 것이다.

모바일 AI 디버깅은 모델 응답뿐 아니라 촬영, 업로드, 네트워크, 로딩 문구까지 함께 봐야 한다는 점을 다시 확인했다.

Keep reading

다른 글 이어서 보기

전체 글 보기