30분 만에 AI 텔(tell) 감지기의 리라이터 기능을 출시한 방법 (Claude + Next.js + Vercel)
요약
작성자가 AI 생성 콘텐츠 탐지기('AI Tell')를 개발한 경험을 바탕으로, 사용자들이 가장 많이 요청했던 '수동 재작성' 기능을 추가하여 리라이터(Rewriter) 도구를 출시했습니다. 이 도구는 단순히 텍스트를 자연스럽게 수정하는 것이 아니라, 실제 인간이 작성하는 방식의 패턴(예: 대시(-)나 특정 단어 사용 금지 등)을 시스템 프롬프트에 명시적으로 강제합니다. 기술적으로는 Next.js와 Claude Sonnet 4.6 API를 활용하여 구축되었으며, 사용자 스타일과 탐지 규칙을 모두 반영하는 것이 특징입니다.
핵심 포인트
- AI 감지기 회피를 위한 리라이터 기능 출시: 사용자의 피드백에 따라 '수동 재작성' 기능을 추가했습니다.
- 고급 시스템 프롬프트 활용: 단순히 자연스럽게 만드는 것을 넘어, 탐지기가 플래그 지정하는 특정 패턴(예: 대시, 병렬 불릿)을 회피하도록 강제합니다.
- 사용자 스타일 맞춤화 가능: 텍스트와 함께 실제 작성 샘플(레딧 댓글, 트윗 등)을 제공하면, 해당 사용자의 고유한 문체와 리듬에 맞춰 재작성됩니다.
- 기술 스택 및 아키텍처: Next.js 14 App Router, Claude Sonnet 4.6 API를 활용했으며, 데이터베이스 없이 효율적인 구조로 구축되었습니다.
- 상업적 모델 도입: 무료 사용을 제공하며, 영구 라이선스($19)와 월간 구독($49) 등 명확한 수익화 전략을 적용했습니다.
어제 저는 가장 신뢰할 수 있는 12가지 AI 작성 지문(fingerprints)을 탐지하는 무료 도구를 출시했습니다. 그 배경 이야기는 이렇습니다. 제 레딧 계정이 하루 만에 공개적으로 '모든 댓글이 AI가 생성한 것'이라는 경고를 두 번 받았습니다. 운영진들은 제 게시물 3개를 삭제했습니다. 저는 모든 것을 Claude를 통해 처리하고 있었습니다. 대시(-)와 'delve'라는 단어 때문에 순식간에 들통났습니다. 탐지기 자체의 반응은 괜찮았습니다. 첫날 100회 이상의 스캔이 있었고, Dev.to 게시물만으로 하룻밤 사이에 12페이지 조회수를 기록했습니다. 하지만 제가 받은 모든 피드백은 똑같았습니다. '좋네요, 그런데 매번 손으로 다시 작성하지 않고 어떻게 수정하나요?' 그래서 오늘 리라이터 기능을 출시했습니다. → https://aitells.vercel.app/rewrite 기술적으로 작동 방식은 다음과 같습니다. 여기에 두 가지를 붙여넣습니다: 1. AI가 생성한 텍스트 (게시할 내용) 2. 실제 작성하는 방식의 글 샘플 1~3개 (이전 레딧 댓글, 트윗, 이메일 등) 엔드포인트는 이 두 가지를 Claude에 전송하며, 엄격한 시스템 프롬프트를 사용합니다. 이 프롬프트는 대시(-), 'delve', 'tapestry', 'navigate the X', 'in conclusion', 'however,' 등의 사용을 금지하고, 병렬 불릿 구조, 균일한 문장 길이 등 탐지 규칙 세트의 9가지 패턴을 강제합니다. 샘플이 매우 중요합니다. 샘플 없이 사용하면 일반적인 '캐주얼 레딧 말투' 결과가 나오는데, 이것은 괜찮지만 사용자님의 스타일은 아닙니다. 샘플과 함께 사용하면 실제로 작성하는 방식에 맞춰 문장의 리듬을 조정할 수 있습니다. 소문자로 쓰면 소문자로 씁니다. 만약 샘플에 오타나 단편적인 구절이 있다면 그것도 허용합니다. 은어(Slang)도 유지됩니다.
왜 'AI 인간화' 도구와 다른가? 대부분의 도구는 단순히 GPT에게 '더 자연스럽게 작성하라'고 재프롬프트할 뿐입니다. 그 결과 약간 다르게 수정된 AI 텍스트만 얻게 됩니다.
마찬가지로 em 대시, 'delve' 같은 단어, 그리고 병렬 불릿 포인트도 사용합니다. 이들은 원본과 마찬가지로 Reddit의 검열을 통과하지 못합니다. 이 도구는 감지기(detector) 위에 구축되었습니다. 시스템 프롬프트에는 감지기가 플래그를 지정하는 정확한 패턴들이 열거되어 있습니다. 여전히 감지기를 건드리는 출력을 내보낸다면 목적에 위배되므로, 제약 조건들은 명시적입니다.
기술 스택(tech stack)은 요청하신 대로 Next.js 14 App Router, 감지기용 edge route, 리라이터용 nodejs 런타임(Anthropic API가 edge IP를 차단했기 때문에)을 사용했습니다. Claude Sonnet 4.6을 messages API를 통해 사용합니다. 데이터베이스는 없습니다. localStorage로 무료 등급 카운터를 추적하고, 이메일은 목록 작성을 위해 Resend로 푸시됩니다. $19 평생 등급(lifetime tier) 결제는 Stripe Payment Link를 사용했습니다. 아직 웹훅(webhooks)은 없고, 트래픽이 충분해질 때까지 수동으로 처리합니다. 전체 시스템은 3개의 파일로 구성되어 있습니다.
aitells.vercel.app/rewrite 무료 첫 리라이트 제공. 영원히 사용하려면 $19 평생 결제. 처음 100명의 구매자에게만 해당하며, 이후에는 월 $49로 변경됩니다. @Perufitlife가 제작했습니다. 또한 최근 자체 CRM에서 14개의 치명적인 누출을 발견한 후 Supabase 보안 감사 도구(security auditor)도 출시했습니다. 패턴은 같습니다: 필요하다고 생각했던 것을 직접 만들어냅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기