AI VIDEO BRIEFING

함수 호출(Function Calling)이란: LLM이 내 코드를 실행하는 원리와 활용처

함수 호출은 LLM이 텍스트 답변을 넘어 내 코드의 함수를 직접 호출하게 하는 기술이다. 동작 흐름과 RAG와의 차이, 실시간 데이터·행동 자동화 활용처, 그리고 구현 시 마주치는 어려움과 실전 팁까지 정리했다.

함수 호출(Function Calling): LLM이 텍스트를 넘어 내 코드를 실행하게 하는 법 영상 대표 이미지

핵심 메시지

  • 함수 호출은 LLM에 코드의 함수와 그 시그니처를 알려, 모델이 텍스트 대신 "어떤 함수를 어떤 인자로 호출하라"고 응답하게 하는 기술이다.
  • RAG가 미리 적재한 지식에 의존하는 것과 달리, 함수 호출은 날씨·주가·교통·주문 상태처럼 실시간 데이터가 필요할 때 유용하다.
  • 회의 일정 잡기, 버그 생성, 알림 설정처럼 LLM이 사용자를 대신해 행동(action)을 취하게 할 수 있다.
  • 여러 도구를 동시에 넘겨 모델이 고르게 할 수 있으며, 이때 각 도구의 "설명(description)"을 잘 쓰는 것이 성능을 좌우한다.

쉽게 이해하기

LLM은 지식 기반 질의응답이나 긴 글 요약에 흔히 쓰이지만, 그 이상도 할 수 있다. 함수 호출(function calling)은 LLM에게 코드 속 특정 메서드와 시그니처를 알려주고, 모델이 프롬프트에 대해 단순한 텍스트나 이미지가 아니라 "이 함수를 이런 파라미터로 호출하라"는 요청으로 응답하게 하는 기술이다. 예를 들어 "다음 주 화요일 저녁 일정 추가해줘"라는 말에 모델이 새 일정 생성 함수를 호출하도록 만들 수 있다.

도구(tool)와 함수 호출은 엄밀히는 다른 개념이지만 실무에서는 거의 같은 뜻으로 쓰인다. 도구는 LLM이 더 나은 답을 위해 할 수 있는 일들을 가리키는 넓은 용어이고, 함수 호출은 그중 가장 널리 쓰이는 형태다. 스키마와 연결 정보를 주면 모델이 질의를 생성·실행하는 데이터베이스 도구처럼, 구현 방식에 따라 함수 호출의 변형으로 볼 수 있는 경우도 있다.

동작 흐름은 이렇다. 먼저 모델이 쓸 함수(예: 날짜·제목·장소를 받는 새 일정 생성 함수)를 만든다. 요청 본문에 사용 가능한 도구 목록을 명시해 모델에 알리고 프롬프트를 보내면, 모델은 어떤 함수를 어떤 인자로 호출할지 지시하는 응답을 돌려준다. 내 코드(또는 프레임워크)가 그 응답을 해석해 실제 함수를 호출하고, 그 결과를 이전 맥락과 함께 다시 모델에 전달하면, 모델이 원래 질문에 대한 최종 답을 완성한다. 다만 이 처리 방식은 모델·프레임워크마다 달라 각 문서를 참고해야 한다.

함수 호출은 RAG로 다루기 어려운 상황에서 빛난다. RAG는 관련 정보를 미리 수집·전처리해 두어야 하는데, 데이터가 자주 바뀌면 그 전처리를 계속 반복하기가 비현실적이다. 날씨·주가·교통, 혹은 자주 지연되는 동네 쓰레기 수거일처럼 그때그때 최신 값이 필요한 정보는 함수 호출로 실시간 조회하는 편이 낫다. 또한 회의 잡기, 버그 등록, 우유 사오기 알림 설정처럼 LLM이 사용자를 대신해 행동하게 만들 수도 있다.

주의할 점도 있다. 프레임워크·모델마다 처리 방식이 달라, 어떤 곳은 API 명세만 올리면 인증·호출까지 알아서 해주지만, 어떤 곳은 인증·API 호출·응답 파싱·HTTP 오류 처리를 직접 코드로 다뤄야 한다. 즉 다른 AI 구성보다 코드를 조금 더 써야 할 수 있다. 실전 팁으로, 여러 도구를 넘겨 모델이 적절한 것을 고르게 할 수 있고, 도구 설명에는 해당 프롬프트에 등장할 단어를 넣어 충분히 자세히 쓰는 편이 좋다("장황함은 좋고 간결함은 나쁘다"). 또 함수 호출 디버깅은 까다로우므로 추적(tracing) 같은 관측 가능성(observability) 도구를 쓰면 시간을 크게 아낄 수 있다.

주요 인사이트

  • 함수 호출은 LLM을 "말하는 모델"에서 "행동하는 모델"로 바꾸는 다리다. 실시간 데이터 조회와 실제 작업 수행이라는, 정적 지식만으로는 불가능한 일을 가능하게 한다.
  • 실시간성과 행동이 필요하면 함수 호출, 미리 적재 가능한 대규모 지식이면 RAG가 적합하다. 둘은 경쟁이 아니라 상황에 따른 선택지다.
  • 도구 "설명"이 곧 모델이 도구 선택에 쓰는 정보이므로, 설명 품질이 함수 호출 성공률을 좌우한다. 응용 개발자에게는 마이크로서비스나 API 호출과 비슷한 익숙한 작업이라는 점도 강점이다.

자주 묻는 질문

함수 호출과 도구(tool) 호출은 같은 것인가요?

엄밀히는 다르지만 실무에서는 거의 같은 의미로 쓰입니다. 도구는 LLM이 할 수 있는 일을 가리키는 넓은 용어이고, 함수 호출은 현재 가장 널리 쓰이는 도구 형태입니다.

언제 RAG 대신 함수 호출을 써야 하나요?

날씨·주가·교통·주문 상태처럼 실시간 또는 거의 실시간 데이터가 필요할 때입니다. RAG는 정보를 미리 전처리해 적재해야 하므로, 자주 바뀌는 데이터에는 반복 전처리가 비현실적입니다.

함수 호출을 구현할 때 주의할 점은 무엇인가요?

프레임워크·모델마다 처리 방식이 달라 인증·API 호출·응답 파싱·HTTP 오류 처리를 직접 해야 할 수 있습니다. 여러 도구를 넘길 때는 설명을 자세히 쓰고, 디버깅을 위해 추적 등 관측 가능성 도구를 활용하는 것이 좋습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#함수호출#FunctionCalling#LLM#AI에이전트#도구사용