2,000줄짜리 파일 전체를 붙여넣는 것은 토큰을 낭비하고 답변 품질을 해칩니다. 목표는 AI에 문제를 추론하는 데 필요한 정확한 맥락만 주는 것입니다 — 그 이상은 아닙니다.
2,000줄짜리 파일 전체를 붙여넣는 것은 토큰을 낭비하고 답변 품질을 해칩니다. 목표는 AI에 문제를 추론하는 데 필요한 정확한 맥락만 주는 것입니다 — 그 이상은 아닙니다.
db는 Postgres pool입니다."# 나쁨: 800줄짜리 user-service.ts 전체를 붙여넣음
# → AI가 관련 없는 코드를 헤치며, 잘못된 function에 고정될 수 있음
# 좋음: 중요한 것만 보냄
// file: src/services/user-service.ts
// context: POST /users에서 호출됨; `db`는 Postgres pool (pg)
type User = { id: number; email: string };
async function createUser(email: string): Promise<User> {
const { rows } = await db.query( // <-- 도움이 필요한 function
"INSERT INTO users (email) VALUES ($1) RETURNING id, email",
[email],
);
return rows[0];
}
// 질문: 여기서 email 중복 충돌을 어떻게 처리하나요?
두 번째 버전은 AI에 function, 반환 타입(User), db에 대한 한 줄 메모를 줍니다 — 정확히 답하기에 충분하고, 주의를 분산시킬 관련 없는 코드가 없습니다.
비용 문제만이 아닙니다. 여분의 코드는 방해 요소입니다: 모델이 관련 없는 function에 매달리거나, 파일 다른 곳의 버그를 따라 하거나, 수천 개의 무관한 토큰에 주의를 희석시킬 수 있습니다. 집중된 프롬프트는 집중되고 정확한 답을 만듭니다.
토큰 예산은 유한하고 대량 투입은 속도와 품질 모두를 떨어뜨립니다. 최소한의 관련 조각 — 대상 function, 그 type, 맥락 요약, 파일 경로 — 을 보내면 토큰을 절약하고 방해 요소를 제거해 답을 더 날카롭게 만듭니다. 맥락을 큐레이션하는 것은 AI와 효과적으로 일하는 핵심 기술입니다: 정보를 숨기는 것이 아니라 중요한 것으로 주의를 향하게 하는 것입니다.