업로드 없는 온라인 도구는 어떻게 동작하나
게시일: · 최종 수정일:
“서버로 전송되지 않습니다”라는 문구는 여러 온라인 도구에 붙어 있지만, 문구만으로는 사실인지 알 수 없습니다. 이 글은 그 말이 기술적으로 무엇을 뜻하는지, 그리고 2 ~ 3분이면 끝나는 확인 방법 두 가지를 설명합니다. 이 사이트뿐 아니라 다른 사이트의 도구에도 똑같이 쓸 수 있는 방법입니다.
입력이 어디로 가는가
온라인 도구가 입력을 처리하는 방식은 크게 두 가지입니다.
| 서버 처리 | 브라우저 처리 | |
|---|---|---|
| 계산이 일어나는 곳 | 운영자의 서버 | 내 기기의 브라우저 |
| 입력이 가는 곳 | 인터넷을 거쳐 서버로 전송됩니다 | 기기 밖으로 나가지 않습니다 |
| 결과가 나오는 순간 | 서버의 응답이 도착한 뒤 | 입력하자마자 |
| 인터넷이 끊기면 | 동작하지 않습니다 | 이미 열린 페이지는 계속 동작합니다 |
서버 처리 방식에서는 버튼을 누르면 페이지가 입력을 요청에 담아 서버로 보냅니다. 페이지 안의 프로그램이 서버와 통신할 때는 fetch 같은 기능을 쓰고, 이렇게 나간 요청은 브라우저에 모두 기록됩니다. 서버가 그 입력을 저장하는지, 얼마나 보관하는지는 밖에서 확인할 수 없습니다.
브라우저 처리 방식에서는 페이지를 열 때 계산에 필요한 프로그램(자바스크립트, WebAssembly)을 함께 내려받고, 그 프로그램이 내 기기에서 실행됩니다. 예를 들어 비밀번호 생성에 쓰이는 무작위 값은 브라우저에 내장된 crypto.getRandomValues()가 만들고, 해시 계산은 내려받은 WebAssembly 코드가 기기 안에서 수행합니다. 서버는 프로그램을 내려보내는 역할만 합니다.
이 사이트의 구조
이 사이트는 미리 만들어 둔 파일만 내려보내는 정적 사이트입니다. 도구 입력을 받아 처리하는 서버 프로그램이 없으므로, 입력을 보낼 곳 자체가 없습니다. 일부 도구는 처음 실행할 때 추가 코드를 내려받습니다. 이때 생기는 요청은 파일을 받아 오는 요청이고, 입력한 내용은 담기지 않습니다.
다만 페이지가 보내는 요청이 하나도 없는 것은 아닙니다. 페이지를 전달하는 호스팅 서비스는 IP 주소와 브라우저 정보를 처리하고, 방문 통계 스크립트와 광고 스크립트는 각자의 서버와 통신합니다. 이 요청들은 도구에 입력한 내용과 무관하게 일어납니다. 어떤 정보가 처리되는지는 개인정보 처리방침에 정리되어 있습니다.
확인 방법 1: 네트워크 탭에서 요청 보기
브라우저의 개발자 도구에는 페이지가 주고받는 요청을 모두 보여 주는 네트워크 탭이 있습니다. Chrome, Edge, Firefox에서 같은 순서로 확인할 수 있습니다.
- 도구 페이지를 연 뒤
F12(Mac은Cmd + Option + I)를 눌러 개발자 도구를 열고 Network(네트워크) 탭을 고릅니다. - 목록 지우기 버튼으로 지금까지의 기록을 비웁니다.
- 도구의 입력칸에
zebra-4821처럼 눈에 띄는 문자열을 입력하고, 버튼이 있는 도구라면 버튼도 누릅니다. - 목록에 새 줄이 생기는지 봅니다. 아무 줄도 생기지 않았다면 입력하는 동안 페이지가 어디로도 요청을 보내지 않은 것입니다.
- 줄이 생겼다면 그 줄을 눌러 요청 주소(Headers)와 보낸 내용(Payload)에 입력한 문자열이 들어 있는지 확인합니다.
새 줄이 생겼다고 해서 곧바로 입력이 전송된 것은 아닙니다. 광고 스크립트는 입력과 상관없이 요청을 보낼 수 있고, 처음 실행할 때 추가 코드를 받는 도구는 .js나 .wasm 파일을 받아 오는 요청을 만듭니다. 구분하는 기준은 요청의 주소와 보낸 내용에 입력값이 들어 있는지입니다.
확인 방법 2: 오프라인으로 전환하기
네트워크 탭만으로는 입력을 알아보기 어렵게 바꿔 보내거나 나중에 모아서 보내는 경우까지 가려내기 어렵습니다. 연결 자체를 끊으면 더 확실하게 확인할 수 있습니다.
- 도구 페이지를 열고 도구를 한 번 실행합니다. 추가 코드가 필요한 도구가 코드를 미리 받게 하기 위해서입니다.
- 인터넷 연결을 끊습니다. Chrome과 Edge에서는 네트워크 탭의 속도 제한(Throttling) 메뉴에서 Offline을 고르면 되고, 다른 브라우저에서는 기기의 Wi-Fi나 모바일 데이터를 끄면 됩니다.
- 페이지를 새로 고치지 않은 채로 입력을 바꿔 봅니다. 결과가 계속 바뀌면 계산이 기기 안에서 일어나는 것입니다.
- 확인이 끝나면 다시 연결합니다.
서버에서 처리하는 도구는 이 상태에서 오류를 내거나 결과가 나오지 않습니다. 이 사이트는 페이지를 기기에 저장해 두지 않으므로, 오프라인 상태에서 새로 고치면 페이지 자체를 불러오지 못합니다.
브라우저 처리의 한계
브라우저에서 처리한다고 해서 모든 걱정이 사라지는 것은 아닙니다.
- 기기 성능과 메모리: 계산을 내 기기가 맡으므로 큰 파일이나 긴 텍스트는 느려지거나 탭이 멈출 수 있습니다. 서버 처리 도구가 다룰 수 있는 크기를 브라우저 도구가 다루지 못하는 경우도 있습니다.
- 브라우저 확장 프로그램: 확장 프로그램은 권한을 받은 페이지의 내용을 읽을 수 있습니다. 도구가 아무것도 전송하지 않아도 확장 프로그램이 입력칸의 내용을 볼 수 있다는 뜻입니다. 민감한 내용을 다룰 때는 확장 프로그램이 꺼진 창을 쓰세요.
- 화면과 기기: 입력한 내용은 화면에 그대로 보이고, 복사하면 클립보드에 남습니다. 여럿이 쓰는 기기라면 사용 뒤에 탭을 닫으세요.
- 코드는 바뀔 수 있습니다: 페이지는 열 때마다 새로 내려받으므로 오늘 확인한 결과가 다음 방문 때의 동작까지 보장하지는 않습니다.
“업로드 없음”이 뜻하는 범위
“업로드 없음”은 도구에 넣은 입력이 처리되는 방식에 대한 말이지, 사이트 전체가 아무 정보도 다루지 않는다는 뜻이 아닙니다. 같은 문구를 쓰면서 실제로는 입력을 전송하는 사이트도 있을 수 있습니다. 그래서 문구보다 확인 방법이 중요합니다. 운영 중인 서비스의 비밀 키나 실제로 쓰는 비밀번호처럼 유출되면 곤란한 값을 붙여넣기 전에는 위의 두 가지를 먼저 해 보세요. 아래 관련 도구에서 바로 시험해 볼 수 있습니다.