AI 티 나는 글 잡는 CLI를 만들어 MIT로 공개했다
% 하나로 뭉개서 "AI 작성률 78%" 같은 걸 내놓는 도구는 이미 많다. 나는 그 숫자를 못 믿겠어서, 대신 네 갈래로 쪼개 보여주는 걸 만들었다.
AI 티 나는 글 확인, 이거 나는 남의 웹사이트에 맡겼다가 한참 헤맸다. 같은 글을 넣었는데 도구마다 답이 다르더라. 하나는 안전하다고 하고 하나는 빨간불이 뜨는데, 정작 "어디가 문제냐"는 아무도 안 알려준다. 숫자만 던지고 끝. 그래서 그냥 내가 쓸 걸 만들었고, 이왕 만든 김에 MIT 라이선스로 공개했다. 개발자용 도구처럼 생겼지만 만든 사람은 개발자가 아니고, 만든 이유도 순전히 내 블로그 글 때문이었다.
📑 목차
- 1. 내 글이 AI 티 난다는 걸 뒤늦게 알았다
- 2. 검사기를 몇 개 돌렸더니 숫자가 다 달랐다
- 3. 그래서 % 를 안 만들기로 했다
- 4. 렌즈 4개, 각각 뭘 보나
- 5. 내 글에 돌려보니 걸린 건 결국 습관이었다
- 6. 이 도구가 안 하는 것부터 말해야겠다
- 7. 정리, 그리고 왜 MIT로 던져놨나
1. 내 글이 AI 티 난다는 걸 뒤늦게 알았다
블로그 글을 몇 편 쌓고 나서였다. 다시 읽는데 뭔가 미끄럽다. 틀린 문장은 없는데 사람이 쓴 것 같지가 않았다.
뜯어보니 패턴이 있더라. 문장 길이가 죄다 비슷하고, 문단마다 긴 줄표(em dash, 가로로 길쭉한 그 줄)가 하나씩 박혀 있고, 볼드가 강조가 아니라 라벨처럼 쓰이고 있었다. "핵심. 설명" 이런 식으로. 상투구도 반복됐다. 총정리, 게임체인저, 혁신적인.
아무도 안 시켰는데 왜 다들 같은 문장을 쓰게 되는 걸까..
문제는 이걸 매번 눈으로 잡을 자신이 없다는 거였다. 글 하나 쓰고 나면 이미 그 글에 눈이 익어서, 어색한 게 안 보인다. 사람 손으로 하는 검수는 셋째 편쯤부터 무너진다. 이건 자동화를 다 만들고 나서 점검하는 자동화가 따로 필요했던 것과 똑같은 구조였다. 만드는 것보다 만든 걸 계속 확인하는 게 어렵다.
2. 검사기를 몇 개 돌렸더니 숫자가 다 달랐다
그래서 먼저 남이 만든 걸 찾아봤다. 온라인 AI 검사기가 널려 있으니까.
같은 글을 여러 군데 넣어봤는데 결과가 안 맞았다. 어떤 데는 사람이 쓴 글이라 하고, 어떤 데는 절반 넘게 AI라고 한다. 어느 쪽을 믿어야 할지 알 방법이 없다.
이유는 좀 생각해보니 단순했다. 도구마다 재는 게 다른데, 결과를 부르는 이름은 똑같이 "AI 작성률"이라서 그렇다. 문장 다양성을 재는 도구, 학습된 분류 모델을 쓰는 도구, 특정 어휘 목록에 걸리는지 보는 도구가 전부 하나의 퍼센트를 뱉는다. 재는 자가 다른데 눈금 이름만 같은 셈이다.
이게 근본적으로 어려운 문제라는 신호도 있다. OpenAI는 자기가 내놓은 AI 작성 판별기를 정확도가 낮다는 이유로 내려버렸다. 만든 회사가 못 하겠다고 접은 걸, 내가 웹사이트 하나 믿고 쓰기엔 좀 그렇지.
그리고 애초에 나한테 필요한 건 판정이 아니었다. 나는 표절 의심을 받는 상황이 아니라, 그냥 내 글을 고치고 싶은 거였다. "78%"를 받아도 고칠 데를 모르면 아무 쓸모가 없다.
3. 그래서 % 를 안 만들기로 했다
만들기로 마음먹고 제일 먼저 정한 게 이거다. 신호들을 하나로 합치지 않는다.
합치려면 가중치를 정해야 한다. 문장 길이 균일도 30%, 상투구 40%, 이런 식으로. 근데 그 30이 어디서 나온 숫자냐고 물으면 답할 게 없다. 나한테는 정답표가 없으니까. 사람이 쓴 글 만 편, AI가 쓴 글 만 편을 놓고 맞춰본 적이 없는데 가중치를 만들면 그건 그냥 내가 지어낸 숫자다.
이건 전에 모델 세 개를 비교하려다 채점표만 세 번 고쳤던 경험에서 배운 거다. 재는 기준을 대충 세우면 결과가 그럴듯하게 나오고, 그럴듯해서 더 위험하다.
그래서 정한 방향은 이렇다. 판정 대신 리포트를 낸다. 각 렌즈가 뭘 봤고 어디에 걸렸는지만 보여주고, 종합 점수는 안 만든다. 판단은 글 쓴 사람이 한다.
솔직히 이건 도구로서는 불친절한 선택이다. 사용자는 숫자 하나를 원하지 네 장짜리 리포트를 원하지 않으니까. 근데 못 만드는 숫자를 만드는 것보단 낫다고 봤다.
▲ 왼쪽은 AI 작성률 78퍼센트 게이지 하나만 주는 방식, 오른쪽은 렌즈 4개가 각각 따로 리포트를 내 걸린 위치를 보여주는 방식을 나란히 비교한 도식 (자체 제작 이미지)
4. 렌즈 4개, 각각 뭘 보나
이름은 ai-text-check로 붙였다. 파이썬으로 만든 CLI, 그러니까 터미널에 명령 한 줄 치면 도는 프로그램이다. 문서 파일(md, txt, docx, pdf 등)을 넣으면 리포트가 나온다.
렌즈는 네 개고, 서로 독립이다. 하나가 다른 하나의 결과를 보지 않는다.
- 렌즈 1, 표면 통계. 문장 길이가 얼마나 균일한지, 긴 줄표와 볼드가 얼마나 촘촘히 박혔는지를 센다. 사람 글은 문장 길이가 들쭉날쭉한데 AI가 쓴 글은 이상하게 고르다.
- 렌즈 2, 기계적 흔적. 괄호가 짝이 안 맞거나, 스페이스가 두 번 들어갔거나, 같은 단어를 두 가지 철자로 쓴 자리를 찾는다. 이건 AI 티라기보단 편집 사고에 가까운데, 붙여넣기로 조립한 글에서 잘 나온다.
- 렌즈 3, 상투구 매칭. 한국어와 영어 목록을 각각 들고 있다가 걸리는 표현을 표시한다. 목록은 그냥 텍스트라 내가 계속 추가하는 중이다.
- 렌즈 4, 외부 API. 이건 선택이다. 키가 없으면 알아서 건너뛰고 나머지 세 개만 돈다.
네 번째를 굳이 선택으로 둔 이유가 있다. API를 부르면 돈이 나가고, 매번 돌리는 검사기에 과금을 붙이면 나부터 안 쓰게 된다. 실제로 로컬 LLM이 공짜인 줄 알았다가 실측하고 생각을 바꾼 적도 있고, 토큰 비용은 습관에서 새더라는 것도 겪어봐서, 기본값은 무조건 공짜로 돌게 해뒀다. 세 렌즈만 돌려도 고칠 거리는 충분히 나온다.
설치는 파이썬 3.10 이상에 가상환경 만들고 pip install -e . 정도다. 터미널이 처음이라 이 문장부터 막힌다면 비개발자 기준 클로드코드 설치 글의 초반부를 먼저 보면 감이 잡힐 거다. 거기서 다룬 그 까만 화면 맞다.
5. 내 글에 돌려보니 걸린 건 결국 습관이었다
만들어놓고 제일 먼저 내 블로그 초안들에 돌렸다. 결과는 좀 민망했다.
가장 많이 걸린 게 긴 줄표였다. 나는 이걸 삽입구용으로 편하게 쓰고 있었는데, 리포트를 보니 거의 모든 문단에 하나씩 있었다. 쉼표나 괄호로 바꾸거나 문장을 둘로 끊으면 되는 자리였다. 두 번째는 볼드였다. 강조가 아니라 소제목 대용으로 쓰고 있었고, 그러니까 한 글에 볼드가 스무 개씩 나왔다. 세 번째가 상투구.
그래서 아예 규칙으로 박았다. 긴 줄표는 발행글에서 0개, 볼드는 글 전체에 한두 곳. 취향이 아니라 하드 규칙으로 정해놓고, 초안이 나오면 검사부터 돌린다. 재밌는 건 이 글도 그 규칙 아래 썼다는 거고, 첫 판은 긴 줄표 2개로 걸려서 다시 썼다.
내가 만든 검사기한테 내가 반려당하는 기분, 은근히 억울하다ㅋ
오탐도 물론 있다. 마크다운 링크 문법이 렌즈 2의 괄호 검사에 걸리는 문제는 알고 있고 이슈로 열어뒀다. 이런 건 쓰면서 하나씩 잡는 수밖에 없더라. 참고로 AI한테 뭘 시킬 때 검증 방법까지 같이 주면 이런 오탐이 확 준다는 건 지시법 정리한 글에 따로 적어뒀다.
▲ 터미널 화면 형태의 검사 리포트로 렌즈1 긴 줄표 2건과 볼드 20건, 렌즈2 마크다운 링크 오탐 가능, 렌즈3 상투구 3건이 블록별로 표시되고 종합 점수 칸은 비어 있는 이미지 (자체 제작 이미지)
6. 이 도구가 안 하는 것부터 말해야겠다
여기가 제일 중요하다. 오해가 생기면 곤란한 도구라서 그렇다.
이건 표절 검사 서비스나 상용 AI 판별 서비스를 대체하지 않는다. 기관이 쓰는 검사와 원리가 다르고, 숫자가 안 맞는 게 정상이다. "여기서 깨끗하게 나왔으니 제출해도 된다" 같은 결론은 절대 못 낸다. 보정된 AI 작성 비율도 안 내놓는다. 3장에서 말한 그대로, 애초에 안 만들기로 한 거니까.
그리고 이건 휴리스틱이다. 통계나 목록 매칭 같은 경험적 규칙을 모아놓은 거란 뜻이고, 사람이 쓴 글도 얼마든지 걸린다. 문장 길이를 고르게 쓰는 사람, 볼드를 좋아하는 사람은 그냥 자기 문체 때문에 걸린다. 그러니 걸렸다고 고칠 게 아니라, 걸린 자리를 보고 "이거 내 의도였나 아니면 손버릇이었나"를 판단하는 용도다.
쓸모 있는 자리는 좁다. 제출 직전 자가점검, 초안 손보기, 발행 전 습관 확인. 딱 거기까지.
▲ 이 도구가 하는 일 세 가지와 하지 않는 일 세 가지를 좌우 두 칸으로 나눠 정리한 표 (자체 제작 이미지)
7. 정리, 그리고 왜 MIT로 던져놨나
MIT 라이선스로 낸 이유는 단순하다. 이런 도구는 목록이 생명인데, 상투구 목록은 나 혼자 채우면 딱 내 문체만큼만 채워진다. 남이 자기 목록을 붙이거나, 아예 통째로 가져다 고쳐 쓰는 게 낫다고 봤다. 현재 v0.1.1이고, 릴리즈 페이지에 올려뒀다.
만들면서 남은 생각은 도구 얘기보다 다른 쪽이었다. AI가 도와준 글을 고칠 때 우리가 진짜 알고 싶은 건 "이게 AI 글이냐"가 아니라 "왜 내 글 같지 않냐"다. 앞엣것은 판별 문제고 뒤엣것은 편집 문제인데, 시장에 나온 도구는 대부분 앞엣것만 답한다. 나한테 필요한 건 뒤였고, 없으니 만든 거다.
물론 이걸 굳이 안 만들고도 잘 쓰는 사람은 많을 거다. 글 감각 좋은 사람은 그냥 읽으면 보이니까. 나는 안 보여서 도구를 만든 쪽이고, 잘 알지도 못하면서 주절거린 것 같기도 하지만 결과적으로 내 글에서 긴 줄표는 사라졌다. 그거면 본전은 했다.
3줄 요약 - 검사기마다 AI 작성률이 다른 건 서로 다른 신호를 같은 이름으로 부르기 때문이다 - 그래서 % 를 안 만들고, 표면통계·기계적흔적·상투구·선택API 네 렌즈 리포트만 내는 CLI를 만들었다 - 판별 도구 대체가 아니라 발행 전 자가점검용이다, 사람 글도 걸린다
만들고 싶은 작은 도구가 하나쯤 있는데 코딩을 몰라서 미루고 있다면, 그 도구가 남한테 팔 물건이 아니라 내 손버릇 고치는 용도라면 특히, 그냥 한번 시작해봐라. 완성도는 나중에 올리면 되고 v0.1.1도 버전이다.
이 글은 정보 제공 목적이고, 작성 시점(2026년 8월) 기준이다. 도구 버전·설치 방법·이슈 상태는 저장소에서 바뀔 수 있으니 설치 전에 README를 한 번 확인하는 게 좋다. 이 도구는 어떤 기관의 AI 작성 판별 결과도 대체하거나 보장하지 않고, 학교·회사 제출물의 통과 여부와 아무 관계가 없다. 특정 제품 사용을 권유하지 않는다.
참고한 공식 자료 - 저장소·설치·면책(README): github.com/TemplarKnight0622/ai-text-check - v0.1.1 릴리즈: releases/tag/v0.1.1 - 오탐·기능 제보(이슈): ai-text-check issues - MIT 라이선스 전문: opensource.org/license/mit - OpenAI, AI 작성 판별기 중단 공지: New AI classifier for indicating AI-written text