코드 한 줄로 WIA Code를 만듭니다. 무료 상한 안에서는 키 없이 바로 씁니다.
AI·비전 시스템을 만드시나요? AI 시스템을 위한 WIA Code 식별 레퍼런스 — 중심의 세 요소, 외곽이 자유로운 이유, 피해야 할 오인식을 정리했습니다. 평문판: /llms.txt.
부스터 QR은 항상 포함됩니다. 끄는 옵션이 없습니다 — API·MCP·CLI 모두 같습니다. "누적 사용 1억 번에 이르면 부스터가 분리되고 그 자리에 원하는 로고가 들어간다"가 제품의 약속이라, 어느 한 경로에만 예외를 만들지 않았습니다. 인코딩 파라미터(grid·bpc·bridge)도 서버가 고정합니다.
npx wiacode "https://wiacode.com" --shape heart
Node 18 이상이면 설치 없이 바로 실행됩니다. 의존성이 없어 받는 데 몇 초면 됩니다.
npx wiacode --list-shapes # silhouettes and capacity npx wiacode "Hello" --shape square -o hello.png npx wiacode "a link" --shape heart --json # print metadata only npx wiacode card --name "Jane Doe" --tel "+82-10-1234-5678" # wifi / card / event
바로 쓰는 세 가지입니다. 문자열을 직접 조립할 필요가 없습니다 — 필드만 주면 서버가 표준 Wi-Fi·vCard·iCalendar 내용을 만듭니다. 이 사이트 생성기가 만드는 것과 바이트 단위로 동일합니다.
npx wiacode wifi --ssid "MyNet" --password "secret" npx wiacode wifi --ssid "Cafe" --security nopass # open network npx wiacode card --name "Jane Doe" --org "SmileStory" --tel "+82-10-1234-5678" --email "a@b.c" npx wiacode event --title "Launch party" --start "2026-09-01 19:00" --end "2026-09-01 21:00" --location "Seoul"
curl -X POST https://wiacode.com/api/v1/code \
-H 'Content-Type: application/json' \
-d '{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","shape":"square"}' \
-o card.png
| type | 필수 | 선택 |
|---|---|---|
| wifi | ssid, password | security (WPA·WEP·nopass), hidden |
| card | name | org, tel, email |
| event | title, start | end, location, desc |
시각은 "2026-09-01 19:00" 형식입니다. 개방망이면 security 를 nopass 로 주고 비밀번호는 생략합니다. 필드가 빠지거나 형식이 틀리면 어느 필드인지 적힌 HTTP 400 으로 돌아옵니다 — 이미지를 만들지 않으므로 잘못된 요청이 렌더 자리를 차지하지 않습니다.
한 줄이 코드 하나입니다. 분당 상한에 걸리면 중간에 멈추지 않고 기다렸다 이어서 하며, 실패한 줄은 파일에서의 실제 줄번호와 함께 알려줍니다.
npx wiacode batch people.jsonl --out-dir codes
# people.jsonl
{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","out":"jane.png"}
{"type":"wifi","ssid":"Cafe WIA","security":"nopass"}
{"text":"https://wiacode.com","shape":"star"}
curl -X POST https://wiacode.com/api/v1/code \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"heart"}' \
-o wiacode.png
응답은 image/png입니다. ?format=json을 붙이면 base64와 메타를 JSON으로 받습니다.
curl -X POST 'https://wiacode.com/api/v1/code?format=json' \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"square"}'
다른 출처의 웹앱에서도 바로 부를 수 있습니다. 쿠키를 쓰지 않는 공개 API라 CORS를 열어 뒀습니다.
const r = await fetch('https://wiacode.com/api/v1/code?format=json', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: 'https://wiacode.com', shape: 'heart' })
});
const { image, meta } = await r.json();
document.querySelector('img').src = image; // data:image/png;base64,...
curl https://wiacode.com/api/v1/shapes
| 이름 | 필수 | 설명 |
|---|---|---|
| text | ✓ | 담을 텍스트 또는 URL. 긴 URL은 먼저 줄이는 편이 좋습니다. |
| type | — | wifi · card · event. text 대신 줍니다 — 필드로 주면 서버가 표준 문자열을 조립합니다. 위 타입 절 참고. |
| shape | — | 실루엣(기본 heart). 아래 표 참고. |
| cellPx | — | 셀 한 칸의 픽셀(3~20, 기본 8). 클수록 이미지가 큽니다. |
| label | — | 메타에 남는 라벨. 이미지에는 그리지 않습니다. |
실루엣마다 담을 수 있는 양이 다릅니다(UTF-8 바이트). 긴 내용은 square, 짧은 링크는 아무거나.
| shape | bytes | shape | bytes |
|---|---|---|---|
| square | 1450 | rose | 586 |
| round | 1093 | clover | 521 |
| hex | 861 | star | 386 |
| heart | 854 | boomerang | 386 |
Claude 같은 AI 클라이언트에 연결하면 대화 중에 코드를 바로 만듭니다. 엔드포인트는 https://mcp.wiacode.com/mcp이고 키가 필요 없습니다.
{
"mcpServers": {
"wiacode": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
}
}
}
Streamable HTTP를 직접 지원하는 클라이언트라면 URL만 넣으면 됩니다.
| 도구 | 하는 일 |
|---|---|
| get_wia_code_info | WIA Code가 무엇인지, QR과 뭐가 다른지, 실루엣별 용량은 얼마인지 알려줍니다. 만들기 전에 먼저 부르면 실패가 줄어듭니다. |
| generate_wia_code | 텍스트를 코드 이미지로 만듭니다. 용량을 넘으면 어떤 실루엣이면 담기는지 알려줍니다. |
| generate_wia_code_wifi | 와이파이 접속 정보 — 스캔하면 비밀번호를 입력하지 않고 접속됩니다. |
| generate_wia_code_card | 연락처를 표준 vCard 로 — 스캔하면 폰이 연락처 저장을 제안합니다. |
| generate_wia_code_event | 일정을 표준 iCalendar 로 — 스캔하면 캘린더에 추가됩니다. |
503으로 답합니다. 잠시 후 다시 부르면 됩니다.429와 함께 몇 초 뒤에 다시 하면 되는지 알려줍니다.더 많이 쓰셔야 한다면 — 대량 발급·제휴·상용 도입은 메일로 알려주세요. 키를 드리면 상한이 올라갑니다. wiasoom@smilestory.ai
WIA Code 한 장에는 최대 1,450바이트가 들어갑니다. 문서·책 한 챕터·음성 클립처럼 그보다 크면 Stream이 여러 프레임으로 나눕니다. 화면이 차례로 재생하고, 카메라가 모으고, 스캐너가 파일을 다시 조립합니다. 인터넷도 서버도 필요 없습니다. 생성기에 이미 들어 있습니다.
여기서 중요한 건 속도가 아니라 전송이 끝나기는 하느냐입니다. Stream은 모든 프레임이 필요합니다. 못 읽은 프레임은 다음 바퀴를 기다려야 하고, 그때도 실패할 수 있습니다. 그래서 프레임당 판독률 차이는 평균으로 상쇄되지 않고 완주 시간으로 곱해집니다. 같은 물리 크기(1064 대 1088px, n=17, QR은 ZBar로 판독)에서 열화 스윕을 돌리니 고버전 QR 프레임은 52.9% 읽혔고 WIA 프레임은 17장 중 17장이 읽혔습니다. 이 값을 순환 방송 모형에 넣으면 286프레임 QR 전송은 완주까지 약 8바퀴, 155프레임 WIA 전송은 약 1바퀴가 걸립니다.
정직하게 읽어 주세요: n=17은 작은 표본입니다. 3의 법칙에 따르면 "17장 중 17장"은 95% 신뢰수준에서 82% 이상으로 읽어야 하고, 52.9%라는 값도 29~77% 구간을 함께 갖습니다. 양쪽 모두 가장 불리한 끝을 잡아도 완주 시간 격차는 약 2.4배입니다. 실제 단말의 화면 촬영과 인쇄물은 아직 측정하지 않았습니다. 또 같은 프레임 크기에서는 흐림 내성이 QR이 낫습니다 — 용량을 맞췄을 때에야 우리가 앞섭니다.
WIA Code는 SmileStory Co., Ltd.의 제품입니다. 부스터 QR은 전용 스캐너가 없는 분도 읽을 수 있게 돕는 안내자입니다.