번역본. 원문:
The AI Engineering Skills Map Part 1.md(Andrew Ng, The Batch / DeepLearning.AI)
Andrew Ng와 DeepLearning.AI가 제시하는, 모든 AI 엔지니어가 알아야 할 필수 역량
친애하는 여러분,
「AI 엔지니어링 스킬 맵(The AI Engineering Skills Map)」을 소개하게 되어 기쁩니다. AI 덕분에 우리는 2022년과는 전혀 다른 방식으로 소프트웨어를 만들 수 있게 되었고, 이 변화를 활용할 역량을 갖춘 사람에게는 흥미로운 프로젝트와 일자리 기회가 넘쳐납니다. 그러나 AI를 둘러싼 정보 환경은 시끄럽고 과장으로 가득합니다. 그렇다면 배울 가치가 가장 큰 역량은 무엇일까요? 저는 팀과 함께 AI 엔지니어링 역량의 지도를 정리해 왔습니다. 목적은 두 가지입니다. (i) 개발자가 무엇부터 배울지 우선순위를 정하도록 돕고, (ii) 고용주가 역량 있는 개발자를 채용하도록 돕는 것입니다.
1만 건이 넘는 채용 공고 분석, AI 전문가·채용 관리자·리크루터와의 수십 건에 이르는 구조화된 인터뷰, 설문을 통한 데이터 수집, 그리고 여타 온라인 데이터의 종합을 토대로 도출한 가장 중요한 네 가지 AI 엔지니어링 역량은 다음과 같습니다.

- AI 애플리케이션 구축 및 배포
- 소프트웨어 엔지니어링 기초
- 코딩 에이전트 활용
- 빌드의 방향 설계(shaping the build)
비공식적으로 표현하자면, 방대한 직무 데이터와 전문가 인터뷰 데이터에 클러스터링을 수행해 지금뿐 아니라 가까운 미래에도 가장 중요할 역량을 식별한 과정이라고 생각하시면 됩니다.
용어에 관한 참고: 저는 "AI 엔지니어"라는 직무(AI 시스템을 만드는 것이 업인 사람)보다 "AI 엔지니어링 역량"이라는 표현을 씁니다. 후자가 훨씬 넓은 개념이기 때문입니다. 오늘날 모든 개발자는 클라우드를 다룰 줄 알아야 하지만, "클라우드 엔지니어"라는 직함을 가진 사람은 그중 일부뿐입니다. 마찬가지로 풀스택 엔지니어, 데이터 엔지니어, DevOps 엔지니어, 머신러닝 엔지니어, 그리고 물론 AI 엔지니어까지 모든 개발자에게 AI 엔지니어링 역량이 필요해질 것입니다.
AI 애플리케이션 구축 및 배포. AI 애플리케이션과 비AI 애플리케이션의 핵심 차이는 전자의 출력이 예측 불가능하다는 점입니다. LLM에 프롬프트를 넣을 때 어떤 답이 돌아올지 알 수 없습니다. 딥러닝 알고리즘을 학습시킬 때 새로운 예시에 대해 어떤 예측을 내놓을지 알 수 없습니다. 반면 전통적인 소프트웨어는 훨씬 예측 가능하게 동작합니다.
AI 애플리케이션 구축과 배포에 능한 사람은 AI의 구성 요소(LLM, 컨텍스트 엔지니어링, RAG, 에이전틱 워크플로, 머신러닝, 딥러닝 등)를 이해하며, 무엇보다 통계적 기법을 활용해 AI 시스템을 측정하고, 방향을 잡고, 통제함으로써 더 예측 가능하게 동작하도록 만들 줄 압니다. 이를 위한 핵심 역량은 규율 있는 평가(eval)와 오류 분석 루프를 이끌 줄 아는 것입니다.
소프트웨어 엔지니어링 기초. 소프트웨어가 어떻게 동작하는지 깊이 이해하면 훨씬 효과적으로 만들 수 있습니다. 소프트웨어 엔지니어링은 비용, 확장성, 신뢰성, 속도 등 사이의 트레이드오프를 판단하는 일입니다. 여기에 보안과 프라이버시가 복잡도를 더합니다.
소프트웨어 기초를 이해하면 애초에 어떤 트레이드오프가 존재하는지를 알아볼 수 있습니다. 그 결과 소프트웨어 스택 선택, 시스템 아키텍처 설계, 데이터 저장소 설계, 테스트 등에서 더 나은 결정을 내리게 됩니다. 또한 코딩 에이전트가 어떤 트레이드오프를 하고 있는지도 모른 채 바이브 코딩으로 해법을 만들어 내는 미숙한 개발자보다 훨씬 나은 결과를 냅니다. 그런 개발자의 결과물이 대체로 부실한 이유는, 에이전트에 어떤 맥락을 줘야 하는지 모르기 때문입니다. 소프트웨어 엔지니어링 기초를 이해하면 소프트웨어 엔지니어링의 정확한 언어로 코딩 에이전트를 조종해 좋은 트레이드오프를 이끌어낼 수 있습니다.
코딩 에이전트 활용. 에이전틱 코딩을 효과적으로 쓰는 것은 이제 모든 개발자의 핵심 역량입니다. 이 역량을 갖추면 에이전트의 작동 방식에 대한 좋은 멘탈 모델을 갖게 됩니다. 에이전트의 한계와 그 우회 방법을 이해하고, 얼마나 개입하고 얼마나 내버려 둘지를 판단하며 빠르게 방향을 잡아, 과도한 시간이나 토큰을 낭비하지 않고 견고한 소프트웨어를 만들 수 있습니다.
이를 위해서는 코딩 에이전트의 컨텍스트를 관리하는 법, 계획과 실행 사이의 트레이드오프를 잡는 법, 검증기(verifier)나 평가를 제공해 에이전트가 스스로 루프를 닫도록 돕는 법을 알아야 합니다. 또한 명확한 스펙을 가지고 작업하는 법(그리고 굳이 그럴 필요가 없는 경우), 여러 에이전트를 함께 오케스트레이션하는 법, 에이전트가 프로덕션 데이터베이스를 망가뜨리는 것과 같은 함정을 피하는 법도 알아야 합니다. 에이전틱 코딩은 빠르게 진화하고 있으므로, 코딩 에이전트를 능숙하게 쓴다는 것은 최신 실무를 아는 것만이 아니라 새 도구를 계속 시도하고 모범 사례 변화에 맞춰 워크플로를 진화시키는 루틴을 갖는다는 뜻이기도 합니다.
빌드의 방향 설계. 스펙이 명확하기만 하면 코딩 에이전트는 그에 맞춰 결과물을 내놓는 능력이 빠르게 좋아지고 있습니다. 따라서 엔지니어의 일은 스펙에 무엇이 들어가야 하는지를 정하는 쪽으로 옮겨가고 있습니다. 엔지니어는 더 이상 픽셀 단위까지 완성된 디자인을 받아 구현만 하는 역할을 기대해서는 안 됩니다. 효과적인 AI 엔지니어링에는 제품 감각과 함께 비즈니스 맥락 및 고객 목표에 대한 이해가 필요하며, 그래야 빌드의 방향을 함께 설계하고 이끌 수 있습니다.
또한 AI는 이전보다 더 큰 오너십과 주도권을 가질 기회를 줍니다. 흥미로운 문제와 기회를 직접 발굴하고, 책임 있는 방식으로 실행해 그 기회를 살릴 수 있습니다. 이 기회를 활용하려면 프로젝트를 밀고 나가는 법을 알아야 합니다. 예를 들어 언제 빠르게 MVP를 만들어 사용자 테스트에 들여보낼지, 언제 속도를 늦추고 시간을 더 들여 신중하게 만들지 판단하는 것입니다.
이 모든 역량의 밑바탕에는 지속적 학습의 태도가 있습니다. AI는 계속 빠르게 변하고 있으므로, 우리 모두 새로 떠오르는 모범 사례를 받아들이기 위해 계속 배우고 역량을 진화시켜야 합니다.
DeepLearning.AI의 핵심 목표는 개발자가 이러한 AI 엔지니어링 역량을 갖추도록 돕는 것입니다. 네 가지 역량 각각에 대해 할 말이 더 있으며, 앞으로 몇 편의 레터에서 하나씩 구체화하고 더 상세한 AI 엔지니어링 스킬 맵을 공유하겠습니다. AI 엔지니어링이 향하는 곳을 보며, 우리 모두가 만들어낼 것들에 대해 무척 설렙니다. 여러분도 그 미래에서 흥미로운 역할을 맡게 되기를 바랍니다.
계속 만들어 나가세요!
Andrew
추신. AI가 진화함에 따라 AI 엔지니어링 스킬 맵도 계속 업데이트하겠습니다. 기여하실 의향이 있다면 여기에서 설문에 몇 분만 투자해 주세요. 5~7분 정도 걸리며, 커뮤니티를 위해 이 지도를 다듬는 데 도움이 됩니다.