Recent Posts
Recent Comments
반응형
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

오늘도 공부

AI가 코드를 짜는 시대, 코드 리뷰는 어떻게 해야 할까? 본문

AI

AI가 코드를 짜는 시대, 코드 리뷰는 어떻게 해야 할까?

행복한 수지아빠 2026. 6. 1. 18:13
반응형

원문

 

我是怎样使用 AI 来做 Code Review 的? | Viking

在 AI 生成代码时代,我现在越来越发现 Review 的重要性,因为 AI 代码产出太快了,假如长时间不干预,很快整个系统有可能都不受控制,质量严重下降,变成一个黑盒,我实践了一个叫 Review Forg

vikingz.me

 


AI로 코딩을 하다 보면 가장 먼저 느끼는 것은 속도다.

예전에는 하루 종일 붙잡고 있어야 했던 기능도, 이제는 AI에게 요구사항을 던지면 몇 분 안에 수백 줄의 코드가 나온다. 문제는 그다음이다.

“이 코드, 정말 믿고 머지해도 될까?”

AI가 만들어낸 코드는 빠르다. 하지만 빠른 만큼 사람이 검토해야 할 양도 폭발적으로 늘어난다. 특히 한 번의 기능 개발로 여러 파일이 동시에 바뀌고, 프론트엔드·백엔드·DB 구조까지 함께 건드리는 프로젝트라면 더 그렇다.

이제 개발자의 고민은 단순히 “AI로 코드를 어떻게 빨리 짤까?”가 아니다.

오히려 더 중요한 질문은 이것이다.

AI가 만든 코드를 어떻게 안전하게 리뷰할 것인가?


AI 코드 리뷰의 핵심은 ‘속도’가 아니라 ‘품질’이다

원문 작성자는 AI를 활용해 대부분의 코드를 작성하고 있지만, 동시에 코드 품질을 매우 중요하게 본다. 특히 자신이 운영하는 제품의 규모가 커지면서, AI가 한 번에 생성하는 코드 변경량도 점점 커졌다고 말한다.

여기서 중요한 관점이 하나 나온다.

AI 코딩은 반드시 빠르게만 써야 하는 도구가 아니다.
오히려 AI를 활용해 더 천천히, 더 꼼꼼하게, 더 안정적인 코드를 만들 수 있다.

이 관점은 꽤 중요하다. 많은 사람이 AI 개발 도구를 “속도 향상 도구”로만 바라본다. 하지만 실제 제품을 운영하는 입장에서는 속도보다 중요한 것이 있다.

바로 머지 이후의 안정성이다.

기능은 빨리 만들 수 있어도, 그 기능이 결제 오류를 만들거나, 데이터 정합성을 깨거나, 사용자가 보는 화면을 망가뜨리면 의미가 없다.

그래서 원문에서는 AI 코드 품질을 높이기 위한 두 가지 전략을 제시한다.

첫째는 테스트, 특히 E2E 테스트다.
둘째는 AI를 활용한 코드 리뷰 프로세스다.

이 글에서 핵심적으로 다루는 것은 두 번째, 즉 AI 코드 리뷰 워크플로다.


하나의 AI에게만 리뷰를 맡기지 않는다

원문에서 소개하는 방식의 핵심은 간단하다.

여러 AI 모델에게 같은 코드를 독립적으로 리뷰하게 한다.

작성자는 이를 위해 Review Forge라는 자체적인 코드 리뷰 프로세스를 만들었다. 복잡한 서비스라기보다는, 규칙과 파일 구조를 정해두고 AI 에이전트들이 각각 리뷰 보고서를 만들게 하는 방식이다. (vikingz.me)

흐름은 대략 다음과 같다.

  1. 여러 AI 모델이 현재 변경 사항을 각각 리뷰한다.
  2. 모델별 리뷰 결과를 개별 문서로 저장한다.
  3. AI가 여러 리뷰 문서를 종합해 하나의 요약 리포트를 만든다.
  4. 사람이 직접 확인하면서 실제로 고칠 항목을 선택한다.
  5. 한 모델이 수정한다.
  6. 다른 모델이 수정 결과를 다시 검증한다.
  7. 테스트를 돌리고 최종 판단은 사람이 한다.

이 구조에서 중요한 점은 “AI가 다 알아서 해준다”가 아니다.

오히려 반대다.

AI는 문제를 찾고, 사람은 판단한다.


왜 여러 모델로 리뷰해야 할까?

하나의 AI 모델로 코드 리뷰를 하면 분명 도움이 된다. 명백한 로직 오류나 빠진 예외 처리를 찾아낼 때도 많다.

하지만 한계도 있다.

하나의 모델은 하나의 관점으로 코드를 본다. 어떤 모델은 타입 안정성을 잘 보고, 어떤 모델은 비즈니스 로직의 흐름을 잘 보고, 어떤 모델은 예외 케이스나 파일 간 부작용을 더 잘 잡아낸다.

원문 작성자는 여러 모델로 리뷰를 해보니 흥미로운 패턴을 발견했다고 한다.

대략 60% 정도의 발견은 서로 겹치고, 나머지 40%는 모델마다 다르게 나온다는 것이다. 특히 중요한 것은, 어떤 문제는 한 모델만 발견하고 다른 모델은 전혀 언급하지 않는다는 점이다. (vikingz.me)

여기서 실무적으로 매우 유용한 기준이 생긴다.

여러 모델이 동시에 지적한 문제는 실제 문제일 가능성이 높다.

물론 이것이 무조건 참이라는 뜻은 아니다. 하지만 서로 다른 모델이 독립적으로 같은 문제를 지적했다면, 그 항목은 우선순위를 높게 두고 확인할 가치가 있다.

반대로 한 모델만 지적한 문제는 버릴 필요는 없지만, 사람이 더 신중하게 검토해야 한다.

즉, 다중 모델 리뷰의 가치는 두 가지다.

첫째, 교차 검증이다.
둘째, 리뷰 범위 확장이다.

하나의 AI가 놓친 부분을 다른 AI가 볼 수 있다. 그리고 여러 AI가 동시에 지적한 문제는 사람의 판단 비용을 줄여준다.


리뷰 결과는 다시 요약해야 한다

여러 모델이 각각 리뷰를 하면 또 다른 문제가 생긴다.

리뷰 문서가 너무 많아진다.

AI가 만든 리뷰 보고서를 하나씩 읽다 보면, 오히려 사람이 더 피곤해질 수 있다. 그래서 원문에서는 Synthesize 단계가 등장한다.

이 단계에서는 여러 모델이 만든 리뷰 보고서를 다시 AI에게 종합하게 한다. 그리고 중복으로 발견된 문제, 심각도가 높은 문제, 우선적으로 확인해야 할 문제를 정리해 하나의 체크리스트로 만든다. (vikingz.me)

이 방식이 좋은 이유는 명확하다.

사람은 여러 보고서를 처음부터 끝까지 읽는 것이 아니라, 정리된 체크리스트를 보고 판단하면 된다.

예를 들면 이런 식이다.

  • 이 문제는 몇 개 모델이 지적했는가?
  • 심각도는 높은가?
  • 실제 사용자에게 영향을 주는가?
  • 수정 비용은 어느 정도인가?
  • 지금 반드시 고쳐야 하는가?

AI 리뷰의 결과물을 그대로 믿는 것이 아니라, 사람이 판단하기 좋은 형태로 재가공하는 것이다.


가장 중요한 단계는 사람이 체크하는 것이다

이 글에서 가장 중요한 부분은 바로 여기다.

AI가 “high severity”라고 표시했다고 해서 반드시 고쳐야 하는 것은 아니다.

AI는 프로젝트의 전체 맥락을 완전히 이해하지 못한다. 특히 실제 서비스에서는 기술적으로는 맞는 지적이지만, 현실적으로는 굳이 고칠 필요가 없는 문제도 많다.

예를 들어 아주 좁은 엣지 케이스를 고치기 위해 100줄 이상의 코드를 바꿔야 한다면 어떨까?

그 문제가 실제 사용자에게 거의 발생하지 않고, 수정 과정에서 더 큰 리스크가 생긴다면 지금 당장 고치지 않는 것이 더 나은 선택일 수 있다.

원문 작성자는 AI가 제시한 항목을 볼 때 두 가지 질문을 던진다고 한다.

첫째, 이 문제가 실제 상황에서 버그를 만들 가능성이 있는가?
둘째, 이 문제를 고치는 비용은 얼마인가?

이 기준은 실무에서 매우 중요하다.

AI는 문제를 찾는 데 강하다.
하지만 무엇을 고칠지 결정하는 것은 다른 문제다.

그 결정에는 제품 이해, 사용자 영향도, 기술 부채, 일정, 리스크 관리가 모두 들어간다.

그래서 최종 판단은 여전히 사람이 해야 한다.


고치는 AI와 검증하는 AI는 달라야 한다

수정 단계에서도 흥미로운 원칙이 있다.

코드를 고치는 모델과 그 코드를 검증하는 모델을 분리한다.

원문에서는 하나의 모델이 선택된 문제를 수정하고, 다른 모델이 그 수정 결과를 다시 리뷰하는 방식으로 진행한다. 이때 수정 계획 문서, 진행 상태 문서, 검증 문서가 함께 만들어진다. (vikingz.me)

이 구조는 사람의 코드 리뷰와 비슷하다.

코드를 작성한 사람이 자기 코드를 직접 리뷰하면 놓치는 부분이 생긴다. 이는 능력의 문제가 아니라 사고의 관성 문제다. 자신이 왜 그렇게 짰는지 이미 알고 있기 때문에, 같은 전제를 반복해서 보게 된다.

AI도 비슷하게 볼 수 있다.

수정한 모델이 다시 자기 수정을 검증하면, 같은 논리 구조 안에서 판단할 가능성이 있다. 그래서 다른 모델에게 검증을 맡기는 것이다.

이 방식은 일종의 이중 안전장치다.

수정한 모델이 “고쳤다”고 말하는 것만으로 끝내지 않고, 다른 모델이 “정말 고쳐졌는지” 다시 확인한다.


이 방식의 진짜 가치는 불안을 줄이는 데 있다

AI 코딩을 하다 보면 이상한 불안감이 생긴다.

코드는 돌아가는 것처럼 보인다.
테스트도 일부 통과한다.
하지만 마음 한편에 찝찝함이 남는다.

“어딘가 깨진 부분이 있지 않을까?”
“내가 놓친 사이드 이펙트가 있지 않을까?”
“이대로 배포해도 괜찮을까?”

원문 작성자는 이 프로세스의 가장 큰 가치가 바로 이 불안을 줄여주는 데 있다고 말한다. (vikingz.me)

AI 리뷰를 거쳤다고 해서 코드가 완벽해지는 것은 아니다.

하지만 적어도 어떤 문제를 확인했고, 어떤 문제는 고쳤고, 어떤 문제는 의도적으로 고치지 않았는지 알 수 있다.

이 차이는 크다.

막연히 불안한 상태에서 머지하는 것과, 검토한 리스크를 알고 머지하는 것은 완전히 다르다.


AI 코드 리뷰를 실무에 적용한다면

이 방식을 그대로 따라 하지 않아도 된다.

중요한 것은 도구 이름이 아니라 구조다.

AI를 코드 리뷰에 활용하고 싶다면 다음 세 가지 원칙만 가져와도 충분하다.

첫째, 큰 변경에는 여러 AI 모델을 활용한다.
작은 수정에는 하나의 모델만 써도 된다. 하지만 여러 파일, 여러 서비스, DB 변경이 함께 들어간 큰 기능이라면 다중 모델 리뷰가 도움이 될 수 있다.

둘째, AI가 찾은 문제를 사람이 직접 선별한다.
AI가 지적한 모든 문제를 고치려고 하면 오히려 프로젝트가 산으로 갈 수 있다. 실제 사용자 영향도와 수정 비용을 기준으로 판단해야 한다.

셋째, 수정과 검증을 분리한다.
한 모델이 고친 코드는 다른 모델에게 다시 확인하게 한다. 그리고 최종적으로 테스트를 돌린다.

이 세 가지를 지키면 AI 코드 리뷰는 단순한 “자동 리뷰”가 아니라, 실무적인 품질 관리 프로세스가 된다.


AI 시대의 개발자는 더 빨리 짜는 사람이 아니라, 더 잘 판단하는 사람이다

AI는 코드를 빠르게 만든다.
AI는 리뷰도 도와준다.
AI는 수정도 할 수 있다.

하지만 무엇을 고칠지, 어디까지 고칠지, 어떤 리스크를 감수할지는 여전히 사람이 결정해야 한다.

결국 AI 시대의 개발자에게 더 중요해지는 능력은 단순 구현력이 아니다.

판단력이다.

AI가 만든 수많은 코드와 리뷰 결과 속에서, 진짜 중요한 문제를 골라내는 능력.
이론적으로 틀린 코드와 실제로 위험한 코드를 구분하는 능력.
지금 고칠 문제와 나중에 미뤄도 되는 문제를 나누는 능력.

AI 코드 리뷰의 본질은 “AI에게 맡기는 것”이 아니다.

오히려 AI를 여러 명의 리뷰어처럼 활용하되, 최종 의사결정권은 사람이 갖는 것이다.

앞으로 AI 코딩이 더 일반화될수록, 코드 리뷰는 더 중요해질 가능성이 높다.

AI가 코드를 많이 만들수록, 사람은 더 많이 읽고, 더 잘 판단해야 하기 때문이다.


정리

AI 코드 리뷰를 잘 쓰는 핵심은 다음과 같다.

  • 하나의 AI만 믿지 말고, 큰 변경에는 여러 모델로 리뷰한다.
  • 여러 모델이 공통으로 지적한 문제를 우선 확인한다.
  • AI 리뷰 결과는 요약 체크리스트로 정리한다.
  • 사람이 실제 영향도와 수정 비용을 기준으로 고칠 항목을 선택한다.
  • 수정하는 모델과 검증하는 모델을 분리한다.
  • 마지막에는 반드시 테스트로 확인한다.

AI는 개발자의 일을 없애는 것이 아니라, 개발자의 판단을 더 많이 요구하게 만든다.

그래서 좋은 AI 코드 리뷰 프로세스란, AI가 대신 결정하는 구조가 아니다.

AI가 최대한 많이 발견하고, 사람이 가장 중요한 것을 선택하는 구조다.

반응형