본문으로 건너뛰기

5부: 검토 및 배포

에이전트가 코드의 80%를 작성하게 되면, 여러분은 작성자보다 검토자에 가까워집니다. 작업의 중심이 타이핑에서 판단으로 이동하며, 그 판단은 이전보다 훨씬 날카로워야 합니다. 생성된 코드는 사람이 작성한 코드보다 훨씬 조용한 방식으로 실패하기 때문입니다.

에이전트가 1차 검토를 맡게 하십시오

사람이 코드를 보기 전에 에이전트를 1차 검토자로 활용하십시오. 에이전트는 기계적인 계층에서 강점을 발휘합니다. 예상 버그, 스타일 위반, 보안 냄새, 성능 문제 등을 잘 잡아냅니다. 이를 통해 노이즈가 제거되므로, 사람 검토자는 실제로 사람이 필요한 부분—설계, 유지 보수성, 이 변경이 시스템의 방향에 부합하는지—에 집중할 수 있습니다.

이 분업이 핵심입니다. 1차 검토는 기계적이며 위임 가능합니다. 설계에 대한 최종 판단은 그렇지 않습니다.

배포되는 모든 줄을 올바른 의심으로 검토하십시오

코드가 실행된다는 이유만으로 신뢰하는 반사 반응은 생성된 코드에 있어 정확히 잘못된 반응입니다. 프로덕션에 나가는 모든 줄을 검토하고, AI 결과물이 실패하는 특정 방식에 의심의 눈길을 집중하십시오.

  • 영리한 코드를 의심하십시오. 생성된 해결책은 때때로 단순한 추상화가 올바른 상황에서 세련된 추상화를 선택하기도 합니다. 영리함은 칭찬이 아니라 경고 신호입니다.
  • 임포트가 실제로 존재하는지 확인하십시오. 모델은 그럴듯하게 들리는 패키지를 환각합니다. 올바르게 보이는 임포트가 존재하지 않는 패키지일 수 있으며—더 나쁜 경우, 모델이 흔히 만들어내는 이름을 악의적으로 선점한 패키지일 수 있습니다.
  • 실제 장애 상황에 대한 오류 처리를 확인하십시오. 생성된 코드는 정상 경로는 잘 커버하지만 실패 경로는 빈약하게 처리하는 경향이 있습니다. 네트워크 호출이 타임아웃될 때, 입력이 비어 있을 때, 행이 존재하지 않을 때 어떻게 되는지 확인하십시오.

이를 건너뛰는 비용은 구체적입니다. 팀이 이해하지 못하는 코드는 팀이 감당할 수 없는 디버깅 비용이 됩니다. 빠른 생성으로 얻은 절감은, 아무도 검토하지 않은 영리한 블록을 누군가 사흘 동안 역공학으로 분석하는 첫 번째 순간에 사라집니다.

훅: 기계가 자주 잊는 규칙을 강제하게 하십시오

어떤 규칙은 검토에만 의존하기에 너무 중요합니다. 그것들을 으로 인코딩하십시오. 훅은 라이프사이클의 고정된 시점(도구 호출 전, 파일 편집 후, 커밋 전)에 실행되며 나쁜 행동을 자동으로 차단하는 결정론적 코드입니다.

하드코딩된 시크릿을 커밋하지 못하도록 막는 pre-commit 훅 예시:

#!/usr/bin/env bash
# .git/hooks/pre-commit
if git diff --cached | grep -E -i '(api[_-]?key|secret|password|token)\s*=\s*["'\''"][^"'\'']+'; then
echo "Blocked: looks like a hard-coded secret. Remove it before committing."
exit 1
fi

훅은 에이전트(또는 사람)가 "절대 잊어서는 안 되지만 자주 잊는" 것들을 넣어두는 곳입니다. 파일에 적힌 규칙과 달리, 훅은 말로 무시할 수 없습니다.

관측 가능성: 에이전트가 실제로 무엇을 했는지 파악하십시오

볼 수 없는 것은 관리할 수 없습니다. 에이전트가 더 많은 작업을 맡게 될수록, "에이전트가 무엇을 했고, 왜 그랬는가?"라는 질문에 답할 수 있도록 관측 가능성을 구축하십시오. 다음 항목을 추적하십시오.

  • 각 실행의 트레이스 — 단계와 도구 호출의 전체 시퀀스.
  • 시간에 따른 평가 결과 — 품질 저하가 초기에 드러나도록.
  • 토큰 비용 및 레이턴시 — 조용히 비용이 증가한 워크플로가 눈에 띄도록.
  • 드리프트 — 명확한 원인 없이 시간이 지남에 따라 동작이 변화하는 현상.

이것 없이는, 오작동하는 에이전트는 블랙박스이며 유일한 디버깅 도구는 추측뿐입니다.

과소평가된 장점: 유지 보수

이제 갖춰진 워크플로를 그동안 미뤄왔던 작업에 투입하십시오. "원작자만 이해하기 때문에 건드리기에 너무 위험한" 레거시 코드는 에이전트가 진가를 발휘하는 바로 그 영역입니다. 에이전트는 코드를 읽고, 패턴을 추론하고, 관련 파일을 찾아내고, 기존 코드를 존중하는 변경을 만들 수 있습니다.

이를 통해 너무 지루하고 위험해서 이전에는 이루어지지 않았던 작업이 가능해집니다. 프레임워크 마이그레이션, 더 이상 사용되지 않는 API 업데이트, 오래된 테스트 스위트 현대화. 아무도 한 분기를 할애하고 싶지 않았던 마이그레이션이, 끝에 검토 가능한 PR이 있는 명확히 범위가 정해진 백그라운드 태스크가 됩니다.

자신만의 워크플로를 구성하십시오

  • 사람 검토 전에 1차 검토 단계(에이전트가 diff를 검토)를 추가하십시오.
  • 생성된 코드를 위한 검토 체크리스트를 작성하십시오: 영리한 추상화, 환각된 임포트, 취약한 오류 처리.
  • 최소 하나의 훅을 추가하십시오 — 위의 시크릿 차단기부터 시작하십시오.
  • 에이전트 실행에 대한 트레이싱을 활성화하고 시간에 따른 토큰 비용과 평가 점수를 관찰하십시오.
  • "건드리기에 너무 위험한" 레거시 코드 하나를 골라 범위가 정해진 검토 가능한 태스크로 에이전트에게 맡기십시오.