AI 코드 리뷰 자동화를 망치는 프롬프트 습관
리뷰 범위를 통째로 던지는 습관
실패는 파일 묶음이 아니라 질문 방식에서 시작됩니다
AI 코드 리뷰를 맡길 때 가장 흔한 실수는 변경된 파일 전체를 붙여 넣고 문제 찾아줘라고 말하는 방식입니다. 이렇게 하면 AI는 중요한 설계 의도보다 눈에 잘 띄는 문법, 스타일, 사소한 네이밍에 먼저 반응합니다.
특히 대규모 리팩터링, API 응답 구조 변경, 권한 로직 수정처럼 맥락이 중요한 작업에서는 범위를 좁히지 않은 요청이 오히려 리뷰 품질을 떨어뜨립니다. 개발자는 검토를 맡겼다고 느끼지만, 실제로는 얕은 훑어보기에 가까운 결과를 받게 됩니다.
- 나쁜 요청: 이 코드 리뷰해줘
- 좋은 요청: 결제 승인 흐름에서 예외 처리 누락과 중복 호출 가능성을 중심으로 봐줘
- 더 좋은 요청: 기존 동작을 유지해야 하는 부분과 바뀌어도 되는 부분을 나눠서 검토해줘
AI 코드 리뷰는 코드를 많이 보여주는 일보다, 무엇을 의심해야 하는지 알려주는 일이 더 중요합니다.
리뷰 단위를 작게 나누는 기준
한 번의 리뷰 요청에는 하나의 목적이 있어야 합니다. 인증, 캐시, 데이터 정합성, 에러 처리, 성능처럼 관점을 분리하면 AI가 더 구체적인 판단을 내립니다.
실무에서는 커밋 단위보다 위험 단위로 나누는 편이 좋습니다. 같은 커밋 안에 있어도 사용자 권한과 화면 문구 수정은 리뷰 난이도가 완전히 다르기 때문입니다.
- 사용자에게 직접 영향을 주는 흐름부터 먼저 검토합니다.
- 데이터 변경, 삭제, 결제, 권한처럼 되돌리기 어려운 로직을 별도 요청으로 분리합니다.
- 스타일 리뷰와 동작 리뷰를 섞지 않습니다.
정답을 먼저 정해 두는 리뷰 요청
AI가 맞장구만 치게 되는 순간
많은 팀이 AI 코드 리뷰를 쓰면서도 실제로는 검토가 아니라 확인을 시킵니다. 예를 들어 이 구현 괜찮지?, 문제 없어 보이지? 같은 질문은 AI가 반대 근거를 적극적으로 찾기 어렵게 만듭니다.
AI는 사용자의 의도를 따라가려는 경향이 있기 때문에, 질문이 단정적이면 위험 신호를 약하게 표현할 수 있습니다. 코드 리뷰 자동화에서 중요한 것은 칭찬이 아니라 반례입니다. 일부러 불편한 질문을 던져야 놓친 조건이 드러납니다.
- 편향된 질문: 이 구조면 충분히 안전하지?
- 검증형 질문: 이 구조가 실패할 수 있는 입력, 동시 요청, 권한 조건을 찾아줘
- 반례형 질문: 이 변경이 운영 장애로 이어지는 시나리오를 세 가지 관점에서 검토해줘
비판 역할을 명확히 부여하기
AI에게는 역할을 분명히 주는 것이 좋습니다. 단순히 리뷰어라고 부르는 것보다, 보안 리뷰어, 백엔드 장애 대응자, 유지보수 담당자처럼 관점을 좁혀야 답변의 밀도가 올라갑니다.
코드 보안 관점이 필요한 경우에는 용어와 범위를 팀 안에서 맞춰 두는 것도 중요합니다. 기본 개념은 코드 보안의 정의처럼 신뢰 가능한 설명을 참고해 공통 언어로 정리해 두면 리뷰 대화가 훨씬 빨라집니다.
- 먼저 코드의 의도와 금지 조건을 설명합니다.
- AI에게 반례, 장애 가능성, 보안 취약점을 우선 찾게 합니다.
- 마지막에 개선안보다 재현 가능한 근거를 요구합니다.
실행 결과 없이 의견만 받는 검토
코드 리뷰와 코드 감상은 다릅니다
AI 코드 리뷰가 헛도는 또 다른 이유는 테스트 결과, 로그, 재현 절차 없이 코드만 보여주기 때문입니다. 코드만 놓고 보면 그럴듯하지만, 실제 실행에서는 경계값 하나 때문에 깨지는 경우가 많습니다.
예를 들어 장바구니 수량 업데이트 코드는 정상 입력에서는 멀쩡해 보일 수 있습니다. 하지만 음수 수량, 품절 전환, 중복 요청, 쿠폰 적용 순서까지 함께 보면 전혀 다른 문제가 드러납니다. AI에게도 이런 실행 조건을 함께 줘야 의견이 아니라 검증이 됩니다.
- 실패한 테스트 이름과 에러 메시지
- 재현 가능한 입력값과 사용자 상태
- 기대 결과와 실제 결과의 차이
- 관련 로그 중 민감정보를 제거한 핵심 구간
좋은 AI 리뷰 요청은 “어디가 이상해?”보다 “이 조건에서 왜 이렇게 실패했는지 좁혀줘”에 가깝습니다.
리뷰 전에 붙여야 할 최소 자료
매번 긴 문서를 만들 필요는 없습니다. 다만 AI가 판단할 수 있는 최소 근거는 제공해야 합니다. 변경 목적, 실패 조건, 검증 명령어, 영향 범위 네 가지면 대부분의 리뷰 품질이 눈에 띄게 달라집니다.
자동화된 리뷰 봇을 운영한다면 PR 템플릿에 이 항목을 넣어 두는 것이 좋습니다. 개발자가 매번 기억해서 쓰는 방식은 오래가지 않습니다. 양식 안에 들어 있어야 팀의 습관이 됩니다.
- 무엇을 바꿨는지 한 문장으로 적습니다.
- 무엇이 깨지면 안 되는지 명시합니다.
- 테스트 명령어와 결과를 붙입니다.
- 리뷰에서 제외해도 되는 파일을 알려줍니다.
보안과 품질을 같은 말로 뭉개는 실수
보안 리뷰는 예쁘게 고치는 일이 아닙니다
AI 코드 리뷰에서 품질이라는 단어를 너무 넓게 쓰면 중요한 문제가 흐려집니다. 가독성, 성능, 유지보수성, 보안은 서로 다른 판단 기준을 갖습니다. 변수명이 어색한 문제와 토큰 노출 가능성은 같은 무게로 다루면 안 됩니다.
특히 인증, 파일 업로드, 외부 API 연동, 관리자 기능은 보안 관점의 질문을 따로 해야 합니다. 좋은 코드인지 봐줘라는 요청으로는 입력 검증, 권한 상승, 민감정보 로깅 같은 문제를 놓치기 쉽습니다.
- 보안 관점: 인증 우회, 권한 검증 누락, 시크릿 노출 가능성
- 품질 관점: 중복 로직, 함수 책임, 예외 처리 구조
- 운영 관점: 장애 감지, 로그 수준, 롤백 가능성
위험도를 나눠서 질문하기
코드 보안은 추상적인 경고가 아니라 실제 피해 가능성을 기준으로 봐야 합니다. 관련 개념은 코드 보안 요약처럼 짧게 정리된 자료를 참고해도 좋습니다.
AI에게 요청할 때는 위험도를 낮음, 보통, 높음으로 나눠 달라고 하세요. 단순 취향 문제와 즉시 수정해야 할 문제를 같은 목록에 두면 팀은 무엇부터 고쳐야 할지 헷갈립니다.
- 사용자 데이터에 접근하는 코드인지 확인합니다.
- 외부 입력이 저장, 실행, 전송되는 지점을 찾습니다.
- 로그와 에러 응답에 민감정보가 섞이는지 봅니다.
- 수정 제안마다 악용 가능성과 재현 조건을 요구합니다.
AI 제안을 그대로 커밋하는 자동화 욕심
빠른 수정이 빠른 사고가 되는 경우
AI 코드 리뷰의 매력은 문제를 찾는 데서 끝나지 않고 수정안까지 제시한다는 점입니다. 하지만 이 장점이 가장 위험한 순간은 제안을 그대로 적용해 커밋할 때입니다. AI는 주변 컨벤션, 배포 정책, 팀의 암묵적 제약을 모두 알지 못합니다.
예를 들어 예외를 잡기 위해 try-catch를 추가하는 제안은 표면적으로는 안전해 보입니다. 그러나 실제로는 장애를 조용히 삼켜 모니터링을 어렵게 만들 수 있습니다. 빠른 수정이 운영 가시성을 망치는 전형적인 사례입니다.
- AI가 만든 수정안을 바로 main 브랜치에 반영하지 않습니다.
- 자동 수정은 작은 범위에서만 적용하고 사람이 diff를 확인합니다.
- 테스트가 없는 영역의 자동 수정은 별도 검증 태스크로 분리합니다.
- 설계 판단이 필요한 제안은 코드보다 설명을 먼저 리뷰합니다.
수정안보다 근거를 먼저 요구하기
AI에게 가장 먼저 받을 것은 패치가 아니라 근거입니다. 어떤 입력에서 실패하는지, 어떤 호출 순서에서 문제가 생기는지, 기존 코드의 어느 줄과 충돌하는지를 설명하게 해야 합니다.
팀에서 자동화 수준을 높이고 싶다면 단계별 권한을 두는 편이 좋습니다. 처음에는 코멘트만 허용하고, 다음에는 테스트 추가 제안, 그다음에 제한된 파일의 수정 제안으로 넓혀갑니다. 코드 리뷰 자동화는 속도를 높이는 도구이지, 판단 책임을 지워 주는 장치가 아닙니다.
- 코멘트 전용 단계로 리뷰 품질을 측정합니다.
- 반복되는 지적만 자동 수정 후보로 올립니다.
- 자동 수정 결과는 기존 테스트와 새 테스트를 함께 통과해야 합니다.
- 배포 영향이 있는 변경은 사람 승인 없이는 병합하지 않습니다.
팀을 더 느리게 만드는 리뷰 자동화 습관
댓글 수가 많다고 리뷰가 좋아지는 것은 아닙니다
AI 코드 리뷰 도구를 붙인 뒤 댓글이 많아졌다면, 먼저 좋아할 일이 아닙니다. 많은 댓글이 실제 결함을 줄였는지, 아니면 개발자가 무시해야 할 소음만 늘렸는지 확인해야 합니다.
가장 흔한 실수는 사소한 스타일 지적과 치명적인 결함을 같은 톤으로 남기는 것입니다. 개발자는 반복되는 낮은 가치의 댓글에 익숙해지고, 결국 중요한 경고까지 대충 넘기게 됩니다. 자동화가 신뢰를 잃는 순간입니다.
- 실수 하나: 포매터가 처리할 내용을 AI가 계속 댓글로 남기게 둡니다.
- 실수 둘: 위험도 표시 없이 모든 문제를 같은 목록으로 보여줍니다.
- 실수 셋: 오탐을 줄이는 피드백 루프 없이 도구만 계속 켜 둡니다.
도구보다 팀 규칙이 먼저입니다
AI 코드 리뷰 자동화를 안정적으로 쓰려면, 팀이 먼저 무엇을 리뷰할지 정해야 합니다. 포맷팅은 린터에 맡기고, AI는 경계 조건, 변경 의도 불일치, 누락된 테스트, 보안 위험처럼 사람이 놓치기 쉬운 영역에 집중시키는 편이 낫습니다.
마지막으로 피해야 할 습관은 AI 리뷰를 도입했다는 이유로 사람 리뷰를 얇게 만드는 것입니다. AI는 반복 검토를 빠르게 해 주지만, 제품 맥락과 사용자 피해를 판단하는 일은 여전히 팀의 몫입니다. 자동화가 팀을 돕고 있는지 확인하려면 댓글 수가 아니라 실제로 막은 장애와 줄어든 재작업을 봐야 합니다.
- AI 댓글을 위험도별로 분류해 낮은 가치의 반복 지적을 제거합니다.
- 오탐으로 판정된 리뷰는 프롬프트와 규칙에 다시 반영합니다.
- 병합 후 장애, 롤백, 핫픽스 기록과 AI 리뷰 결과를 연결해 효과를 확인합니다.

- 다음글AI 리팩터링 요청이 불안하다면 작은 커밋부터 26.09.27
등록된 댓글이 없습니다.
