Engineering/2025.12.09/6 min read

이미지 업로드를 여러 기능의 기반으로 만들기

분석 사진, 배너 이미지, 이벤트 이미지처럼 여러 기능이 의존하는 업로드 흐름을 안정화한 기록입니다.

UploadImageStorage

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과 가까운 영역이다. 그래서 외부 블로그에서는 세부 저장 규칙이나 내부 접근 방식은 공개하지 않는다.

대신 업로드가 어떤 제품 기능의 기반이 되었는지를 기록해두는 편이 안전하다.