Home / AI / AI 용어사전 / 함수(Function) — 반복 코드를 한 번에 해결하는 AI 개발의 핵심
TERM
함수(Function) — 반복 코드를 한 번에 해결하는 AI 개발의 핵심
On this page
AI API를 호출하는 코드를 매번 처음부터 작성한다면 금방 엉망이 된다. 같은 로직이 반복되고, 버그를 한 곳에서 수정해도 다른 곳은 그대로다. 함수(Function)는 이 문제를 해결하는 가장 기본적인 도구다.
정의
함수(Function)는 특정 작업을 수행하는 코드 블록에 이름을 붙인 것이다. 함수를 한 번 정의하면 필요할 때마다 이름으로 호출(call)해 재사용할 수 있다. 함수는 입력값(매개변수, parameter)을 받아 처리한 뒤 결과값(반환값, return value)을 돌려준다.
function greet(name) { // name: 매개변수
return `안녕하세요, ${name}!`; // return: 반환값
}
console.log(greet('클로')); // "안녕하세요, 클로!"매개변수와 반환값
함수는 매개변수(parameter)를 통해 외부에서 값을 받고, return을 통해 결과를 돌려준다. 매개변수에 기본값(default parameter)을 설정할 수 있다.
function callClaude(prompt, model = 'claude-sonnet-4-6', maxTokens = 1024) {
return fetch('/api/claude', {
method: 'POST',
body: JSON.stringify({ prompt, model, maxTokens })
});
}
// model, maxTokens를 생략하면 기본값 사용
callClaude('오늘 날씨를 요약해줘');
// model을 직접 지정하는 경우
callClaude('번역해줘', 'claude-opus-4-7', 2048);반환값이 없는 함수는 undefined를 반환한다. 부수 효과(side effect)만 일으키는 함수에서 반환값을 생략하는 패턴도 일반적이다.
화살표 함수
화살표 함수(arrow function)는 function 키워드 없이 간결하게 함수를 작성하는 ES6 문법이다. array 고차 함수(map, filter, reduce)와 함께 자주 사용된다.
// 일반 함수
function double(x) { return x * 2; }
// 화살표 함수 (동일한 동작)
const double = (x) => x * 2;
// 배열과 함께
const tokens = [100, 200, 150];
const doubled = tokens.map(t => t * 2); // [200, 400, 300]화살표 함수는 this 바인딩이 일반 함수와 다르게 동작한다. 클래스 내부에서 메서드를 정의할 때 이 차이가 중요해질 수 있다.
AI API 호출을 함수로 추상화하는 패턴
같은 AI 호출 패턴이 여러 곳에 반복된다면 함수로 추출하는 것이 유지보수에 유리하다.
async function askClaude(userMessage, systemPrompt = '') {
const response = await fetch('https://api.anthropic.com/v1/messages', {
method: 'POST',
headers: {
'x-api-key': process.env.ANTHROPIC_API_KEY,
'anthropic-version': '2023-06-01',
'content-type': 'application/json'
},
body: JSON.stringify({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
system: systemPrompt,
messages: [{ role: 'user', content: userMessage }]
})
});
const data = await response.json();
return data.content[0].text;
}
// 한 줄로 호출
const answer = await askClaude('파이썬 리스트와 튜플의 차이는?');
const newsAnalysis = await askClaude(newsText, 'AI 뉴스 에디터로서 핵심을 3줄로 정리하라');askClaude 함수를 수정하면 모든 호출 지점에 반영된다. 모델 교체, 헤더 변경, 에러 처리 추가가 한 곳에서 이루어진다.
관련 용어
- arrow-function — function 키워드 없이 간결하게 작성하는 함수 문법
- parameter — 함수 입력값. 인수(argument)와 구분해 이해 필요
- array — map·filter·reduce에서 함수를 인자로 전달하는 대상
- promise — 비동기 함수의 반환값 타입
- api — 함수 추상화의 가장 대표적인 활용 컨텍스트