코드 리뷰는 단순히 코드의 오류를 찾아내는 것을 넘어, 개발팀의 전반적인 역량과 문화에 깊이 관여하는 핵심 기술입니다. 교육, 조직 규범 유지, 변경 사항 통제, 잠재적 사고 예방, 그리고 팀 내 지식 공유까지, 코드 리뷰는 소프트웨어 개발 과정에서 다면적인 역할을 수행합니다. 최근 고성능 코딩 모델을 활용한 대규모 언어모델(LLM) 리뷰조차 놓쳤던 실제 버그 사례들은 인간의 코드 리뷰 역량이 여전히 대체 불가능하며, 지속적인 학습과 훈련을 통해 더욱 발전할 수 있음을 보여줍니다.
실제 세 가지 사례에서 LLM 리뷰는 동시 파일 쓰기 문제, 구형 AWS CLI와 새 옵션 간의 비호환성, 그리고 tarball과 체크섬(checksum) 갱신 시의 원자성(atomicity) 부재와 같은 중요한 결함을 발견하지 못했습니다. 이러한 문제들은 코드를 읽는 능력뿐 아니라 과거 장애 사례, 시스템 설계 지식, 그리고 여러 시스템 간의 상호작용을 이해하는 복합적인 역량이 요구되는 영역입니다. 구글(Google) 개발자들이 코드 리뷰에 기대하는 역할은 교육, 규범 유지, 변경 통제, 사고 예방의 네 가지로 나뉘며, 이는 단순한 결함 발견을 넘어 지식 전달과 팀 역량 향상에 기여합니다. 저자는 물리학 대학원생 시절의 경험을 통해 코드 관리의 중요성을 깨닫고 소프트웨어 엔지니어가 되었으며, 불변 조건(invariant)과 작은 증명(small proof)을 활용하는 사고방식이 버그 발견에 큰 도움이 되었다고 말합니다.
이러한 관점에서 코드 리뷰 역량을 향상시키기 위한 다양한 실험적 접근 방식이 제안됩니다. 주니어 개발자가 시니어에게 리뷰를 요청할 때 봇이 무작위로 회의를 생성하여 소크라테스식 대화를 유도하는 '소크라테스식 대화', 리뷰 과정에서 발견된 버그를 팀 학습 자료로 활용하는 '가벼운 니어미스(near-miss) 회고', 그리고 코드를 보지 않고 시스템 모델을 만들어 버그를 찾는 '방화벽을 둔 모델링' 등이 있습니다. 이 모든 실험은 '심리적 안전(psychological safety)'이 전제되어야 성공할 수 있습니다. 개발자가 프로그램 개발과 유지보수에 계속 관여하고 배포 코드에 책임을 지는 한, 더 낮은 추상화 수준까지 이해하고 실제 사례를 바탕으로 리뷰 역량을 높이는 것은 매우 가치 있는 일입니다. 이는 개발팀의 전반적인 품질 향상과 지속 가능한 성장에 필수적인 요소로 작용할 것입니다.