CPN 한국어 자습서 · 러닝패스 2 / 4 — Building with the Claude API
도구 사용
Introducing tool use
이번 모듈에서는 도구 사용(tool use)을 다룹니다. 도구는 Claude가 학습 데이터 바깥의 외부 세계 정보에 접근하게 해 줍니다. 이 영상은 아주 부드러운 소개입니다 — 도구 사용의 전체 흐름을 천천히 따라가며 그것이 무엇인지부터 이해합니다.
Stephen Grider · Anthropic 기술 스태프
이번 모듈에서는 도구 사용을 이야기합니다. 도구는 Claude가 외부 세계의 정보에 접근할 수 있게 해 줍니다. 도구 사용은 처음엔 조금 어렵게 느껴질 수 있어서, 이 영상에서는 아주 부드럽게 소개합니다. 도구 사용의 전체 흐름을 함께 따라가며 그게 다 무엇에 관한 것인지부터 이해해 봅니다.
먼저 Claude가 한계에 부딪히는 예를 보여 드리겠습니다. 기억하세요 — 기본적으로 Claude는 자신이 학습한 정보에만 접근할 수 있습니다. 그래서 일반적으로 아주 최근의 시사 정보는 알지 못합니다.
예를 들어 우리 챗봇을 쓰는 사용자가 “지금 캘리포니아 샌프란시스코 날씨가 어때?” 같은 질문을 한다고 합시다. 그걸 그대로 Claude에 넘기면 아마 “죄송하지만 저는 최신 날씨 정보에 접근할 수 없습니다” 같은 답이 돌아올 것입니다. 이를 고치고 더 나은 답을 주려면 도구를 쓰면 됩니다.
도구를 아주 단순한 용어로 풀어 주는 다이어그램을 먼저 보고, 그다음 이 날씨 문제를 실제로 어떻게 푸는지 보여 드리겠습니다.
여기 우리가 결국 구현하게 될 전체 흐름이 있습니다. 우리는 Claude에 초기 요청을 보냅니다. 질문을 하거나 작업을 맡기죠. 그리고 그와 함께, Claude가 외부 세계에서 추가 데이터를 얻을 수 있는 방법에 대한 지시도 함께 넣습니다.
Claude는 받은 질문이나 작업을 살펴보고, 추가 데이터가 필요하다고 판단할 수 있습니다. 그러면 우리에게 추가 데이터를 요청하는 응답을 보내옵니다 — 정확히 어떤 정보가 필요한지 자세한 내용을 담아서요.
그다음 우리 서버에서는 약간의 코드를 실행해, Claude가 요청한 정보를 가져옵니다. 그리고 그 결과를 담아 Claude에 후속 요청을 보냅니다.
이제 이론상 Claude는 답하는 데 필요한 모든 정보를 갖고 있습니다. 그래서 그 추가 데이터로 보강된, 더 나아진 최종 응답을 생성합니다.
이제 똑같은 흐름을 날씨 시나리오에 맞춰 각 단계를 구체화해 봅니다. 사용자가 날씨를 묻는 프롬프트와 함께, ‘현재 날씨 데이터를 어떻게 가져오는지’에 대한 지시를 초기 요청에 함께 넣어 Claude에 보냅니다.
Claude는 프롬프트를 보고 “이 질문에 답하려면 현재 날씨 데이터를 가져와야겠다”고 판단해 우리에게 응답을 보냅니다. 그러면 우리는 코드를 실행해 어떤 서드파티 날씨 API에 연결하고, 특정 위치의 실시간 날씨를 실제로 가져옵니다.
그 외부 API에서 받은 내용을 담아 Claude에 후속 요청을 보냅니다. 이제 Claude는 원래 프롬프트와 최신 날씨 데이터를 모두 갖췄으므로, 최종 응답을 생성해 우리에게 돌려줍니다.
이 장에서 배우는 것What you'll learn
약 3분기본 Claude는 학습 데이터에만 접근 — 최신 시사·날씨는 모른다
도구는 Claude를 외부 세계 정보에 연결하는 방법
흐름 1단계 — 초기 요청에 질문 + 도구 사용 지시를 함께 넣는다
흐름 2단계 — Claude가 추가 데이터를 요청(무엇이 필요한지 명시)
흐름 3단계 — 우리 서버가 코드를 실행해 데이터를 가져온다
흐름 4단계 — 결과를 후속 요청으로 보내면 Claude가 최종 답을 생성
기본적으로 Claude는 자신이 학습한 정보에만 접근합니다. 그래서 아주 최근의 시사나 실시간 값은 모릅니다. 사용자가 “지금 샌프란시스코 날씨 어때?”라고 물으면, 도구가 없는 Claude는 이렇게 답할 수밖에 없습니다.
사용자 — “지금 캘리포니아 샌프란시스코 날씨가 어때?”
Claude — “죄송하지만 저는 최신 날씨 정보에 접근할 수 없습니다.”
이걸 고치고 더 나은 답을 주려면 도구를 씁니다. 도구는 Claude를 외부 세계에 연결해, 학습 데이터에 없는 정보를 가져오게 해 줍니다.
도구 사용은 결국 하나의 루프입니다. 우리가 요청을 보내고, Claude가 필요한 데이터를 요청하고, 우리가 그 데이터를 가져와 돌려주면, Claude가 최종 답을 만듭니다. 아래 다이어그램에서 각 단계를 눌러 자세히 보세요.
초기 요청 (질문 + 도구 지시)
tool_use — 추가 데이터 요청
코드 실행 — 데이터를 가져온다
후속 요청 (tool_result)
최종 응답 (데이터로 보강)
같은 루프를 날씨 예시에 대입해 보면: 1) “SF 날씨 어때?” + 도구 지시 → 2) Claude가 “날씨 데이터가 필요해” → 3) 서버가 날씨 API 호출 → 4) 결과를 다시 전달 → 5) Claude가 최종 답.
같은 흐름을 “현재 날씨” 시나리오에 맞춰 구체화하면 이렇게 됩니다. 추상적인 4단계가 실제 문제에 어떻게 매핑되는지 보세요.
Claude는 스스로 API를 호출하지 않습니다. Claude는 “이 도구를 이런 인자로 써 달라”고 요청할 뿐이고, 실제 코드 실행은 언제나 우리 쪽에서 일어납니다.
Q1도구가 필요한 근본 이유는?
기본 Claude는 학습 시점 이후의 시사나 실시간 값(날씨 등)을 알지 못합니다. 도구가 그 간극을 메웁니다.
Q2실제로 외부 API를 호출하는 주체는?
Claude는 어떤 도구를 어떤 인자로 쓸지 응답으로 알려 줄 뿐, 코드 실행은 언제나 우리 쪽에서 일어납니다.
Q3도구 실행 결과를 받은 뒤 Claude는 무엇을 하나요?
후속 요청으로 결과를 받으면 Claude는 원래 질문 + 새 데이터를 모두 갖추므로 최종 답을 만들 수 있습니다.
이제 이 흐름을 직접 구현할 작은 프로젝트를 정합니다. → 프로젝트 개요
전 코스는 계속 무료입니다. 등록하면 이 코스의 남은 76개 레슨을 끝까지 읽을 수 있습니다.
이미 등록하셨다면 그때 쓰신 이메일을 넣어 주세요.