분석 세션을 제품의 중심 흐름으로 만들기
사진 업로드부터 분석 결과, 추천, 리포트까지 이어지는 흐름을 하나의 세션 단위로 묶어간 기록입니다.
Code notes
코드에서 확인한 구현 포인트
배포 기준 2025.12.10
관련 파일
apps/web/app/api/analysis-sessions/route.tsapps/web/app/api/analysis-sessions/[sessionId]/route.tsapps/web/app/api/analysis-sessions/[sessionId]/recommendations/route.ts구현 메모
analysis-sessions API는 source, status, userId를 받아 분석 흐름의 시작점을 만든다.
sessionId가 없으면 서버에서 새 id를 만들고, 이후 사진, OX 응답, 추천, 리포트가 같은 세션에 연결된다.
세션 상태를 capturing 같은 중간 단계로 시작해 분석 과정이 한 번의 결과가 아니라 흐름으로 남게 했다.
분석은 한 번의 API 호출이 아니다
피부 분석 기능을 만들다 보면 처음에는 사진을 보내고 결과를 받는 일처럼 보인다. 하지만 실제 제품 경험은 그보다 길다. 사용자는 사진을 올리고, 분석을 기다리고, 결과를 읽고, 추천과 루틴으로 이어진다.
그래서 Tangly에서는 분석을 하나의 세션 흐름으로 바라봤다. 세션은 사용자의 한 번의 분석 경험을 묶어주는 기준점이고, 이후 리포트나 추천이 같은 맥락 안에서 이어질 수 있게 해준다.
중간 상태를 남겨야 운영할 수 있다
분석 과정은 언제나 성공만 하는 것이 아니다. 업로드가 늦어질 수도 있고, 결과 생성이 지연될 수도 있고, 특정 케이스에서 다시 확인이 필요할 수도 있다.
그래서 중요한 것은 최종 결과만 저장하는 것이 아니라 중간 상태를 이해할 수 있게 만드는 것이다. 운영자가 흐름을 확인할 수 있어야 사용자 문의에도 대응할 수 있고, 제품 품질도 개선할 수 있다.
공개 기록에서는 경계를 지키기
분석 흐름은 사용자 사진과 가까운 영역이다. 그래서 블로그에서는 저장 경로나 내부 식별 방식, 접근 권한 같은 민감한 내용은 남기지 않는다.
대신 어떤 제품 흐름을 만들었고, 왜 세션이라는 단위를 선택했는지를 남겨두는 편이 안전하고 오래 쓸 수 있는 기록이다.
Keep reading
다른 글 이어서 보기
Engineering
2026.03.04
8 min read
리포트 랩으로 분석 품질을 점검하기
피부 분석 결과가 안정적으로 생성되는지 확인하기 위해 리포트 랩과 통계 화면을 만든 기록입니다.
Engineering
2025.12.09
6 min read
이미지 업로드를 여러 기능의 기반으로 만들기
분석 사진, 배너 이미지, 이벤트 이미지처럼 여러 기능이 의존하는 업로드 흐름을 안정화한 기록입니다.
Debugging
2026.05.05
6 min read
GitHub 푸시 후 Vercel 배포가 Blocked가 되었을 때
커밋은 올라갔지만 Vercel 자동 배포가 막혔던 상황에서, GitHub 작성자와 프로젝트 권한을 확인해 해결한 기록입니다.