네트워크 탭 지켜보기
브라우저 개발자 도구를 열고 Network 패널을 선택한 뒤 목록을 지우세요. 이제 위에 웹 주소를 입력하고, 색상을 바꾸고, 로고를 추가하고, 파일을 다운로드하세요. 목록은 비어 있는 그대로예요. 작업하는 동안 아무것도 전송되지 않아요.
이 페이지의 모든 코드는 ISO/IEC 18004 인코더가 브라우저 안에서 만들어요. 입력한 데이터는 어디로도 전송되지 않으니 누구도 기록하거나, 스캔을 추적하거나, 코드를 끌 수 없어요.
비공개 QR 코드 생성기는 데이터를 브라우저에서 인코딩하고 서버로는 아무것도 보내지 않으므로, 누구도 인코딩한 내용을 기록하거나, 누가 스캔했는지 추적하거나, 코드를 만료시킬 수 없습니다.
https://example.com
마케팅 문구가 아니라, 작업이 어디에서 이루어지는지에 대한 설명이에요.
대부분의 온라인 QR 생성기는 입력한 텍스트를 자사 서버로 보내 거기서 이미지를 만든 뒤 돌려줘요. 그중 일부는 사본을 보관하고, 동적 코드를 파는 곳은 스캔 수를 세려고 모든 스캔을 자사 도메인으로 통과시켜요. 이 페이지는 정반대로 작동해요. HTML, 스타일시트, 스크립트는 평범한 정적 파일이에요. 이 파일들이 도착하고 나면, 텍스트를 심볼로 바꾸는 인코더는 전적으로 탭 안에서 실행돼요.
이 인코더는 QR 코드 심볼 체계를 정의하는 표준인 ISO/IEC 18004를 독자적으로 구현한 것이에요. 세그먼트 분할, Reed-Solomon 오류 정정, 마스킹, 버전 선택을 JavaScript로 수행하고 결과를 캔버스 요소에 그려요. 다운로드를 누르면 브라우저가 그 캔버스를 PNG, JPG 또는 WebP 파일로 변환하거나 SVG 문서를 작성해 기기에 저장해요. 이 어떤 단계에서도 요청은 발생하지 않아요.
로고도 같은 방식으로 처리돼요. 선택한 파일은 브라우저 자체의 파일 리더로 읽어 캔버스에 그리며, 내 컴퓨터를 떠나지 않아요. 와이파이 비밀번호, 전화번호, 전체 연락처 카드도 마찬가지예요. 입력한 내용은 탭을 닫을 때까지 페이지 메모리에만 머물고, 닫으면 사라져요. 올인원 생성기와 이 사이트의 다른 모든 도구도 정확히 같은 엔진을 사용해요.
저희 말을 믿을 필요는 없어요. 어떤 브라우저에서든 할 수 있는 세 가지 테스트예요.
브라우저 개발자 도구를 열고 Network 패널을 선택한 뒤 목록을 지우세요. 이제 위에 웹 주소를 입력하고, 색상을 바꾸고, 로고를 추가하고, 파일을 다운로드하세요. 목록은 비어 있는 그대로예요. 작업하는 동안 아무것도 전송되지 않아요.
이 페이지를 불러온 다음 비행기 모드를 켜거나 네트워크 케이블을 뽑으세요. 더 가져올 것이 없기 때문에 생성기는 계속 작동하고, 미리보기는 계속 업데이트되고, 다운로드도 여전히 저장돼요.
스크립트는 압축되지 않은 상태로 제공돼요. fetch나 XMLHttpRequest를 검색해 보면 생성기 코드에서는 둘 다 찾을 수 없어요. 유일한 네트워크 호출은 선택적 분석 태그뿐이고, 그것도 사용자의 동의 뒤에 잠겨 있어요.
만료는 QR 코드가 아니라 리디렉션 서비스의 속성이에요.
QR 코드는 데이터를 그림으로 나타낸 것이에요. 실제로 원하는 것이 데이터 그 자체라면(웹 주소, 네트워크 비밀번호, 연락처 정보) 그 그림은 그 자체로 완결되어 있고, 휴대폰은 누구의 허락도 구하지 않고 읽어요. 그것이 정적 코드이고, 이 사이트가 만드는 것이에요. 연결 고리 어디에도 시계가 없기 때문에 만료될 수 없어요. 만료될 계정도, 꺼질 서버도, 갱신할 요금제도 없어요.
동적 코드는 어떤 서비스가 소유한 짧은 링크를 그림으로 나타낸 것이에요. 이 링크가 실제 목적지로 리디렉션하기 때문에 코드를 수정하고 스캔 수를 셀 수 있지만, 바로 그 이유로 체험 기간이 끝나거나 회사가 문을 닫으면 코드가 작동을 멈춰요. 정적 vs 동적 가이드에서 장단점을 자세히 살펴보고, 짧은 글 QR 코드는 만료되나요?에서 이 질문에 바로 답해요. 이 페이지에서 만든 코드가 작동을 멈추는 유일한 경우는 인코딩한 목적지가 바뀌었을 때이고, 그것은 사용자가 통제할 수 있어요.
다른 곳에는 있지만 여기에는 의도적으로 없는 세 가지 기능과 그 이유예요.
인쇄한 코드를 나중에 수정하려면 저희가 영원히 호스팅해야 하는 리디렉션이 필요해요. 그건 이름만 다른 구독이자 단일 장애 지점이에요. 목적지를 바꿔야 한다면 새 정적 코드를 인쇄하세요. 비용은 들지 않아요.
스캔 수를 센다는 건 내 간판에 휴대폰을 갖다 대는 모든 사람이 먼저 저희에게 기록된다는 뜻이에요. 저희는 그런 데이터를 갖고 싶지 않아요. 방문 수가 필요하다면 주소에 UTM 매개변수를 붙이고 내 분석 도구에서 확인하세요.
둘 다 사용자 데이터를 받는 서버가 필요해요. 솔직한 트레이드오프는, 이 사이트가 인쇄용 코드를 하나씩 정성 들여 만드는 곳이라는 거예요. 수천 개의 코드가 필요하다면 내 컴퓨터에서 오픈소스 라이브러리를 쓰면 같은 수준의 개인정보 보호를 유지할 수 있어요.
선택적 분석 기능, 그리고 그것이 볼 수 있는 것과 볼 수 없는 것이에요.
이 사이트는 페이지 방문 수를 세기 위해 Google Analytics를 불러올 수 있지만, 동의 배너에서 '분석 허용'을 누른 뒤에만 가능하고, 이 페이지에서 답하기 전에는 절대 불러오지 않아요. 거부하거나 브라우저가 Global Privacy Control 신호를 보내면 태그는 절대 로드되지 않고 쿠키도 설정되지 않아요. 모든 페이지 하단의 '개인정보 설정' 링크에서 언제든지 선택을 바꿀 수 있어요.
허용한 뒤에도 태그는 어떤 페이지가 열렸는지만 볼 뿐, 그 안에 무엇을 입력했는지는 보지 못해요. 생성기는 데이터를 태그에 절대 넘기지 않아요. 무엇이 얼마나 오래 저장되고 동의를 어떻게 철회하는지에 대한 전체 설명은 개인정보처리방침에, 전체 쿠키 목록은 쿠키 정책 페이지에 있어요.
개인정보, 오프라인 사용, 라이선스에 대한 질문이에요.