Home / AI / AI 용어사전 / 배열(Array) — AI가 데이터 목록을 다루는 가장 기본 구조
TERM
배열(Array) — AI가 데이터 목록을 다루는 가장 기본 구조
On this page
AI 모델이 여러 결과를 한꺼번에 돌려줄 때, 검색 결과 10개를 순서대로 처리할 때, 사용자 대화 기록 전체를 관리할 때 — 모두 배열(Array)이 등장하는 순간이다.
정의
배열(Array)은 동일한 타입의 값 여러 개를 순서 있게 저장하는 데이터 구조다. 각 값은 인덱스(index)라는 숫자로 접근하며, 인덱스는 0부터 시작한다. 자바스크립트 배열은 여러 타입을 혼합해 저장할 수 있으며, 길이가 동적으로 변한다.
const models = ['claude-sonnet-4-6', 'gpt-4o', 'gemini-flash'];
console.log(models[0]); // 'claude-sonnet-4-6'
console.log(models.length); // 3인덱스 접근과 루프
배열의 각 요소는 인덱스로 접근하거나 반복문으로 순회한다.
const scores = [92, 87, 95, 78];
// 인덱스 직접 접근
console.log(scores[2]); // 95
// for...of 루프
for (const score of scores) {
console.log(score);
}
// forEach
scores.forEach((score, index) => {
console.log(`${index}번: ${score}점`);
});AI api 응답에서 여러 결과를 처리할 때는 반복문 또는 고차 함수를 사용한다.
map·filter·reduce — AI 응답 파싱의 핵심
배열의 고차 함수 세 가지는 AI 개발에서 가장 자주 사용된다.
map: 배열의 모든 요소를 변환해 새 배열을 반환한다.
// Claude API 응답에서 텍스트만 추출
const contents = response.content.map(block => block.text);filter: 조건을 만족하는 요소만 남겨 새 배열을 반환한다.
// confidence가 0.8 이상인 결과만 남기기
const highConfidence = results.filter(r => r.confidence >= 0.8);reduce: 배열을 하나의 값으로 축약한다.
// 토큰 사용량 합산
const totalTokens = responses.reduce((sum, r) => sum + r.usage.total_tokens, 0);AI 개발에서 배열을 쓰는 실전 패턴
대화 히스토리 관리: Claude, ChatGPT 모두 메시지를 배열 형태로 받는다.
const messages = [
{ role: 'user', content: '안녕' },
{ role: 'assistant', content: '안녕하세요' },
{ role: 'user', content: '오늘 날씨 어때?' }
];새 메시지는 messages.push(newMessage)로 추가하고, 전체를 API에 전달한다. context-window를 초과하면 오래된 메시지를 slice()로 잘라낸다.
배치 처리: 여러 텍스트를 한꺼번에 처리할 때 배열을 promise .all()과 함께 사용한다.
const texts = ['텍스트1', '텍스트2', '텍스트3'];
const results = await Promise.all(texts.map(t => analyzeText(t)));순차 처리 대비 총 처리 시간을 크게 단축할 수 있다. 단, AI API에는 분당 요청 한도(rate limit)가 있으므로 배치 크기를 조절해야 한다.
관련 용어
- object — 배열과 함께 자바스크립트의 핵심 데이터 구조
- promise — 비동기 배열 처리에 함께 쓰이는 패턴
- context-window — LLM이 처리하는 메시지 배열의 길이 제한
- api — 배열 형태의 요청·응답을 주고받는 인터페이스
- json — 배열이 포함된 데이터 교환 형식