Skip to main content

AI 에이전트가 원치 않는 코드 변경을 하지 않게 하는 5가지 실전 방법

Published 4 min readMarkdown

(SEO 키워드: AI 에이전트, 코드 변경 방지, 프로그래밍 자동화)


# 서론 – “친절하지만 과잉 행동하는 인턴” 같은 AI 에이전트

최근 AI 에이전트를 활용해 자동으로 코드를 리팩터링하거나 버그를 찾아내는 사례가 늘어나고 있습니다. 하지만 “AI 에이전트가 너무 열심히 일한다”는 문제가 종종 발생합니다.

  • 의도와 다른 파일을 수정한다.

  • 기존 테스트를 깨뜨린다.

  • 팀 규칙(코딩 컨벤션, 주석 스타일 등)을 무시한다.

이러한 원치 않는 코드 변경은 프로젝트 안정성을 떨어뜨리고, 리뷰 시간을 크게 늘립니다. 초보 개발자라면 “AI가 뭘 했는지 모른다”는 불안감에 쉽게 포기하게 되죠.

본 글에서는 AI 에이전트가 코드를 안전하게 다루도록 제어하는 방법을 단계별로 안내합니다. 직접 따라 해 보면서 프로그래밍 자동화를 신뢰할 수 있는 도구로 바꾸어 보세요.


# 1️⃣ AI 에이전트에게 명확한 작업 범위 지정하기

# 1.1 프롬프트에 구체적인 제한 조건 넣기

AI에게 “코드 리팩터링해줘”라고만 말하면 전역적인 변경이 일어날 수 있습니다. 프롬프트에 다음과 같은 정보를 포함하세요.

text

- 대상 파일/디렉터리: src/utils/

- 변경 대상 함수: calculateTotal()

- 유지해야 할 테스트: test/calculateTotal.test.js

- 코딩 컨벤션: Prettier + ESLint 규칙 준수

# 1.2 파일·디렉터리 화이트리스트 활용

GitHub Actions, CI 파이프라인 등에 paths 옵션을 설정해 AI가 접근할 수 있는 경로만 허용합니다.

yaml

# .github/workflows/ai-agent.yml

on:

  push:

    paths:

      - 'src/utils/**'

이렇게 하면 AI 에이전트는 지정된 경로 외에는 절대 손대지 못합니다.


# 2️⃣ 변경 전·후 자동 테스트와 리뷰 프로세스 구축

# 2.1 사전 테스트 실행 (Pre‑test)

AI가 코드를 수정하기 전에 현재 테스트가 모두 통과하는지 확인합니다. 실패가 있다면 AI에게 “먼저 기존 테스트를 통과시켜라”는 지시를 추가합니다.

bash

npm test --silent   # 모든 테스트가 PASS인지 확인

# 2.2 변경 후 테스트 자동화 (Post‑test)

AI가 만든 PR에 CI가 자동으로 실행되도록 설정합니다. 테스트가 실패하면 PR을 자동으로 닫고 알림을 보냅니다.

yaml

# .github/workflows/ci.yml

jobs:

  test:

    runs-on: ubuntu-latest

    steps:

      - uses: actions/checkout@v3

      - run: npm ci

      - run: npm test

# 2.3 코드 리뷰 체크리스트

AI가 만든 커밋에 대해 사람 리뷰어가 확인해야 할 체크리스트를 마련합니다.

| 체크 항목 | 설명 |

|---|---|

| ✅ 테스트 통과 여부 | 모든 자동 테스트가 PASS인지 |

| ✅ 코드 스타일 | ESLint/Prettier 규칙 위반 여부 |

| ✅ 변경 범위 | 의도한 파일·함수만 수정됐는지 |

| ✅ 주석·문서 | 필요한 주석이 추가됐는지 |


# 3️⃣ 변경 로그와 히스토리 관리하기

# 3.1 커밋 메시지 포맷 강제

AI가 커밋을 만들 때 Conventional Commits 형식을 강제합니다.


feat(utils): calculateTotal 함수 리팩터링

BREAKING CHANGE: 반환 타입이 number → string

# 3.2 git diff 자동 검토 스크립트

PR 생성 시 자동으로 git diff를 분석해 대규모 변경을 감지하고 경고를 출력합니다.

bash

# !/bin/bash

# diff-check.sh

git diff --stat origin/main...HEAD | awk '{print $1}' | grep -E '^[0-9]+$' | \

awk '{sum+=$1} END {if (sum > 200) echo '⚠️ 변경 라인 수가 200줄을 초과했습니다!'}'

# 4️⃣ AI 에이전트에 롤백·복구 메커니즘 삽입

# 4.1 자동 롤백 브랜치 만들기

AI가 만든 커밋이 문제를 일으키면 자동으로 롤백 브랜치를 생성하고, 원본 브랜치와 비교해 차이를 표시합니다.

bash

git checkout -b rollback/$(date +%Y%m%d%H%M)

git revert <AI_COMMIT_SHA>

git push origin rollback/$(date +%Y%m%d%H%M)

# 4.2 복구 스크립트 제공

프로젝트 루트에 restore.sh 스크립트를 두어, “AI가 만든 변경을 모두 원복하고 싶다”는 상황에 바로 실행할 수 있게 합니다.

bash

# !/bin/bash

# restore.sh

git reset --hard origin/main

git clean -fd

echo '✅ 프로젝트가 초기 상태로 복구되었습니다.'

# 5️⃣ 교육·피드백 루프 구축 – AI와 함께 성장하기

# 5.1 피드백 데이터베이스 구축

AI가 만든 PR에 대해 ‘Accept / Reject / Comment’를 기록하고, 그 결과를 학습 데이터로 활용합니다.

| PR 번호 | 결과 | 주요 코멘트 |

|---|---|---|

| #42 | Accept | 테스트 통과, 스타일 OK |

| #57 | Reject | 불필요한 파일 수정 |

| #63 | Comment | 변수명 개선 필요 |

# 5.2 정기적인 프롬프트 업데이트

수집된 피드백을 바탕으로 프롬프트 템플릿을 월 1회 정도 업데이트합니다. 예를 들어 “불필요한 파일 수정 금지” 라는 문구를 추가합니다.


# 결론 – 안전한 AI 코딩 자동화를 위한 첫걸음

AI 에이전트는 시간 절약과 코드 품질 향상이라는 큰 장점을 제공합니다. 하지만 제어가 없으면 위험도 함께 따라옵니다. 위에서 소개한 5가지 실천 방안을 차근차근 적용한다면:

  1. 작업 범위가 명확해져 원치 않는 파일이 건드려지지 않는다.

  2. 자동 테스트·CI가 실패 시 즉시 알림을 주어 품질을 보장한다.

  3. 변경 로그와 롤백이 자동화돼 실수에 빠르게 대응한다.

  4. 피드백 루프가 구축돼 AI가 점점 더 똑똑해진다.

이제 여러분 차례입니다. 오늘 소개한 AI 에이전트, 코드 변경 방지, 프로그래밍 자동화 키워드를 활용해 프로젝트에 바로 적용해 보세요.

실천 팁: 첫 번째 프로젝트에서는 ‘파일·디렉터리 화이트리스트’와 ‘사전 테스트’만 적용해 보세요. 성공 경험을 쌓은 뒤 나머지 단계들을 차례대로 도입하면 부담 없이 안전한 자동화를 구현할 수 있습니다.

지금 바로 restore.sh와 diff-check.sh를 프로젝트 루트에 추가하고, GitHub Actions에 CI 설정을 넣어 보세요. AI 에이전트와 함께하는 코딩이 더 이상 두렵지 않을 겁니다! 🚀

No comments yet. Be the first to comment.

More from this blog