작업 기간: 2026.08.03–08.04

회사 팀 사이트에서 이미지를 다루는 일이 2026년 8월 3일과 4일, 이틀 사이에 두 번 막혔어요. 여러 장을 골라 올린 이미지는 업로드가 거절됐고, 다음 날에는 조금 전까지 쓰던 이미지 메뉴가 화면에서 사라졌어요. 두 번 모두 가장 먼저 떠오른 원인은 실제 원인과 달랐어요.

DS는 회사 팀 사이트로, 외부 소개 화면과 구성원 작업 공간, 관리 화면이 함께 있어요. 이미지나 문서 같은 자산을 이곳에서 올리고 교체하고 미리 볼 수 있고, 자산마다 변경 이력이 남아요. 8월 4일에는 공개 앱 상단에 오래 남아 있던 버전 숫자를 정리했고, 같은 날 뒤이어 이미지 메뉴가 사라졌어요.

업로드는 화면 안내와 실제 조건이 달라서 거절됐어요

처음에는 여러 파일을 한 번에 고른 것이 원인처럼 보였어요. 하나의 큰 요청으로 묶였다면 적게 고르면 해결될 테니까요. 살펴보니 화면은 이미 파일을 한 장씩 보내고 있었고, 파일은 저장을 처리하는 단계에 닿기 전에 거절되고 있었어요. 화면이 허용한다고 안내한 크기와 실제로 통과할 수 있는 조건이 맞지 않았던 거예요.

새 이미지, 여러 장의 이미지, 기존 이미지의 새 버전을 올리는 입구가 모두 같은 문제를 만날 수 있어서 파일을 받아들이는 흐름 자체를 고쳤어요. 원본 역할의 파일과 썸네일을 업로드에 맞는 상태로 다루고, 서버에서도 같은 조건을 확인하게 했어요. 처리할 수 없는 항목은 그 항목의 실패로만 남기고, 이미 성공한 파일까지 한꺼번에 실패로 보이지 않게 결과를 파일별로 나눴어요. 여러 장을 올리는 사람은 어느 파일을 다시 처리해야 하는지 알아야 하고, 이미 올라간 자료를 다시 고를 이유는 없으니까요. 구현 직후에는 운영에 반영되지 않은 상태였고, 이 점을 다시 짚은 뒤 후속으로 실제 배포까지 이어졌어요.

선택한 파일 표에 업로드 대기, 허용 크기 초과, 지원하지 않는 형식이 파일마다 따로 표시된 업로드 화면
선택한 파일별 검사 상태와 실패 안내 · 화면 재구성 크게 보기

버전 숫자는 덜어내고 자산의 이력은 남겼어요

공개 앱 상단의 버전 숫자는 실제 배포와 맞지 않아서, 바뀐 기능을 보면서도 수정이 반영됐는지 다시 묻게 만들었어요. 이 숫자는 여러 화면과 기록, 관리 기능에 걸쳐 있어 한곳만 고치면 다른 곳이 이전 상태를 설명하게 돼요. 이미지나 문서의 버전은 사정이 달라서, 이전 자료와 현재 자료를 구분하는 데 실제로 필요한 기능이었어요. 그래서 같은 의미로 숫자를 보여 주던 화면들에서 공개 앱의 숫자 표시를 함께 덜어내고, 실제 개발 변화는 날짜별 기록으로 모았어요. 자산별 변경과 이력 기능, 과거 기록은 그대로 유지했어요. 지금 할 수 있는 일은 화면에서, 변경이 언제 있었는지는 이력에서 찾게 하려는 배치였어요.

DS 자료 이력 화면에 안내 문서·화면 자산·지난 문서가 개정 번호와 열람 상태로 나열된 표
앱 숫자 대신 남긴 개별 자료의 개정 이력 · 화면 재구성 크게 보기

사라진 메뉴는 오래된 배포 기준에 덮여 있었어요

숫자를 정리한 뒤 이미지 메뉴가 보이지 않았고 관련 페이지도 열리지 않았어요. 직전 수정이 필요한 기능까지 지운 것처럼 보였지만, 정상인 변경을 되돌리면 이미 정리한 문제가 다시 들어올 수 있었어요. 기록을 대조해 보니 오전에 반영한 최신 화면에는 메뉴가 있었어요. 이후 배포의 기준이 되는 쪽에는 그 변경이 아직 들어가 있지 않았고, 이전 상태를 바탕으로 한 변경이 다시 반영되면서 최신 기능을 덮은 거예요. 기능을 한 번 운영에 보여 주는 것과 다음 변경의 기준에도 남기는 것은 별개의 일이었고, 지금 화면만 되돌리면 다음 작업에서 같은 증상을 다시 만날 수 있었어요.

DS 작업 공간 사이드바에 첫 화면·문서 자료·업무 기록·설정만 있고 이미지 메뉴가 빠진 화면
다음 배포 뒤 이미지 메뉴가 빠진 작업 공간 · 화면 재구성 크게 보기

그래서 메뉴의 표시 조건을 손대는 대신, 필요한 메뉴와 페이지를 현재 배포 기준에 포함시켜 다시 운영에 반영했어요. 예전 화면을 통째로 되돌리지 않았기 때문에 정리하기로 한 오래된 표시는 다시 붙지 않았어요. 복구 뒤에는 메뉴가 보이는 데서 멈추지 않고 관련 페이지로 들어가 기존 이미지 교체와 미리보기가 유지되는지, 목록을 읽는 작은 경계까지 살폈어요. 숫자 정리와 메뉴가 사라진 일은 시간상 붙어 있었지만, 숫자를 없앤 수정을 원인으로 설명하지 않았어요.

사용자, 이미지 업로드 패널의 업로드 화면과 저장 전 단계, 이미지 메뉴 패널의 작업 공간과 배포 기준을 생명선으로 둔 순서도. 업로드 사건에서는 사용자가 여러 장 선택, 업로드 화면이 저장 전 단계로 이미 한 장씩 전송하고, 저장 전 단계가 '안내와 다른 조건 거절'을 점선으로 돌려보낸다. 고친 뒤에는 저장 전 단계가 파일별 결과를, 업로드 화면이 사용자에게 실패 파일만 다시 선택을 실선으로 보낸다. 메뉴 사건에서는 배포 기준이 작업 공간에 버전 숫자 정리를 실선으로 보낸 뒤 '옛 배포 기준으로 덮음'을 점선으로 보내고, 작업 공간이 사용자에게 '이미지 메뉴 사라짐'을 점선으로 보내며, 마지막에 배포 기준이 메뉴 포함해 다시 반영을 실선으로 보낸다
업로드 거절과 메뉴 사라짐에서 실제로 막힌 곳 · 도식 크게 보기

확인한 범위는 사건마다 달라요. 업로드는 브라우저에서 파일 처리를 보고 운영 목록과 화면이 정상으로 열리는 것까지 확인했지만, 실제 운영 자료를 새로 쓰는 인증 업로드 시험은 실행하지 않았어요. 그래서 여러 이미지의 실제 업로드가 모두 성공했다고는 말할 수 없고, 처음 실패한 사용 순서를 같은 환경에서 끝까지 따라가는 확인이 남아 있어요. 모든 형식의 원본 보관 문제도 이번 범위 밖에 두었어요. 버전 숫자 정리는 운영에서 새 상태를 확인했지만 방문자의 혼란이 얼마나 줄었는지는 측정하지 않았어요. 이미지 메뉴 복구도 제보된 메뉴와 페이지 범위의 확인이라, 전체 자료와 모든 계정에서 오래 안정적으로 동작하는지는 단정할 수 없어요.

관련 작업 · Paiptree DS