이미지 업로드를 여러 기능의 기반으로 만들기
분석 사진, 배너 이미지, 이벤트 이미지처럼 여러 기능이 의존하는 업로드 흐름을 안정화한 기록입니다.
Code notes
코드에서 확인한 구현 포인트
배포 기준 2025.12.09
관련 파일
apps/web/app/api/upload/route.tsapps/web/app/upload-test/page.tsxapps/web/app/api/admin/*/upload/route.ts구현 메모
초기 업로드 API와 테스트 페이지를 먼저 만들어 사진 저장/응답 흐름을 검증했다.
이후 배너, 이벤트, 스플래시, 프로필 등 각 기능별 업로드 라우트가 생기며 공통 기반 역할을 했다.
저장 경로나 권한 세부값은 공개하지 않고, 어떤 기능들이 업로드 기반 위에 올라갔는지만 남겼다.
업로드는 조용하지만 핵심이다
이미지 업로드는 사용자가 크게 의식하지 않는 기능이다. 하지만 Tangly에서는 분석 사진, 이벤트 이미지, 배너 이미지, 프로필 사진 등 많은 기능이 업로드에 의존한다.
업로드가 불안정하면 각 기능이 따로 망가지는 것처럼 보이지만, 실제로는 기반 흐름이 흔들리는 것이다. 그래서 업로드는 조용하지만 매우 중요한 공통 기능이다.
기능마다 기대가 다르다
분석 사진은 품질과 처리 흐름이 중요하고, 배너 이미지는 노출 크기와 링크 맥락이 중요하다. 프로필 사진은 사용자가 빠르게 확인하고 바꿀 수 있어야 한다.
같은 업로드라도 기능별 기대가 다르기 때문에, 공통 기반을 두되 화면에서는 각 기능의 목적에 맞게 다뤄야 한다.
공개하지 않는 것
업로드는 저장 경로, 권한, 접근 URL과 가까운 영역이다. 그래서 외부 블로그에서는 세부 저장 규칙이나 내부 접근 방식은 공개하지 않는다.
대신 업로드가 어떤 제품 기능의 기반이 되었는지를 기록해두는 편이 안전하다.
Keep reading
다른 글 이어서 보기
Engineering
2026.03.04
8 min read
리포트 랩으로 분석 품질을 점검하기
피부 분석 결과가 안정적으로 생성되는지 확인하기 위해 리포트 랩과 통계 화면을 만든 기록입니다.
Engineering
2025.12.10
8 min read
분석 세션을 제품의 중심 흐름으로 만들기
사진 업로드부터 분석 결과, 추천, 리포트까지 이어지는 흐름을 하나의 세션 단위로 묶어간 기록입니다.
Debugging
2026.05.05
6 min read
GitHub 푸시 후 Vercel 배포가 Blocked가 되었을 때
커밋은 올라갔지만 Vercel 자동 배포가 막혔던 상황에서, GitHub 작성자와 프로젝트 권한을 확인해 해결한 기록입니다.