AI 코드 탐지기는 파일, 저장소 또는 제출물이 얼마나 기계 생성처럼 보이는지 점수를 매깁니다. 문서 수준 점수와 파일별 또는 함수별 하이라이트를 반환합니다. 만약 당신의 결과가 높게 나왔다면, 유용한 행동은 그 숫자와 논쟁하는 것이 아닙니다. 신호를 담고 있는 줄이 어디인지 찾아내고 그것을 고치는 것입니다.
그 판정에는 불편한 절반이 있습니다. 탐지기는 표면적 패턴으로 추측하는데, 코드는 산문보다 표면적 패턴이 적습니다. 사람이 작성한 깔끔하고 관용적이며 주석이 잘 달린 파일은 생성된 코드와 똑같이 보일 수 있습니다. 왜냐하면 생성된 코드는 바로 그런 방식으로 작성하는 사람들을 학습했기 때문입니다. 높은 점수는 흔하며, 부정행위를 했다는 증거가 아닙니다.
AI 코드 탐지기가 실제로 측정하는 것
그것은 당신의 의도를 읽지 않습니다. 통계를 읽습니다.
산문과 코드 모두에서 대부분의 탐지기는 두 가지를 봅니다. 각 다음 토큰이 얼마나 예측 가능한지(퍼플렉시티)와 그 예측 가능성이 문서 전체에서 얼마나 변하는지(버스티니스)입니다. 인간의 코드는 울퉁불퉁합니다. 지루한 루프를 쓰고, 이상하게 구체적인 이름을 가진 이상한 헬퍼를 쓰고, 티켓 번호를 언급하는 주석을 달고, 복사-붙여넣기한 설정 네 줄을 씁니다. 생성된 코드는 더 매끄러운 경향이 있습니다. 일관된 식별자 길이, 일관된 주석 스타일, 첫 줄부터 마지막 줄까지 일관된 구조입니다.
그 매끄러움이 신호입니다. 따라서 해결책은 코드를 더 나쁘게 만드는 것이 아닙니다. 실제 프로젝트의 자연스러운 울퉁불퉁함이 드러나게 하는 것입니다.
한 가지 분명히 짚고 넘어갈 점이 있습니다. 탐지기의 출력은 확률 추정치일 뿐, 저작자임을 증명하는 것은 아닙니다. GPTZero의 자체 FAQ에서는 신뢰도 수치를 “탐지기가 분류를 올바르게 할 확률”이라고 설명하며, 90%는 유사한 문서에서 탐지기가 90%의 경우 올바르게 판정한다는 의미라고 예를 듭니다(출처: gptzero.me). 이는 도구의 동작에 관한 진술이지, 당신의 파일에 관한 것이 아닙니다. Turnitin의 문서에서는 오탐을 피하기 위해 1%에서 19% 범위에서는 점수나 하이라이트가 부여되지 않도록 조정한다고 설명합니다(출처: www.turnitin.com). 모든 업체가 공개적으로 같은 트레이드오프를 관리하고 있습니다. 생성된 텍스트는 잡되, 정직한 작업을 불태우지 않는 것입니다.
왜 내 코드가 AI가 작성한 것으로 표시될까요?
대부분의 경우는 네 가지 이유로 설명됩니다.
상용구는 상용구일 뿐입니다. CRUD 핸들러, 테스트 스캐폴딩, 설정 파일, 표준 라이브러리 접착 코드는 사람이 입력하든 모델이 입력하든 거의 동일합니다. 저작자 신호가 거의 없어서 탐지기는 사전 확률에 의존하게 됩니다.
당신의 스타일은 일관적입니다. 모든 것에 data, result, handleX라고 이름을 붙이고, 모든 함수에 같은 간결한 어조로 주석을 단다면, 생성된 것처럼 읽히는 매끄러움을 의도치 않게 만들어낸 것입니다. 일관성은 보통 미덕입니다. 여기서는 손해가 됩니다.
파일이 짧습니다. 짧은 입력은 탐지기가 활용할 수 있는 정보가 거의 없습니다. 단일 유틸리티 함수는 대부분 사전 확률에 불과하고, 증거가 아닙니다.
당신은 일부에 모델을 사용했습니다. 2026년에 표시되는 대부분의 코드는 혼합형입니다. 당신이 아키텍처를 작성하고, 어시스턴트가 세 개의 헬퍼 함수를 작성했으며, 당신이 그것들을 가볍게 편집했습니다. 이음새는 실제로 존재하며 섹션 간 질감의 변화로 나타납니다.
무엇이든 다시 작성하기 전에 제대로 점수를 매기세요. DeAIze의 AI 탐지기는 전체 문서의 점수를 매기고 각 문장을 AI 확률에 따라 강조 표시하므로, 추측하는 대신 어떤 줄이 신호를 담고 있는지 확인할 수 있습니다. 무료 등급은 가입 시 200단어를 제공하며 카드가 필요하지 않습니다.
해결책: 전체 파일이 아닌 표시된 영역을 편집하세요
점수를 린터처럼 다루세요. 하나의 함수가 경고한다고 해서 저장소 전체를 재포맷하지는 않습니다.
- 먼저 점수를 매기고, 그다음 편집하세요. 줄별 또는 함수별 보기를 확인하세요. DeAIze에서는 문장 수준 강조 표시입니다. 코드 용어로 말하자면 파일이 아니라 영역을 가리킵니다.
- 크기가 아니라 신호로 정렬하세요. 차가운 부분을 건드리기 전에 가장 뜨거운 세 영역을 수정하세요. 차가운 코드를 다시 작성하는 것은 낭비이며 위험을 더합니다.
- 주석을 구체적으로 작성하세요. 이것은 코드에서 가장 효과가 큰 편집입니다.
// Initialize the client를 당신의 프로젝트만이 만들 수 있는 메모로 교체하세요. 티켓 참조, 알려진 업스트림 버그, 매개변수가 무시되는 이유 등입니다. - 대칭을 깨세요. 모든 함수가 같은 주석 형태를 가지고 있다면 일부 주석을 삭제하세요. 모든 변수가 완전한 단어라면 명백한 것들은 줄이세요. 구조가 완벽하게 평행하다면 한 분기는 인라인으로 처리하세요.
- 당신만의 거친 부분을 유지하세요. 반쯤 끝난 TODO, 사고 후 추가한 방어적 검사, 날짜가 들어간 약간 못생긴 우회 방법 등입니다. 이것들은 저자 표시이며 사실입니다.
- 다시 점수를 매기고 비교하세요. 숫자가 움직였다면 편집을 유지하세요. 그렇지 않다면 되돌리세요. 아무 이유 없이 코드를 더 나쁘게 만든 재작성은 절대 유지하지 마세요.
구체적인 예시입니다. 이전에는 표시된 헬퍼였습니다:
// Function to calculate the total price
def calculate_total_price(items):
# Initialize total
total = 0
# Iterate through items
for item in items:
total += item.price
# Return the total
return total
이후, 동일한 동작, 덜 대칭적:
def order_total(items):
# No discount logic here on purpose - pricing service owns that (TICKET-4412)
return sum(i.price for i in items if not i.voided)
두 번째 버전은 더 짧고, 더 관용적이며, 독자가 확인할 수 있는 이유를 담고 있습니다. 이것이 진짜 저자가 남기는 것입니다. 이는 난독화가 아니며 코드의 동작을 바꾸지도 않습니다. 이것은 예시일 뿐, 측정된 전후 비교가 아니라는 점에 유의하세요.
탐지율에 대해 우리 자체 테스트가 말하는 것
우리는 2026-09-28에 두 코퍼스에 대해 30% 플래그 임계값으로 탐지기를 실행했습니다. 메타데이터가 생성된 것으로 표시하지 않아 선택된 61개 DeAIze 가이드의 709개 참조 구절로 이루어진 참조 샘플은 평균 26%, 중앙값 25%를 기록했으며 범위는 0%에서 69%였습니다. 709개 구절 중 239개가 해당 임계값 이상을 기록했습니다. 인간 저작 여부는 독립적으로 검증되지 않았으므로, 이 수치로 인간 오탐률을 확립할 수 없습니다. 편집되지 않은 모델 출력, 즉 편집 없이 고정 프롬프트로 생성된 12개 DeepSeek 구절은 평균 33%, 중앙값 34%, 범위 4%에서 46%를 기록했습니다.
다시 읽어 보세요. 이것이 정직한 버전이기 때문입니다. 인간 저작 여부가 독립적으로 검증되지 않은 참조 구절과 편집되지 않은 DeepSeek 모델 출력은 겹치는 범위에 있었고, 평균은 대부분의 사람들이 예상하는 것보다 더 가까웠습니다. 탐지는 깔끔한 구분자가 아닙니다. 그것은 해석해야 하는 잡음이 많은 신호이며, 이것이 바로 문장별 강조 표시가 헤드라인 숫자보다 더 중요한 이유입니다. 점수가 도구 간에 달라지는 이유에 대한 더 넓은 시각은 AI Detector Accuracy를 참조하세요.
이것이 잘못된 선택인 경우
이것을 사용해 자신이 하지 않은 작업을 자신의 것으로 속이지 마세요. 과제, 계약, 또는 코드 리뷰에서 코드가 반드시 본인의 것이어야 한다고 명시되어 있다면, 누군가 diff를 읽고 설명할 수 없는 함수를 설명해 달라고 요구하는 순간 AI 코드 탐지 점수는 가장 사소한 문제에 불과합니다.
다음에 해당한다면 이 작업 전체를 건너뛰어야 합니다:
- 정책이 AI 지원을 전면 금지하는 경우. 점수를 낮추기 위해 편집한다고 해서 무단 제출이 승인된 제출이 되지는 않습니다. 먼저 문의한 뒤 공개하세요.
- 코드가 처음부터 끝까지 생성되었고 당신이 이해하지 못하는 경우. 주석을 다시 쓴다고 해서 코드 설명 요청에서 살아남을 수 없습니다. 코드를 배우거나 제출하지 마세요.
- 당신이 평가받는 것이 아니라 고발당한 경우. 공식 절차가 시작되었다면 올바른 대응은 재작성이 아니라 문서와 초안입니다. Academic Integrity Hearing AI에서 패널이 실제로 평가하는 내용을 다룹니다.
- 팀이 하나의 스타일 가이드를 공유하는 경우. 탐지기를 만족시키기 위해 공유 저장소 전체에 개인적 문체를 강제하는 것은 나쁜 거래입니다. 표시된 영역만 수정하세요.
다시 제출하기 전 간단한 체크리스트
- 전체 점수뿐 아니라 어떤 영역이 표시되었는지 알고 있습니다.
- 모든 편집이 동작을 동일하게 유지했으며, 이를 증명할 테스트가 있습니다.
- 주석에 이제 프로젝트별 이유, 티켓 번호, 또는 날짜가 담겨 있습니다.
- 아무것도 더하지 않는 상투적인 주석을 제거했습니다.
- 다시 점수를 매겼고 무엇이 바뀌었는지 말할 수 있습니다.
- 제출물의 모든 줄을 노트 없이 소리 내어 설명할 수 있습니다.
파일의 일부에 모델을 사용했다면, 공개가 요구되는 곳에서 그렇게 밝히세요. 어떤 부분이 지원을 받았고 어떻게 검증했는지에 대한 짧은 메모는 방어할 수 없는 깨끗한 점수보다 거의 항상 더 나은 결과입니다.
이것이 더 넓은 워크플로에 어떻게 들어맞는가
코드는 표면적 패턴이 더 희박하기 때문에 특수한 사례입니다. 동일한 방법의 대부분이 산문에도 적용되며, AI 텍스트 인간화 가이드에서 이 루프를 더 깊이 다룹니다. 텍스트에 점수를 매기고, 표시된 문장만 다시 쓰고, 의미적 유사도가 의미가 유지되었다고 말할 때만 재작성본을 유지한 다음, 다시 점수를 매기고 전후를 보고하는 것입니다. 사이트에서 사용된 예시 문단에서는 92%의 AI 점수가 4%가 되었습니다.
코드의 경우 이 루프는 더 단순하며 대부분을 직접 수작업으로 합니다. 탐지기는 신중하도록 조정되어 있습니다. Turnitin의 문서에 따르면 문서의 50%를 AI가 작성한 것으로 보인다고 식별하더라도, 실제로는 최대 65%가 AI 작성일 수 있다고 합니다(출처: www.turnitin.com). 점 추정치가 신뢰할 수 없기 때문에 공급업체가 범위를 넓히는 것입니다. 모든 코드 점수를 동일하게 대하세요. 살펴볼 이유일 뿐, 당황할 이유가 결코 아니며, 그 자체로 판결이 될 수 없습니다.
측정 참고: 이 글의 수치는 2026-09-28에 우리 자체 로컬 탐지기 관찰에서 나온 것입니다 — 61개의 메타데이터로 선택된 가이드에서 발췌한 n = 709 참조 구절 대 n = 12 편집되지 않은 DeepSeek 모델 구절, 중앙값 AI 점수는 각각 25%와 34%입니다. 인간 저작 여부는 독립적으로 검증되지 않았습니다; 같은 가이드에서 나온 구절들은 상관관계가 있으므로, 이 수치로 인간 오탐률을 확립할 수 없습니다. 방법: 방법론. 날짜가 있는 증거: 코퍼스 관찰, 2026-09-28.