[일상] 대 AI 시대에 개발자를 한다는 건
개요
ChatGPT가 세상에 나온지도 어느덧 4년정도가 되었다.
처음에는 AI 분야가 발전했구나 라는 생각정도만 들었지, 많은 분야에 이렇게까지 큰 영향력을 끼칠거라곤 생각도 못했다.
하지만 시간이 지날 수록 업무에 AI가 차지하는 비중이 점점 커지고 있었고, 어느새 나도 Copilot을 결제해서 사용하고 있었다.
이제는 단순 챗봇 수준이 아니라 Agent를 기반으로 IDE 에서 명령만 하면 손을 놓고 있어도 코드 작성하고, 리뷰하고, 로컬 배포까지 알아서 진행해준다. 이 모습을 보고 경외감이 들 정도였다.
하지만 이러면 내가 필요 한가? 라는 생각이 들게 되면서 상당히 긴 시간 고민아닌 고민을 하게 되었다.
나름대로 나만의 답변이 정리된 것 같으니 글로 남겨보려고 한다.
심심이
초등학생 때 심심이 라는 App이 되게 신기했었다.
그 때는 어떻게 구현되었을지 생각자체를 안하기도 하던 나이고, 내가 사람이 아닌 기계와 대화하고 있다는것이 신기했었다.
다만, 심심이 는 단순한 대화만 가능했고 정보를 얻어내기엔 어려운 재미용 챗봇이었다.
그 시절을 생각하다가 현 codex, claude를 보고 있으면, 내가 성장하는 약 15년동안 이정도의 기술 발전이 가능하다는 사실이 놀랍게 느껴진다.
Coding Agent
내 코딩 에이전트의 시작은 Cursor 였다.
직장 동료의 “이런게 있다더라~” 라는 이야기를 듣고 검색해보니 2주는 무료 사용이 된다길래 바로 설치해서 사용해보았다.
며칠 사용해보니 말 그대로 유능한 부사수 가 하나 있는 기분이었다.
내가 원하는 내용을 설명하면 코드를 구현해주고, 막혀있던 부분까지 해결해주었다.
하지만 양심에 찔려서 적극적으로 사용하지 못했고, 내가 충분히 고민한 끝에 시간이 부족했던 내용만 에이전트를 사용했기에 몇번 쓰지도 못한 채 2주가 지나게 되었다.
당시에는 AI를 잘 사용하는 것도 개발자의 실력이라고 생각하지 못했다.
그저 내가 해야 할 일을 떠넘기는거로만 생각했었다.
나 vs AI
나도 임금을 받고 고용된 직장인인데, 코딩 에이전트가 내 일을 대신하면 회사에서 날 채용한 이유가 없지 않나?
이 글을 쓰게 된 이유이자 시작점이다.
회사에선 월급을 주고 나라는 인력을 고용했지만, 나는 몇만원으로 그 일을 대신해줄 사람을 고용한 기분이었다.
코드를 작성하는것 자체가 개발자의 일이라고 생각했던 것 같다.
하지만 시간이 지날수록 사내에 보조 AI들이 생기기 시작했고, AI 사용을 적극 권장하고 있었다.
상급자이며 같은 직종에 오래 몸담은 선배가 이렇게 권장한다는건 내 생각이 틀렸다고 말해주는 것 같았다.
일단 사용해보자라는 생각에 Github Copilot을 결제해서 사용해보기 시작했는데, 생각보다 내가 할 일도 많다는걸 느꼈다.
- 항상 정답을 말해주진 않는다.
AI는 이미 학습된 데이터와 실시간 검색을 통해 수집한 데이터를 기반으로 질문에 대한 답변을 제공한다.
그런데 불필요한 데이터가 학습된건지 아니면 사용자의 요구사항에 답해야한다는 압박이 있는건지 실제 존재하지 않는 링크를 그럴듯하게 만들어서 주기도 한다.
그래서 정보를 찾을 때 항상 요구하는건 “정보의 출처 URL과 해당 내용이 포함된 단락” 을 같이 말해달라고 한다.
- 내 생각을 모두 정리해서 글로 전달하는건 쉽지 않다.
내가 구상한 내용을 AI에게 전달하더라도 예상치 못한 흐름으로 가는 경우가 꽤 있다.
물론 내 어휘력이 부족함이 있겠지만, 이것도 AI를 사용하는 개발자의 능력이라고 생각한다.
최대한 자세하게 정보를 전달해주려고 하지만 현재 질문에 대한 환경의 모든 정보를 전달해주지는 못하기에 여러번의 핑퐁을 통해서 요구사항에 수렴하도록 해야한다.
이처럼 내 생각과 AI의 결과가 다른 부분이 생각보다 많다.
핵심을 찔렀어
AI에게 그거 아닌데? 이렇지 않아? 라고 답변하면 기본 이모티콘과 함께 너, 핵심을 찔렀어 라는 말을 많이 한다.
한동안 이게 밈처럼 사용되기도 했었다..
AI를 사용하면서 가장 중요한 점은 사용자의 검증이라고 생각한다.
코드의 구현 속도와 퀄리티는 코딩 에이전트가 나보다 월등하지만 결국 내 요구사항을 수행하는 보조 프로그램이기에 내 의도대로 정보가 수집되었는지, 요구사항을 벗어나지 않았는지 검증하는 과정이 반드시 필요하다.
물론 나도 종종 이정도면 난 그냥 AI 전용 디버거가 아닐까? 라는 생각을 하지만 작업하는데 있어 효율적이려면 내가 디버거가 되는게 맞는 것 같다.
덕분에 평소에 하지 못했던 대규모 리팩토링도 진행하고 있고 쌓인 일감을 처리하는 속도도 빨라졌다
물론 일감이 쌓이는 속도도 빨라져서 내 업무량은 달라지지 않은 것 같다.
마치며
생각보다 오래 고민한 내용이었다.
일을 하는데 일을 하지 않는 것 처럼 느껴지는 기간이 길었고 대 AI 시대를 받아드리기까지 시간이 오래 걸렸다.
지금와서 정리된 내용이지만 AI를 사용하더라도 나밖에 할 수 없는 역할이 남아있고, 이 역할이 결국 AI 가 찾아준 정보와 만들어준 결과값에 지대한 영향을 미친다는 것을 알게되었다.
오히려 AI를 적극적으로 사용하지 않은 시간들이 아까워졌다.
디버거로ㅅ 개발자로서 AI를 사용하면서 실제 작업해야하는 범주가 줄어든만큼 내가 할 수 있는 리뷰, 검증과정을 최대한 신경써야 하는 시대인 것 같다.