SSD Nodes Learn 🎉 VPS $4.99/월부터
가이드 Matt Connor작성자 Matt Connor · 업데이트됨 2026-08-13

AI 에이전트 개발 학습 로드맵: 기초부터 실습까지

AI 에이전트의 핵심 개념부터 루프 설계, 메모리, 안전성까지 6단계 학습 경로를 소개합니다. 프레임워크에 의존하지 않고 직접 구축하며 배우는 실무 중심의 가이드를 통해 에이전트의 동작 원리를 완벽하게 이해하고 실습 결과물을 만들어 보시기 바랍니다.

6단계 경로

AI 에이전트를 처음부터 배우려면 개념, 첫 번째 루프, 도구, 메모리, 루프 설계, 안전이라는 6단계를 순서대로 진행해야 합니다. 각 단계마다 직접 손으로 구축해야 할 결과물이 하나씩 있습니다. 단계를 건너뛰는 것은 학습이 정체되는 가장 흔한 원인입니다. 프레임워크는 여러분이 반드시 이해해야 할 핵심 부분을 감추기 때문입니다.

AI 에이전트는 언어 모델을 중심으로 도구를 호출할 수 있게 만든 루프입니다. 이 문장이 주제의 전부입니다. 그 뒤에 나오는 모든 내용은 루프에 무엇이 들어가는지, 도구가 무엇을 건드릴 수 있는지, 그리고 루프가 잘못되었을 때 어떻게 멈추는지에 대한 세부 사항입니다. 루프를 다른 사람에게 설명할 수 있다면, 여러분은 그 개념을 배운 것입니다. 프레임워크 이름만 나열할 수 있다면, 배운 것이 아닙니다.

아래 계획은 직접 구축하며 배우는 것을 전제로 합니다. 단계를 읽고, 작은 결과물을 만들고, 일부러 고장 내본 뒤 다음 단계로 넘어가십시오. 읽기만 한 단계는 완료한 단계가 아닙니다.

1단계 이전에 실제로 필요한 것

솔직한 사전 요구 사항 목록은 짧으며, 대부분의 강의 페이지가 제시하는 것보다 더 간결합니다.

  • 50줄 정도의 스크립트를 작성할 수 있는 수준의 Python 또는 TypeScript 읽기 및 쓰기 능력.
  • Linux 셸 환경에서의 편안한 작업 능력: 패키지 설치, 파일 편집, 로그 읽기.
  • 호스팅된 모델을 위한 API key 또는 로컬에서 모델을 실행할 수 있는 장비.

이것이 목록의 전부입니다. 머신러닝 이론을 알 필요는 없으며, 모델을 직접 학습시켜 본 경험도 필요하지 않습니다. 에이전트 작업 중 그 어떤 것도 그래디언트(gradient)나 학습 데이터를 다루지 않습니다. 그래픽 카드는 모델을 직접 실행하기로 결정했을 때만 중요하며, 이는 VPS에서 Ollama를 호스팅하여 LLM을 직접 운영하기를 통해 나중에 익힐 수 있는 별도의 기술입니다.

사람들이 과소평가하는 부분은 셸과 관련된 절반의 영역입니다. 에이전트는 권한, 경로, 환경 변수, 그리고 조용히 종료되는 프로세스 문제로 인해 실패합니다. 만약 PATH 관련 스택 트레이스나 파일 모드 문제로 터미널을 닫고 싶어진다면, 먼저 주말을 투자하여 Linux 기초를 다지십시오. 나중에 한 달의 시간을 절약하게 될 것입니다.

단계 1: 에이전트의 정의와 비정의

루프 없이 단일 API 호출로 시작하십시오. 프롬프트를 전송하고, 응답을 출력한 뒤, 응답 내 토큰 수를 확인하십시오. 이제 비용 단위와 지연 시간 단위를 이해하게 됩니다.

그다음 도구 사용(tool use)을 학습하십시오. 이는 이 분야 전체에서 유일하게 완전히 새로운 개념입니다. 모델에 함수의 이름, 설명, 그리고 입력값에 대한 JSON(JavaScript object notation) 스키마를 제공하여 함수를 정의합니다. 모델은 직접 아무것도 실행하지 않습니다. 모델은 특정 인자값과 함께 run_command를 호출하라는 구조화된 요청을 반환할 뿐입니다. 사용자의 코드가 해당 함수를 실행하고, 그 결과를 메시지로 다시 전송한 뒤, 모델에 재차 질문합니다. 모델은 텍스트를 읽고 쓰는 기획자이며, 사용자의 코드는 실제로 작업을 수행하는 손과 같습니다.

챗봇은 한 번의 응답으로 종료됩니다. 에이전트는 모델이 도구 사용을 멈출 때까지 해당 교환 과정을 반복합니다. 이 반복이 모든 차이를 만들며, 실패 유형이 다른 이유이기도 합니다. 챗봇은 잘못된 답변을 한 번 제공합니다. 에이전트는 누군가 알아차리기 전까지 잘못된 답변을 바탕으로 여러 번 행동을 수행합니다.

2단계: 루프를 직접 한 번 작성하기

프레임워크로 시작하지 마십시오. 약 30줄 정도의 Python 코드를 직접 작성하여 전체적인 구조를 파악하십시오.

sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-here
import subprocess
import anthropic

client = anthropic.Anthropic()

tools = [{
    "name": "run_command",
    "description": "Run a read only shell command and return its output.",
    "input_schema": {
        "type": "object",
        "properties": {"command": {"type": "string"}},
        "required": ["command"],
    },
}]

messages = [{"role": "user", "content": "How much disk space is free here?"}]

while True:
    response = client.messages.create(
        model="claude-opus-5",
        max_tokens=4096,
        tools=tools,
        messages=messages,
    )
    if response.stop_reason != "tool_use":
        break
    messages.append({"role": "assistant", "content": response.content})
    results = []
    for block in response.content:
        if block.type == "tool_use":
            done = subprocess.run(
                block.input["command"], shell=True,
                capture_output=True, text=True, timeout=10,
            )
            results.append({
                "type": "tool_result",
                "tool_use_id": block.id,
                "content": done.stdout or done.stderr,
            })
    messages.append({"role": "user", "content": results})

print(next(b.text for b in response.content if b.type == "text"))

python3 agent.py를 사용하여 실행하십시오. 정상적으로 실행되면 파일 시스템 이름과 여유 공간을 설명하는 문단이 출력됩니다. 이는 모델이 df -h를 요청했고, 작성한 코드가 이를 실행했으며, 두 번째 패스에서 해당 표를 문장으로 변환했기 때문입니다. 아무것도 출력되지 않는다면 텍스트 블록이 도착하기 전에 루프가 종료된 것입니다. 루프 내부에 print(response.stop_reason)를 추가하여 값의 변화를 확인하십시오.

이제 의도적으로 코드를 고장 내 보십시오. tool_use_id 라인을 삭제하고 발생하는 오류를 확인하십시오. 일치하는 ID가 없는 도구 결과는 API에서 거부되며, 이는 초보자가 가장 흔히 겪는 실수입니다. 두 개의 명령어가 필요한 질문을 던져 루프가 두 번 실행되는지 확인하십시오. 불가능한 질문을 던져 모델이 포기하는지 혹은 무한 루프에 빠지는지도 관찰하십시오.

이 예제와 관련하여 한 가지 주의할 점이 있습니다. 이 코드는 shell=True를 사용하여 모델의 출력을 즉시 셸로 전달합니다. 이는 언제든 재구축할 수 있는 테스트용 머신에서는 허용되지만, 그 외의 환경에서는 위험합니다. 6단계에서 이 문제를 해결합니다. 루프와 관련된 개념은 VPS에서 직접 AI 에이전트 구축하기에서 더 자세히 다룹니다.

3단계: 에이전트가 기본적으로 갖추지 못한 도구

run_command 도구는 정상적으로 작동하지만, 실제 에이전트는 티켓 시스템, 데이터베이스, 저장소와 같이 외부와 상호작용할 수 있는 도구가 필요합니다. 서비스마다, 에이전트마다 맞춤형 래퍼를 작성하는 방식은 확장성이 없습니다.

Model Context Protocol (MCP)은 업계가 합의한 해결책입니다. MCP 서버는 표준 전송 방식을 통해 도구 세트를 노출하며, MCP를 지원하는 에이전트라면 별도의 연결 코드 없이 이를 사용할 수 있습니다. 참조 파일 시스템 서버는 다음 명령 한 줄로 실행됩니다.

npx -y @modelcontextprotocol/server-filesystem /home/you/projects

이 명령을 실행하려면 Node가 설치되어 있어야 하며, 인자로 전달된 디렉터리 경로가 서버가 접근할 수 있는 유일한 범위가 됩니다. 이것이 보안 모델의 축소판입니다. 모델이 아닌 서버가 경계를 결정하는 구조입니다. 클라이언트를 이 서버에 연결하면 에이전트는 직접 작성하지 않은 파일 읽기 및 쓰기 기능을 갖게 됩니다. 서비스 계정 하에서 이러한 서버를 적절히 실행하는 방법과 전송 방식 선택에 관한 설명은 AI 코딩 에이전트를 위한 VPS에서의 MCP 서버 운영에서 다룹니다.

이 단계의 교훈은 도구 설계가 핵심 작업이라는 점입니다. 모호한 설명은 모델이 추측하게 만듭니다. 4만 자를 반환하는 도구는 컨텍스트 윈도우를 오염시킵니다. 삭제 권한이 있는 도구는 결국 무언가를 삭제하게 됩니다.

단계 4: 메모리, 대부분은 파일에 불과합니다

초보자는 이 단계에서 벡터 데이터베이스를 찾으려 합니다. 하지만 아직은 그러지 마십시오.

에이전트는 호출 사이에 메모리를 유지하지 않습니다. 매번 전체 대화 내용을 다시 전송해야 하므로, 긴 세션은 짧은 세션보다 턴당 비용이 더 많이 듭니다. 따라서 메모리 문제는 두 가지로 나뉩니다. 첫 번째는 현재 컨텍스트 윈도우에 들어가는 내용으로, 이는 요약하거나, 오래된 도구 출력을 잘라내거나, 프롬프트의 고정된 접두사를 캐싱하여 비용을 절감하는 방식으로 관리합니다. 두 번째는 재시작 후에도 유지되어야 하는 내용으로, 이는 저장소의 영역입니다.

두 번째 문제의 경우, 거의 모든 첫 번째 프로젝트에서는 에이전트가 읽고 쓸 수 있는 단순한 markdown 파일이 벡터 데이터베이스보다 낫습니다. 파일 하나를 제공하고, 형식을 지정해주고, 시작하기 전에 해당 파일을 읽고 새로운 내용을 학습할 때마다 업데이트하도록 지시하십시오. 이렇게 하면 대부분의 이점을 얻을 수 있으며, 파일을 직접 열어 에이전트가 무엇을 알고 있는지 확인할 수도 있습니다. 임베딩과 검색 기술은 메모 내용이 컨텍스트 윈도우에 다 들어가지 않을 정도로 커졌을 때 도입해도 충분합니다.

5단계: 루프가 곧 제품입니다

이제 지켜보는 동안에만 작동하는 에이전트를 만들 수 있습니다. 5단계는 지켜보지 않을 때도 작동하게 만드는 것입니다.

무인 에이전트를 안심하고 방치할 수 있는지 결정하는 네 가지 질문이 있습니다. 무엇이 에이전트를 트리거하여 아무 일도 하지 않는 상태에서 실행되지 않게 할 것인가? 어떤 경계 안에서 작동하게 하여 실수를 최소화할 것인가? 결과는 어떻게 검증할 것인가(스스로 숙제를 채점하는 에이전트는 항상 통과하기 때문입니다)? 토큰이나 실제 시간 기준으로 어떤 예산이 에이전트를 멈추게 할 것인가? 이 네 가지를 의도적으로 설계하는 것이 루프 엔지니어링과 그 정의가 다루는 범위에 기술된 원칙입니다.

연습 문제: 2단계에서 만든 에이전트를 가져와 4~5단계가 필요한 작업을 부여하고, 엄격한 반복 횟수 제한을 추가하십시오. 그런 다음 제한을 제거하고 제한 없는 루프가 토큰 비용에 어떤 영향을 미치는지 관찰하십시오. 이 과정을 적은 예산으로 한 번 수행하여, 나중에 큰 예산으로 실수하는 일이 없도록 하십시오.

단계 6: 안전, 보안, 비용

이 단계는 선택 사항이 아니며, 작동하는 시스템을 구축하기 전까지는 위험을 체감하기 어렵기 때문에 마지막에 배치했습니다.

에이전트는 root나 사용자 계정이 아닌 별도의 권한 없는(unprivileged) 사용자로 실행하십시오. 그래야 문제가 발생해도 영향 범위를 특정 디렉터리로 제한할 수 있습니다. 자격 증명(credentials)은 모델이 접근할 수 없는 곳에 보관하십시오. 컨텍스트 윈도우에 포함된 모든 정보는 도구 호출을 통해 외부로 유출될 수 있기 때문입니다. 이에 대한 해결책은 AI 에이전트에서 비밀 정보 보호하기에서 설명하는 것처럼 헬퍼 뒤에 단기 토큰을 배치하여 범위를 제한하는 것입니다. 비용 상한선을 엄격하게 설정하십시오. 무인 루프는 아무도 지켜보지 않는 상태에서 모든 반복 작업에 대해 비용을 청구하기 때문입니다. 이를 방지하기 위한 제한 및 배치 처리 방법은 상시 가동 VPS에서의 AI 에이전트 비용 제어를 참조하십시오.

비용에 대해서는 구체적인 수치가 필요합니다. 2026년 7월 기준으로 Claude Opus 5는 입력 토큰 100만 개당 5달러, 출력 토큰 100만 개당 25달러를 청구합니다. 대화가 많은 에이전트가 커지는 대화 내용을 계속 다시 전송하면 단일 작업으로도 수십만 토큰을 소비할 수 있습니다. 프롬프트 캐싱과 일상적인 단계에 더 작은 모델을 사용하는 것이 그 어떤 프롬프트 최적화보다 비용 계산에 훨씬 큰 영향을 미칩니다.

프롬프트 인젝션 또한 여기서 다루어야 합니다. 에이전트가 웹 페이지, 이슈 트래커, 받은 편지함을 읽는다면, 해당 텍스트를 작성한 사람은 사실상 에이전트에게 명령을 내리는 것과 같습니다. 웹 검색은 보통 이 통로를 가장 먼저 여는 도구이며, 자체 SearXNG 인스턴스에 에이전트 연결하기에서는 연결 방식과 그로 인해 발생하는 인젝션 표면을 함께 보여줍니다. 이에 대한 방어책은 더 영리한 시스템 프롬프트가 아닙니다. 방어의 핵심은 경계 설정입니다. 저장소를 삭제할 권한이 없는 에이전트는 설득을 통해서도 저장소를 삭제할 수 없기 때문입니다.

어떤 커리큘럼을 따라야 합니까?

여러 가지를 조금씩 맛보기보다는 하나의 커리큘럼을 선택하여 끝까지 완주하십시오. Microsoft ai-agents-for-beginners 저장소는 가장 완성도 높은 무료 자료이며, 2026년 7월 기준으로 70,000개 이상의 별을 받은 18개 강의로 구성되어 있고 위에서 언급한 단계들과 명확하게 대응됩니다. 트렌드에 있는 에이전트 저장소들을 모아놓은 목록은 어떤 것들이 존재하는지 파악하는 데는 유용하지만, 학습 계획서로는 적합하지 않습니다. 별점 순으로 정렬된 목록은 교육 순서가 아닌 인기도를 기준으로 하기 때문입니다.

실습을 위한 실제 프로젝트를 찾고 있다면 코딩 에이전트를 첫 번째 목표로 삼는 것이 가장 좋습니다. 피드백이 즉각적이고 도구가 명확하며, 실수를 되돌리기도 쉽기 때문입니다. VPS에서 코딩 AI 에이전트 실행하기는 이 과정을 처음부터 끝까지 상세히 안내합니다. 밑바닥부터 만드는 것보다 이미 작동하는 시스템을 연구하고 싶다면, 최고의 셀프 호스팅 AI 에이전트에서 제공하는 비교 자료를 통해 여러 프로젝트가 동일한 루프를 어떻게 다르게 해결하는지 확인할 수 있습니다.

소요 시간은 어느 정도입니까?

이미 프로그래밍 경험이 있는 사람이라면 1단계와 2단계는 저녁 시간 한 번으로 충분합니다. 3단계는 주말 정도가 소요되는데, 대부분의 시간은 프로토콜보다는 도구 설명서를 읽는 데 쓰입니다. 4단계와 5단계는 실제 사용하며 몇 주가 걸립니다. 에이전트가 무엇을 잊어버리는지는 직접 지켜봐야만 알 수 있기 때문입니다. 6단계는 사실상 끝이 없습니다. 새로운 기능을 추가할 때마다 다시 검토해야 하기 때문입니다.

매일 저녁 꾸준히 투자한다면 대부분 두 달 안에 작동 가능하고 범위가 제한된 유용한 에이전트를 만들 수 있습니다. 1년이 걸리는 사람들은 대개 무언가를 만드는 대신 읽기만 반복하는 경우입니다.

FAQ

AI 에이전트를 구축하려면 머신러닝을 알아야 합니까?

아니요. 에이전트를 구축한다는 것은 API를 통해 모델을 호출하고, 모델의 도구 요청을 실제 함수와 연결하는 일반적인 애플리케이션 프로그래밍을 의미합니다. 학습, 그래디언트, 데이터셋은 다룰 필요가 없습니다. 에이전트의 작동 여부를 결정하는 핵심 기술은 도구의 스키마 설계, 오류 처리, 그리고 Linux 권한 관리입니다. 머신러닝 이론은 모델을 파인튜닝할 때만 필요하며, 이는 완전히 다른 전제 조건이 필요한 별개의 작업입니다.

LangChain이나 CrewAI 같은 프레임워크로 시작해야 합니까?

먼저 원시 루프(raw loop)를 직접 작성해 본 뒤 프레임워크를 도입하십시오. 프레임워크는 2단계의 30줄짜리 코드를 설정 객체 하나로 대체해 주는데, 이는 무엇을 대체했는지 알고 있을 때는 편리하지만 모를 때는 혼란만 가중합니다. 에이전트가 오작동할 때 메시지 목록과 도구 결과를 직접 추론해야 하는데, 이를 한 번도 본 적이 없다면 훨씬 더 어렵습니다. 직접 루프를 한 번 작성해 보면, 프레임워크는 메커니즘을 숨기는 도구가 아니라 시간을 절약해 주는 도구가 됩니다.

AI 에이전트를 배우는 데 비용이 얼마나 듭니까?

비용을 제한한다면 대부분의 예상보다 적게 듭니다. 호스팅된 API 키와 소형 VPS 하나면 이 6단계를 모두 수행할 수 있습니다. 진짜 위험은 시간당 요금이 아니라, 잠든 사이에 무한 루프가 돌며 과금되는 것입니다. 첫날 API 계정에 엄격한 지출 한도를 설정하고, 작성하는 모든 루프에 반복 횟수 제한을 추가하며, 일상적인 단계에는 더 저렴한 모델을 사용하십시오. 모델을 로컬에서 실행하면 토큰 비용은 사라지지만, 대신 하드웨어 사양을 갖춰야 합니다.

AI 에이전트와 챗봇의 차이점은 무엇입니까?

챗봇은 한 번 답변하고 끝납니다. 반면 에이전트는 주기를 반복합니다. 모델이 도구를 요청하면 코드가 이를 실행하고, 결과가 다시 전달되면 모델이 다음 행동을 결정합니다. 이러한 반복 덕분에 에이전트는 여러 단계로 구성된 작업을 완료할 수 있으며, 이것이 바로 챗봇에게는 필요 없는 에이전트만의 제약 조건이 필요한 이유입니다. 챗봇의 잘못된 답변은 나쁜 문단 하나로 끝나지만, 에이전트의 잘못된 답변은 나쁜 문단과 그 결과로 에이전트가 수행한 모든 행동을 포함하게 됩니다.

#ai-agents#learning#curriculum#mcp#self-hosting