☰ 분류

AI가 만든 코드 검수하는 프롬프트

AI가 생성한 코드를 그대로 쓰기 전에 점검합니다. 동작하는 것처럼 보이지만 실제로는 빠진 부분을 찾는 데 초점을 둡니다.

분류개발 › 바이브 코딩
태그검토개발자표코드
프롬프트 (영어 본문 · 답은 한국어로 옵니다)
Review AI-generated code. ***The goal is what looks like it works and does not.***

Check:
1. **Functions, libraries, or options that do not exist**
2. Missing exception handling — especially external calls, files, network
3. In the requirements given below and not implemented
4. **Not in the requirements and added anyway**
5. Hardcoded values that will have to change
6. Security — input validation, exposed keys or passwords, authorization
7. **Handled only on the surface** — empty functions, comments with no implementation, `TODO`

Output a table: location / problem / severity / action.

Rules:
- ***Speak on the premise that you have not run it.*** **Do not assert that it works.**
- Mark anything you are unsure of as "needs checking".
- **Start with 1 and 7.** They are the most common.
붙여 넣으면 맨 아래에 채울 칸(요구사항 · 환경 · 코드)이 나옵니다

어떤 프롬프트인가

AI가 만든 코드는 존재하지 않는 함수를 쓰거나 주석만 있고 구현이 빈 채로도 완성된 것처럼 읽힌다. 이 프롬프트는 그 둘을 가장 먼저 확인하고, 요구사항에 없는데 마음대로 추가된 것과 하드코딩된 값을 표로 낸다. 실행해보지 않았다는 전제를 지켜 "동작한다"고 단정하지 않는다.

모델 비교

Gemini는 충실하지만 과도하게 길고, Claude는 가장 구체적이나 일부 형식·범위가 어긋난다. ChatGPT는 가장 간결하지만 분류와 점검 범위가 다소 약하다.

ChatGPT종합 1위
44/ 50

+ 요구된 표 형식으로 핵심 문제만 간결하게 정리했다.

- XSS를 1번으로 잘못 분류하고 호출 경로 누락을 놓쳤다.

Claude
42/ 50

+ 호출 연결과 저장·복원 실패까지 가장 촘촘히 검토했다.

- 7번을 1번보다 먼저 두고 비필수 UX도 결함처럼 다뤘다.

Gemini
42/ 50

+ 1·7번부터 핵심 누락과 XSS를 구체적으로 짚었다.

- 요청하지 않은 긴 구현 예시로 답이 불필요하게 길다.

기준ChatGPTClaudeGemini앞선 모델
지시 준수989동점
정확성899동점
구체성8109Claude +11%
구성·가독성989동점
분량 적정성1076ChatGPT +43%

gpt-5.6-sol가 모델 이름을 가린 채 1~10점으로 채점했습니다 (2026-09-24). 측정값이 아니라 AI 심사 결과입니다.

답 전문 보기

같은 입력을 세 모델에 넣어 받은 답을 그대로 옮겼습니다. 각 CLI(에이전트 하네스)에서 실행했습니다. ChatGPT·Claude 앱이나 웹에서는 답이 다를 수 있습니다.

넣은 입력
요구사항: 메모를 저장하고 목록을 보여주는 화면. 로그인 없음. 새로고침해도 남아야 함.

환경: 브라우저만 (HTML+JS 단일 파일)

코드: <script>
let notes = [];
function add(){ notes.push(document.getElementById("t").value); render(); }
function render(){ document.getElementById("list").innerHTML = notes.map(n=>`<li>${n}</li>`).join(""); }
// TODO: 저장
</script>
gpt-5.6-luna (codex CLI · 에이전트 하네스) · 실행일 2026-09-24

실행하지 않고 코드만 검토했습니다.

항목 위치 문제 심각도 조치
1 add(), render() 사용한 push, map, getElementById, innerHTML 등은 브라우저에서 존재하는 기능으로 보임. 다만 t, list 요소가 실제 HTML에 있는지는 needs checking 낮음 HTML 요소 존재 여부 확인 및 없을 때 예외 처리
1 render() innerHTML에 사용자 입력을 그대로 삽입해 HTML/스크립트 주입(XSS)이 가능함 높음 textContent로 <li>를 생성하거나 입력값을 HTML 이스케이프
7 마지막 줄 // TODO: 저장만 있고 실제 저장 기능이 없음 높음 localStorage.setItem()으로 저장하고 페이지 시작 시 localStorage에서 불러오기
3 전체 새로고침 후에도 메모가 남아야 한다는 요구사항이 구현되지 않음. 현재 notes는 새로고침 시 빈 배열로 초기화됨 높음 초기화 시 저장된 메모를 읽고, 추가/수정 시마다 저장
2 add() DOM 요소가 없거나 접근에 실패할 때 예외 처리가 없음. 요소 존재 여부는 needs checking 중간 요소를 확인한 뒤 처리하고, 잘못된 상태에 대한 오류 처리 추가
5 add()/render() t, list라는 ID가 하드코딩되어 있음 낮음 요구사항 변경 가능성이 있으면 상수화하거나 요소 참조를 한 곳에서 관리
4 전체 로그인, 외부 라이브러리, 서버 통신 등 요구사항에 없는 기능은 추가되지 않음 해당 없음 조치 불필요
6 전체 로그인/권한 요구사항은 없고 비밀번호나 API 키 노출도 보이지 않음. 단, XSS 문제는 보안 문제에 해당함 높음 사용자 입력을 HTML로 직접 삽입하지 않도록 수정

같은 분류의 프롬프트

웹사이트 제작 전문가 프롬프트
AI 개인 코칭 앱 프롬프트
애니 정보 앱 아이디어 프롬프트
비즈니스 대시보드 생성 프롬프트
데이트 프로필 최적화 프롬프트