
AI가 작성한 Laravel 코드를 '틀렸다'고 단정 지어 수정시키기 직전의 이야기
요약
Claude Code를 이용한 Laravel 개발 중 AI가 작성한 최신 구문을 오류로 오해할 뻔한 사례를 다룹니다. AI가 리뷰어보다 최신 프레임워크 정보를 알고 있을 수 있음을 인지하고, 공식 문서 확인과 규약(CLAUDE.md) 명문화의 중요성을 강조합니다.
핵심 포인트
- AI는 리뷰어보다 더 최신 프레임워크 구문을 알고 있을 수 있음
- 익숙하지 않은 구문은 수정 전 반드시 공식 문서로 검증 필요
- 프로젝트의 코딩 스타일은 CLAUDE.md에 명문화하여 관리 권장
- AI 주도 개발 시 '모른다 = 틀렸다'는 판단은 위험함
Claude Code로 Laravel 앱을 작성하게 하다가 아찔했던 이야기를 하나 들려드리겠습니다. 짧은 내용이지만, AI 주도 개발 (AI-driven development)의 리뷰 방식에 대한 생각이 바뀌게 된 사건이었기에 글로 남겨둡니다.
案件(안건)·태스크 관리 미니 SaaS를 Claude Code로 개발하고 있었을 때의 일입니다. 생성된 모델이 다음과 같았습니다.
use Illuminate\
Database\\Eloquent\\Attributes\\Fillable;
#[Fillable(['user_id', 'name', 'description', 'status', 'due_date', 'budget'])]
class Project extends Model
...
Laravel 경험자라면 위화감을 느꼈을 것입니다. Mass assignment(대량 할당) 대책이라고 하면 protected $fillable = [...] 프로퍼티를 떠올리기 마련인데——클래스에 부여하는 속성 (Attribute)으로 작성하는 구문은 본 적이 없기 때문입니다.
솔직히 말하면, 저의 첫 번째 가설은 "AI의 날조 (Hallucination)"였습니다. 존재하지 않는 API를 그럴듯하게 써 내려가는 것은 LLM의 전형적인 실패 패턴이며, 실제로 그런 사례는 산더미처럼 보고되어 있습니다. "$fillable 프로퍼티로 고쳐줘"라고 지시를 입력하기 직전까지 갔습니다.
입력하기 전에, 만약을 위해 공식 문서를 확인했습니다.
결과는 Laravel 13에서 도입된 신규 구문이었습니다. 기존의 $fillable 프로퍼티를 대체하여, PHP 속성 (Attribute)으로 mass assignment를 정의할 수 있게 되어 있었습니다. 즉, AI가 작성한 것은 틀린 것이 아니라, 최신 권장 스타일이었던 것입니다.
만약 문서를 찾아보지 않고 지시를 내렸다면, 리뷰어의 지식이 오래되었다는 이유로 올바른 최신 코드를 과거의 작성 방식으로 퇴행시키고 있었을 것입니다. 게다가 AI는 순종적이기 때문에 저항 없이 수정했을 것입니다. 잘못된 지시일수록 너무나 순순히 통과되는 것이 AI 리뷰의 무서운 점입니다.
인간 사이의 코드 리뷰에서는 "본 적 없는 작성 방식"은 대개 상대방의 습관이거나 실수입니다. 하지만 AI를 상대로는 이 경험칙이 역전될 수 있습니다.
- LLM의 학습 데이터에는 당신이 아직 따라잡지 못한 최신 프레임워크 정보가 포함되어 있다.
- 즉, AI는 리뷰어보다 더 새로운 구문을 알고 있을 수 있다. "모른다 = 틀렸다"라고 반사적으로 수정시키는 것은 올바른 코드를 망가뜨릴 리스크를 안고 있다.
그렇다고 해서 "AI를 믿고 전부 통과시킨다"는 것도 당연히 틀린 방법입니다 (날조는 실제로 존재하니까요). 운영 측면에서 정착된 절차는 다음과 같습니다.
- 익숙하지 않은 구문이 나오면, 수정시키기 전에 먼저 공식 문서를 찾아본다 - 실재하지 않는다면 날조로 간주하여 수정시킨다.
- 실재하는 신규 구문이라면, 채택할 것인지 기존 구문으로 통일할 것인지를 프로젝트 방침으로 결정하고, CLAUDE.md (AI에게 매번 읽히는 규약 파일)에 명문화한다.
포인트는 3번입니다. 개별적인 판단으로 끝내지 않고 규약에 적음으로써, 이후의 세션에서는 망설임이나 혼재가 발생하지 않게 됩니다. 참고로 제 프로젝트에서는 속성 (Attribute) 스타일로 통일했습니다.
이 사건은 Claude Code로 Laravel 앱을 하나 완성해 나가는 과정에서 일어난 실화 중 하나입니다. 이 외에도 "AI가 요구사항에 없는 인가 (Authorization)를 선언과 함께 앞서서 구현해 온 이야기", "구현을 일부러 망가뜨려 테스트의 검출력을 측정하는 이야기" 등이 있으며, 그것들을 정리한 책을 출간했습니다.
『Laravel × Claude Code 실전 도입 가이드』 (Zenn · ¥1,200 · 제1장 무료)
이 기사는 Zenn에 게시한 것과 동일한 내용입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기