Files
hop.noname.company/docs/TRANSFER_UX.md

5.0 KiB

hop. 파일·링크 통합 전송 수정안

2026-10-08 및 2026-10-12 사용자 수정안. SPEC.md v3.0의 일반 텍스트 전송과 유형 탭에 관한 요구보다 이 문서를 우선한다.

2026-10-12 최종 중앙 기기 선택·전송 모달·보관함·단일 방 정책은 TEMPORARY_VAULT.md를 우선한다. 기기 전송은 클립보드 링크·선택한 파일·로그인 보관함 중 현재 콘텐츠 하나와 전송 버튼 하나만 표시한다. 전송 모달 크기는 콘텐츠 선택 방법에 따라 바뀌지 않는다. 보관함 직접 저장은 링크/파일 중 하나를 먼저 고른다.

지원 범위

신규 전송은 파일과 HTTP/HTTPS URL만 지원한다. 일반 텍스트 전송 UI·요청·확정 처리는 제거한다. 신규 API는 kind: text와 텍스트 본문을 거절한다. 이전 DB의 저장 자료는 삭제하지 않고 보존·정리 정책을 유지하며, 진행 중이던 텍스트 요청은 후속 마이그레이션으로 취소한다. 현재 목록은 파일과 URL만 표시한다.

기기 선택과 통합 패널

접속 기기를 누르면 해당 기기로 보내는 패널을 표시한다. 파일·링크 탭은 제공하지 않는다. 파일 선택은 항상 가능하며 클릭, PC 드래그 앤 드롭, 브라우저가 제공하는 모바일 사진·파일 선택을 사용한다. 선택한 파일의 이름·크기를 확인한 뒤 파일 전송을 누른다.

기기 선택 시 navigator.clipboard.readText()를 시도한다. HTTP/HTTPS URL만 링크 카드에 표시하고 사용자가 ‘링크 전송’을 누른 뒤 요청한다. 읽기 자체로 전송하지 않는다. 빈 클립보드·일반 텍스트·권한 거부·미지원은 파일 선택을 막거나 오류 팝업을 띄우지 않는다. ‘링크 직접 붙여넣기’는 작은 보조 동작으로 제공한다. 대상이 바뀌면 이전 링크·파일 선택을 지우며, 늦게 도착한 이전 대상의 클립보드 응답은 무시한다. 클립보드를 백그라운드에서 감시하지 않는다.

여러 링크는 한 줄에 하나씩 최대 20개를 붙여넣을 수 있다. URL 검증에 실패하면 링크를 전송하지 않으며 파일 선택은 계속 가능하다. 이메일 전송도 같은 파일·링크 컴포넌트를 사용하며 이메일 입력 중에는 클립보드를 자동 읽지 않는다.

수락과 완료

기존 수락 전 데이터 미업로드 정책을 유지한다. 수락·거절 요청은 어두운 배경을 흐리게 처리한 중앙의 흰색 카드로 표시한다. 수락 후 링크는 바로 새 탭으로 열고 파일은 다운로드를 시작한다. 정상 수신에는 ‘자료가 도착했어요’, ‘자료 보기’, 별도의 ‘링크 열기’ 확인을 표시하지 않는다.

링크용 탭은 수락 클릭 시 준비하고 실제 URL은 수락 후 전달 완료 시 연결한다. 새 탭의 opener는 제거한다. 브라우저가 탭을 막거나 사용자가 준비 중인 탭을 닫은 경우에만 클릭으로 열 수 있는 예외 안내를 제공한다. 브라우저의 여러 파일 다운로드 허용 설정은 그대로 따른다. 수락한 탭만 자동 실행하며 새로고침·다른 탭의 상태 조회로 과거 자료를 다시 열거나 다운로드하지 않는다. 오프라인 계정 보관함의 과거 자료는 기존 목록에서 확인한다.

보낸 링크·파일의 전송 버튼은 같은 자리에서 ‘전송 취소’로 변경한다. 대기 상태와 파일 업로드 진행률도 통합 패널 안에 표시하고 별도 하단 전송 목록은 제공하지 않는다. 파일 취소는 서버 요청 취소 후 해당 업로드를 중단한다.

비로그인 방문자에게는 ‘이번 기기’ 내역 메뉴·목록을 표시하지 않는다. 로그인 계정의 보관함과 익명 자료를 계정으로 이동하는 기능은 유지한다. 서버의 진행 중 전송 상태·권한·임시 저장 및 기존 만료 정리는 유지하며 이 화면 변경이 DB의 즉시 삭제를 뜻하지 않는다.

조회 중 들어오는 실시간 이벤트는 후속 조회에 반영한다. 기기·요청·자료 상태는 인증된 단일 snapshot API에서 같은 시점에 읽으며, 과도한 중복 요청으로 완료 상태가 갱신되지 않는 문제를 방지한다. 재연결은 API로 재동기화하며 개발 서버의 CSRF 비밀값 변경 시 세션을 다시 확인한다.

테마

기본은 순수 검정 배경, 중립 회색 표면·테두리, 흰색 주요 버튼이다. 기존 자동 시스템 기본값은 검정 기본값으로 전환하며 사용자가 선택한 라이트·다크는 보존한다. 라이트·시스템 테마도 같은 색상 변수로 전환한다.

후속 모바일 공유

Android PWA Web Share Target의 파일·URL 초안 수신은 2차 구현에서 검토한다. 공유받은 URL을 초안으로 표시하고 대상 선택과 사용자의 전송 동작을 거친다. iOS 등 미지원 환경에서는 일반 웹 붙여넣기·파일 선택을 제공한다. 자동 전송은 추가하지 않는다.