2026년 8월부터 Claude가 생성하는 모든 텍스트 블록에는 보이지 않는 워터마크가 포함됩니다. 이 워터마크는 맞춤법 검사기로 감지되지 않으며, Claude에서 문서로 복사해 붙여넣어도 유지됩니다. Anthropic은 AI가 작성한 텍스트를 해당 모델로 추적할 수 있도록 이를 구축했으며, 워터마크는 텍스트 내부에 통계적 서명 형태로 존재합니다.
생성한 콘텐츠의 소유자이며 디지털 지문을 제거하고 싶다면, watermarks-remover라는 오픈 소스 프로젝트를 사용할 수 있습니다. 이 글에서는 Claude 워터마크의 작동 방식, 이 도구가 제거할 수 있는 항목과 제거할 수 없는 항목, 실행 방법을 단계별로 살펴봅니다.
이 글은 본인이 소유한 텍스트와 파일의 위생 및 프라이버시를 위한 사용을 전제로 합니다. 학업 부정행위, AI 사용 공개 정책 회피, AI 작업을 사람의 작업으로 위장하는 용도로 출처 표시를 제거하는 것은 관련 규칙이나 계약을 위반할 수 있습니다. 적용되는 조건을 먼저 확인하세요.
요약
- 통계적 텍스트 워터마크: Claude는 비밀 키에 따라 단어 선택에 미세한 편향을 주어 텍스트 전반에 통계적 서명을 남깁니다. 검색해서 삭제할 수 있는 숨겨진 문자가 아닙니다.
- 복사-붙여넣기 후에도 유지: 워터마크가 메타데이터가 아니라 단어 선택에 포함되기 때문입니다.
- 편집·번역에는 약화: 재작성, 대폭 편집, 번역을 거치면 신호가 약해집니다. 짧은 문장과 코드에서는 신호가 약하거나 없을 수 있습니다.
- watermarks-remover: MIT 라이선스의 Python 3.10+ 표준 라이브러리 기반 도구입니다.
- 레이어 A: 보이지 않는 유니코드, 특수 공백, 양방향 제어 문자, 태그 문자를 확정적으로 제거합니다. 빠르고 테스트 가능하며 무손실입니다.
- 레이어 B: 텍스트를 재작성해 통계적 워터마크를 약화합니다. 최선의 노력일 뿐이며, 문체와 정확도가 저하될 수 있습니다.
- 파일 메타데이터: PNG, JPEG, SVG, PDF, DOCX, ODT, HTML, Markdown 파일에서 C2PA, EXIF, XMP 및 문서 속성을 제거합니다.
Claude의 워터마크는 실제로 무엇인가요?
Claude의 텍스트 워터마크는 단어 사이에 삽입된 문자열이 아닙니다. 제로 너비 공백, 특수 글리프, 비정상적인 자간처럼 찾아서 제거할 수 있는 요소도 아닙니다.
Claude가 텍스트를 생성할 때는 각 단계에서 여러 후보 토큰 중 다음 토큰을 선택합니다. 워터마크는 비밀 키에 따라 이 선택에 통계적 편향을 추가합니다. 충분히 긴 텍스트에서는 이러한 선택이 누적되어 감지 가능한 통계적 서명이 됩니다.
이 구조는 제거 관점에서 두 가지 의미를 가집니다.
- 복사-붙여넣기로 제거되지 않습니다. 신호가 단어 선택에 포함되어 있어 애플리케이션을 바꿔도 함께 이동합니다.
- 편집에는 취약합니다. 충분한 단어를 변경하거나 텍스트를 번역·재작성하면 통계적 패턴이 약해집니다.
Anthropic은 2026년 8월 2일부터 모델 수준에서 이를 적용하기 시작했으며, Claude 앱, API, Claude Code, AWS·Google Cloud·Microsoft Foundry를 통한 서드파티 액세스에도 적용된다고 밝혔습니다. 또한 사용자와 서드파티가 확인할 수 있는 감지 API를 출시할 예정이라고 설명했습니다.
Anthropic의 모델 라인업과 액세스 정책에 대한 배경 정보는 모두에게 중단된 Fable 5에서 확인할 수 있습니다.
긍정적인 감지는 텍스트가 Claude를 거쳐갔을 수 있다는 의미이지, 누군가가 부정행위를 했다는 증거는 아닙니다. 교정, 번역, 요약도 모델을 거쳤다면 비슷한 흔적을 남길 수 있습니다.
두 가지 워터마크, 두 가지 해결책
watermarks-remover는 서로 다른 두 종류의 마킹을 별도 레이어로 처리합니다.
레이어 A: 확정적 문자 제거
레이어 A는 다음과 같은 문자를 제거합니다.
- 제로 너비 공백
- 특수 공백 문자
- 양방향 텍스트 제어 문자
- 유니코드 태그 문자
일부 도구와 파이프라인은 이러한 문자를 출처 또는 추적 데이터로 삽입할 수 있습니다. 레이어 A는 모델 호출 없이 순수 Python으로 실행되며, 결과가 확정적이고 테스트 가능하며 무손실입니다. 보이는 원문은 변경하지 않고 숨겨진 문자만 제거합니다.
레이어 B: 통계적 재작성
통계적 워터마크는 단어 선택에 존재하므로 단어를 바꾸는 방식으로만 약화할 수 있습니다. rewrite_text.py는 문장을 재작성해 이 신호를 공격합니다.
다만 다음 한계가 있습니다.
- 원래 문체가 평이해질 수 있습니다.
- 기술적 의미가 미묘하게 변경될 수 있습니다.
- 재작성 품질을 확보하려면 별도의 강력한 모델이 필요할 수 있습니다.
- 워터마크가 완전히 제거된다는 보장이 없습니다.
따라서 대부분의 경우 레이어 A와 파일 메타데이터 정리만 사용하는 편이 안전합니다.
파일 메타데이터 제거
이 도구는 다음 파일 형식의 C2PA 매니페스트, EXIF, XMP 및 문서 속성을 정리합니다.
- PNG
- JPEG
- SVG
- DOCX
- ODT
- HTML
- Markdown
C2PA는 콘텐츠 출처 및 진위 연합(Coalition for Content Provenance and Authenticity) 표준으로, 파일에 포함되는 서명된 매니페스트입니다. 통계적 텍스트 워터마크와 달리 C2PA는 파일을 다시 저장하거나 형식을 변환하거나 이미지를 스크린샷하는 과정에서 사라질 수 있습니다.
이 도구는 Claude, Gemini/SynthID-Text, OpenAI 및 오픈 소스 Kirchenbauer 스타일 워터마크와 같은 텍스트 워터마크를 동일한 구조로 처리합니다. 다만 SynthID와 같은 픽셀 도메인 이미지 워터마크는 제거 대상이 아닙니다. 외부 역SynthID 체크아웃을 통해 워터마크를 채점하는 기능만 선택적으로 사용할 수 있습니다.
워터마크가 약해지는 경우
다음 상황에서는 통계적 워터마크가 이미 약하거나 감지하기 어려울 수 있습니다.
- 짧은 텍스트: 통계적 신뢰도를 쌓기 위한 토큰 선택이 부족합니다.
- 코드: 소스 코드는 자연어보다 선택 가능한 토큰이 제한적입니다. 포매터, 린터, 리팩터링 도구가 남은 패턴을 다시 작성할 수도 있습니다.
- 대폭 편집된 텍스트: 이미 많은 단어를 변경했다면 통계적 패턴이 약해졌을 수 있습니다.
- 파일 변환본: 파일을 다시 저장하거나 형식을 변환하면 C2PA와 같은 메타데이터가 제거되는 경우가 많습니다.
실제로 제거 작업이 필요한 범위는 일반적으로 다음과 같습니다.
- Claude가 생성한 상태로 유지된 장문 산문
- 이미지 및 문서에 남아 있는 파일 메타데이터
watermarks-remover 설치
Python 3.10 이상이 필요합니다. 핵심 스크립트는 표준 라이브러리만 사용하므로 기본 텍스트 및 메타데이터 작업에는 별도의 pip install이 필요하지 않습니다.
git clone https://github.com/guillaumemeyer/watermarks-remover.git
cd watermarks-remover
에이전트 스킬로 호출하려면 리포지토리의 스킬 디렉터리를 연결합니다.
mkdir -p ~/.grok/skills
ln -sfn "$(pwd)/skills/remove-ai-marks" ~/.grok/skills/remove-ai-marks
스크립트를 직접 호출한다면 스크립트 경로를 환경 변수로 등록합니다.
export SCRIPTS="$(pwd)/skills/remove-ai-marks/scripts"
선택적으로 다음 도구를 설치하면 파일 정리 범위를 확장할 수 있습니다.
-
c2patool: C2PA 매니페스트를 자세히 검사 -
exiftool: 레이어 A가 처리하지 못한 이미지 메타데이터 정리
두 도구 모두 기본 워크플로에 필수는 아닙니다.
파일을 수정하기 전에 검사하기
먼저 검사기를 실행해 실제로 어떤 요소가 존재하는지 확인하세요. 검사기는 파일을 수정하지 않습니다.
python3 "$SCRIPTS/inspect_file.py" draft.md
검사 결과에서 확인할 수 있는 항목은 다음과 같습니다.
- 보이지 않는 유니코드 문자
- 메타데이터 블록
- 출처 매니페스트
파일이 이미 깨끗하다면 추가 작업이 필요하지 않습니다. 예상하지 못한 항목이 발견된 경우에도 파일을 덮어쓰기 전에 처리 범위를 결정할 수 있습니다.
텍스트에서 보이지 않는 문자 제거
확정적이고 무손실인 레이어 A를 실행하려면 clean_text.py를 사용합니다.
python3 "$SCRIPTS/clean_text.py" draft.md -o draft.cleaned.md --stats
이 명령은 다음 항목을 제거합니다.
- 보이지 않는 유니코드
- 특수 공백 문자
- 양방향 제어 문자
- 유니코드 태그 문자
보이는 텍스트는 변경하지 않으므로 문체나 의미가 손상되지 않습니다. 숨겨진 추적 문자를 정리하는 것이 목적이라면 이 명령만으로 충분할 수 있습니다.
-o 옵션은 원본을 덮어쓰지 않고 새 파일에 결과를 저장합니다. 결과를 확인하기 전까지는 원본을 유지하세요.
파일에서 메타데이터 제거
이미지와 문서는 clean_file.py로 처리할 수 있습니다.
python3 "$SCRIPTS/clean_file.py" photo.png -o photo.cleaned.png
지원되는 파일 형식은 PNG, JPEG, SVG, PDF, DOCX, ODT, HTML, Markdown입니다.
exiftool이 설치되어 있고 이미지 메타데이터를 추가로 정리하려면 다음 명령을 실행합니다.
exiftool -all= photo.cleaned.png
Claude가 생성한 이미지에서 C2PA 매니페스트만 관심 대상이라면 형식 변환이나 다시 저장하는 것만으로도 제거될 수 있습니다. clean_file.py는 이 작업을 예측 가능한 방식으로 수행하는 데 목적이 있습니다.
레이어 B: 통계적 워터마크를 약화하기 위한 재작성
통계적 워터마크를 처리할 때는 재작성에 따른 품질 저하를 먼저 고려해야 합니다.
rewrite_text.py는 재작성 프롬프트를 생성할 수 있습니다.
python3 "$SCRIPTS/rewrite_text.py" draft.md --backend print-prompt --strength paraphrase
-
--backend print-prompt: 모델을 직접 호출하지 않고 재작성 프롬프트만 출력 -
--strength: 재작성 강도 조절
--backend print-prompt를 사용하면 어떤 모델이나 시스템이 재작성을 수행할지 직접 제어할 수 있습니다.
하지만 긴 텍스트에 분산된 신호를 약화하려면 문장 단위의 충분한 재작성이 필요합니다. 그 결과 다음과 같은 문제가 발생할 수 있습니다.
- 특정 문구와 함께 원래의 목소리와 스타일이 사라질 수 있습니다.
- 기술 문서의 의미가 미묘하게 변경될 수 있습니다.
- 재작성에 추가 모델 비용이 발생할 수 있습니다.
- 결과가 워터마크 제거에 성공했다는 보장이 없습니다.
짧은 텍스트나 코드에서는 워터마크가 이미 약할 가능성이 높습니다. 반대로 중요한 장문 산문이라면 재작성 과정에서 보존하려는 품질이 손상될 수 있습니다.
실용적인 선택 기준
- 숨겨진 문자만 걱정된다면 레이어 A만 실행
- 이미지나 문서의 출처 정보가 걱정된다면 파일 클리너 실행
- 통계적 워터마크를 반드시 처리해야 하고 품질 저하를 감수할 수 있다면 레이어 B 검토
- 레이어 B 결과를 완전한 제거로 간주하지 않기
작업 결과 확인하기
처리 후 검사기를 다시 실행합니다.
python3 "$SCRIPTS/inspect_file.py" draft.cleaned.md
C2PA 매니페스트는 c2patool로 확인할 수 있습니다.
c2patool photo.cleaned.png
통계적 텍스트 워터마크는 Anthropic의 비밀 키가 없으면 로컬에서 확실히 검증하기 어렵습니다. Anthropic이 감지 API를 출시하면 이를 사용해 확인할 수 있지만, 그전까지 레이어 B 결과는 검증되지 않은 결과로 취급해야 합니다.
반면 레이어 A의 문자 제거와 C2PA 제거는 검사기와 c2patool로 반복 검증할 수 있습니다. 이 과정을 자동화된 파이프라인에 포함한다면 API 테스트와 동일하게 검증 단계를 별도로 구성하는 것이 좋습니다. 예를 들어 Apidog와 연결해 워터마크 검사를 매번 같은 방식으로 실행할 수 있습니다.
모델 기반 엔드포인트 테스트 패턴은 API를 통한 AI 에이전트 테스트 방법에서 확인할 수 있습니다.
법적·윤리적 보호 장치
이 도구는 본인이 소유한 콘텐츠의 프라이버시와 위생을 위해 사용하는 것이 적절합니다. 예를 들면 다음과 같습니다.
- 자신의 초안에서 추적 문자를 제거
- 이미지를 게시하기 전에 메타데이터 정리
- 자신이 소유한 문서의 출처 태그 제거
다음 용도로는 사용하지 않아야 합니다.
- 학업 부정행위: AI 생성물 제출을 공개하거나 금지하는 기관의 정책을 회피하는 행위
- 계약 위반: 고객 계약이나 플랫폼 약관에서 요구하는 AI 사용 공개를 숨기는 행위
- 허위 귀속: AI가 생성한 결과물을 사람의 작업으로 위장해 타인을 오도하는 행위
워터마크 감지는 저작권을 증명하지 않습니다. 반대로 워터마크가 없다고 해서 인간이 작성했다는 사실이 증명되는 것도 아닙니다. 워터마크 제거 여부만으로 출처나 저작권을 판단해서는 안 됩니다.
AI 사용을 숨기는 것이 아니라, 자체 출처 정책에 따라 벤더 워터마크 없이 모델을 운영하려는 목적이라면 자체 호스팅이 더 적절한 선택일 수 있습니다. 2026년에 실행할 수 있는 로컬 LLM 옵션은 2026년에 실행할 수 있는 최상의 로컬 LLM에서 다룹니다.
자주 묻는 질문
Claude 텍스트의 워터마크 문자를 찾아 삭제할 수 있나요?
아니요. Claude의 텍스트 워터마크는 숨겨진 문자가 아니라 단어 선택의 통계적 편향입니다. 검색해서 삭제할 대상이 없습니다.
다만 다른 도구가 삽입한 보이지 않는 문자는 watermarks-remover의 레이어 A로 제거할 수 있습니다. 이는 Claude의 통계적 워터마크와는 다른 메커니즘입니다.
Claude 결과물을 복사해 붙여넣으면 워터마크가 제거되나요?
아니요. 통계적 워터마크는 단어 선택에 포함되어 있으므로 애플리케이션 간 복사-붙여넣기 후에도 유지됩니다. 실제 텍스트를 편집하거나 재작성해야 신호가 약해집니다.
watermarks-remover는 무료인가요?
예. MIT 라이선스의 오픈 소스 프로젝트입니다. 핵심 텍스트 및 메타데이터 스크립트에는 Python 3.10 이상과 표준 라이브러리만 필요합니다.
Claude Code 출력물에도 작동하나요?
실행은 가능합니다. 다만 코드는 선택 가능한 토큰이 제한적이고 포매터와 린터가 결과를 다시 작성하므로 통계적 워터마크가 이미 약할 가능성이 높습니다. 일반적으로 제거할 신호가 거의 남지 않습니다.
SynthID와 같은 이미지 워터마크도 제거하나요?
픽셀 도메인 워터마크는 제거하지 않습니다. C2PA, EXIF, XMP와 같은 파일 수준 메타데이터는 제거할 수 있습니다. 외부 역SynthID 설정을 통해 SynthID 워터마크를 채점할 수는 있지만, 픽셀 내부 워터마크 제거는 범위 밖입니다.
워터마크를 제거하는 것이 합법적인가요?
자신이 소유한 콘텐츠에서 출처 표시를 제거하는 행위 자체가 항상 불법인 것은 아닙니다. 그러나 AI 사용 공개를 요구하는 학업 정책, 계약, 플랫폼 약관을 위반할 수 있습니다. 이 도구를 이러한 의무를 회피하는 수단으로 사용해서는 안 됩니다.
통계적 워터마크가 실제로 제거됐는지 어떻게 알 수 있나요?
현재는 Anthropic의 감지 키가 없기 때문에 자체적으로 확실히 확인하기 어렵습니다. Anthropic이 감지 API를 출시하면 이를 활용할 수 있습니다.
반면 다음 항목은 직접 검증할 수 있습니다.
- 레이어 A 문자 제거:
inspect_file.py - C2PA 제거:
c2patool - 파일 메타데이터 제거:
inspect_file.py,exiftool
가장 안전한 기본 워크플로는 원본을 보존한 상태에서 검사하고, 레이어 A 또는 파일 클리너를 실행한 다음, 결과를 다시 검사하는 것입니다.

Top comments (0)