GitHub Agentic Autofix 정식 출시: 보안 경고를 검토 가능한 수정으로 바꾸는 법
GitHub Agentic Autofix의 사용 자격, CodeQL 설정, 접근 정책, AI 크레딧 비용, 초안 풀 리퀘스트, 병합 전 사람이 확인할 사항을 안내합니다.
보안 경고는 주의가 필요한 지점을 알려 줍니다. 그렇다고 애플리케이션을 망가뜨리지 않으면서 어떻게 고칠지까지 알려 주는 것은 아닙니다. 작은 앱을 처음 유지 관리하는 사람에게는 이 간극 때문에 수정에 착수하지 못할 수 있고, 개발자에게는 이미 익숙한 경고가 계속 쌓일 수 있습니다.
GitHub는 2026년 10월 15일 코드 스캔 경고용 Agentic Autofix의 정식 출시(GA)를 발표했습니다. 경고를 Copilot에 할당하면 에이전트가 코드를 살펴보고 변경을 제안하며 검증을 시도한 다음 초안 풀 리퀘스트를 엽니다. 유용한 변화는 출발점에 있습니다. 빈 편집기 대신 직접 살펴볼 수 있는 수정안을 얻습니다. GitHub 정식 출시 발표, 2026년 10월 15일
이 가이드는 사용 가능한 저장소인지 확인하는 단계부터 첫 수정안을 검토하는 과정까지 안내하고, 이어 관련 경고, 사용자 지정 스캐너, 비용, 실패한 시도를 다룹니다. 저희의 권고는 이렇습니다. 에이전트는 패치 작성자로 대하고 출시 승인자로 보지 마세요. 애플리케이션에 반영하기 전에 변경 사항을 이해하는 일은 여전히 사람이 맡아야 합니다.
첫 번째 도식은 에이전트가 제안한 수정과 사람이 병합을 결정하는 단계를 구분합니다.
전체 백로그가 아니라 경고 하나로 시작한다
첫 성공은 설명하고 시험하고 검토할 수 있는 작은 변경이어야 합니다. 풀 리퀘스트는 프로젝트의 기본 코드에 변경 사항을 합쳐 달라고 제안하는 것이고, 초안 표시는 아직 그 제안이 준비되지 않았음을 뜻합니다. CodeQL은 잠재적으로 취약한 코드에 관한 경고를 생성하는 GitHub의 코드 분석 엔진입니다.
대규모 정리를 시도하기 전에 다음 순서로 진행하세요.
- 관리 권한이 있는 저장소를 선택합니다. 에이전트 세션을 시작하기 전에 아래 사용 자격, 접근 승인, 결제 책임자를 확인하세요.
- CodeQL 분석이 먼저 정상 동작하는지 확인합니다. 저장소에 정상 작동하는 분석이 이미 있다면 기존 구성을 유지하고 가장 최근 성공 실행을 확인하세요. 새로 설정할 때는 저장소의
Settings > Advanced Security > Code Security에서CodeQL analysis를 찾아Set up > Default를 선택합니다. 구성을 검토하고Enable CodeQL을 누르세요. 분석이 성공할 때까지 기다립니다. GitHub 설정 안내, 2026년 10월 18일 확인 - 적용되는 정책을 통해 Agentic Autofix를 활성화합니다. 조직이나 엔터프라이즈에서 금지한 기능을 저장소 설정 하나로 허용할 수는 없습니다.
- 기본 브랜치에 있는 기존 경고 하나를 선택합니다.
Security and quality > Code scanning을 열고 경고를 선택한 다음Assignees아래에서Assign to Copilot을 누르세요. GitHub 경고 처리 절차, 2026년 10월 18일 확인 - 초안 풀 리퀘스트와 세션 로그를 살펴봅니다. diff를 읽고 관련 테스트를 실행하며 문제를 보고한 구성으로 다시 스캔하세요.
- 사람이 검토하고 필수 검사를 통과한 뒤에만 병합합니다. 이후 업데이트된 기본 브랜치의 분석 결과에서 경고 상태를 다시 확인하세요.
화면을 확인하려면 정식 출시 발표에 포함된 GitHub 공식 UI 데모를 참고하세요. 그림이 모든 최신 화면을 그대로 재현한다고 가정하지 말고, 저장소의 실제 화면과 함께 살펴보세요.
공개 또는 비공개 저장소에서 사용할 수 있는가?
출시 발표는 엔터프라이즈 고객을 강조합니다. 하지만 현재 GitHub 접근 문서는 그보다 범위가 넓습니다. GitHub.com의 공개 저장소와 GitHub Code Security 또는 GitHub Advanced Security를 사용하는 조직 소유 저장소가 포함됩니다. Copilot 라이선스는 필요하지 않습니다. GitHub 접근 문서, 2026년 10월 18일 확인
| 저장소 상황 | Agentic Autofix 사용 자격 | 접근 제어 주체 |
|---|---|---|
| GitHub.com의 일반 개인 계정 공개 저장소 | 사용 가능 | 저장소 관리자 |
| GitHub.com의 조직 소유 공개 저장소 | 사용 가능, 정책 적용 | 조직, 저장소, 해당하는 경우 엔터프라이즈 |
| 조직 소유 비공개 또는 내부 저장소 | Code Security 또는 Advanced Security 필요 | 동일한 정책 단계 |
| 일반 개인 계정의 비공개 저장소 | 문서화된 사용 자격에 포함되지 않음 | 접근 가능하다고 가정하지 마세요 |
| Enterprise Managed User의 개인 네임스페이스 | 제외 | 크레딧을 구매해도 제외 조건은 바뀌지 않음 |
공개 저장소에서 사용할 수 있다고 에이전트 세션까지 무료인 것은 아닙니다. 사용자를 초대해 기능을 시험하게 하기 전에 저장소 사용 자격과 사용 요금을 따로 확인하세요.
가장 상위 정책부터 아래로 접근을 활성화한다
엔터프라이즈 소유 조직에서는 먼저 엔터프라이즈 소유자 또는 보안 관리자가 Policies > Advanced Security > Agentic Autofix에서 기능을 허용해야 합니다. 이 권한만으로 기능이 켜지는 것은 아닙니다. 이어 조직 소유자 또는 보안 관리자가 Settings > Advanced Security > Global settings에서 활성화해야 하며, 자격을 갖춘 저장소가 설정을 상속합니다. 상위 정책이 허용하는 경우에만 저장소 관리자가 기능을 끄거나 다시 켤 수 있습니다. 엔터프라이즈에 속하지 않은 조직에는 엔터프라이즈 단계가 없고, 자격을 갖춘 개인 공개 저장소는 저장소 설정을 바로 사용합니다. 프리뷰 사용자는 다시 활성화해야 합니다. GitHub 정책 절차, 2026년 10월 18일 확인
접근 설정 도식: 권한 부여, 기능 활성화, 저장소 선택은 각각 별개의 결정입니다. 출처: GitHub 접근 문서, 2026년 10월 18일 확인.
조직 전체에 배포하기 전에 기능을 사용하지 않을 저장소를 정하고 생성된 패치를 누가 검토할지 합의하세요. 합리적인 시범 운영은 저장소 유지 관리자 한 명과 보안 검토자 한 명이 함께하는 방식입니다. 방치된 초안이 다른 사람에게 설명되지 않은 책임으로 넘어가지 않도록 경고, 기대 동작, 검토자, 예산 책임자를 기록하세요.
CodeQL이 실제로 코드를 분석했는지 확인한다
기본 설정에는 GitHub Actions와 공개 저장소 또는 Code Security가 필요합니다. 활성화 스위치만 보지 말고 선택된 언어와 쿼리 묶음을 검토하세요. 기존 고급 설정이 정상 작동한다면 섣불리 전환하지 마세요. 기본 설정은 기존 구성을 덮어쓰고 기존 워크플로를 비활성화하며 CodeQL 분석 API 업로드를 차단합니다. GitHub 기본 설정 문서, 2026년 10월 18일 확인
경고를 선택하기 전에 최신 분석 결과를 확인하세요. 영향을 받는 서비스가 분석 대상에 포함되었는지, 빌드나 의존성 문제로 분석에 실패하지 않았는지 살펴보세요. 설정이 켜져 있다는 표시만으로 관련 파일이 성공적으로 분석됐다고 볼 수는 없습니다. 신뢰하기 어려운 기준선에서 나온 발견을 에이전트에게 고쳐 달라고 하기 전에 설정 문제부터 해결하세요.
첫 시도에는 데이터베이스 조회나 특정 출력 렌더링 경로처럼 기대 동작이 분명하고 범위가 좁은 문제를 선택하세요. 인증 구조 전체를 바꾸는 일부터 시작하지 마세요. 관련 경고가 없더라도 데모를 만들려고 운영 저장소에 일부러 취약점을 추가해서는 안 됩니다.
할당부터 초안 풀 리퀘스트까지 어떤 일이 일어나는가?
GitHub 설명에 따르면 에이전트는 관련 파일을 살펴보고 수정안을 생성한 뒤 CodeQL을 다시 실행하고, 반복 작업 후 초안 풀 리퀘스트를 엽니다. 제안에는 수정 요약과 검증 정보가 들어갑니다. 이것이 Agentic Autofix 워크플로이며 기본 브랜치에 자동으로 병합되는 절차는 아닙니다. GitHub 정식 출시 워크플로, 2026년 10월 15일
경고를 할당한 뒤에는 다음 순서로 검토하세요.
- 원래 발견 내용을 다시 읽습니다. 신뢰할 수 없는 입력, 민감한 작업, 기대되는 보호 조치를 확인하세요. 경고 식별자와 이를 보고한 구성을 기록합니다.
- 변경된 파일을 모두 읽습니다. 무관한 변경, 제거된 검사, 비활성화된 테스트, 새 의존성, 달라진 오류 동작을 살펴보세요.
- 세션 근거를 확인합니다. 완료된 스캔과 실패한 명령, 검증할 수 없었다는 설명을 구분하세요. 세션에서 반복 작업을 요청하거나 풀 리퀘스트 댓글에 Copilot을 멘션할 수 있습니다. GitHub 세션 안내, 2026년 10월 18일 확인
- 애플리케이션 테스트와 관련 스캐너를 실행합니다. 적절한 개발 환경에서 프로젝트에 문서화된 테스트 명령을 사용하세요. 익숙하지 않은 코드를 실행하기 전에 설정 스크립트와 워크플로 변경을 살펴보세요.
- 사람의 승인을 요청합니다. 동작, 스캔 범위, 담당자 문제가 해결되지 않았다면 초안을 계속 차단 상태로 두세요. 근거를 검토할 수 있을 때만 준비 완료로 바꾸세요.
검토 흐름: 에이전트가 만든 초안은 중간 산출물이지 애플리케이션이 안전하다는 증거가 아닙니다. 출처: GitHub 발표와 경고 해결 문서.
GitHub 풀 리퀘스트에서는 Files changed에서 diff를, Checks에서 자동 실행 결과를 확인할 수 있습니다. 둘 다 살펴보세요. 녹색 요약만으로는 변경된 권한 검사가 애플리케이션 규칙을 여전히 지키는지 알 수 없습니다. GitHub 풀 리퀘스트 개념, 2026년 10월 18일 확인
워크플로 1: 의미를 바꾸지 않고 작은 데이터베이스 조회를 고친다
가상의 Python 서비스에서 레이블로 재고 항목을 찾는 상황을 생각해 보겠습니다. 기존 구현은 문자열 포매팅으로 입력 레이블을 SQL에 삽입하고, 코드 스캔 경고가 이 쿼리 작성을 지적합니다. 구두점 문자를 하나씩 제거하기보다 SQL 문과 값을 분리하는 방식이 유용한 수정입니다.
Python의 sqlite3 인터페이스를 사용한 안전한 구현 예시는 다음과 같습니다.
def find_item(connection, label):
return connection.execute(
"SELECT id, label FROM inventory WHERE label = ?",
(label,),
).fetchone()
자리표시자는 값을 SQL 텍스트와 분리해 바인딩합니다. 이는 Python 공식 매개변수 바인딩 안내, 2026년 10월 18일 확인에 따른 방식입니다. 이는 수정 패턴을 보여 주는 가상의 예시이지 Agentic Autofix가 생성한 결과나 실제 시험 사례가 아닙니다. 실제 서비스의 쿼리, 스키마, 권한 규칙은 각각 따로 검토해야 합니다.
이 예시에서는 일반 레이블, Maker's Kit처럼 아포스트로피가 포함된 레이블, 존재하지 않는 레이블을 검사하도록 요청하세요. 함수가 예상한 행 또는 None 반환 동작을 유지하는지 확인합니다. 그다음 호출하는 엔드포인트의 기존 접근 규칙을 시험하세요. 매개변수화된 쿼리는 누가 재고를 읽어도 되는지 결정하지 않습니다.
유용한 검토 댓글은 다음과 같습니다. "조회 동작은 그대로 유지하고 레이블을 데이터로 바인딩하며, 아포스트로피와 존재하지 않는 항목에 대한 회귀 검사를 추가해 주세요." 이는 경고만 사라지게 하라고 하는 대신 지켜야 할 계약을 설명합니다. 수정안을 받아들이기 전에 실제 패치를 다시 스캔하세요.
워크플로 2: 관련 경고끼리 묶고 임의의 경고를 한꺼번에 처리하지 않는다
가상의 웹 서비스에 동일한 응답 렌더링 도우미와 관련된 경고가 세 개 있다고 가정해 보겠습니다. 하나의 공통 수정이 적절한지 판단할 수 있도록 함께 검토합니다. GitHub에서는 경고 목록이나 보안 캠페인에서 백로그 경고를 최대 25개까지 선택할 수 있습니다. 한 번 할당하면 세션 하나와 풀 리퀘스트 하나가 생성됩니다. GitHub 일괄 할당 안내, 2026년 10월 18일 확인
이 제한은 처리 용량의 상한이지 권장 묶음 크기가 아닙니다. 담당자가 한 명인 관련 발견 세 개가 인증, 파일 처리, 데이터베이스 접근에 걸친 무관한 발견 스무 개보다 검토하기 쉬울 수 있습니다. 할당하기 전에 영향을 받는 엔드포인트와 보존해야 할 일반 동작을 각각 나열하세요.
이 예시 워크플로에서는 공통 도우미를 검토하고 이를 호출하는 모든 곳을 시험합니다. 제안된 수정으로 출력 이스케이프가 바뀐다면 예시 하나가 이제 올바르게 보인다는 이유만으로 승인하지 말고, 의도된 출력 문맥을 확인하세요. 발견마다 검토자나 출시 일정이 다르면 작업을 나누세요. 해결되지 않은 경고 하나 때문에 실제로 근거를 확보한 수정이 무엇인지 가려지지 않게 하세요.
워크플로 3: 사용자 지정 스캐너 결과는 별도로 확인해야 한다
Agentic Autofix는 기본 브랜치의 백로그 경고만 처리합니다. 풀 리퀘스트나 다른 브랜치에만 표시되는 경고는 이 할당 워크플로의 범위 밖입니다. 새 풀 리퀘스트에서 발견된 문제라면, 할당할 수 있게 만들겠다며 취약한 코드를 병합하지 말고 해당 풀 리퀘스트에서 수정하세요. GitHub 범위 안내, 2026년 10월 15일
또 다른 경계가 있습니다. GitHub에 따르면 에이전트의 검증으로는 사용자 지정 CodeQL 쿼리, security-extended CodeQL 쿼리 묶음, 타사 코드 스캔 경고의 수정 여부를 확인할 수 없습니다. 기본 검증은 최선의 노력으로 코드 스캔 쿼리 묶음을 다시 실행합니다. GitHub 검증 한계, 2026년 10월 18일 확인
내부 데이터 처리 규칙을 적용하는 사용자 지정 쿼리가 있는 가상의 조직을 생각해 보세요. 에이전트가 그럴듯한 패치를 제안하더라도 검토자가 해당 사용자 지정 분석을 직접 실행하고 결과를 살펴봐야 합니다. 쿼리 버전, 구성, 분석한 리비전, 결과를 기록하세요. 기본 쿼리 묶음 실행이 성공했다고 문제를 보고한 쿼리를 대신할 수는 없습니다.
더 강력한 스캐너를 계속 활성화하세요. 녹색 상태를 얻으려고 분석 범위를 줄이면 측정 결과만 달라질 뿐 애플리케이션이 안전해지지는 않습니다. 필요한 분석을 재현할 수 없다면 검증 대기 상태로 두고 실행할 담당자를 명시하세요.
Copilot 라이선스가 없어도 청구될 수 있다
Agentic Autofix는 Code Security AI 크레딧과 GitHub Actions 시간(분)을 사용합니다. GitHub의 결제 문서에는 활성 커밋 사용자 라이선스가 필요하지 않은 공개 저장소에서도 AI 크레딧이 소모된다고 명시되어 있습니다. 결제 계정에 해당 자격이 있으면 포함된 AI 크레딧을 먼저 사용합니다. 이후에는 사용량에 따라 과금되며, 포함 크레딧이 없는 계정은 처음부터 사용량 기준으로 과금됩니다. GitHub AI 크레딧 결제 안내, 2026년 10월 18일 확인
조직 저장소의 비용은 결제 책임이 있는 조직 또는 엔터프라이즈 계정에 청구됩니다. 기능을 폭넓게 켜기 전에 해당 계정의 크레딧 한도와 Code Security AI 크레딧 예산을 확인하세요. 발표에서는 Copilot 결제 수단도 설정하도록 요구합니다. 이는 모든 사용자에게 Copilot 라이선스가 필요하다는 뜻과는 별개입니다. GitHub 출시 결제 요건, 2026년 10월 15일
시범 운영에서는 세션 사용량, Actions 사용량, 검토 시간, 패치 채택 여부를 기록하세요. 경고를 고치는 건당 고정 가격을 약속하지 마세요. 묶음 처리, 반복 작업, 실패한 제안에도 비용 검토가 필요합니다. 생성된 풀 리퀘스트 수를 완료된 수정 수로 세지 말고, 채택된 수정 비용을 기존 작업 방식과 비교하세요.
기존 Copilot Autofix는 다릅니다. 에이전트의 조사와 초안 작성 워크플로 대신 한 단계로 적용할 수 있는 수정 제안을 제공하며, 이 제안에는 AI 크레딧이 소모되지 않습니다. 지원되는 경우 Agentic Autofix를 켜지 않았을 때의 선택지로 사용할 수 있습니다. GitHub 비교 안내, 2026년 10월 18일 확인
병합 전에 다음 일곱 가지를 확인한다
저희 검토 체크리스트는 보고된 약점을 제거하는 일과 기존 동작을 보존하는 일을 함께 살펴봅니다.
- 근본 원인: 경고를 억제하는 데 그치지 않고 안전하지 않은 작업 자체를 수정했나요?
- 범위: 무관한 리팩터링, 새 의존성, 설정 변경에 정당한 이유가 있나요?
- 동작: 유효한 입력, 잘못된 입력, 오류, 권한이 여전히 올바르게 처리되나요?
- 테스트: 원래 문제를 잡아낼 회귀 테스트가 있나요?
- 분석: 문제를 보고한 스캐너가 필요한 구성으로 제안된 리비전을 분석했나요?
- 승인: 담당자가 diff와 해결되지 않은 에이전트 메모를 검토했나요?
- 병합 후: 기본 브랜치 분석에서 새 발견 없이 예상한 경고 상태가 확인됐나요?
"검증할 수 없음"은 승인 완료가 아니라 미완료 상태로 취급하세요. GitHub에 따르면 에이전트는 풀 리퀘스트에서 검증할 수 없었거나 오탐으로 의심된다고 보고할 수 있습니다. 어느 쪽도 유지 관리자의 판단을 대신하지 않습니다. GitHub의 최선 노력 검증 안내, 2026년 10월 18일 확인
버튼이 없거나 결과가 잘못되었을 때는 어떻게 하는가?
경고는 보이는데 할당할 수 없는 이유는 무엇인가요? 기본 브랜치의 백로그 경고인지, 저장소가 사용 자격을 갖추었는지, 기능이 활성화되었는지, 필요한 권한이 있는지 확인하세요. 할당하려면 쓰기 권한이 필요합니다. 설정이 잠겨 있다면 저장소 제어를 반복해서 전환하지 말고 해당 관리자에게 문의하세요. GitHub 할당 사전 조건, 2026년 10월 18일 확인
스캔이 깨끗하면 앱이 안전하다는 뜻인가요? 아닙니다. 해당 분석과 설정이 다루는 질문에만 답할 수 있습니다. 비즈니스 규칙, 권한 부여, 런타임 동작, 지원되지 않는 발견은 적절한 테스트와 검토가 필요합니다.
실패한 세션을 계속 재시도해야 하나요? 먼저 로그와 제안된 diff를 확인하세요. 분석 설정, 테스트 실행, 프로젝트 맥락, 수정안 자체 중 무엇이 부족했는지 파악합니다. 또 시도하기 전에 정확한 수정 사항을 전달하거나 근본 설정 문제를 해결하세요. 새로운 정보 없이 할당만 반복하는 것은 문제 해결 전략이 아닙니다.
오탐이 의심되면 받아들여도 되나요? 발견 내용을 독립적으로 조사하고 판단 근거를 기록하세요. 경고를 무시하는 일과 취약한 코드를 고치는 일을 혼동하지 말고, 에이전트의 확신을 위험 예외 승인 기준으로 삼지 마세요.
결론: 제안된 수정은 검토의 시작이다
Agentic Autofix는 조사, 후보 패치, 이용 가능한 검증을 함께 제공해 유용한 작업을 더 앞당깁니다. 취약점을 발견한 뒤 구체적인 수정안을 검토하기까지의 간격을 줄이는 것이 실질적인 이점입니다. 첫 시도는 좁은 범위로 유지하고 스캐너를 그대로 보존하며, 작성자가 누구인지가 아니라 근거를 기준으로 채택을 결정하세요.
출처
주요 참고 자료는 2026년 10월 18일 확인했습니다.
이 가이드에서 연결한 자료는 GitHub의 10월 15일 정식 출시 발표, 현재 접근 정책, Autofix 개념과 한계, 경고 해결 절차, CodeQL 설정, 결제 문서입니다. 문서는 특정 날짜의 접근 상태를 보여 주는 스냅샷이지 모든 계정 구성을 보장하지 않습니다. 세 가지 워크플로는 설명을 위한 예시이며 직접 수행한 결과가 아닙니다.
검토 메모를 보관할 곳: 출처 링크, 경고 참조, 테스트 결과, 결정을 Telli.sh에 함께 보관하세요. 메모를 정리할 수 있지만 저장소를 스캔하거나 수정안을 승인하지는 않습니다. Telli.sh 계정을 만드세요.