코드 리뷰를 하면, 늘 굉장히 ChatGPT 스타일의 코드를 푸쉬하는 팀원이 있다.
ChatGPT에서 온 코드는, 티가 난다.
그리고 그걸 알아차리는 것은 어렵지 않다. ChatGPT를 써봤다면.
나는 개발할 때 ChatGPT를 꼭 사용한다. 대체 불가한 툴이라고 생각한다.
이에 대해 다른 개발자들과 이야기를 나눠보면 “사용하지 않는다", “아직 너무 부족해서 쓸모가 없어보인다" 이라는 반응을 듣곤 한다.
심지어, ChatGPT에서 복붙한 코드를 자주 푸쉬하는 팀원 마저.
사용하는 것을 감추고 싶던 아니던, 어떠한 반응이던 개인의 선택이지만, GPT를 사용하지 않는 것은 명백한 실 이라고 생각한다.
미친 레벨의 알고리즘 문제도 불과 몇 초 만에 풀이를 내놓는 AI인데, ‘내가 그래도 얘보단 낫다’의 논점이 아닌, ‘얘를 어떻게 써야 할까’로 접근해야 하지 않을까 싶다.
우리 회사에선 GitHub Copilot이라는 AI 코딩 assistant을 지원해준다. 우리가 작성 중인 코드를 분석해 자동 완성 하거나 제안을 해주는 툴이다. 지원해줄테니 최대한 활용해서 고퀄의 코드를 생산성 있게 만들어라는 의미이다.
현재 내가 개발할 때 GPT를 사용하는 방법은:
- Refactoring: 내가 작성한 코드를 다듬고 다듬어보지만 그래도 아직 시원찮다면, 여기서 더 refactor될 수 있는지 물어본다. GPT의 대답이 별로 마음에 들지 않아도, 내가 적용해볼 만한 힌트를 얻을 수 있는 경우가 많다.
- Brainstorming: 새로운 문제를 해결하기 전, 적어도 2개의 접근 방식은 생각해놓고 시작한다. 이를 공유하고 혹시 내가 놓친 부분이 있는지, 더 나은 방법이 있는지 물어본다. 가끔 정말 중요한 포인트를 짚어줄 때가 있다.
- Debugging: GPT가 가장 빛을 발하는 순간이다. 코드 블록과 에러를 공유하면, 문제의 원인이 될 수 있는 부분을 짚어준다. 디버깅 시간이 눈에 띄게 단축될 때가 많다.
GPT era 전에는 어떻게 해결되었을까?
- 동료들과의 brainstorming
- Stack Overflow 커뮤니티에서 비슷한 질문을 찾아내며 답을 유추
- GitHub 커뮤니티에서 Issue로 등록되었던 관련 문제들을 찾아내서 답을 유추
- 며칠간의 머리를 싸맨 디버깅(?)
그럼 여기서, GPT는 개발자를 대체할까?
나는 GPT가 이미 코더는 쉽게 대체할 수 있다고 생각한다.
즉, 함수 구현이나 레이아웃 작성, API 생성 등 반복적이고 기술적인 작업은 이미 AI가 잘하고 있고, 앞으로 그 범위는 더 확장될 것이다.
앞으로 개발자가 나아가야 할 방향은 GPT/AI를 나의 assistant와 협업자로 두고 활용하면서, 프로젝트를 지휘할 수 있는 포지션이 되어야 하지 않을까 싶다.
단순히 내 앞에 있는 이 작은 버그를 해결하는 데 그치지 않고, 확장 가능하고 유지보수성이 좋은 시스템의 전체 아키텍쳐를 생각 할 줄 알고 계획/설계하는 일. 이 기술을 생활의 어떤 문제점과 연결지어 해결하고 싶은지 창의적인 솔루션을 제안하는 일.
이런 일들을 하는데 조금 더 집중해보고, 그 안에서 작업해야 하는 부분은 GPT/AI와 협업하며 좀 더 스피디하고 효율적으로 진행할 수 있지 않을까 싶다.