
보이지 않는 잉크 같은 이야기
한 개발자가 흥미로운 걸 발견했어요. 클로드 코드(Claude Code)가 서버로 보내는 요청 안에, 눈에 보이지 않는 표식을 몰래 끼워 넣고 있다는 거예요. 이걸 스테가노그래피(steganography)라고 불러요. 이게 뭐냐면, 정보를 ‘암호화’해서 알아보기 어렵게 만드는 게 아니라 아예 ‘보이지 않게’ 숨기는 기술이에요. 옛날 첩보 영화에서 레몬즙으로 편지를 써서 불에 비춰야 글씨가 보이는 거 있잖아요? 딱 그 디지털 버전이에요. 겉으로는 평범한 텍스트인데, 그 안에 사람 눈에 안 보이는 정보가 들어 있는 거죠.
어떻게 숨기는 걸까
핵심은 제로 폭 문자(zero-width characters)예요. 유니코드에는 화면에 아무 너비도 차지하지 않는, 말 그대로 ‘보이지 않는 글자’들이 있어요. 제로 폭 공백(U+200B) 같은 것들이죠. 이런 문자들을 일정한 패턴으로 텍스트 사이사이에 끼워 넣으면, 사람 눈에는 똑같아 보여도 컴퓨터는 그 패턴을 읽어서 ‘아, 이건 클로드 코드에서 온 요청이구나’ 하고 구분할 수 있어요. 0과 1 대신 보이지 않는 문자들의 조합으로 일종의 워터마크(watermark, 디지털 도장)를 찍는 셈이에요.
왜 이런 걸 할까
회사 입장에서 보면 이유는 몇 가지가 있어요. 첫째, 출처 구분이에요. 똑같은 API라도 공식 클로드 코드 앱을 통해 온 요청인지, 누가 직접 짠 스크립트로 온 요청인지 알면 운영에 도움이 되거든요. 둘째, 악용 탐지예요. 누군가 클로드 코드 클라이언트를 흉내 내서 정책을 우회하려 할 때, 이런 표식이 있으면 진짜와 가짜를 가려낼 수 있어요. 셋째, 사용량 분석이죠. 어떤 경로의 트래픽이 얼마나 되는지 파악하는 데 쓸 수 있어요.
그런데 왜 논란일까
문제는 투명성이에요. 사용자가 모르는 사이에 내 요청에 보이지 않는 식별 정보가 붙는다면, 기분이 썩 좋진 않잖아요. 특히 개발자들은 자기가 보내는 데이터가 정확히 뭔지 알고 싶어 하거든요. ‘왜 미리 안 알려줬느냐’, ‘이게 추적용이면 프라이버시 문제 아니냐’는 지적이 나오는 이유예요. 반대로 ‘악용을 막으려면 어쩔 수 없다’, ‘워터마크 자체는 흔한 기술이다’라는 옹호도 있고요. 정답이 딱 떨어지는 문제가 아니에요.
한국 개발자에게 주는 교훈
이건 단순히 클로드만의 이야기가 아니에요. 여러분이 만드는 서비스에서도 충분히 마주칠 수 있는 주제거든요. 예를 들어 AI가 생성한 텍스트나 이미지에 보이지 않는 표식을 심어 ‘이건 AI가 만든 거야’를 증명하는 기술도 같은 원리예요. 실무 팁을 하나 드리면, 외부에서 받은 텍스트를 그대로 저장하거나 다시 보낼 때는 제로 폭 문자를 한 번 걸러주는(sanitize) 습관을 들이는 게 좋아요. 보이지 않는 문자가 끼면 검색이 안 되거나, 비교(diff)가 이상하게 되거나, 보안 필터를 우회하는 통로가 될 수도 있거든요.
정리하며
핵심은 ‘내가 보내는 평범한 텍스트에도 보이지 않는 정보가 숨어 있을 수 있다’는 거예요. 여러분은 도구가 사용자 몰래 식별 표식을 넣는 것, 악용 방지를 위해 용인할 수 있다고 보시나요, 아니면 반드시 사전 고지가 필요하다고 보시나요?
🔗 출처: Hacker News