서론
불과 1~2년 전까지만 해도 관심이 있는 소수만이 실무에서 AI를 도입하고 유즈케이스들을 검증했습니다. 하지만 현재 대부분의 기업들이 AI Agent를 실무자들에게 지원하고 실무자들은 이를 활용해 생산성을 높이고 있습니다. 저도 Claude Code를 회사에서 지원받아 툴에 대한 이해도를 높이고 이를 활용해 생산성을 높이는 방법에 대해 고민하고 주변 활용 사례나 여러 아티클 등을 접하면서 인사이트를 얻고 있습니다.
지금 글을 작성하는 시점에서 저의 생각 역시 1년전과 크게 달라진 것을 미루어 보아 지금의 생각이 얼마나 유효할지 의문입니다만 현 상황에서의 생각을 정리하는 것도 의미가 있을 것 같아 글을 작성하게 되었습니다.
AI 시대에 살아남는 개발자는 어떤 개발자일까요? 이러한 고민에 대한 답을 내리기 위해서는 AI가 무엇을 잘하고 AI가 무엇을 못하는 지 살펴볼 필요가 있습니다.
실무에서 AI의 현주소
과제 수행 능력
요구사항이 크고 작음은 주관적인 문장입니다. 또한 같은 문제를 AI에게 던져도 AI 툴의 종류나 사용자의 역량 등에 따라 결과는 매우 달라질 수 있습니다. 하지만 대부분의 AI는 컨텍스트 기반으로 동작을 한다는 점, 그리고 컨텍스트를 계속해서 기억하면서 작업을 수행하려고 하기 때문에 요구사항이 클수록 컨텍스트가 커질수 밖에 없고 토큰 소모량이 커지고 할루시네이션이 발생할 가능성이 커진다는 점에서 요구사항은 작고 분명한 것이 좋습니다. 어떤 개발자는 이를 우유(신선하고 응축된 상태가 최상의 상태)에 비유하기도 했습니다.

이건 AI(특히 Claude Code와 같은 AI Agent)를 사용하다보면 쉽게 경험해볼 수 있고 아마 대부분의 개발자들은 경험해보았을 것이라고 생각됩니다. 개인적인 견해로 AI가 가장 잘 수행하는 작업의 범위는 전체적인 설계를 수행하거나 마이그레이션 작업을 진행하는 것처럼 큰 범위의 작업보다는 작은 단위의 확장 함수 작성부터 테스트 코드 작성, 화면이나 객체 단위, 자동화 스크립트와 같이 작업 범위가 명확하고 분명한 것들을 훨씬 잘 수행해 줍니다. 따라서 큰 작업을 AI한테 맡길 때에는 큰 작업을 작은 작업 단위로 명확하게 세분화하고 이를 차례대로 수행시키는 것이 좋습니다.
개인적으로는 단위가 큰 작업은 Claude Code에 노션 MCP를 연동하여 노션에서 작업 계획을 구체화하고 Cluade Code의 Plan Mode를 활용해보고 있습니다. Plan Mode에서는 Claude가 알아서 계획을 수립하고 단계마다 승인을 거치고, Claude가 판단하기 어려운 것들은 다시 사용자에게 질의하는 AskUserQuestion 기능을 제공합니다. 이러한 방법이 그나마 할루시네이션을 줄여주고 원하는 방향으로 구현을 해주는 것 같지만 여전히 토큰 소모량도 너무 크고 바로 승인할 만큼의 퀄리티의 코드가 나오지는 않아서 여러 방법을 시도해보고 있습니다.
또한 AI는 매번 기존 모든 코드베이스를 파악할 수 없기 때문에 동일한 동작을 하는 객체가 이미 있어도 새로운 객체를 구현하는 경우가 많습니다. 코드 베이스가 큰 프로젝트일수록 이 부분이 꽤 치명적인데 SSOT 법칙을 위배하기도 하며 파편화로 인한 심각한 버그 및 유지보수 난이도 증가를 유발할 수 있습니다. 즉 현재의 AI는 0 to 1은 매우 잘해주지만 1 to 100은 한계가 존재하는 느낌입니다.
실제로 25년 상반기에 코넬대학교 연구팀에서는 5년차 이상의 경력 개발자들을 대규모 오픈 소스 프로젝트를 개발하는 연구를 진행했는데, AI를 사용했을 때보다 AI를 사용하지 않았을 때 생산성이 높게 나오는 통계가 나오기도 했습니다. 아래 그래프처럼 프롬프팅하고, AI를 기다리고 결과물을 검토하는 시간이 생각보다 오래걸렸기 때문입니다.

아직까지 AI Agent로 실무 과제를 완전히 대체하기는 힘들다고 생각이 들지만 이러한 과제 수행 능력은 시간이 지날수록 성능이 좋아질 것이기 때문에 머지 않아 실무 과제도 완전히 자연어로 처리하는 날이 오지 않을까 싶습니다.
글쓰기
글쓰기 능력은 너무나 압도적입니다. 코드에서 변수명을 지정할 때에나 커밋 메시지를 작성할 때, PR 작성할 때, 문서화 할 때, 코드 리뷰할 때 등 개발자들도 실무에서 글을 작성하는 시간이 생각보다 많은데, 이러한 것들을 모두 AI에게 위임할 수 있습니다.
특히 Claude Code에서 Custom Command, Agents, Skills 기능을 사용하면 단어 하나만 입력하면 작업한 내용을 기반으로 커밋 메시지를 작성해서 커밋해주고, 원하는 때에 push 후 PR을 작성해줍니다. 코드 리뷰도 시니어 개발자 페르소나를 주입하고 팀만의 코드 리뷰 컨벤션을 적용하면 자동으로 수행해줍니다. 특히 문서화의 경우 프로젝트 코드를 읽고 작성해주기 때문에 히스토리 파악이나 인수인계 등에 활용하고 있습니다. 이러한 일련의 요청들을 수행하는 Subagent들을 만들어 할당하면 병렬로 실행시킬 수 있어서 생산성이 크게 향상됨을 느끼고 있습니다.
이러한 요소들을 Plugin으로 묶어서 MarketPlace에 배포하면 팀 단위로 동일한 Claude Code 세팅을 가져갈 수 있어서 일관된 AI Agent 품질과 코드 퀄리티를 유지할 수 있습니다.
어떤 엔지니어가 되어야 할까
그렇다면 AI 시대에 개발자로 살아남기 위해서는 어떻게 해야할까요? 이전 시대에 요구되었던 역량과는 약간 다른 점들이 있을 것 같습니다. 발전 방향에 대한 개인적인 견해들을 정리해보았습니다.
의사결정, 커뮤니케이션이 뛰어난 사람
AI가 아무리 발전해도 대체할 수 없는 것은 의사결정이라고 생각합니다. AI는 여러 해결 방법을 제안하지만 그 방법을 책임지고 채택하는 것은 결국 개발자의 몫입니다. 따라서 AI에게 문제를 풀도록 하는 것, 해결 방법을 검토하는 것, 엔지니어링적 트레이드 오프(팀의 문맥, 유지보수성, 리소스 등)를 판단하고 의사결정을 할 줄 아는 능력이 중요해진다고 생각합니다.
또한 개발자는 단순히 개발만 하는 것이 아니라 타 직군과의 커뮤니케이션이 많은 직군입니다. 실무에서의 AI 비중이 높아지는 만큼 개발자 역시 제품에 대한 더 많은 고민을 할 수 있게 되고 자연스럽게 커뮤니케이션과 같은 소프트 스킬의 중요성과 비중이 높아지지 않을까 싶습니다.
제품의 시작과 끝을 만들 수 있는 사람
현재 개발직군은 프론트엔드, 백엔드, 모바일과 같은 세부 직군으로 분류되는 경우가 많습니다. 각 직군별로 학습해야 할 범위와 양이 많고 이는 각 분야에 대한 전문성이기도 했습니다. 하지만 AI의 발전으로 인해 기본적인 개발에 대한 이해도가 있다면 다른 도메인의 개발을 빠르게 경험해볼 수 있는 상황이 되었습니다. 전에는 하나의 제품을 만들기 위해서 각 직군의 전문가들이 필요했지만, 지금은 한명의 개발자가 AI와 함께 제품의 시작과 끝을 담당할 수 있게 되었습니다.(물론 현재 이것은 0 to 1을 의미하는 것이지 1 to 100을 의미하는 것은 아닙니다.)
앞으로는 개발직군 내부에서 도메인의 경계가 불분명해지고 제품을 우선적으로 생각하고 이를 분야에 상관없이 제품에 완결성 있게 녹여낼 수 있는 개발자가 각광받지 않을까 싶습니다. 요새 Product Engineer라는 단어가 많이 들리는데 제가 생각하는 관점이랑 비슷하다고 생각합니다.
AI에 빠르게 적응하는 사람
AI 역시 도구입니다. AI 툴을 많이 사용해보고 해당 툴에서 제공하는 API나 기능들을 많이 사용해보아야 어떤 프로세스에 AI를 적용해볼 수 있을까 하는 인사이트를 얻게 될 수 있다고 생각합니다. 저 역시도 여러가지 시도를 해보고 있는데, 글쓰기와 관련된 모든 작업을 팀에 맞게 커스텀하여 AI 프로세스화하고 이를 플러그인으로 배포하여 팀 내에 전파하였고, 앞으로는 업무를 진행하는 단계들을 쪼개서 작은 유즈케이스화 하여 하나씩 AI를 적용해보려고 합니다.