Reddit

Linus Torvalds Used AI To Make Code Decipherable & Uncovered More Bugs

리누스 토르발스, AI로 커널 코드 읽기 쉽게 정리하고 추가 버그 발견

리누스 토르발스가 이해하기 어려운 Linux 커널 코드를 살펴보는 데 LLM을 활용했습니다. 코드를 읽기 쉽게 나눈 뒤 사용자 공간 테스트 하네스로 검증하자, 제보된 버그와 함께 2013년부터 있던 버그 세 건도 발견했습니다.

AI 요약

리누스 토르발스(Linus Torvalds)가 Linux 커널의 연관 배열(associative array) 라이브러리를 이해하고 수정하는 과정에 대규모 언어 모델(LLM)을 활용했습니다. 코드가 복잡해 따라가기 어려웠고, LLM의 도움으로 함수를 나눠 읽기 쉽게 정리한 뒤 테스트 하네스에서 동작을 확인했습니다.

코드 정리와 테스트

Nils Ollrogge가 assoc_array 라이브러리의 버그와 수정 패치를 제보했습니다. 토르발스는 패치의 코드를 직접 따라가기 어려워 최신 LLM 도구를 사용해 코드를 파악했다고 설명했습니다. LLM을 활용한 브랜치에서는 크고 읽기 힘든 함수 일부를 나눠 코드를 읽기 쉽게 만들었습니다.

이후 코드를 사용자 공간(user space) 테스트 하네스에서 실행했습니다. 테스트는 Ollrogge가 제보한 버그를 확인했으며, 추가로 세 건의 버그도 찾아냈습니다. 토르발스에 따르면 추가 버그는 모두 이 라이브러리가 처음 추가된 2013년 커밋부터 남아 있었습니다.

assoc_array 코드는 Linux 커널의 연관 배열 구현에 쓰입니다. 관련 패치는 아직 메인 브랜치에 병합되지 않았으며, 다음 Linux 7.4 병합 기간에 반영될 것으로 보입니다.

Reddit 반응

  • @u/bugra_sa — 눈에 띄는 점은 평범한 부분입니다. AI가 토르발스가 직접 파고들고 싶지 않았던 코드를 읽도록 도왔습니다. 그래도 설명이 커널의 실제 동작과 맞는지는 토르발스가 확인해야 했습니다. 그럴듯한 요약을 그대로 받아들이는 것과는 다릅니다.
    • @u/IntQuant — 결과물도 Claude가 직접 쓴 코드처럼 보이지 않습니다. 바이브 코딩으로 만든 프로젝트 다수와는 다릅니다.
  • @u/Kiseido — AI가 생성한 코드의 신뢰성을 높였다기보다 AI를 보조 도구로 쓰는 작업 방식에 신뢰를 더한 것 같습니다. AI가 코드를 나누고 버그를 찾았지만, 원래 코드를 작성한 것은 AI가 아닙니다.
    • @u/emptyharddrive — 동의합니다. 다만 그 영상에서 토르발스는 AI가 생성한 코드도 이야기합니다.
  • @u/Roggieh — AI 코드가 지저분하고 비효율적이며, 이해하기 어렵고 장기적으로 유지보수할 수 없다고 비판하는 사람도 있습니다. 반대로 그렇지 않다고 주장하는 사람도 있습니다. 결국 사용자의 역량 문제일지도 모릅니다.
    • @u/atred — 프롬프트에 따라 차이가 큽니다. “AI야, 커널을 만들어줘”라고 하는 것과 Linux에서 실제로 사용한 프롬프트는 다릅니다.
  • @u/IntQuant — 실제 패치를 봤나요? 커널에서 기대할 법한 코드와 비슷하고, 흔히 보는 바이브 코딩 결과물과는 다릅니다. LLM이 코드를 썼다는 말도 없습니다. 다른 방식으로 도움을 받았을 수도 있습니다.
  • @u/xrmb — 수십 년 된 코드를 AI와 다루는 일상적인 경험도 이렇습니다. “버그를 고쳤고, 두 개를 더 찾았습니다.” 사람이 리팩터링이나 리뷰 과정에서 일부를 찾았을 수도 있지만, AI는 이런 작업을 잘합니다.
  • @u/PersonalDatabase31 — 최악의 저질 AI 코드입니다.
    • @u/freexe — 코드를 읽기 쉽게 만들고 버그를 찾는 일이 저질 AI 코드라는 말인가요? /s

원문: Phoronix / 번역·요약: Trawling