앱 엔지니어의 종말: 향후 10년이 에이전트 빌더의 시대인 이유

우리는 지금 1999년이나 2009년에 비견될 만한 역사적 변곡점에 서 있습니다. 정적인 앱을 만드는 시대는 저물고, 바야흐로 자율 에이전트(Autonomous Agents)의 시대가 도래했습니다. 스스로 의사결정을 내리는 에이전트를 만들지 못한다면, 생각보다 훨씬 빠르게 도태될 수 있습니다.

앱 엔지니어의 종말: 향후 10년이 에이전트 빌더의 시대인 이유
Feng LiuFeng Liu
2025년 12월 19일

Title: AI 에이전트 엔지니어의 시대

Content:

역사는 참 묘하게도 라임(rhyme)을 맞추듯 반복되곤 합니다. 보통 우리가 현실에 안주할 때쯤 말이죠.

90년대 후반을 그려보세요. 만약 당신이 HTML과 약간의 Perl이나 PHP를 섞어 작동하는 웹사이트를 만들 줄 알았다면, 당신은 마법사나 다름없었습니다. 당신은 '웹 엔지니어'였고, 세상은 당신의 독무대였습니다. 인터넷이라는 거대한 상점의 진열대를 만드는 사람이었으니까요.

2009년으로 빨리 감기 해봅시다. 아이폰이 세상을 완전히 쪼개버렸습니다. 갑자기 아무도 정적인 웹사이트에는 큰 관심을 두지 않게 되었죠. 에너지는 Objective-C와 Java로 옮겨갔습니다. 만약 당신이 '모바일 앱 엔지니어'였다면, 당신은 미래를 쓰고 있는 것이나 마찬가지였습니다. 사람들이 주머니에 넣고 다니는 도구를 만들고 있었으니까요.

이제 2024년을 보세요. 공기가 다시 희박하고 정체된 느낌입니다. 앱 스토어는 포화 상태고, 웹은 붐빕니다. 하지만 수면 아래에서는 거대한 지각 변동이 일어나고 있습니다. 우리는 지금 '인터페이스(Interface)'의 시대를 떠나 '에이전트(Agent)'의 시대로 진입하고 있습니다.

향후 10년 동안 가장 가치 있는 타이틀은 "풀스택 개발자"나 "iOS 엔지니어"가 아닐 것입니다. 바로 **AI 에이전트 엔지니어(AI Agent Engineer)**가 될 것입니다.

새로운 지각 변동

이것은 단순히 또 다른 프레임워크 전쟁이나 배워야 할 새로운 프로그래밍 언어 이야기가 아닙니다. 이것은 누가 일을 하느냐에 대한 근본적인 변화입니다.

지난 20년 동안 소프트웨어 엔지니어링은 인간이 클릭할 수 있는 명확하고 결정론적인(deterministic) 경로를 만드는 것이었습니다. 당신이 버튼을 만들면, 인간이 그것을 클릭하고, 코드는 기능을 실행했습니다. 인간이 '두뇌'였고, 소프트웨어는 '근육'이었습니다.

그 역학 관계가 뒤집히고 있습니다.

에이전트의 시대(Agentic Era)에는 소프트웨어가 두뇌를 제공합니다. 당신의 일은 더 이상 인간이 클릭할 버튼을 만드는 것이 아닙니다. 당신의 일은 언제 버튼을 클릭할지 결정하거나, 더 나아가 버튼이 아예 필요 없다는 것을 알아내는 '디지털 직원'을 만드는 것입니다.

저는 10년 넘게 제품을 만들어왔고, 지금 땅이 움직이는 것을 느낄 수 있습니다. 만약 당신이 오늘 당장 당신을 돕거나, 워크플로우를 자동화하거나, 고객을 응대하는 에이전트를 만들 수 있다면, 당신은 1999년에 막 온라인 비즈니스를 시작한 그 아이와 같은 레버리지(leverage)를 갖게 되는 것입니다.

하지만 여기 냉혹한 진실이 있습니다. 만약 이것을 배우기를 거부하고 순수하게 결정론적인 코딩만 고집한다면, 당신은 전자출판(DTP) 시대의 식자공(typesetter)과 같은 처지가 될 위험이 있습니다.

마법의 베일 벗기기: 도구와 맥락

사람들은 "AI 에이전트"라는 말을 들으면 스카이넷(Skynet)이나 불가능할 정도로 복잡한 신경망 아키텍처를 상상합니다. 거품을 걷어내 봅시다.

에이전트를 만드는 건 마법이 아닙니다. 엔지니어링입니다. 그리고 이것은 결국 두 가지로 귀결됩니다: **도구(Tools)**와 **맥락(Context)**입니다.

대부분의 개발자가 이 부분을 너무 복잡하게 생각하더군요. 그들은 모델을 직접 훈련시켜야 한다고 생각합니다. 그렇지 않습니다. Claude, GPT-4, Llama 같은 모델들은 이미 충분히 똑똑합니다. 당신이 할 일은 그들에게 손과 기억을 주는 것입니다.

1. 도구 (모델에게 손을 쥐여주기)

대규모 언어 모델(LLM)은 그저 '통 속에 든 뇌'일 뿐입니다. 생각은 할 수 있지만, 세상을 만질 수는 없죠. "에이전트"는 단순히 API 엔드포인트나 CLI 명령어에 접근할 수 있는 권한을 부여받은 LLM일 뿐입니다.

당신은 모델에게 이렇게 말합니다: "여기 list_files라는 도구가 있어. 여기 read_file이라는 도구도 있고, send_email이라는 도구도 있어."

2. 맥락 (모델에게 방향 제시하기)

그다음 역할을 정의합니다. "너는 시니어 QA 엔지니어야. 너의 목표는 이 저장소(repository)의 타입 에러를 고치는 거야."

그게 전부입니다. 이것이 핵심 루프입니다.

Cursor나 Claude Code를 사용해 보셨다면, 이것이 실제로 작동하는 모습을 보셨을 겁니다. 당신은 편집 과정을 세세하게 관리하지 않습니다. 그저 "utils.ts의 타입 에러를 고쳐줘"라고 말할 뿐이죠.

에이전트는 생각합니다: 좋아, 일단 파일을 봐야겠군. 그리고 ls 도구를 사용하기로 결정합니다. 그다음 grep이나 read를 사용하기로 하죠. 에러를 발견합니다. 수정 코드를 작성하기로 결정합니다. 그리고 컴파일러를 실행해 자신의 작업을 확인합니다.

이것이 바로 돌파구입니다. 더 이상 단순한 "채팅"이 아닙니다. 이것은 의사결정 루프(decision loop)입니다. 모델은 당신이 준 문제를 해결하기 위해 어떤 도구를 집어 들지 스스로 선택하고 있습니다.

스마트폰과 웹 브라우저 같은 전통적인 소프트웨어에서 현대적인 AI 에이전트로의 진화를 묘사한 디지털 아트

챗봇에서 의사결정 엔진으로

지난 2년 동안 우리는 "채팅" 단계에 갇혀 있었습니다. 우리는 AI를 마치 똑똑한 사서처럼 대했죠. 질문을 하면, 대답을 해주는 존재로요.

그 단계는 끝나가고 있습니다.

에이전트 단계는 **실행(execution)**에 관한 것입니다. CLI를 당신이 타이핑하는 공간이 아니라, 모델을 위한 놀이터로 바라보는 것입니다.

스타트업에 미칠 영향을 생각해 보세요. 과거에 제가 고객 환불을 처리하는 서비스를 만들려면 UI, 백엔드, 데이터베이스를 구축하고 버튼을 클릭할 지원팀을 고용해야 했습니다.

오늘날, 저는 에이전트를 작성할 수 있습니다. 에이전트에게 Stripe API(도구)와 이메일 기록(맥락)에 대한 접근 권한을 줍니다. 그리고 정책을 줍니다: "7일 이내에 고객이 불만족하면 환불해 줄 것." 에이전트는 들어오는 이메일을 읽고, 조건에 부합하는지 결정하고, Stripe 환불 도구를 트리거하고, 답장을 작성합니다.

UI는 필요 없습니다. 고객 지원 티켓 대기열도 필요 없죠. 오직 목표와 도구 세트만 있으면 됩니다.

에이전트 구축의 "지저분한 과정 (Messy Middle)"

유토피아를 그리려는 건 아닙니다. 저는 지난 6개월 동안 에이전트 구축의 참호 속에서 깊이 파고들었고, 솔직히 말씀드리자면 정말 지저분하고 혼란스럽습니다.

전통적인 코딩은 논리적입니다. If X then Y. 작동하거나, 깨지거나 둘 중 하나죠.

에이전트 엔지니어링은 확률적(probabilistic)입니다. 에이전트를 만들고 도구를 쥐여주면, 가끔은 창문을 열기 위해 망치를 사용하는 결정을 내리기도 합니다. 때로는 존재하지 않는 파라미터를 환각(hallucination)으로 만들어내기도 하죠.

바로 여기에 새로운 기술 셋(skill set)이 필요합니다.

에이전트 엔지니어가 된다는 건 단순히 파이썬 스크립트를 짜는 게 아닙니다. 다음과 같은 것들이 필요합니다:

  • 아키텍처로서의 프롬프트 엔지니어링: 모델의 행동을 제약하기 위해 시스템 프롬프트를 설계하는 능력.
  • 평가 주도 개발 (Eval Driven Development): 창의성에 대해 단위 테스트(unit test)를 작성할 수는 없습니다. 따라서 에이전트가 작업에 얼마나 자주 성공하는지 측정하는 평가 파이프라인을 구축해야 합니다.
  • 도구 설계 (Tool Design): 모델이 혼란스러워하지 않고 이해할 수 있을 만큼 "깔끔한" API 인터페이스를 만드는 능력.

저는 에이전트가 자기가 만든 버그를 고치려다 무한 루프에 빠지는 것도 봤고, 엉뚱한 파일을 자신 있게 삭제해 버리는 것도 봤습니다. 이것이 현실입니다. 하지만 이러한 마찰 지점들을 해결하는 것이야말로 가치가 창출되는 지점입니다.

실전 가이드: 오늘 당장 시작하는 법

만약 제가 오늘 처음부터 다시 시작하거나 커리어 전환을 모색한다면, 저는 정확히 이렇게 할 것입니다:

  1. GUI 구축을 멈추세요: 적어도 사이드 프로젝트에서는요. 프론트엔드 없이 문제를 해결해 보세요. CLI와 LLM만으로 문제를 해결할 수 있나요?
  2. 인터페이스 프로토콜을 배우세요: OpenAI의 함수 호출(function calling)이나 Anthropic의 도구 사용(tool use)이 어떻게 작동하는지 이해하세요. 이것이 에이전트 시대의 TCP/IP입니다.
  3. "말하는 봇"이 아니라 "행동하는 봇"을 만드세요: 캘린더에 대해 답변해 주는 봇을 만들지 마세요. 캘린더를 관리하는 봇을 만드세요. 이벤트를 삭제할 수 있는 권한을 주세요. AI에게 쓰기 권한(write access)을 주는 공포를 느껴보세요. 그때가 진짜 배움이 시작되는 순간입니다.
  4. 맥락 관리(Context Management)를 마스터하세요: 컨텍스트 윈도우를 넘치게 하지 않으면서 올바른 정보를 채워 넣는 법을 배우세요. RAG(검색 증강 생성)는 시작일 뿐입니다.

우리 앞에 놓인 기회

우리는 한 명의 개발자가 전문화된 에이전트 함대를 거느리고 20명 규모의 스타트업이 하던 일을 해내는 미래를 보고 있습니다.

창조를 위한 진입 장벽은 0으로 수렴하고 있습니다. 하지만 이 두뇌들을 어떻게 연결할지 이해하는 *오케스트레이션(orchestration)*의 진입 장벽은 새로운 해자(moat)가 되고 있습니다.

10년 전, 당신은 코드를 작성하기 위해 고용되었습니다. 오늘날, 당신은 코드를 작성하는 시스템을 설계하기 위해 고용됩니다.

기차는 이미 역을 떠나고 있습니다. 낡은 프레임워크를 꽉 쥐고 승강장에 서 있을 수도 있고, 기차에 올라타 선로를 함께 깔 수도 있습니다.

자, 이제 만들어 봅시다.

Excerpt: 지난 20년 동안 소프트웨어 엔지니어링은 인간이 클릭할 버튼을 만드는 것이었습니다. 이제 그 역학 관계가 뒤집히고 있습니다. AI 에이전트의 시대, 당신의 일은 더 이상 버튼을 만드는 것이 아니라, 언제 버튼을 누를지 결정하는 '디지털 직원'을 만드는 것입니다. 이것은 단순한 기술 변화가 아니라, 누가 일을 하느냐에 대한 근본적인 지각 변동입니다.

공유하기

Feng Liu

Feng Liu

shenjian8628@gmail.com