코드가 AI로 생성된 것인지 어떻게 알 수 있나?
AI로 생성된 코드와 문서를 찾아내기 위한 실질적인 신호들. 구조적 특징부터 생성된 작업에서 드러나는 문제점까지.
강사, 채용 담당자, CTF 주최자들이 이 문제에 대해 계속 물어본다. 완벽하게 신뢰할 수 있는 탐지기는 없지만, 특히 제출물 한 두 개만 평가하는 것이 아니라 여러 제출물을 검토할 때 유용하게 쓸 수 있는 패턴들이 있다.
생성된 코드의 구조적 특징
생성된 코드는 특정한 방식으로 과도하게 주석을 단다. 그 줄이 무엇을 하는지를 다시 설명하는 주석(# 카운터 증가)이지, 그것이 왜 존재하는지를 설명하는 것이 아니다. 시간이 부족한 상황에서 작성한 인간의 코드는 당연한 주석은 건너뛰고 이상한 부분만 설명한다. 생성된 코드는 함수 길이가 균일하고, 오류 처리가 일관되고 교과서 같이 완벽한 경향이 있다. 심지어 사람이라면 대충 넘어가거나 이전 버그 경험에서 배운 편법을 썼을 부분에서도 말이다.
또 다른 특징: 변수와 함수명이 약간 지나치게 설명적이면서도 동시에 너무 일반적이다. calc_total 같은 단축어나 실제 코드베이스가 수렴한 어떤 네이밍 대신 calculate_total_price_with_tax 같은 식이다. 실제 프로젝트는 시간이 지남에 따라 여러 사람이 파일을 건드리면서 자연스럽게 네이밍에 일관성이 없어진다. 초보자가 작성했다고 주장하는 300줄짜리 파일에서 의심스럽게 일관된 네이밍 규칙이 보인다면 다시 한 번 살펴볼 가치가 있다.
실행되지 않는 부분에 대해 물어보기
가장 빠른 실질적 확인 방법은 코드를 읽어서 명백하지 않은 특정 결정에 대해 그 사람에게 설명하게 하는 것이다. 예를 들면
AI 도움을 받아 작성했으며, Michal Pilch(CISSP), Korra Studio에서 검토 및 게시했어요.
이것은 Korra Studio 나레지베이스의 한 노트예요. 플랫폼은 모든 주제를 1-to-1 멘토링과 함께 제공해요.
무료로 시작하기arrow_forward