← 최신 논문
🤖 AI

Autoregressive, Yet Revisable: In Decoding Revision for Secure Code Generation

본 논문은 특정 액션 토큰을 사용하여 단일 프론트워스 패스 내에서 대규모 언어 모델이 자신의 출력을 동적으로 되돌아가고 편집할 수 있게 함으로써 보안 코드 생성을 강화하는 새로운 프레임워크인 "스트림 오브 리비전"을 소개하며, 이를 통해 최소한의 추론 오버헤드로 취약점을 크게 줄입니다.

원저자: Chengran Yang, Zichao Wei, Heminghao Deng, Jinfeng Jiang, Zhensu Sun, Ting Zhang, Tianyi Wu, Ming Wen, David Lo

게시일 2026-05-07
📖 3 분 읽기☕ 가벼운 읽기

원저자: Chengran Yang, Zichao Wei, Heminghao Deng, Jinfeng Jiang, Zhensu Sun, Ting Zhang, Tianyi Wu, Ming Wen, David Lo

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 이야기를 쓰고 있다고 상상해 보세요. 하지만 끝없이 움직이는 테이프 위에만 글을 써야 합니다. 한 번 단어를 쓰면 테이프가 앞으로 이동하고, 그 단어를 지우거나 바꾸기 위해 다시 돌아갈 수 없습니다. 첫 문장에서 오타를 내면 그 오타는 이야기 내내 고쳐지지 않은 채 남게 되며, 오타가 줄거리를 망치더라도 그 오타를 "의미 있게" 만들기 위해 나머지 이야기를 써야 할 수도 있습니다.

이것이 현재 AI 코드 생성기가 작동하는 방식입니다. 이들은 한 단어 (토큰) 씩 코드를 작성하며, 한 번 쓰인 단어는 영원히 고정됩니다.

"Autoregressive, Yet Revisable" 논문은 Stream of Revision이라는 새로운 AI 코드 작성 방식을 소개합니다. 간단한 비유를 통해 그 작동 원리를 설명해 보겠습니다.

1. 문제: "약속의 덫"

기존 방식에서는 AI 가 보안 취약점 (예: 약한 비밀번호 잠금) 이 있는 함수 작성을 시작하면 나중에 이를 수정할 수 없습니다. 이는 벽돌을 쌓아 집을 짓는 것과 같습니다. 한 번 벽돌을 쌓으면 그 벽돌을 움직일 수 없습니다. 실수로 잘못된 위치에 벽돌을 쌓으면 전체 벽이 약해지고, AI 는 그 약한 지점 위에 계속 집을 짓도록 강요받으며 나머지 집이 견딜 수 있기를 바랄 뿐입니다. 이로 인해 작은 실수 하나가 전체 프로그램을 망치는 "오류 연쇄"가 발생합니다.

2. 해결책: "가상 커서"

저자들은 AI 에게 가상 커서를 부여합니다. 이는 앞으로만 쓰는 것이 아니라, 뒤로 뛰어가고, 방금 쓴 것을 지우고, 다시 쓰는 마법의 펜과 같습니다. 모든 작업은 여전히 "테이프"가 움직이는 동안 이루어집니다.

AI 는 이제 코드를 작성할 뿐만 아니라 지시사항도 작성하도록 훈련됩니다. 다음과 같이 말할 수 있습니다.

  • "잠깐, 실수를 했어." (특별한 트리거 토큰)
  • "내가 실수한 정확한 부분 여기야." (방금 쓴 특정 단어를 가리킴)
  • "수정할게." (수정된 코드를 작성)

3. 실시간 작동 방식

논문은 Single Forward Pass라는 과정을 설명합니다.

  • 기존 방식 (Agentic Repair): AI 가 전체 코드를 작성한 후 멈추고, 별도의 "보안 요원"에게 검토를 요청한 뒤 오류 목록을 받아옵니다. 그런 다음 전체를 다시 읽고 다시 작성해야 합니다. 이는 느리고 비용이 많이 들며 시간이 많이 소요됩니다.
  • 새로운 방식 (Stream of Revision): AI 는 코드를 작성하는 도중 실수를 발견하면 즉시 뒤로 돌아와 이동하기 전에 수정합니다. 이는 잘못된 음을 듣고 음악이 멈추지 않은 채 즉시 손가락 위치를 교정하는 음악가와 같습니다.

4. "렌더러" (편집기)

AI 는 코드뿐만 아니라 "뒤로 가기"와 "다시 쓰기" 지시사항도 포함하는 텍스트 스트림을 출력하므로 다소 지저분해 보입니다. Deterministic Renderer라고 불리는 작고 간단한 컴퓨터 프로그램이 똑똑한 편집기 역할을 합니다. 이 프로그램은 AI 의 스트림을 읽어가며 "뒤로 가기" 지시사항을 따르고, 나쁜 부분을 삭제한 뒤 좋은 부분을 삽입하여 깔끔하고 완성된 코드를 제시합니다. 사용자는 지저분한 "초안 작성" 과정을 보지 못하며, 최종 수정된 결과만 보게 됩니다.

5. 왜 더 나은가

  • 속도: AI 가 작성하는 도중 실수를 수정하므로 전체 문서를 멈추고 다시 읽을 필요가 없습니다. 이는 막대한 시간과 컴퓨팅 자원을 절약합니다.
  • 안전성: 논문은 보안 코드 생성(보안 취약점이 없는 코드 작성) 에서 이 방식을 테스트했습니다. 그 결과, 이 방식은 기존의 "작성 후 검토" 방식보다 취약점을 훨씬 더 잘 발견하고 수정한다는 것을 확인했습니다.
  • 효율성: 이 방식은 C 와 C++ 코드 (특정 프로그래밍 언어 유형) 로만 훈련되었음에도 불구하고, 추가 훈련 없이 Python 과 Java 같은 다른 언어의 보안 취약점을 수정하는 데에도 탁월한 능력을 발휘했습니다. 이는 AI 가 특정 단어가 아니라 실수 수정이라는 개념을 학습했기 때문입니다.

요약

이 논문은 AI 를 일방향 작성자가 아닌 자기 수정 작성자로 가르치는 것을 제안합니다. AI 가 코드를 생성하는 동안 즉시 "되돌아가서 편집"할 수 있는 능력을 부여함으로써, 프로세스를 늦추지 않으면서도 더 안전하고 신뢰할 수 있는 소프트웨어를 생성합니다. 이는 코드를 생성하는 과정을 경직되고 선형적인 행진에서, AI 가 "아, 그거 수정할게"라고 말하며 즉시 실행할 수 있는 유연하고 역동적인 대화로 바꿉니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →