본문 바로가기

IT

[개발] AI로 짠 코드, 내가 리뷰하는 건 개발자인가 AI인가

Contents

최근에, 지인 중에서 나는 AI로 코드를 생성하는 것을 지양한다는 이야기를 들었다.

 

이야기는 다음과 같다.

 

- 팀원이 AI를 이용해서, 코드를 작성했다고 가정하자. 해당 팀원은 PR을 올리고 코드리뷰를 요청했고, 팀장 급은 해당 PR을 읽는다. 그러면 리뷰어는 개발자 코드를 리뷰하는 것인가? AI를 리뷰하는 것인가?

- 리뷰어가 1시간, 2시간이 걸려서 PR을 검증하기 위하여 시간을 섰다. 피드백 사항을 적어 두니, 팀원이 AI를 이용해서 다시 PR을 올렸다. 리뷰어 입장에서는 AI와 대화를 하는 것인가?

 

여러 문제가 복합적으로 섞여 있는 것 같지만, 우선은 위에 있는 그대로 바라보겠다. 왜냐하면, 모든 일에는 "정도"의 문제가 있어서, 가능한 정도와 불가능한 정도가 섞여 있기 때문에, 읽는 사람에 따라서, 경험에 따라서, 다 다르게 생각할 것이다.

 

중요 논점은 코드리뷰의 목적이 무엇인가? 인 것 같다.

 

코드리뷰의 중요 목적은, 책임 소재인 것 같다.

해당 코드를 누가 작성했던, 책임자의 소재를 정하고, 개별 작업자의 책임이 아닌 "팀의 책임"으로 만들기 위한 작업이라고 생각한다.

 

그렇기 때문에, 리뷰어는 단순히 코딩 스타일이나, 변수명, 이렇게도 작성 가능하다 와 같은 단순한 작업 보다는, 책임에 초점을 맞추면 좋은 것 같다.

 

1. 의도 검증: 왜 이 방식을 선택했는지?

2. 경계 조건, 실패 시나리오, 엣지 케이스: 여기서 문제가 발생한다면?

3. 경제: 우리의 예산 내에서 해결 가능 한 건지?

4. 팀 규약, 유지보수: 우리 팀의 철학과 맞는지?

5. 책임: 이 PR의 최종 책임자는 누구인지?

 

그러다 보니, 작업자와 리뷰어의 역할에서 AI를 어떤식으로 사용하면 좋을지를 생각해보면,

 

 

- 해결하는 문제가 무엇인지?

- 이 접근을 선택한 이유가 무엇인지?

- 문제가 생길 수 있는 부분이 있는지?

- 우리의 요구사항(기능, 이익, 경제)에 부합하는지

 

등, 수정 이유를 사람이 설명하면 되지 않을 까 싶다.

 

그리고, 모든 구성원이 코드 리뷰는 코드를 잘짰는지를 보는 시간이 아니라,

"결정 사항을 충족하는지 확인하는 시간", "코드를 고치는 시간이 아니라, 결정을 검증하는 시간" 이 되도록 생각하고,

그 방향으로 팀을 유도해야 한다고 생각한다.