AI 크롤러: GPTBot·ClaudeBot 방문 실측과 robots.txt·nginx 차단 설정

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)
테스트 환경 RHEL 계열AlmaLinux 9.8Nginx 1.28 + Apache 2.42026-10-18 확인

AI 크롤러는 AI 회사가 모델 학습과 AI 검색, 사용자 질문에 대한 답변을 위해 웹 페이지를 수집하는 봇입니다. Nginx + Apache 구성 서버에 이 봇들이 얼마나 방문하는지 확인하기 위해 원본 서버 액세스 로그 14일 치의 UA를 각 회사가 공개한 IP 대역과 대조한 결과 공식 대역의 요청은 1만 8,605건이었으며, robots.txt와 nginx에서 막거나 허용하는 설정을 공식 문서 기준으로 정리했습니다.

기간은 2026년 10월 4일부터 17일까지이며, 앞단 캐시가 응답해 원본 서버까지 오지 않은 요청과 진짜 IP가 기록되지 않은 요청은 숫자에 들어 있지 않습니다.

1️⃣ AI 크롤러 가려내기: 액세스 로그의 UA와 공개 IP 대역

로그에 GPTBot으로 기록된 요청이 모두 OpenAI에서 온 것은 아닙니다. UA는 요청하는 쪽이 직접 적어 보내는 글자이므로, 누구나 GPTBot이나 ClaudeBot 이름을 붙여 요청할 수 있습니다.

그래서 UA로 봇 이름별 요청 수를 먼저 세고, 각 회사가 공개한 IP 대역과 대조하는 순서로 진행합니다. 아래는 하루 치 로그에서 AI 봇 이름을 센 결과입니다.

grep -oiE '(GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User|Bytespider|CCBot|Amazonbot|meta-externalagent)/' access.log-20261018 | sort | uniq -c | sort -rn
   2968 GPTBot/
   2084 ClaudeBot/
    622 meta-externalagent/
    535 Amazonbot/
    167 PerplexityBot/
     99 OAI-SearchBot/
     30 ChatGPT-User/
     21 Claude-User/
     17 Claude-SearchBot/
     12 Meta-ExternalAgent/
     10 Perplexity-User/
      7 CCBot/

이름 뒤에 [/]를 붙여 세면 Claude-SearchBot UA 안의 연락처 주소 claudebot@처럼 이름이 아닌 글자가 빠지며, 대소문자가 다르게 기록된 이름은 따로 집계됩니다. 이어서 GPTBot 요청이 어느 IP에서 왔는지 첫 칸으로 확인합니다.

grep 'GPTBot/' access.log-20261018 | awk '{print $1}' | sort | uniq -c | sort -rn | head -5
   2524 74.7.x.x
    428 185.152.x.x
     12 34.53.x.x
      1 74.7.x.x
      1 172.182.x.x

CDN이나 프록시를 거친 요청은 첫 칸에 중간 서버 주소가 기록되므로, 그런 줄은 로그 끝 X-Forwarded-For 칸의 주소로 대조합니다. OpenAI는 GPTBot의 IP 대역을 JSON 파일로 공개하고 있습니다.

curl -s https://openai.com/gptbot.json -o gptbot.json

받은 대역 파일에 IP가 들어 있는지는 파이썬 기본 모듈인 ipaddress로 확인합니다.

# inrange.py — JSON 대역 파일 안에 IP 가 있는지 확인
import json, sys, ipaddress
nets = [ipaddress.ip_network(p.get('ipv4Prefix') or p.get('ipv6Prefix')) for p in json.load(open(sys.argv[1]))['prefixes']]
for a in sys.argv[2:]:
    ip = ipaddress.ip_address(a)
    print(a, 'IN' if any(ip in n for n in nets) else 'OUT')

대역 파일 이름 뒤에 확인할 IP를 이어서 넣습니다.

python3 inrange.py gptbot.json 74.7.x.x 34.53.x.x
74.7.x.x IN
34.53.x.x OUT

2,524건을 보낸 IP는 공개 대역 안에 있었고, 12건을 보낸 IP는 대역 밖이었습니다. Anthropic과 Perplexity, Apple, Common Crawl, 구글, 빙도 같은 형식의 대역 파일을 공개하며, Amazonbot은 역방향 DNS가 crawl.amazonbot.amazon으로 끝나는지로 확인했습니다. 공항 출입국 심사가 탑승권의 이름이 아니라 여권을 대조하는 것과 같습니다.

14일 치를 이렇게 대조한 결과, IP 70개가 GPTBot과 ClaudeBot, Googlebot 등 봇 이름 23개를 번갈아 사용하며 요청 4만 8,041건을 보냈고 그 가운데 57%는 .php나 .env처럼 취약점을 찾는 주소였습니다. Google-Extended 이름을 단 요청 809건도 모두 이 무리였으며, 구글 문서 기준 Google-Extended는 HTTP 요청에 쓰는 UA가 없는 robots.txt 전용 토큰입니다.

2️⃣ UA별 방문 수: 14일 실측과 주별 추이

아래 표는 10월 4일부터 17일까지 14일 동안의 요청 수입니다. 공개 대역이 있는 봇은 대역 안 요청만 세었고, 대역을 대조하지 않은 봇은 사칭 무리를 뺀 UA 기준으로 세었습니다.

봇회사14일 요청확인 방법사칭 무리
ClaudeBotAnthropic10,305공개 IP 대역2,387
PerplexityBotPerplexity3,406공개 IP 대역2,262
GPTBotOpenAI2,546공개 IP 대역2,328
OAI-SearchBotOpenAI1,399공개 IP 대역2,347
ChatGPT-UserOpenAI334공개 IP 대역2,409
ApplebotApple330공개 IP 대역2,372
CCBotCommon Crawl275공개 IP 대역2,275
Claude-UserAnthropic10공개 IP 대역2,192
Claude-SearchBotAnthropic0공개 IP 대역2,297
Perplexity-UserPerplexity0공개 IP 대역2,235
Meta-ExternalAgentMeta14,384UA2,339
BytespiderByteDance6,569UA2,336
AmazonbotAmazon3,493UA · 역방향 DNS2,379
Googlebot(비교)Google10,545공개 IP 대역3,951
bingbot(비교)Microsoft13,477공개 IP 대역1,551

공개 대역에서 확인된 AI 크롤러 가운데 ClaudeBot이 1만 305건으로 가장 많았고, PerplexityBot 3,406건과 GPTBot 2,546건이 뒤를 이었습니다. Claude-SearchBot과 Perplexity-User는 공개 대역에서 온 요청이 0건이었으며, 같은 이름의 요청은 모두 사칭 무리에서 나왔습니다.

사칭을 걸러 낸 뒤에도 남는 문제는 대역을 대조하지 않은 봇입니다. Meta-ExternalAgent는 UA 기준 1만 4,384건으로 가장 많았지만, 확인한 Meta 크롤러 문서에는 IP 대역 목록이 없어 UA만으로 집계했습니다.

📊AI 크롤러 주별 요청 수주 단위 · 로그 집계
GPTBot
OpenAI · 모델 학습 수집
08461,6922,5373,383
9/143,3837일
9/211907일
9/283567일
10/5127일
10/122,9596일(10/17까지)
ClaudeBot
Anthropic · 모델 학습 수집
02,5545,1087,66310,217
9/146,9767일
9/2110,2177일
9/287,7097일
10/56,9307일
10/127,2896일(10/17까지)
PerplexityBot
Perplexity · 검색
05531,1061,6592,212
9/141,0847일
9/212,1527일
9/285337일
10/52,2127일
10/121,4836일(10/17까지)
숫자는 9월 14일 주부터 10월 12일 주까지 원본 서버 액세스 로그의 UA 기준 값이며, 사칭 무리 IP와 취약점 탐색 주소로 온 요청, 응답 코드가 403·429 같은 오류인 요청은 집계에서 뺐습니다.

주 단위로 보면 GPTBot은 12건에서 3,383건 사이를 오르내렸고, ClaudeBot은 다섯 주 모두 6,930~1만 217건 범위에 머물렀습니다.

3️⃣ 어떤 주소를 가져가나: 주소 꼴과 응답 코드

AI 크롤러가 글 본문만 가져가는 것은 아닙니다. 14일 동안 Meta-ExternalAgent 요청의 21%는 이미지였고, 공개 대역의 GPTBot은 RSS 피드를 476번, ClaudeBot은 사이트맵을 314번 요청했습니다.

다른 언어판 주소도 함께 수집하며, 공개 대역 기준 ClaudeBot 요청 1,111건과 GPTBot 요청 436건이 다른 언어판 글이었습니다. 응답 코드는 하루 치 로그에서 바로 셀 수 있습니다.

grep 'ClaudeBot/' access.log-20261018 | awk '{print $9}' | sort | uniq -c | sort -rn | head -4
   1357 200
    665 301
     31 304
     21 404

하루 치에서도 301이 3분의 1 가까이 되며, 14일 동안 공개 대역의 ClaudeBot 요청 1만 305건 가운데 5,915건(57%)이 301이었습니다. 그중 4,736건은 주소 끝에 [/]가 없는 요청이었고, 워드프레스가 [/]를 붙인 주소로 301 응답을 보내 같은 글을 한 번 더 요청하게 되었습니다.

4️⃣ robots.txt 설정: 학습용과 검색용 토큰

robots.txt는 자동으로 수집하는 학습용·검색용 봇을 다루는 데는 맞지만, 사용자가 질문할 때 페이지를 가져오는 봇에는 맞지 않습니다. OpenAI와 Perplexity 문서는 ChatGPT-User와 Perplexity-User 요청에 robots.txt 규칙이 적용되지 않을 수 있다고 안내합니다.

회사마다 토큰은 용도별로 나뉘며, OpenAI 문서 기준 한 토큰을 막아도 다른 토큰의 설정에는 영향이 없습니다. 아래는 각 회사 공식 문서에서 확인한 토큰입니다.

robots.txt 토큰회사용도막으면(공식 문서)
GPTBotOpenAI모델 학습 수집학습에 사용하지 말라는 신호
OAI-SearchBotOpenAIChatGPT 검색ChatGPT 검색 답변에서 제외(이동 링크로는 노출 가능)
ChatGPT-UserOpenAI사용자 요청robots.txt 규칙이 적용되지 않을 수 있음
ClaudeBotAnthropic모델 학습 수집이후 자료를 학습 데이터에서 제외
Claude-SearchBotAnthropic검색 품질 개선검색 결과 노출이 감소할 수 있음
Claude-UserAnthropic사용자 요청사용자 질문에 페이지를 가져오지 않음
PerplexityBotPerplexity검색(학습 아님)검색 결과에서 제외
Perplexity-UserPerplexity사용자 요청대체로 robots.txt를 따르지 않음
Google-ExtendedGoogleGemini 학습·그라운딩구글 검색 노출·순위에는 영향 없음
Applebot-ExtendedApple기반 모델 학습Apple 검색 노출에는 영향 없음
meta-externalagentMetaAI 모델 학습 등Disallow로 차단(문서 예시)

Google-Extended와 Applebot-Extended는 따로 수집하는 봇이 아니라 robots.txt에서만 사용하는 토큰입니다. 수집은 기존 구글·Apple 크롤러가 하고, 이 토큰은 수집한 내용을 AI 모델 학습에 사용할지만 정합니다.

학습용 수집만 거부하고 AI 검색 노출은 남기는 robots.txt는 아래와 같으며, OpenAI·Perplexity·Meta 문서는 변경이 반영되기까지 최대 24시간이 걸린다고 안내합니다.

# 학습용 수집 거부
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: Applebot-Extended
Disallow: /

User-agent: meta-externalagent
Disallow: /

# AI 검색용 봇은 허용
User-agent: OAI-SearchBot
Allow: /

User-agent: Claude-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

Nginx + Apache 서버의 지금 robots.txt에는 AI 봇을 지목한 줄이 없습니다.

curl -s https://example.com/robots.txt
# 모든 검색 엔진 봇에 적용
User-agent: *

# 관리자 페이지 차단 (보안)
Disallow: /wp-admin/

# 관리자 기능 중 ajax 통신은 허용 (정상 작동에 필수)
Allow: /wp-admin/admin-ajax.php

# 추가: 스팸 검색 결과 차단 (SEO 보호)
Disallow: /search/
Disallow: /?s=

# 사이트맵 경로 안내 (색인 속도 향상)
Sitemap: https://example.com/sitemap_index.xml

AI 봇 줄이 없는 이 상태에서 14일 동안 공개 대역의 GPTBot 요청 2,546건은 403 없이 200 2,090건, 301 432건으로 응답되었습니다. 같은 기간 원본 로그에 남은 robots.txt 요청은 공개 대역 기준 Googlebot 36건, ClaudeBot 8건, OAI-SearchBot 6건이었고, GPTBot과 PerplexityBot은 0건이었습니다. robots.txt 역시 앞단 캐시가 응답하면 원본 로그에 남지 않습니다.

5️⃣ nginx에서 AI 크롤러 막기와 한계

robots.txt로 막아도 규칙을 읽지 않는 요청은 서버까지 그대로 들어옵니다. nginx에서는 [map]으로 UA에 봇 이름이 있으면 변수에 1을 넣습니다.

# http 블록 안 — 학습용 봇 이름이 UA 에 있으면 1
map $http_user_agent $ai_train_bot {
    default        0;
    ~*GPTBot/      1;
    ~*ClaudeBot/   1;
    ~*Bytespider   1;
    ~*CCBot/       1;
}

server 블록에서는 그 변수가 1이면 403을 반환합니다.

# server 블록 안
location / {
    if ($fake_searchbot) {
        return 403;
    }
    if ($ai_train_bot) {
        return 403;
    }
    # 이하 기존 설정
}

UA로 막는 방법은 이름만 확인하므로, 사칭 요청은 같은 이름이면 함께 막히고 이름을 바꾸면 통과합니다. 허용한 검색용 봇의 이름을 빌린 요청은 공개 IP 대역과 대조해야 걸러집니다.

🧭 AI 크롤러 요청이 지나는 길
설명 다이어그램
📌 요청
📥 요청
📜 robots.txt
자동 크롤러가 먼저 읽는 규칙
GPTBot · ClaudeBotDisallow면 수집 중단
OAI-SearchBot · PerplexityBotDisallow면 검색 답변에서 제외
ChatGPT-User · Perplexity-User규칙이 적용되지 않을 수 있음
봇 이름만 빌린 요청규칙을 따른다는 보장 없음
요청→
🖥️ nginx
UA map · 공개 IP 대역 대조
UA map 에 이름 있음UA 로 403
UA map 에 없음공개 대역 안이면 통과
UA map 에 없음통과
허용한 봇 이름 + 대역 밖대역 대조로 403
응답→
📤 응답
상태 코드
403학습용 수집 거절
200AI 검색에 노출
200사용자 질문에 답변
403이름을 바꾸면 UA 막기는 통과
학습용 크롤러는 robots.txt의 Disallow를 따르며, nginx의 UA map에 이름을 넣으면 규칙을 읽지 않은 요청도 403으로 거절합니다. 14일 동안 공개 대역에서 온 GPTBot 요청은 2,546건이었습니다.
검색용 크롤러는 학습용 토큰과 따로 설정하며, 막지 않으면 ChatGPT 검색과 Perplexity 검색 답변에 페이지가 노출될 수 있습니다(공식 문서 기준). nginx에서는 공개 대역 안에서 온 요청만 통과시킵니다.
사용자 요청 봇은 사용자가 질문할 때 페이지를 가져오는 요청이며, OpenAI와 Perplexity 문서는 robots.txt 규칙이 적용되지 않을 수 있다고 안내합니다. 막으려면 nginx에서 이름으로 거절합니다.
사칭 요청은 봇 이름만 빌려 쓰므로 UA 막기는 이름이 같을 때만 거절하고, 허용한 검색용 봇의 이름을 쓰면 공개 대역 대조로만 걸러집니다. 14일 동안 IP 70개가 봇 이름 23개를 번갈아 사용했습니다.

OAI-SearchBot은 허용하면서 대역 밖에서 온 같은 이름의 요청만 거절하려면 [geo]로 공개 대역을 변수로 만들고, UA와 묶어 대조합니다.

# http 블록 안 — OAI-SearchBot 공개 대역(searchbot.json 전체를 넣음, 아래는 두 줄만)
geo $oai_search_net {
    default              0;
    104.210.140.128/28   1;
    135.234.64.0/24      1;
}

map $http_user_agent:$oai_search_net $fake_searchbot {
    default                  0;
    ~*OAI-SearchBot/.*:0$    1;
}

앞단에 CDN이나 프록시가 있으면 [geo]가 보는 주소가 중간 서버이므로, real_ip로 진짜 IP를 복원한 뒤에 대조합니다. Anthropic 문서는 IP 주소로 막는 방법이 robots.txt를 읽는 것까지 막아 거부 신호가 제대로 전달되지 않을 수 있다고 안내합니다.

설정은 운영 중인 서버에 넣지 않고 시험용 설정 파일로 문법만 검사했습니다.

nginx -t -p ./ -c nginx-test/nginx.conf
nginx: the configuration file ./nginx-test/nginx.conf syntax is ok
nginx: configuration file ./nginx-test/nginx.conf test is successful

설정 예시는 문법만 검사했으므로 403 응답은 확인하지 않았으며, 14일 로그 기준으로는 OAI-SearchBot 이름을 단 요청 3,937건 가운데 2,347건이 공개 대역 밖의 사칭 무리에서 왔습니다.

6️⃣ AI 크롤러에 대가를 받는 방식: Pay per crawl과 Web Bot Auth

Pay per crawl은 Cloudflare AI Crawl Control의 기능으로, 사이트 소유자가 영역마다 가격을 정하고 AI 크롤러 요청마다 요금을 받는 방식입니다. 2026년 10월 18일 확인한 공식 문서 기준 비공개 베타이며, Cloudflare가 판매 대행자(Merchant of Record)로 결제를 처리합니다.

결제 의사를 요청 머리글로 보낸 크롤러는 200 응답을 받고, 그렇지 않은 크롤러는 가격이 담긴 [402 Payment Required] 응답을 받게 됩니다. 같은 크롤러를 WAF나 Bot Management로 차단하면 차단 규칙이 요금 부과보다 우선합니다.

요금을 내려는 크롤러는 Web Bot Auth로 자신을 증명해야 합니다. Web Bot Auth는 봇이 Ed25519 키로 요청에 서명하고, 공개 키를 [/.well-known/http-message-signatures-directory] 주소에 두어 받는 쪽이 서명을 검증하는 방식입니다.

서명은 [Signature-Agent]와 [Signature-Input], [Signature] 세 머리글로 전달되며, IP 대역 대신 암호 서명으로 봇을 확인합니다. 원본 서버의 기본 액세스 로그 형식은 요청 머리글을 기록하지 않아, 14일 동안 들어온 AI 크롤러 요청에 서명이 있었는지는 확인하지 않았습니다.

14일 동안 공개 IP 대역에서 확인된 AI 크롤러 요청 1만 8,605건은 같은 기간 Googlebot과 bingbot의 공개 대역 요청 2만 4,022건의 77%였습니다. robots.txt에 학습용 토큰을 넣을지는 사칭을 뺀 숫자로 판단하게 되며, 주 단위 로그 집계에 공개 대역 대조를 붙이면 그 추이를 확인할 수 있습니다.

🔢 FAQ & 추천 콘텐츠

Anthropic 문서는 비표준 확장인 [Crawl-delay]를 지원한다고 안내하며, [User-agent: ClaudeBot] 아래 [Crawl-delay: 1]처럼 작성합니다. Apple 문서는 Applebot이 crawl-delay를 따르지 않는 대신, 사이트가 느려지거나 오류를 반환하면 수집 속도를 자동으로 조정한다고 밝힙니다.

Apple 문서 기준 nosnippet 메타 태그를 단 페이지는 Apple 제품에서 AI 모델이 답변을 생성할 때 추가 맥락으로 사용되지 않으며, 검색 제안에는 제목만 표시됩니다. PDF나 이미지처럼 메타 태그를 넣을 수 없는 파일은 [X-Robots-Tag: applebot: nosnippet] 응답 머리글로 같은 지시를 보냅니다.

Perplexity 문서는 UA에 PerplexityBot이나 Perplexity-User가 들어 있고 출발 IP가 공개 JSON 대역 안에 있는 요청만 허용하는 규칙을 만들어, 다른 차단 규칙보다 먼저 적용하도록 안내합니다. 대역은 수시로 바뀌므로 JSON 주소에서 주기적으로 받아 규칙을 갱신하도록 권합니다.

🤖 AI 크롤러 추천 콘텐츠 글 5 · 참조 8
🗂️ WEB
📋 제로클릭 검색 📄 구글 알고리즘 순위 요소 📄 자바스크립트 SEO
📄 내 아이피 확인 📄 클라우드플레어 CDN 설정
📡 OpenAI 크롤러 📡 Anthropic 크롤러 📡 Perplexity 크롤러 📡 Google 일반 크롤러 📡 Applebot 📡 Meta 웹 크롤러 📡 Pay per crawl 📡 Web Bot Auth
검색 결과가 없습니다.
OpenAI 크롤러 공식 문서(바깥 링크)
공식 문서 · OpenAI
Overview of OpenAI Crawlers
GPTBot·OAI-SearchBot·ChatGPT-User의 용도와 robots.txt 토큰, 공개 IP 대역 JSON 주소를 안내하는 공식 문서입니다.
글 보기 →현재 콘텐츠
Anthropic 크롤러 공식 문서(바깥 링크)
공식 문서 · Anthropic
Does Anthropic crawl data from the web, and how can site owners block the crawler?
ClaudeBot·Claude-User·Claude-SearchBot의 용도와 막았을 때의 영향, Crawl-delay 지원을 안내하는 공식 문서입니다.
글 보기 →현재 콘텐츠
Perplexity 크롤러 공식 문서(바깥 링크)
공식 문서 · Perplexity
Perplexity Crawlers
PerplexityBot과 Perplexity-User의 용도와 공개 IP 대역, 방화벽 허용 설정을 안내하는 공식 문서입니다.
글 보기 →현재 콘텐츠
Google 일반 크롤러 공식 문서(바깥 링크)
공식 문서 · Google
Google’s common crawlers
Google-Extended 토큰이 HTTP 요청 UA 없이 robots.txt에서만 쓰이는 이유와 영향 범위를 안내하는 공식 문서입니다.
글 보기 →현재 콘텐츠
Applebot 공식 문서(바깥 링크)
공식 문서 · Apple
About Applebot
Applebot과 Applebot-Extended의 차이, 역방향 DNS 확인과 nosnippet 처리를 안내하는 공식 문서입니다.
글 보기 →현재 콘텐츠
Meta 웹 크롤러 공식 문서(바깥 링크)
공식 문서 · Meta
Meta 웹 크롤러
Meta-ExternalAgent·Meta-WebIndexer·Meta-ExternalFetcher의 용도와 robots.txt 설정을 안내하는 공식 문서입니다.
글 보기 →현재 콘텐츠
Cloudflare Pay per crawl 공식 문서(바깥 링크)
공식 문서 · Cloudflare
What is Pay Per Crawl?
AI 크롤러 요청에 402 응답과 가격 머리글을 보내고 결제 의사가 있는 요청만 200으로 응답하는 기능의 공식 문서입니다.
글 보기 →현재 콘텐츠
Cloudflare Web Bot Auth 공식 문서(바깥 링크)
공식 문서 · Cloudflare
Web Bot Auth
봇이 요청 머리글에 Ed25519 서명을 붙여 자신을 증명하는 방식과 키 디렉터리 등록 절차의 공식 문서입니다.
글 보기 →현재 콘텐츠

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

인간임을 증명하세요: 0   +   9   =