성공지식백과 로고성공지식백과

함수 호출 (Function Calling)

중급

함수 호출 (Function Calling)는 AI 문맥에서 자주 등장하는 개념입니다. 이 페이지는 중급 난이도로 함수 호출 (Function Calling)의 뜻과 쓰임을 빠르게 이해할 수 있도록 정리한 AI 용어사전 항목입니다.

함수 호출 (Function Calling)를 처음 보는 독자도 헷갈리지 않도록 정의와 맥락를 한 페이지에 묶었습니다. 아래 설명을 먼저 읽고, 이어서 연결된 개념과 글까지 보면 이해가 훨씬 빨라집니다.

함수 호출(Function Calling)은 LLM이 텍스트를 생성하는 것에 그치지 않고, 미리 정의된 외부 함수나 API를 호출하도록 구조화된 출력을 생성하는 기능입니다. LLM은 어떤 함수를 어떤 인자로 호출할지 JSON 형태로 응답하고, 실제 실행은 애플리케이션 코드가 처리합니다.

Function Calling이 중요한 이유는 AI 에이전트의 실행 능력 때문입니다. 이 기능 없이는 LLM이 '날씨를 알려드리겠습니다'라고만 말할 수 있지만, Function Calling이 있으면 실제 날씨 API를 호출해 정확한 현재 날씨를 가져옵니다. OpenAI GPT 시리즈, Claude 시리즈, Gemini 시리즈 모두 Function Calling을 지원합니다.

활용 예시로, 쇼핑 챗봇에 get_product_price(product_id) 함수를 정의하면, 사용자가 '이 상품 얼마예요?'라고 물을 때 LLM이 자동으로 해당 함수를 호출해 실시간 가격을 반환합니다. Claude API에서는 tools 파라미터로 함수 스펙을 정의합니다.

ℹ️쉽게 말하면

AI에게 전화번호부를 주고 '필요하면 직접 전화해서 확인하세요'라고 하는 것입니다. AI가 정보를 추측하는 대신 실제로 전화를 걸어 확인합니다.

Function Calling의 동작 흐름은 다음과 같습니다. 먼저 개발자가 사용 가능한 함수 목록과 각 함수의 이름, 설명, 파라미터 스키마를 JSON으로 모델에 전달합니다. 사용자의 요청이 들어오면 모델은 어떤 함수를 호출해야 하는지, 어떤 인자를 넣어야 하는지 판단한 뒤 JSON 형태로 응답합니다. 애플리케이션 코드가 이 JSON을 받아 실제 함수를 실행하고, 결과를 다시 모델에 전달합니다. 모델은 함수 실행 결과를 바탕으로 최종 자연어 응답을 생성합니다.

Function Calling과 유사한 개념으로 Tool Use가 있습니다. Anthropic Claude API에서는 같은 개념을 'Tool Use'라고 부릅니다. 함수 스펙을 JSON Schema 형식으로 정의하면 모델이 필요할 때 해당 도구를 선택하고 올바른 인자를 채워 응답합니다. OpenAI와 Anthropic의 구현 방식은 세부적으로 다르지만, 핵심 개념은 동일합니다. 도구를 여러 개 정의하면 모델이 상황에 따라 적절한 도구를 선택합니다.

Function Calling이 가장 많이 쓰이는 실무 사례를 살펴보면 다음과 같습니다. 첫째, 실시간 데이터 조회입니다. 주가, 날씨, 환율처럼 모델이 학습 시점 이후의 정보를 가져와야 할 때 외부 API를 연결합니다. 둘째, 데이터베이스 조작입니다. 사용자가 자연어로 '지난달 매출을 보여줘'라고 하면 모델이 SQL 쿼리 함수를 호출해 실제 데이터를 가져옵니다. 셋째, 외부 서비스 연동입니다. 캘린더에 일정 추가, 이메일 전송, 슬랙 메시지 발송 등의 작업을 자연어 명령으로 수행합니다.

Function Calling 설계 시 주의할 점도 있습니다. 함수 설명이 명확하지 않으면 모델이 잘못된 함수를 선택하거나 인자를 틀리게 채울 수 있습니다. 함수 이름과 설명에 의도를 명확히 담아야 합니다. 또한 모델이 함수 호출 여부를 판단하는 것이기 때문에, 반드시 호출해야 하는 상황과 호출하지 않아도 되는 상황을 프롬프트에서 구분해 주는 것이 좋습니다. 보안 측면에서는 함수가 민감한 작업(삭제, 결제 등)을 수행하는 경우 실행 전 사용자 확인 단계를 추가하는 것을 권장합니다.

Function Calling은 AI 에이전트 구축의 핵심 기반입니다. 단순한 Q&A 봇을 넘어 실제 작업을 수행하는 에이전트를 만들려면 Function Calling이 필수입니다. LangChain, LlamaIndex, AutoGen 같은 에이전트 프레임워크도 내부적으로 Function Calling을 사용하여 도구와 외부 시스템을 연결합니다. MCP(Model Context Protocol) 같은 표준이 등장하면서 여러 AI 플랫폼과 도구를 공통 인터페이스로 연결하는 방향도 발전하고 있습니다.

여러 함수가 정의된 상황에서 모델이 어떤 함수를 선택할지 제어하는 방법도 있습니다. OpenAI API의 경우 tool_choice 파라미터로 특정 함수를 반드시 호출하도록 강제하거나, 함수 호출을 완전히 차단하거나, 모델이 자율적으로 판단하도록 설정할 수 있습니다. 모델이 함수를 잘못 선택하거나 불필요하게 자주 호출하는 문제가 있다면 함수 설명을 더 명확히 하거나 시스템 프롬프트에서 사용 조건을 명시하는 것이 효과적입니다.

Function Calling은 LLM을 단순 텍스트 생성 도구에서 실제 업무를 처리하는 자동화 도구로 전환시키는 핵심 기술입니다. 웹 브라우저 제어, 코드 실행, 파일 관리, 외부 서비스 연동까지 AI가 실제 행동을 수행하는 모든 곳에 Function Calling이 있습니다. AI 에이전트 기술이 발전할수록 Function Calling의 활용 폭도 더 넓어질 것입니다.