
"AI가 코딩을 해줘도, 결국 책임질 사람은 당신입니다": LLVM의 새로운 정책이 시사하는 것
LLVM의 새로운 AI 도구 사용 정책을 통해 본 AI 시대 개발자의 책임감과 직업 윤리, 그리고 코드 리뷰의 본질에 대하여.
송찬영
CTO

안녕하세요. 풀링포레스트 CTO 송찬영입니다.
최근 오픈소스 컴파일러 프로젝트인 LLVM 커뮤니티에서 매우 흥미롭고, 동시에 묵직한 울림을 주는 정책 제안(RFC)이 나왔습니다. 바로 'AI 도구 사용 정책: Human in the Loop'에 관한 내용입니다. 우리 풀링포레스트 개발팀도 Cursor나 GitHub Copilot, Claude 같은 도구를 적극적으로 도입해 일하는 방식을 혁신하고 있기에, 이 논의가 남 일처럼 느껴지지 않았습니다. 오늘은 이 정책이 담고 있는 진짜 의미와 우리가 지향해야 할 엔지니어링 문화에 대해 이야기해보고자 합니다.
기술 리더로서 저를 가장 긴장하게 만든 단어는 바로 '착취적 기여(Extractive Contribution)'였습니다. LLVM 정책 초안은 AI가 작성한 코드를 검증 없이 PR(Pull Request)로 날리는 행위를 이렇게 정의합니다. 코드를 '생성'하는 비용은 0에 수렴하지만, 그 코드를 '리뷰'하고 유지보수하는 비용은 여전히 비쌉니다. 만약 기여자가 "LLM이 짰는데 왜 그런지는 모르겠어요"라는 태도로 코드를 던진다면, 이는 메인테이너(리뷰어)의 시간과 에너지를 훔치는 행위나 다름없다는 것입니다.
솔직히 고백하자면, 저 역시 최근 내부 코드 리뷰를 진행하며 비슷한 감정을 느낀 적이 있습니다. 겉보기엔 그럴듯하게 돌아가는 코드인데, 작성자에게 "이 함수가 왜 여기서 호출되나요?"라고 물었을 때 명확한 답을 듣지 못한 경우가 있었습니다. 도구가 만들어준 코드를 이해하지 못한 채 '작동하니까' 넘어간 것이죠. 이는 개인의 성장을 저해할 뿐만 아니라, 장기적으로 우리 시스템에 기술 부채를 쌓는 위험한 행동입니다.
LLVM의 정책은 명확합니다. "도구를 써도 좋지만, 작성자는 당신이다." 기여자는 AI가 생성한 모든 텍스트와 코드를 꼼꼼히 읽고 검토해야 하며, 메인테이너의 질문에 방어할 수 있어야 합니다. 즉, 'Human in the Loop(인간의 개입)'가 필수라는 것이죠. 이는 단순히 AI를 배척하려는 보수적인 움직임이 아닙니다. 오히려 AI 시대에 개발자가 지녀야 할 직업 윤리와 책임감을 재정의하는 것입니다.
이 정책에서 우리가 배워야 할 점은 크게 두 가지입니다.
첫째, 생성된 코드의 '품질 보증' 책임은 전적으로 제출자에게 있습니다.
풀링포레스트 팀원들에게도 늘 강조하지만, AI는 훌륭한 러닝메이트이자 비서입니다. 하지만 최종 결재권자는 여러분입니다. AI가 짠 로직이 우리 레거시 시스템과 충돌하지 않는지, 보안 취약점은 없는지, 불필요한 복잡도를 높이지 않는지 판단하는 눈을 길러야 합니다. 주니어 개발자라면 더욱 그렇습니다. AI의 도움을 받아 생산성을 높이되, 그 과정에서 '왜'를 놓치면 안 됩니다. 메인테이너의 피드백을 그저 LLM에 복사-붙여넣기 해서 수정한 뒤 다시 제출하는 식의 '핑퐁'은 누구에게도 도움이 되지 않습니다.
둘째, 투명성입니다.
LLVM은 커밋 메시지에 Assisted-by: 같은 트레일러를 사용하여 도구 사용 여부를 명시할 것을 권장합니다. 우리도 이를 적극적으로 수용할 필요가 있습니다. 어느 부분이 AI의 제안이고 어느 부분이 개발자의 의도인지 명확히 하면 리뷰어가 코드를 파악하는 데 큰 도움이 됩니다. 이는 감시를 위한 것이 아니라, 리뷰 효율을 높이고 서로의 시간을 존중하기 위한 배려입니다.
우리는 지금 개발의 패러다임이 바뀌는 과도기에 서 있습니다. 코드를 '타이핑'하는 능력보다 코드를 '판단'하고 '설계'하는 능력이 훨씬 중요해졌습니다. LLVM의 이번 정책은 "프로그래머가 아닌 사람은 코드에 기여할 필요가 없다"는 다소 냉정한 메시지처럼 들릴 수 있습니다. 하지만 그 이면에는 "도구에 의존하지 말고, 도구를 지배하는 전문가가 되라"는 따뜻한 조언이 담겨 있다고 생각합니다.
앞으로 우리 팀은 AI를 더 적극적으로 쓸 것입니다. 하지만 그만큼 코드 리뷰의 기준은 더 엄격해질 것입니다. 여러분이 작성한(혹은 생성한) 코드 한 줄 한 줄에 대해 "이건 제가 보증합니다"라고 말할 수 있는 자신감을 가져주세요. 그 자신감이 모여 우리 제품의 신뢰를 만듭니다. 기술의 발전 속도가 아무리 빨라도, 결국 시스템을 움직이는 것은 사람의 책임감이니까요.


