QR 코드가 갑자기 작동하지 않는 이유: 네 가지 원인과 구분하는 법
인쇄한 QR 코드가 작동하지 않는 원인은 네 가지입니다. 코드 안의 링크를 보면 어느 쪽인지, 직접 고칠 수 있는지 알 수 있습니다.
이 글의 새로운 점: 2026년 10월 18일의 관찰 기록: 대형 생성기의 단축 도메인에서 꺼진 코드는 404가 아니라 "계정 비활성화" 페이지와 함께 HTTP 200을 반환하므로, 상태 점검에서는 정상으로 판정됩니다. 저희 QR 코드 검사기가 실행하는 규칙으로 생성한 판정 표도 함께 실었으며, 검사기 페이지에서 누구나 직접 시험해 볼 수 있습니다.
예전에 잘 되던 QR 코드가 종이 위에서 망가지는 일은 거의 없습니다. 잉크에는 유효 기간이 없으니까요. 인쇄한 코드가 작동하지 않는다면 네 가지 중 하나가 일어난 것입니다. 단축 링크를 운영하는 회사가 그 링크를 꺼 버렸거나, 연결된 페이지가 옮겨졌거나, 인쇄 상태가 읽을 수 없는 수준이거나, 코드를 만들 때 오타가 있었던 경우입니다. 코드 안의 링크를 보면 1분 안에 어느 쪽인지 알 수 있고, 직접 손쓸 수 없는 것은 첫 번째뿐입니다.
# 30초 확인: 코드 안의 링크 읽기
스마트폰 카메라를 코드에 비추고, 누르기 전에 미리보기를 확인합니다. 사진을 올려서 무료 QR 코드 검사기로 확인해도 됩니다. 같은 내용을 보여 준 뒤 그 뒤에 이어지는 리디렉션까지 모두 따라가 줍니다. 결과는 세 가지입니다.
- 아무것도 나타나지 않습니다. 스마트폰이 코드를 전혀 읽지 못하는 것입니다. 인쇄 문제(원인 3)이며, 링크를 아무리 만져도 해결되지 않습니다.
- 내 주소가 나타납니다 (
yourcafe.com/menu). 이 코드는 정적입니다. 주소가 네모 칸에 그대로 그려져 있고, 중간에 거치는 곳이 없으며, 누구도 끌 수 없습니다. 작동하지 않는다면 페이지에 문제가 있거나(원인 2) 주소에 오타가 있는 것입니다(원인 4). - 다른 회사 도메인의 짧은 링크가 나타납니다 (몇 글자, 슬래시, 짧은 코드). 이 코드는 동적입니다. 사람들을 먼저 생성기로 보내고, 생성기가 소유자가 지정한 곳으로 전달합니다. 작동하지 않는다면 전달이 꺼졌을 가능성이 매우 높습니다(원인 1).
세 번째 경우는 진단하기가 가장 어렵고, 그만한 이유가 있어서 따로 한 절을 둡니다.
# 꺼진 코드도 HTTP 200으로 페이지를 엽니다
작동하지 않는 코드라면 오류가 날 거라고 생각하기 쉽습니다. 2026년 10월 18일에 QR Code Generator(QRCG by Bitly)가 쓰는 단축 도메인 qrco.de에서 꺼진 코드 하나를 확인했습니다. 어디로도 리디렉션되지 않았고 오류도 반환하지 않았습니다. 단축 링크는 이렇게 응답했습니다.
HTTP/2 200
content-type: text/html; charset=UTF-8
그리고 반환된 페이지에는 “계정 비활성화” 안내를 보여 주는 컴포넌트 하나, <qrcg-web-component-error-account-disabled>만 들어 있었습니다. 이 코드의 경로는 다른 사람의 코드이므로 공개하지 않습니다.
이 응답 하나에서 세 가지를 알 수 있습니다.
- 코드는 여전히 스캔됩니다. 고객의 스마트폰은 페이지를 열지만, 내 페이지가 아닙니다. "QR 코드는 되는데 이상한 게 나와요"라는 제보가 흔한 이유입니다.
- 단순한 링크 점검은 정상이라고 판단합니다. HTTP 200은 "정상"이라는 뜻입니다. 상태 코드만 읽는 가동 감시나 깨진 링크 점검 도구는 이 코드를 문제없다고 표시합니다. 페이지가 무엇이라고 쓰여 있는지를 봐야 합니다.
- 링크를 보면 누가 고칠 수 있는지 알 수 있습니다. 코드에 들어 있는 도메인(여기서는
qrco.de)은 생성기 회사의 것입니다. 그 링크를 다시 켤 수 있는 곳은 그 회사뿐입니다.
이는 무료 체험이 끝났을 때 어떻게 되는지에 대해 생성기 자체의 고객센터가 설명한 내용과도 일치합니다. “동적 QR 코드는 비활성화되며, 원래 목적지가 아닌 서비스 안내 페이지로 연결됩니다.” 다른 생성기에서는 꺼진 코드의 페이지가 다르게 보입니다. 단축 링크에서 페이지를 직접 보여 주지 않고 안내 페이지로 리디렉션하는 곳도 있습니다. 어느 하루의 관찰 하나는 사례일 뿐 조사가 아닙니다.
저희 검사기는 바로 이 점을 봅니다. 연결 끝에 있는 페이지가 "이 코드는 비활성화되었습니다"라는 안내처럼 읽힐 때, 즉 제목이나 주소, 또는 HTML 안의 “account disabled” 같은 몇 가지 문구로 판단되면, 상태가 200이어도 그렇게 알려 줍니다.
# 원인 1: 생성기가 단축 링크를 껐습니다
잘못한 것이 없는 사람에게 일어나는 경우입니다. 동적 코드는 생성기의 단축 링크를 거치고, 그 링크는 생성기가 켜 두는 동안에만 작동합니다. 흔한 계기는 다음과 같으며, 모두 각 생성기의 도움말 페이지에 설명되어 있습니다.
- 무료 체험이 끝났습니다. 일부 생성기는 체험이 끝나면 무료 동적 코드의 리디렉션이 멈춥니다.
- 구독이 만료되었거나 결제에 실패했습니다.
- 무료 요금제의 스캔 한도에 도달했습니다. QR TIGER 고객센터의 설명은 이렇습니다. “프리미엄(Freemium) 계정으로 만든 동적 QR 코드는 받을 수 있는 스캔 횟수에 미리 정해진 한도가 있습니다. 이 한도에 도달하면 QR 코드가 비활성화됩니다.”
- 코드나 계정이 삭제되었습니다. 동료가 대시보드를 정리하다가, 또는 계정 소유자가 퇴사하면서 그런 경우가 많습니다.
확인 방법: 코드 안의 링크가 내가 소유하지 않은 도메인에 있고, 도착한 페이지가 내 콘텐츠가 아니라 안내문, 업그레이드 권유, 또는 빈 화면입니다.
대응 방법: 인쇄된 코드는 상대 회사의 주소를 가리키므로, 다시 켤 수 있는 것은 그 회사뿐입니다. 현실적인 선택지는 그 회사에 요청해 다시 활성화하거나, 멈추지 않는 코드로 한 번만 다시 인쇄하는 것입니다. 어느 쪽인지 확신이 서지 않는다면, QR 코드 검사기에서 코드에 들어 있는 단축 링크가 누구의 것인지 확인할 수 있습니다.
# 원인 2: 연결된 페이지가 옮겨졌거나 삭제되었습니다
코드는 완벽하게 작동하지만, 방문자를 더 이상 존재하지 않는 페이지로 데려갑니다. 웹사이트를 개편하면서 /menu가 /our-menu로 바뀌었거나, PDF가 새 파일명으로 교체되었거나, 사이트 자체가 사라진 경우입니다.
확인 방법: 코드 안의 링크가 내 주소(또는 내 주소로 전달하는 단축 링크)이고, 도착한 곳이 “찾을 수 없음” 페이지이며 보통 HTTP 404입니다. 주소가 http://로 시작하는데 사이트가 https://만 제공한다면, 일부 스마트폰은 경고를 띄우거나 로딩을 거부하기도 합니다.
대응 방법:
- 코드가 정적이라면 정확히 그 주소에 페이지를 되살리거나, 내 웹사이트에서 옛 주소에서 새 주소로 가는 리디렉션을 설정합니다. 웹 호스팅 업체나 사이트 빌더에서 할 수 있고, 인쇄된 모든 사본이 한꺼번에 해결됩니다.
- 아직 내가 관리하는 동적 코드라면 목적지를 새 페이지로 바꾸면 됩니다. 다시 인쇄할 필요가 없습니다.
# 원인 3: 인쇄 상태를 읽을 수 없습니다
확인 방법: 스마트폰 카메라에 링크가 전혀 나타나지 않거나, 특정 각도와 거리에서만 읽힙니다. 다른 스마트폰으로도 시도해 보세요. 최신 기종은 쉽게 읽는데 구형 기종은 못 읽는다면, 망가진 것이 아니라 아슬아슬한 상태입니다.
흔한 원인은 다음과 같습니다.
- 내용에 비해 너무 작습니다. 코드는 모듈로 이루어진 격자이고, 링크가 길수록 같은 공간에 더 많은 모듈이 들어갑니다. 저희의 인쇄 크기 측정에서 21자 단축 링크는 오류 정정 수준 M에서 가로 25모듈, 116자 상품 URL은 45모듈이 되었습니다. 너비가 같은 25mm라면 모듈 크기가 0.76mm와 0.47mm로 차이가 납니다.
- 여백(콰이어트 존)이 없습니다. 표준은 사방에 4모듈 크기의 빈 공간을 요구하며, 스캐너는 이 여백으로 코드의 가장자리를 찾습니다. 테두리나 사진, 글자가 코드에 바짝 붙어 있는 것이 흔한 원인입니다.
- 대비가 낮습니다. 밝은 배경 위의 어두운 모듈이 기본입니다. 어두운 배경에 밝은 색, 연한 색, 복잡한 이미지 위에 인쇄한 코드는 모두 스캐너를 힘들게 합니다.
- 손상과 표면 상태. 긁힘, 바램, 접힌 자국, 코팅의 반사, 또는 곡면의 병에 감아 붙인 코드.
대응 방법: 다시 인쇄합니다. 더 크게 만들고, 여백을 되돌려 주고, 인쇄된 실물을 사람들이 실제로 스캔할 장소에서, 구할 수 있는 가장 성능이 낮은 스마트폰으로 테스트하세요.
# 원인 4: 정적 코드에 오타가 있습니다
정적 코드는 주소를 네모 칸으로 그린 것이므로 오타도 그대로 그려집니다. cafe.com/menu가 cafe.com/mneu로 인코딩되었거나, 도메인의 철자가 틀린 경우입니다.
확인 방법: 코드 안의 링크가 내 주소와 거의 비슷하지만 정확히 같지는 않습니다. 경로가 틀렸다면 내 사이트의 “찾을 수 없음” 페이지가 나옵니다. 도메인 철자가 틀렸다면 대개 아무 응답도 없습니다.
대응 방법: 오타가 내 사이트의 경로에 있다면, 틀린 경로에서 실제 페이지로 가는 리디렉션을 추가합니다(원인 2와 같은 해결책입니다). 도메인 자체의 철자가 틀렸고 그 도메인을 소유하고 있지 않다면, 내 쪽에서 할 수 있는 방법은 없습니다. 다시 인쇄하세요.
# 검사기가 사례별로 내리는 결론
아래는 QR 코드 검사기의 핵심 로직으로 같은 진단을 실행한 결과입니다. 위의 상황마다 하나씩, 일곱 가지 예시 응답을 사용했습니다. 가져오기는 시뮬레이션이며(실제 코드는 없고 예시용 도메인만 사용), 따라서 이 표는 각 응답에서 검사기가 어떤 결론을 내리는지를 보여 줄 뿐, 특정 회사의 코드가 오늘 어떻게 동작하는지를 보여 주는 것이 아닙니다. 사례 5는 10월 18일 qrco.de 응답의 본문을 재현한 것입니다.
| 사례 | 코드 안의 링크 | 경유지(상태) | 판정 | 꺼짐 안내 |
|---|---|---|---|---|
| 정적, 페이지 정상 | https://www.cafe.example/menu |
www.cafe.example (200) | static | 아니요 |
| 정적, 페이지 이동 | https://www.cafe.example/old-menu |
www.cafe.example (404) | broken | 아니요 |
| 정적, 도메인 오타 | https://www.cfae.example/menu |
www.cfae.example (연결 불가) | broken | 아니요 |
| 단축 링크, 켜져 있음 | https://short.example/Ab12Cd |
short.example (301) → www.cafe.example (200) | redirect | 아니요 |
| 짧은 코드, 계정 비활성화 페이지 | https://qr.example/Xy34Zw |
qr.example (200) | hosted | 예 |
| 단축 링크, “비활성화” 페이지로 | https://short.example/Zz99Yy |
short.example (302) → generator.example (200) | redirect | 예 |
| MostlyQR 코드 | https://mqr.sh/AB12CD |
mqr.sh (302) → www.cafe.example (200) | mostlyqr | 아니요 |
읽는 방법:
- static: 연결 경로에 다른 사이트가 없습니다. 누구도 끌 수 없고, 페이지가 있는 동안 작동합니다.
- redirect: 코드가 먼저 다른 사이트의 단축 링크를 거칩니다. 어디로 보낼지는 그 사이트가 정하며, 그 사이트의 도메인이 경로의 첫 번째 경유지입니다.
- hosted: 리디렉션은 없지만, 링크가 페이지를 직접 제공하는 사이트의 짧은 코드입니다(사례 5). 그 사이트가 내 것이 아니라면, 운영하는 쪽이 코드를 쥐고 있습니다.
- broken: 경로가 오류로 끝나거나 아무 응답이 없습니다.
- 꺼짐 안내는 판정과 별개로 붙는 표시입니다. 사례 5와 6을 보세요. 둘 다 경로 끝에서 200을 반환하며, 정상 작동하는 코드와 구분해 주는 것은 이 표시뿐입니다.
이 표는 손으로 쓴 것이 아니라 생성한 것입니다. 각 예시 응답에 QR 코드 검사기 자체의 규칙을 적용하고 그 판정을 그대로 옮겼습니다. 실제 코드도 검사기 페이지에서 같은 방식으로 시험해 볼 수 있습니다.
# 이 글이 다루지 않는 것
- 한 생성기, 하루의 관찰.
qrco.de응답은 2026년 10월 18일의 단일 관찰입니다. 다른 생성기의 꺼진 코드는 다르게 동작하며, 어느 생성기든 동작을 바꿀 수 있습니다. - 검사기의 한계. 최대 8개 경유지까지만 따라가고, 8초가 지나면 포기하고, 페이지의 처음 64KB만 읽으며, 안내 여부는 짧은 문구 목록으로 판단합니다. 다른 표현으로 쓰인 안내는 판정은 받지만 표시는 붙지 않습니다. 또한 “redirect” 판정은 누가 코드를 쥐고 있는지를 말해 줄 뿐, 코드가 고장 났다는 뜻은 아닙니다.
- 인쇄 문제는 링크 검사기로 진단할 수 없습니다. 스마트폰이 코드를 읽지 못하면 확인할 링크가 없습니다. 검사기는 선명한 사진만 읽을 수 있습니다.
# 요약
- 카메라 미리보기나 QR 코드 검사기로 코드 안의 링크를 읽습니다.
- 아무것도 읽히지 않으면: 여백을 두고 더 크게 다시 인쇄하고, 종이로 된 사본을 테스트합니다.
- 내 주소라면: 페이지를 고치거나 사이트에 리디렉션을 추가합니다. 도메인 철자가 틀렸다면 다시 인쇄합니다.
- 다른 회사의 단축 링크가 안내 페이지로 이어진다면: 다시 켤 수 있는 곳은 그 회사뿐입니다.
다시 인쇄하게 된다면 신중하게 고르세요. 정적 코드는 꺼질 수 없지만 바꿀 수도 없습니다. 동적 QR 코드는 인쇄 후에도 바꿀 수 있지만, 그 뒤에 있는 회사에 의존합니다. 저희 코드는 유료 요금제를 해지하더라도, 무료 계정을 유지하고 MostlyQR가 운영되는 한 마지막으로 저장한 목적지로 계속 리디렉션합니다. 여기에서 대체 코드를 만들 수 있고, 첫 번째 동적 코드는 무료이며 카드 등록이 필요 없습니다.
자주 묻는 질문
아무것도 바꾸지 않았는데 QR 코드가 왜 작동하지 않나요?
대개 코드에 내 주소가 아니라 생성기 도메인의 단축 링크가 들어 있고, 생성기가 그 링크를 껐기 때문입니다. 무료 체험 종료, 구독 만료, 무료 요금제의 스캔 한도 도달 등이 원인입니다. 인쇄된 패턴 자체는 문제가 없습니다. 단축 도메인을 소유한 회사만 다시 켤 수 있습니다.
내 QR 코드가 정적인지 동적인지 어떻게 알 수 있나요?
코드 안의 링크를 확인하세요. 누르기 전 스마트폰 카메라의 미리보기나 QR 코드 검사기로 볼 수 있습니다. 내 웹사이트 주소라면 정적 코드입니다. 다른 회사 도메인의 짧은 링크라면 동적 코드이며, 어디로 연결할지는 그 회사가 정합니다.
QR 코드가 저절로 만료될 수 있나요?
아니요. 인쇄된 패턴에는 날짜가 들어 있지 않습니다. 정적 코드는 연결된 페이지가 존재하는 한 작동합니다. 동적 코드는 단축 링크를 운영하는 회사가 그 링크를 켜 두는 동안 작동합니다.
스마트폰이 QR 코드에 아예 반응하지 않습니다. 무엇이 문제일까요?
링크가 아니라 인쇄의 문제입니다. 스캔하는 거리에 비해 코드가 너무 작거나, 대비가 낮거나, 손상되었거나, 주변의 빈 여백(콰이어트 존)이 없는 경우입니다. 더 크게, 밝은 배경에 어두운 색으로, 사방에 4모듈 크기의 여백을 두고 다시 인쇄한 뒤, 파일이 아닌 인쇄된 실물로 테스트하세요.