더북(TheBook)

그래서 AI 시대의 코드 인스펙션은 단순한 코드 리뷰가 아닙니다. ‘이 코드는 어떤 의도로 작성되었는가?’를 확인해 나가는 작업입니다. 정상적으로 동작하고 있는 조건은 무엇인지, 그 조건이 실제 서비스 환경에서도 항상 성립하는지, 성립하지 않는 순간 어떤 문제가 생기는지를 따져보는 과정입니다. 용이에게 부족했던 것이 바로 이것입니다.

용이는 AI가 만들어 준 코드를 받아서 실행했지만, 그 코드가 어떤 전제 위에서 동작하는지 확인하지 않았습니다. 코드 인스펙션 없이 배포했고, 문제가 터진 후에야 코드를 들여다 보기 시작했습니다. 해당 코드에는 상태를 확인한 뒤에는 그 상태가 변하지 않는다는 전제와 동시에 여러 요청이 들어와도 같은 파드를 선택하지 않는다는 전제를 암묵적으로 깔고 있었습니다. 비동기 환경에서 쉽게 깨질 수 있는 전제였기 때문에 문제가 발생했습니다. 코드를 천천히 읽어 봤다면 발견했을 수도 있는 문제였습니다. 그렇기 때문에 AI가 만들어 준 코드를 인스펙션하는 것은 선택이 아닌 필수입니다.

AI가 코드를 대신 구현해 주기 때문에, 인간은 그 코드를 반드시 이해해야 합니다. 이해하지 못한 코드는 수정하기 힘들고, 검증도 오래 걸리기 때문에 결과적으로 책임질 수 없습니다. 그리고 그 이해의 출발점이 바로 코드 인스펙션입니다.

그렇다면 코드 인스펙션은 구체적으로 무엇을 하는 걸까요?