AI 에이전트, 바이브코딩, MCP, 스킬 Skill 에 대해 공부해봤습니다-질문 답변 내용 정리

핵심 요약: 바이브코딩을 완성하는 AI 에이전트 ‘스킬(Skill)’

코드를 복사해서 붙여넣던 과거를 지나, 이제는 AI에게 도구(스킬)를 쥐여주고 자연어로 지시하는 ‘바이브코딩(Vibe Coding)’ 시대입니다. 먼저 글 전체 내용을 요약하면 다음과 같습니다.

  • 스킬(Skill)의 본질: AI 에이전트가 외부 시스템(API)과 소통하기 위해 사용하는 ‘도구 세트’이자 기계를 위한 설명서(JSON)입니다. 챗GPT의 GPTs ‘OpenAPI 스키마’와 100% 동일한 개념입니다.
  • 철저한 역할 분담: AI는 스킬 파일을 읽고 “어떤 파라미터로 도구를 실행할지” 지시(데이터 생성)만 내립니다. 실제 API 통신이나 파일 수정은 VSCode 확장 프로그램이나 로컬 서버가 대행합니다.
  • 보안과 실행의 핵심, MCP: API 토큰 같은 민감한 정보는 스킬 파일에 적지 않고 MCP(Model Context Protocol) 서버나 에디터의 안전한 환경 변수에 보관합니다.
  • 자동화의 시작: 인터넷에 공개된 MCP 서버를 VSCode에 연결하기만 하면, 복잡한 코딩 없이도 AI가 새로운 스킬을 자동으로 인식하여 즉시 활용할 수 있습니다.

AI 에이전트와 스킬의 구조를 이해하면, 누구나 평범한 에디터를 나만의 강력한 자동화 비서로 탈바꿈시킬 수 있습니다.


시작하며: AI 에이전트의 ‘스킬’이란 무엇일까?

기존에는 VS Code의 AI 확장이나 웹 UI(ChatGPT, Gemini)에서 코드를 요청하고 복사하여 붙여넣는 방식으로 작업해 왔습니다. 하지만 AI 에이전트 기술이 발전하면서 ‘스킬(Skill)’이라는 개념이 등장했습니다. 기초부터 학습하기 위해, 스킬이 정확히 무엇이며 어떤 환경에서 어떻게 작동하는지 단계별 질문을 통해 원리를 확인해 보았습니다.

질문 1. 스킬은 요청을 받아 데이터를 돌려주는 API 서버와 같은 것인가?

맞습니다. AI 입장에서 스킬은 필요할 때 호출할 수 있는 API 또는 함수입니다. 마치 두뇌 역할을 하는 대규모 언어 모델(LLM)에 손발 역할을 하는 외부 도구를 달아주는 것과 같습니다. 챗GPT의 ‘GPTs 액션’이나 제미나이의 ‘확장 프로그램’에서도 동일한 원리로 스킬을 사용합니다.

질문 2. VSCode에서 스킬 파일을 저장한다는 것은 어떤 의미인가? 프롬프트 템플릿인가?

스킬 파일은 프롬프트 템플릿이 아닙니다. AI가 특정 API(스킬)를 언제, 어떻게 호출해야 하는지 알려주는 명세서(설명서)입니다. 이 파일은 주로 JSON 형식으로 작성되며, 도구의 이름, 사용 목적, 필요한 파라미터 규격 등을 담고 있습니다.

질문 3. 스킬 파일만 있으면 AI가 알아서 파일을 만들고 실행하여 스킬을 호출하는가?

이 부분이 가장 헷갈리기 쉬운 지점이었으나, 확인 결과 AI가 직접 코드를 실행하는 것이 아님을 알게 되었습니다. 작동 구조는 철저히 분리되어 있습니다.

  • AI의 역할: 스킬 파일을 읽고 상황을 판단하여, 실행에 필요한 데이터(JSON)만 생성합니다.
  • 시스템의 역할: VSCode 확장 프로그램이나 에이전트 프레임워크가 AI가 생성한 데이터를 가로채서 실제 API 서버에 접속하거나 로컬 코드를 실행합니다.

질문 4. 네이버 API를 사용하는 스킬을 예로 들면 구체적인 흐름은 어떻게 되는가?

VSCode 채팅창에 “오늘 삼성물산 관련 최신 뉴스 찾아줘”라고 입력했을 때의 흐름을 확인했습니다.

  1. AI가 질문을 분석하고 네이버 검색 스킬이 필요하다고 판단합니다.
  2. AI는 {"query": "삼성물산", "type": "news"}와 같은 JSON 쿼리를 시스템에 전달합니다.
  3. VSCode 확장 프로그램이나 중계 서버(MCP)가 이 쿼리를 받아 네이버 API에 실제 접속하여 데이터를 가져옵니다.
  4. 시스템이 데이터를 AI에게 돌려주면, AI가 이를 문장으로 요약하여 채팅창에 출력합니다.

질문 5. API 접속 시 필요한 토큰이나 시크릿 키는 스킬 파일에 저장하는가?

보안상 절대 스킬 파일에 저장하지 않습니다. 스킬 파일은 AI를 위한 ‘규칙 저장소’일 뿐입니다. 실제 API 키는 통신을 담당하는 중계 서버(MCP)나 로컬 에디터의 환경 변수(.env) 등 안전한 곳에 보관됩니다. 시스템이 최종적으로 API를 호출할 때 이 키를 결합하여 통신합니다.

결론: GPTs의 OpenAPI 스키마와의 동일성 확인

과거 GPTs를 만들 때 사용했던 OpenAPI 스키마와 이 스킬 파일의 내용이 사실상 같은 것인지 의문이 들었습니다. 확인 결과, 명칭만 다를 뿐 본질적으로 100% 동일한 개념이었습니다. 결국 스킬 파일을 작성하는 것은 실제 API 서버가 요구하는 입력 및 응답 규격을 AI가 이해할 수 있는 형태(JSON)로 정확히 일치시켜 번역해 주는 작업입니다.

스킬 파일의 정체: 기계를 위한 ‘API 명세서’

앞서 스킬의 기본 개념과 작동 과정을 알아보았습니다. 그렇다면 현업에서는 이 스킬을 어떻게 정의할까요? 개발자들은 외부 서비스와 통신할 때 ‘API 명세서’라는 설명서를 읽습니다. 스킬 파일은 바로 이 API 명세서를 AI가 읽고 이해할 수 있도록 JSON 형태로 번역해 둔 기계 전용 설명서입니다.

챗GPT에서 나만의 챗봇을 만들 때 사용하는 ‘GPTs의 OpenAPI 스키마’가 대표적인 스킬 파일입니다. 명칭과 포맷만 다를 뿐, “이 외부 서버는 이런 규칙으로 데이터를 주고받는다”는 것을 AI에게 알려주는 본질적인 역할은 100% 동일합니다.

실제 스킬(JSON)은 어떻게 생겼을까? (웹 스크래퍼 예시)

최근 깃허브(GitHub) 등에서 개발자들이 자주 공유하는 ‘웹페이지 읽기(Web Scraper)’ 스킬의 실제 구조를 살펴보면, 크게 3가지 핵심 요소로 이루어져 있습니다.

{
  "name": "read_webpage_content",
  "description": "사용자가 특정 URL 주소를 주면서 기사나 문서 내용을 읽거나 요약해달라고 할 때 사용하세요. 웹페이지 본문 텍스트를 추출합니다.",
  "parameters": {
    "type": "object",
    "properties": {
      "url": { "type": "string", "description": "접속할 웹페이지의 전체 URL" }
    },
    "required": ["url"]
  }
}
  • name (이름표): 시스템이 실행할 실제 코드를 매칭하기 위한 고유 식별자입니다.
  • description (설명서 – 핵심): AI는 오직 이 설명만 읽고, 사용자의 현재 질문에 이 스킬을 꺼내 쓸지 말지 스스로 판단합니다.
  • parameters (데이터 규칙): AI가 시스템에 넘겨줘야 할 데이터(예: url 주소)의 형태와 필수 여부를 정의합니다.

JSON 명세서가 작성되면, 실제 실행은 누가 할까?

스킬 파일(JSON)은 그저 텍스트로 된 설명서일 뿐입니다. 웹페이지를 긁어오는 물리적인 작업은 AI가 직접 수행하지 않습니다.

AI가 명세서를 바탕으로 {"url": "https://..."}라는 실행 명령(JSON)을 생성해 내면, VS Code의 AI 확장 프로그램이나 연결된 MCP 서버가 이 데이터를 가로챕니다. 시스템은 내장된 스크래핑 코드나 로컬 스크립트(Python, Go 등)에 이 데이터를 넣어 대신 실행한 뒤, 그 결과물(원문 텍스트)만 AI에게 다시 돌려줍니다. 철저한 분업 구조입니다.

에디터(VS Code)에 MCP를 설치하면 일어나는 일

VS Code 확장에 ‘MCP 서버’를 설치할 수 있다는 안내를 보셨을 것입니다. 인터넷에 공개된 MCP 서버 주소를 에디터에 등록하는 순간, 복잡한 지시 없이 다음과 같은 과정이 자동으로 처리됩니다.

  1. 플러그 앤 플레이 (명세서 자동 전달): 에디터 확장이 MCP 서버에게 “네가 가진 스킬 목록을 줘”라고 요청하면, MCP 서버는 즉시 자신의 스킬 명세서(JSON)들을 확장에 전달합니다.
  2. AI의 자동 인지: 채팅창에서 “이제부터 이 MCP를 써라”라고 지시할 필요가 없습니다. AI의 도구 상자에 스킬이 이미 자동 등록되었기 때문에, 평소처럼 질문만 하면 AI가 알아서 판단하여 꺼내 씁니다.

(참고) 내가 직접 짠 로컬 코드를 스킬로 쓰려면?

내 작업 폴더에 scrape.go 코드를 짜둔다고 해서 AI가 이를 즉시 스킬로 인식하지는 않습니다. 이를 활용하려면 두 가지 접근법이 있습니다.

  • 정석 (MCP 직접 구축): 작성한 코드를 MCP 서버 규격에 맞게 포장(Wrapping)하여 백그라운드 서버 형태로 띄우고, JSON 명세서를 제공하도록 세팅해야 합니다.
  • 우회 (기본 스킬 활용): 별도의 서버 구축 없이, AI가 기본적으로 가진 ‘터미널 실행 스킬’을 이용합니다. 채팅창에 “현재 폴더의 scrape.go 코드를 이 URL 인자값을 넣어 실행해 줘”라고 요청하면, AI가 터미널 명령어(go run scrape.go)를 대신 입력하고 결과를 읽어옵니다.