AI를 도구로 쓰는 것을 넘어, AI 에이전트들이 잘 일할 수 있는 환경(코드베이스)을 설계하고 이들을 효율적으로 관리하는 매니징 역량을 갖춘 개발자가 미래의 승자가 될 것이라는 영상을 보았다. [LINK]
요즘 이런 영상들이 많은 커뮤니티에 공유 되면서, 서로 이야기를 나누는 모습을 보면서 1년 조금 넘은 이 시점에 많은 사람들의 업무 패턴을 바꿔 놓고 있다는 생각이 강하게 들었다.
1. AI 네이티브 개발자 시대의 도래와 주니어 엔지니어의 위기
소프트웨어 개발 시장은 거대한 폭풍의 한복판에 서 있다.
과거에는 코딩 테스트를 통과하고 자바나 파이썬 같은 언어를 능숙하게 다루는 것만으로도 충분한 경쟁력이 있었다.
그러나 지금은 상황이 완전히 달라졌다. 스탠포드 대학교에서 ‘현대 소프트웨어 개발자’를 가르치는 미하일 에릭(Mihail Eric) 교수는 이를 ‘퍼펙트 스톰(Perfect Storm)’이라 명명한다.
2021년의 과잉 고용 이후 불어닥친 대규모 해고 열풍, 지난 10년간 3배 가까이 급증한 컴퓨터 공학 전공자들,
그리고 결정적으로 등장한 생성형 AI는 기존의 채용 질서를 무너뜨렸다. 이제 시장이 요구하는 것은 단순한 코더가 아니다. 인공지능을 자신의 사고 과정에 완전히 통합시킨 AI 네이티브 개발자가 요구되는 시점이다.
2. AI 네이티브 개발자 정의: AI를 부하 직원이 아닌 확장된 자아로 활용하기
AI 네이티브라는 용어는 단순히 챗GPT에게 코드를 짜달라고 부탁하는 수준을 의미하지 않는다.
이는 마치 우리가 스마트폰을 신체의 일부처럼 사용하듯, 인공지능 에이전트를 개발 수명 주기(SDLC) 전체에 녹여내는 것을 뜻한다.
비유하자면, 기존의 개발자가 혼자서 삽질을 하는 ‘숙련된 일꾼’이었다면, AI 네이티브 개발자는 수십 대의 중장비를 동시에 운용하는 ‘현장 소장’과 같다. 삽질하는 법(기초 코딩 역량)을 잊어서는 안 되지만, 더 중요한 것은 중장비(AI 에이전트)를 어떻게 배치하고 관리하느냐에 달려 있다는 것이다.
3. 에이전트 오케스트레이션: 상위 0.1% AI 네이티브 개발자의 생존법
ㄱ. 에이전트 관리의 핵심, 단계적 신뢰 구축
1. 점진적 확장: 한꺼번에 10명의 인턴에게 일을 시키면 현장은 아수라장이 됨. 에이전트 역시 하나씩 추가하며 그 성능을 확인하는 과정이 필수적임
2. 격리된 작업 부여: 로고를 수정하는 에이전트와 헤더 문구를 수정하는 에이전트를 분리하여 상호 간섭을 최소화했음
ㄴ. 맥락 전환(Context Switching)의 고난도 기술
AI 에이전트들은 지치지 않고 코드를 쏟아낸다. 개발자는 터미널과 IDE를 오가며 이들이 쏟아내는 결과물을 실시간으로 모니터링해야 한다.
이는 마치 오케스트라 지휘자가 제1바이올린과 첼로의 음을 동시에 체크하듯, 각 에이전트가 어떤 맥락에서 작업을 수행 중인지 잊지 않고 적절한 피드백을 주는 과정이다.
이러한 맥락 전환 능력은 인간 매니저가 팀원을 관리하는 원리와 정확히 일치한다. 결국 기술적인 이해도를 넘어선 ‘관리 역량’이 개발자의 핵심 가치가 된다는 의미이다.
4. AI 네이티브 개발자를 위한 에이전트 친화적 코드베이스 구축
AI가 코드를 잘 짜길 원한다면, AI가 이해하기 좋은 환경을 먼저 만들어야 한다. 미하일 에릭은 이를 ‘에이전트 친화적(Agent-Friendly)’ 환경이라 부른다.
ㄱ. 소프트웨어 계약: 테스트 코드의 중요성
1. 명시적 계약: AI는 모호함을 견디지 못함. 테스트 코드는 소프트웨어가 어떻게 작동해야 하는지에 대한 ‘계약서’와 같음
2. 검증 자동화: 에이전트가 짠 코드를 즉각 테스트에 통과시켜 정답 유무를 판단하게 했음. 테스트 커버리지가 낮으면 AI는 길을 잃게 됨
ㄴ. 일관된 디자인 패턴과 지식의 일치
만약 당신의 코드베이스가 스파게티처럼 엉켜 있다면 AI는 그 나쁜 습관을 순식간에 학습하고 오류를 증폭시킨다.
1. Readme의 최신화: 문서와 실제 코드가 다르면 AI는 환각(Hallucination)에 빠짐
2. 패턴의 단일화: 동일한 기능을 구현할 때 두 가지 API를 혼용하면 AI는 잘못된 도구를 선택함. 집을 지을 때 모든 나사가 동일한 규격이어야 로봇이 조립할 수 있는 것과 같은 이치임
5. 주니어의 강점: 고정관념이 없는 AI 네이티브로의 진화
시니어 개발자들은 20년 동안 쌓아온 자신만의 방식이 있다. 그들에게 Vim이나 익숙한 IDE를 버리고 AI 중심의 워크플로우로 전환하는 것은 고통스러운 일이다. 하지만 주니어는 다르다.
ㄱ. 긍정적 순진함과 흡수력
1. 백지상태의 강점: 주니어는 산업의 높은 장벽을 모르기에 오히려 더 과감하게 AI를 도입함
2. 도구의 체득: AI를 보조 도구가 아닌 기본 개발 환경으로 인식하여 시니어보다 훨씬 빠르게 숙련도를 높였음
ㄴ. 문제 해결을 향한 집착
스탠포드 수업에서 뛰어난 성적을 거둔 학생들은 단순히 과제를 끝내는 것에 그치지 않았다.
그들은 AI를 활용해 기능을 무한히 확장하고, 수업이 끝난 뒤에도 이를 스타트업으로 발전시키는 열정을 보였다. 이것이 바로 단순한 ‘기능 구현’과 ‘탁월한 소프트웨어’의 차이를 만드는 ‘맛(Taste)’의 영역이다.
6. AI 네이티브 개발자로서 지속 가능한 성장을 위하여
결국 AI 시대의 개발은 수학적 사고를 바탕으로 시스템을 설계하는 능력이 핵심이다.
코드를 한 줄 더 타이핑하는 속도보다, 시스템 전체의 구조를 파악하고 AI에게 명확한 명령을 내리는 능력이 중요하다.
끊임없는 실험과 해킹 정신을 잃지 말아야 한다. 정해진 정답은 없다. 앤스로픽(Anthropic) 팀이 클로드를 이용해 매주 클로드를 다시 코딩하듯이, 우리 역시 매일 자신의 워크플로우를 AI로 재정의해야 한다. 이것이 불확실한 미래에서 살아남는 유일한 방법이다.
내가 해봐도 동일한 것 같다. 나는 소프트웨어 개발자는 아니지만 IT 설계에 강하다. 개발은 할줄 모르지만, 뭔가 맥락이 이상 할 때, 저번과 같은 증상이니 저번에 어떻게 해결했는지 확인하고 그렇게 해보면 안되냐고 물어봤을 때 거의 그렇게 해결 된 적도 많다.
심지어, 최근에 AI가 오류를 못찾아서 어디와 비슷한 기능인데 한번 비교하면서 찾아보라고 하던지 아님 테이블 하나 내가 삭제 했는데 삭제한 테이블에 데이터를 넣어서 테이블에 노출 안되는거아니냐?라면서 오히려 AI에게 도움을 줄 때가 종종 있었다.
이와 같이, 선 무당이 사람잡는 것처럼 오히려 아무것도 모른채 순수한 상황일때 문제의 본질을 보고 풀어 나갈 때도 있다는 것이다.