로컬 개발 · 실제 기기 테스트
localhost 공유: 휴대폰 확인과 웹훅 테스트
컴퓨터에서 실행 중인 사이트에 휴대폰, 고객, 웹훅 서비스가 접근할 수 있도록 임시 HTTPS 링크를 만드세요. 배포할 필요는 없습니다.
공유 전 로컬 주소 확인
개발 서버가 표시하는 URL을 확인하세요. 프로토콜과 포트가 중요합니다. http://localhost:5173과 https://localhost:7143은 서로 다른 대상입니다. 터널을 만들기 전에 정확한 주소를 컴퓨터에서 열고 일반적인 작업을 한 번 수행하세요.
앱 하나, 포트 하나
페이지와 API가 같은 로컬 주소를 사용하면 터널 하나로 둘 다 접근할 수 있습니다. 경로는 유지됩니다. 공개 /contact 요청은 로컬 앱의 /contact에 도착합니다. 터널은 파일을 복사하거나 배포하지 않습니다.
프런트엔드와 API의 포트가 다른 경우
프런트엔드 터널이 다른 포트의 API까지 자동 공개하지는 않습니다. 브라우저가 localhost:3000을 호출하면 방문자 자신의 기기로 연결됩니다. 개발 서버의 API 프록시나 접근 가능한 API 테스트 URL을 사용하고 프런트엔드를 맞춰 설정하세요.
공개 주소를 컴퓨터와 다른 기기에서 열어 보세요. 로컬 페이지는 되는데 공개 페이지는 안 된다면 두 URL을 비교해 앱 문제와 터널 또는 호스트 설정 문제를 구분하세요.
휴대폰에서 localhost 열기
휴대폰의 localhost는 컴퓨터가 아닌 휴대폰 자신을 가리킵니다. 공개 링크를 열거나 GhostlyShare의 QR 코드를 스캔하세요.
- 모바일 데이터로 전환해 Wi-Fi 밖에서도 접근되는지 확인하세요.
- 실제 기기에서 메뉴, 폼, 키보드, 파일 업로드를 시험하세요.
- 하위 페이지를 직접 열고 새로고침하세요. 이미지와 API 응답도 확인하세요.
같은 Wi-Fi에서만 테스트하나요? 개발 서버와 방화벽이 허용한다면 컴퓨터의 로컬 네트워크 주소로 충분할 수 있습니다. 공개 터널은 다른 네트워크나 외부 서비스에서 접근할 때 유용합니다.

5분 동안 해보는 유용한 휴대폰 테스트
- 탐색과 레이아웃
- 메뉴를 열고 휴대폰을 회전하고 긴 페이지를 보세요. 가로 스크롤, 가려진 버튼, 고정 헤더 뒤에 숨은 콘텐츠를 확인하세요. 브라우저 에뮬레이션은 유용하지만 모든 실제 기기 동작을 재현하지는 않습니다.
- 폼과 세션 상태
- 각 입력란을 누르고 잘못된 값 다음에 올바른 값을 제출하세요. 오류 메시지가 키보드 위에 보이는지 확인하세요. 로그인이 컴퓨터에서만 된다면 새 세션으로 시험하고 콜백 주소와 쿠키 설정을 확인하세요.
- 요청과 로딩
- 이미지가 많은 페이지와 데이터를 불러오는 작업을 시험하세요. 가정용 회선의 느린 응답은 운영 환경의 성능 지표가 아닙니다. 문제를 로컬에서 재현할 수 있도록 페이지, 기기, 작업을 기록하세요.
고객에게 작업 보여주기
검토할 페이지의 정확한 링크를 보내세요. 무엇을 시험하고 언제 미리보기가 닫히는지 알려 주세요.
보내기 전
테스트 계정과 샘플 콘텐츠를 사용하세요. 자신의 쿠키나 로그인 세션 없이도 링크가 작동하는지 확인하세요.
구체적인 확인 요청하기
문의 폼 작성, 모바일 메뉴 점검, 테스트 결제 등 명확한 작업을 요청하면 더 유용한 의견을 받을 수 있습니다.
오늘 검토할 미리보기입니다. 모바일 메뉴와 문의 폼을 확인해 주세요. 통화가 끝나면 링크를 닫겠습니다.
문제를 재현할 수 있는 의견 받기
페이지 URL, 기기, 브라우저, 문제 직전 동작을 요청하세요. “X를 예상했지만 Y가 나왔다”는 설명과 화면 캡처가 “페이지가 안 된다”보다 유용합니다. 검토 중 앱을 수정한다면 알려 주세요. 설정에 따라 변경이나 새로고침이 즉시 보일 수 있습니다.
로컬에서 웹훅 받기
웹훅 서비스는 컴퓨터의 localhost에 접근할 수 없습니다. 터널 공개 주소에 콜백 경로를 붙여 제공하세요. 예제는 앱이 이미 /api/webhooks/demo에서 POST 요청을 처리한다고 가정합니다.
http://localhost:5173/api/webhooks/demohttps://YOUR-TUNNEL.trycloudflare.com/api/webhooks/demo- YOUR-TUNNEL을 실제 호스트명으로 바꾸고 전체 콜백 URL을 서비스의 테스트 설정에 입력하세요.
- 서명 검증을 켜 두세요. 웹훅 시크릿을 로컬에 보관하고 서비스에서 테스트 이벤트를 보내세요.
- 전송 상태와 로컬 로그를 확인하세요. 서비스가 기대하는 성공 응답을 반환하고 재전송 시 같은 작업이 반복되지 않도록 처리하세요.
브라우저 비밀번호 화면은 웹훅 발신자를 차단할 수 있습니다. 서비스가 접근할 수 있는 엔드포인트를 사용하고 서명된 요청을 검증하세요. CORS는 브라우저 요청에 적용되며 서버 간 웹훅 전송에는 적용되지 않습니다.
브라우저 화면뿐 아니라 웹훅 응답 확인
브라우저로 콜백 URL을 열면 보통 GET 요청을 보냅니다. 많은 웹훅 엔드포인트는 POST를 기대하므로 브라우저 오류만으로 전송 실패를 판단할 수 없습니다. 테스트 이벤트를 보내고 시간과 전송 ID를 로컬 로그와 비교하세요.
- 404 / 405
- 경로와 HTTP 메서드를 확인하세요. 무조건 프런트엔드가 아니라 API의 포트를 사용하세요. 홈페이지가 열린다고 콜백 엔드포인트가 존재하는 것은 아닙니다.
- 401 / 403
- 미리보기 비밀번호, 앱 인증, 서명 검증 중 어디에서 거부했는지 확인하세요. 서명된 데이터는 서비스가 정한 원본 요청 본문 규칙을 따르세요. 검증 전에 파싱하고 다시 작성하면 서명이 무효가 될 수 있습니다.
- 5xx / Timeout
- 앱이 실행 중이며 요청을 받았는지 확인하세요. 처리가 길면 서비스의 응답 기한을 지키고 필요할 때 백그라운드 작업을 사용하세요. 재전송을 시험해 주문이나 메시지가 중복되지 않도록 하세요.
서비스의 테스트 모드를 사용하고 시크릿이나 개인정보가 담긴 전체 데이터를 로그에 남기지 마세요. 성공한 테스트는 전송과 앱의 처리를 확인할 뿐, 서비스의 연동 요구 사항을 대체하지 않습니다.
링크는 열리지만 일부가 작동하지 않나요?
공개 링크가 앱에 연결되지 않음
먼저 로컬 URL을 여세요. 포트, HTTP와 HTTPS, 앱과 터널의 실행 여부를 확인하세요.
이미지나 API 호출 실패
코드에 고정된 localhost URL을 찾아보세요. 가능하면 상대 경로를 사용하세요. 다른 포트의 API에는 별도의 접근 가능한 경로가 필요합니다.
앱이 localhost로 리디렉션함
공개 기본 URL, 신뢰할 프록시, 로그인 콜백을 확인하세요. 호스트 검사를 전체적으로 끄지 말고 실제 미리보기 호스트를 허용하세요.
실시간 새로고침이나 WebSockets 실패
WebSockets가 공개 호스트를 사용하고 HTTPS 페이지에서 wss를 사용하는지 확인하세요. 일부 개발 서버는 별도 HMR 호스트 설정이 필요합니다.
웹훅이 성공 응답을 받지 못함
콜백 경로, HTTP 메서드, 서명 시크릿, 전송 로그를 확인하세요. 새 임시 터널을 시작하면 콜백 URL도 갱신하세요.
테스트를 마치고 공유 중지하기
GhostlyShare에서 공유를 중지하거나 터미널에서 Ctrl+C로 터널을 종료하세요. 만료 시간을 설정하면 예정된 미리보기를 자동 종료할 수 있습니다. 끝나면 서비스의 임시 콜백 URL도 제거하세요.
지속적으로 사용할 고정 주소가 필요한가요?
임시 미리보기는 배포가 아닙니다. 홈 호스팅 가이드는 이름 있는 터널, 도메인, Windows 서비스, 운영 비용을 설명합니다.
상시 Cloudflare Tunnel 설정 →로컬 미리보기 관련 질문
자주 묻는 질문
휴대폰에서 localhost가 작동하지 않는 이유는?
Localhost는 주소를 여는 기기 자체를 가리킵니다. 컴퓨터의 앱에 휴대폰으로 접근하려면 공개 미리보기 링크를 사용하세요.
컴퓨터를 계속 켜 둬야 하나요?
네. 컴퓨터, 로컬 앱, 터널이 계속 실행되어야 합니다. 절전 모드에 들어가거나 터널을 중지하면 미리보기에 접근할 수 없습니다.
미리보기에 도메인이 필요한가요?
아니요. 임시 터널이 공개 HTTPS 주소를 제공합니다. 주소가 바뀌면 공유한 링크와 웹훅 설정을 갱신하세요.
