AI 도서관 · ChatGPT · 단축 명령어 · 코딩
'괜찮아 보여요' 대신 우선순위가 붙은 지적을 받으세요
아래 코드를 리뷰해줘.
{{INPUT}}
형식:
🔴 치명적 — 버그·보안 문제 (재현 조건까지)
🟡 개선 — 동작은 하지만 고치면 좋을 것
🟢 취향 — 무시해도 되는 것
각 항목에 수정 코드를 함께 제시하고, 문제가 없으면 없다고 솔직히 말해줘.
{{INPUT}} 자리에 내 내용을 넣어 쓰는 프롬프트입니다. 아래 버튼으로 열면 넣는 칸이 나옵니다.
언제 쓰나 · 고친 코드를 올리기 전에 심각한 것부터 짚어받고 싶을 때
function getDiscount(price, coupons) {
let total = price;
for (let i = 0; i <= coupons.length; i++) {
total = total - coupons[i].amount;
}
return total;
}우리가 쓴 예시입니다. 실제 실행 결과가 아니고, 답변은 매번 조금씩 다릅니다.
🔴 치명적 — 배열 끝을 넘어감
3행 i <= coupons.length
마지막 반복에서 coupons[i] 가 undefined 라 .amount 를 읽는 순간 멈춥니다.
재현: getDiscount(10000, [{amount:1000}])
수정: i < coupons.length
🔴 치명적 — 결과가 음수가 됨
할인 합계가 price 를 넘으면 음수가 반환됩니다.
재현: getDiscount(1000, [{amount:5000}]) → -4000
수정: return Math.max(0, total)
🟡 개선 — coupons 가 배열인지, amount 가 숫자인지 확인하지 않습니다
🟢 취향 — reduce 로 쓰면 짧아집니다각 지적에 대해 그렇게 되는 입력값을 하나씩 적어줘. 재현 조건을 못 적는 지적은 🟢 로 내려줘.