운영 저널

Windows–iPhone 전송 테스트 일지

기기 이름과 성공률을 만들지 않기 위해 테스트 층을 나눴습니다. 코드가 두 방향을 통과했다는 사실, 공개 서비스 상태 문서, 실제 iPhone 모델별 검증은 서로 다른 수준의 근거입니다.

근거 범위 양방향 통합 테스트, Windows에서 실행한 빌드·렌더 검사, 운영 상태 문서, 미기입 iPhone 체크시트

이 글의 제목에는 Windows와 iPhone이 들어가지만, 모든 조합을 확인했다는 뜻은 아닙니다. 저장소에는 PC 역할과 mobile 역할을 실제 API·Socket.IO 흐름으로 실행하는 자동 테스트가 있고, 2026-04-19 운영자 문서에는 실제 iPhone 한 대가 PC QR을 스캔해 연결되고 같은 세션에서 두 방향 전송을 마쳤다는 기록이 있습니다. 반면 iPhone 모델, iOS 버전, Safari 버전, PC 운영체제와 브라우저, 파일별 결과표는 채워져 있지 않습니다.

그래서 ‘코드 경로가 확인됨’, ‘운영자 기록으로 부분 확인됨’, ‘실물 iPhone 수동 기록은 있지만 원본 캡처와 기기·브라우저 세부 정보가 없음’을 한 표에 섞지 않았습니다. 이 구분은 성공 사례를 많이 보이게 하는 것보다 재현 가능한 범위를 정확히 남기기 위한 선택입니다.

확인 수준별 테스트 표

작은 화면에서는 표를 좌우로 움직여 나머지 열을 확인할 수 있습니다.

흐름현재 근거판정말할 수 없는 것
PC 역할 → mobile 역할 relay 전송통합 테스트가 세션 생성, join, 업로드, offer, 수락, 다운로드, 완료를 실행자동 테스트로 확인특정 iPhone 모델의 Safari 저장 동작과 속도
mobile 역할 → PC 역할 relay 전송같은 테스트가 역할을 바꿔 파일 내용을 다시 읽어 비교자동 테스트로 확인실제 iOS 파일 선택기의 모든 공급자
여러 파일의 개별 수락·거절두 offer 중 하나를 수락하고 하나를 거절하는 테스트자동 테스트로 확인수십·수백 파일의 장시간 안정성
resumable API 경로Node 통합 테스트가 part 생성, 상태 기록, complete, download URL 흐름을 실행API 경로 자동 테스트로 확인실제 브라우저 파일 선택기와 모바일 Safari 백그라운드 재개
실제 iPhone의 QR·양방향 사용2026-04-19 BETA_STABLE_STATUS에 QR scan, 연결, PC → phone, phone → PC, 같은 session 성공을 기록기기 정보가 빠진 수동 확인PC OS, PC browser, iPhone model, iOS/Safari version, 원본 캡처
특정 Windows PC ↔ 특정 iPhone기입용 체크시트만 있고 완료된 기기 결과가 없음아직 미확인모델별 호환성, 성공률, 평균 시간

What we observed — 우리가 관찰한 것

자동 테스트는 단순히 200 응답만 보지 않습니다. 받은 쪽 소켓이 offer를 받는지, 잘못된 trust로 보호된 경로에 들어갈 수 없는지, 수락한 전송의 다운로드 내용이 보낸 문자열과 같은지, 여러 offer를 각각 수락·거절 상태로 바꿀 수 있는지를 확인합니다. 서버의 download 경로에는 accepted/download-started 상태만 허용하는 별도 guard가 있지만, 현재 통합 테스트는 거절된 transfer에 대한 download 요청 자체를 assert하지 않습니다.

하지만 Node 기반 테스트의 mobile 역할은 iPhone Safari가 아닙니다. Windows에서 사이트를 빌드하고 desktop/mobile viewport로 렌더링해도 터치 파일 선택기, Files 앱 저장 위치, iOS 메모리 정리 정책은 재현되지 않습니다. 저장소의 IPHONE_TEST_STEPS.md가 결과표가 아니라 아직 채워야 할 절차서라는 점도 그대로 공개합니다.

What we changed — 우리가 바꾼 것

테스트 일지에서 ‘가능’이라는 한 단어를 쓰지 않고 근거 유형을 붙였습니다. 자동으로 재현 가능한 API·Socket.IO 동작은 확인으로, 운영 상태 문서처럼 세부 기기 정보가 빠진 기록은 부분 확인으로, 실제 하드웨어 결과가 없는 항목은 미확인으로 분리했습니다.

통합 테스트에는 양방향 relay, resumable 경로, 여러 파일의 독립 결정, device trust 거부를 유지합니다. 화면 검사는 별도 단계로 실행해 제목·날짜·evidence 표시와 모바일 overflow를 확인하지만, 그것을 물리 기기 테스트로 승격하지 않습니다.

What remains limited — 아직 제한되는 것

실제 Windows PC와 실제 iPhone을 연결한 최신 캡처 3종, iPhone 모델과 iOS/Safari 버전, 테스트 파일 형식과 크기, PC와 휴대폰 양방향 결과가 아직 공개 근거로 남아 있지 않습니다. 따라서 ‘iPhone에서 검증 완료’, ‘모든 Safari에서 작동’, ‘성공률’ 같은 문장을 게시하지 않습니다.

다음 유효한 업데이트는 글을 더 길게 만드는 일이 아니라 owner가 민감정보를 가린 실물 기기 결과표와 현재 UI 캡처를 제공하는 일입니다. 결과가 실패여도 그대로 기록하고, 그 실패에서 변경한 코드와 재검증 날짜를 연결할 계획입니다.