인간 vs AI 코드 구분하는 7가지 징후
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

인간이 작성한 코드인지 AI가 작성한 코드인지 구분하는 7가지 징후

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인공지능

대상자

  • 개발자 (코드 리뷰, 채용, 디버깅)
  • 중급 이상 (AI 생성 코드 패턴 인식, 실무 적용 경험)

핵심 요약

  • 과도한 설명 : @param@return을 사용한 과도한 docstring (예: def add_numbers(...)의 설명)
  • 과도한 명명 규칙 : total_user_input_character_count와 같은 길고 정확한 변수명
  • 생산성 테스트 결여 : 실제 엣지 케이스 처리 없음 (예: a + b만 처리하고 복잡한 예외 무시)

섹션별 세부 요약

1. 과도한 설명으로 인한 코드 스타일

  • LLM의 특징 : def add_numbers(...)와 같은 함수에 불필요한 docstring 추가
  • 인간의 습관 : 문맥에 맞는 주석 (예: 복잡한 로직 설명)
  • 문제점 : AI는 "자기 설명"을 강조하지만, 인간은 문제 해결 중심으로 코딩

2. 과도한 변수명과 코드 명명

  • AI의 패턴 : is_feature_toggle_enabled_for_beta_users와 같은 길고 구체적인 변수명 사용
  • 인간의 습관 : x, tmp, flag와 같은 짧고 직관적인 변수명 사용
  • 문제점 : AI는 명확성 최우선으로 코딩하지만, 인간은 맥락 중심으로 작성

3. 실무 엣지 케이스 처리 결여

  • AI의 한계 : a + b만 처리하고 비정상 입력(예: 문자열) 대응 없음
  • 인간의 습관 : 예외 처리 (예: if not isinstance(a, int): raise TypeError)
  • 문제점 : AI 생성 코드는 기본 테스트 환경에서 작동하지만, 실무 환경에서 실패

4. 완벽한 포맷팅과 디버깅 무시

  • AI의 특징 : 완벽한 들여쓰기, 정확한 타입 어노테이션 (예: a: int, b: int -> int)
  • 인간의 습관 : 미흡한 포맷팅, 디버깅 흔적 (예: print() 로그 남김)
  • 문제점 : AI는 규칙 준수를 강조하지만, 인간은 실제 개발 과정의 불완전함을 반영

5. AI 생성 코드의 패턴 인식

  • AI의 특징 : 모범 사례 기반 생성 (예: @param, @return 사용)
  • 인간의 습관 : 단순한 구현 (예: return a + b만으로 함수 작성)
  • 문제점 : AI 생성 코드는 튜토리얼 스타일로 보이고, 인간 코드는 프로젝트 스타일로 구분

6. AI 생성 코드의 실무 실패 사례

  • 사례 : ChatGPT로 생성된 CSV 파서 CLI는 단순 테스트 환경에서 작동
  • 문제점 : 생산성 테스트 없이 개발된 코드는 실무에서 실패
  • 해결책 : 실무 엣지 케이스 테스트 필수

7. AI 생성 코드의 인식 방법

  • 핵심 팁 :
  1. 과도한 설명 (예: @param 사용)
  2. 과도한 명명 (예: total_user_input_character_count)
  3. 실무 엣지 케이스 결여

결론

  • AI 생성 코드를 식별하려면 :

- @param, @return을 사용한 과도한 docstring

- total_user_input_character_count와 같은 과도한 변수명

- 실무 엣지 케이스 처리 결여

- 완벽한 포맷팅디버깅 흔적 부재

- 모범 사례 기반으로 작성된 코드 패턴

- 튜토리얼 스타일의 코드 구조

- 생산성 테스트 결여

- AI 생성 코드는 인간과 다른 스타일으로 작성됨