비개발자가 AI로 프로덕션 코드를
바꾸면서 배운 것들

by typed thoughts

나는 프로덕트 매니저(PM)다. 내가 하는 일은 고객들이 어떤 어려움을 겪고 있는지 이해하고, 그 문제에 대한 해결책을 정의하는 것이다. 그 해결책을 코드로 구현하는 일은 개발자의 영역이었다.

내 팀은 정리해고, 조직개편, 육아휴직 등이 겹치며 개발자가 턱없이 부족했다. 한 명의 개발자가 여러 팀의 일을 동시에 맡는 경우도 흔했다. 내가 최근 맡은 프로젝트는 문자 한두 줄만 바꾸면 되는 간단한 작업이었지만, 그런 누추한 일을 귀한 개발자에게 부탁하기란 쉽지 않았다. 부탁을 한다고 해도, 중요도가 높은 일들에 밀리기 일쑤였다.

회사에서는 AI의 사용을 적극적으로 권장했다. 많은 팀원들이 AI를 활용해 흥미로운 프로젝트를 시작했지만, 대부분은 일상 업무에 밀려 완성되지 못했다. 좋은 아이디어들이 실제 사용자에게 닿기 전에 사라지는 걸 반복해서 보게 됐다.

그래서 비개발자인 내가 코딩을 직접 해보기로 했다. 개발자는 부족하고, 내가 맡은 프로젝트는 개발 준비가 끝난 상태였으며, AI라는 도구까지 있었으니까.


친한 개발자에게 우리 팀 코드 다루는 법부터 배웠다. 한 시간 가까이 나한테 붙잡혀 있는 개발자에게 미안했다. 걸음마부터 배우는 아기가 된 기분이었다.

다른 개발자들에게 민폐가 되지 않기 위해 아주 간단한 일부터 해보기로 했다. 홈페이지에 있는 우리 팀의 미션 문구를 최근 버전으로 바꾸기. GitHub Copilot을 이용해 바꾸고자 하는 문구가 어떤 파일에 있는지 찾고, 글씨체를 바꾸려면 어떻게 해야 하는지 물었다. 질문만 하고 코드 변경은 내가 직접 했다. AI가 해준 일을 검증할 능력이 없었기 때문이었다.

내가 변경한 코드를 다른 개발자들에게 공유하고 피드백을 요청했다. 바꾼 건 두 줄 뿐이었는데, 여섯 개의 코멘트가 달렸다. 당황스러웠다. 코딩할 때 지키면 좋은 것들에 대한 것들이 대부분이었는데, ‘PM인 내가 이런 것까지 알아야 해?’와 ‘개발자가 했으면 더 빨랐겠다’ 싶은 생각이 들었다.

약간의 시간이 지나고 나니 동료들에게 고마웠다. 그들이 직접 고치면 더 수월했겠지만, 신경 써서 내게 가르쳐준 거니까. 잘 배워둬서 같은 실수를 반복하지 않아야겠다고 다짐했다. 오늘의 피드백은 내일의 속도가 되길 바랐다. 세심한 검토는 마찰이 아닌 투자였다.


OneDrive에 우리 팀 코드를 복사하는 실수도 했다. 처음에는 실수인 줄도 몰랐다. 오히려 똑똑하다며 스스로를 뿌듯해하고 있었다. 클라우드에 저장해 두면 어느 기기에서나 코딩할 수 있어 효율적이라고 생각했다. 실수였다는 건 보안 경고 이메일이 복사한 파일 당 하나씩 날아와 메일함이 폭발할 때쯤 알았다. 코드 저장소는 로컬 폴더에, 그것도 클라우드와 동기화되지 않는 곳에 있어야 한다는 걸 배웠다. 아, 그리고 우리 회사 보안 시스템이 잘 돌아가고 있다는 것도 배웠다. 지금 생각해 보면 너무나 당연한 건데 그때는 기본적인 것도 몰라 동료들이 하나씩 떠먹여 줘야 했다.


내가 만든 변경한 코드가 사용자에게 닿았다. 팀원들과 리더들에게 비개발자가 AI를 이용해 실제 서비스 코드를 바꿀 수 있다는 걸 보였다. 이 경험을 통해 다음과 같은 궁금증이 생겼다.


소유권과 책임

- 비개발자가 코드 수정을 하면, 어느 부분을 책임져야 할까? 또 개발자가 책임져야 할 부분은 무엇인가?
- 비개발자가 작성한 코드의 후속 업데이트나 문제는 누가 해결해야 할까?

품질과 검토 기준

- 비개발자의 코드 수정은 어떤 검토 기준을 충족해야 할까?
- 코드 중 비개발자의 기여가 적절한 영역과 그렇지 않은 영역이 있을까? 있다면 어떤 기준으로 정해야 할까?

프로세스와 안전장치

- 비개발자의 코드 수정도 개발자와 같은 절차를 따르면 될까?
- 어떤 안전장치가 있어야 할까? 어떤 상황에 개발자가 개입해야 할까?

장기적 영향

- 비개발자가 바꾼 코드의 유지 보수 부담을 어떻게 피할 수 있을까?

협업과 팀 문화
- 비개발자의 기여가 속도, 신뢰 협업에 어떤 영향을 미칠까?
- 앞으로 비개발자 코드 수정에 대해 규칙이 필요할까?


내가 코딩을 시작하자 팀 내에서 반응은 엇갈렸다. AI가 역할의 경계를 흐릴 거니까 개발자는 기획자의 역할을, 기획자는 개발자의 역할을 어느 정도 할 수 있도록 준비하는 게 좋다는 리더. 기획자가 만든 코드 책임은 결국 개발자들이 지는 거 아니냐며 걱정하는 개발 팀장. 다른 직종의 능력까지 평가 대상이 되는 거냐며 걱정하는 일반 사원.

이 중에서 가장 성공적인 건 부딪혀 보면서 뭐가 되고 뭐가 안 되는지 직접 배우는 사람인 것 같다. 고민하는 사이에 AI는 빠르게 변하니까. 앞으로 어떻게 될지는 나도, 팀원들도, 리더들도 모르겠다고 한다. 하지만 걱정만 하느라 아무것도 안 하면 발전이 없다는 건 확실하다.

매거진의 이전글아? 맞네