모델을 다시 학습시키지 않고 프롬프트에 넣은 지시와 예시만 보고 LLM이 새 작업을 그 자리에서 해내는 능력이다. 감성 분석·번역·요약처럼 작업마다 파인튜닝하지 않고 지시와 예시만 바꿔 넣어 모델 하나로 여러 작업을 처리하고 싶을 때 쓴다.
| 항목 | 인컨텍스트 러닝 | 파인튜닝 |
|---|---|---|
| 바꾸는 것 | 프롬프트(컨텍스트) | 모델 가중치 |
| 반영 속도 | 바로 | 학습이 끝나야 반영 |
| 비용 | 요청마다 입력 토큰 비용 | 학습 인프라 필요 |
| 유지 | 세션이 끝나면 사라짐 | 모델에 남음 |
참고 자료를 보며 푸는 오픈북 시험과 비슷해서, 대화가 끝나면 모델은 원래 상태로 돌아간다.
퓨샷·제로샷 프롬프팅은 이 능력을 활용하는 방법이다. RAG로 검색한 문서를 넣는 것, 도구 실행 결과를 돌려주는 것도 넓게 보면 모두 ICL이다. Claude Code가 저장소의 CLAUDE.md를 읽고 그 프로젝트의 코딩 규칙대로 코드를 쓰는 것도 마찬가지다.
그래서 규칙이 바뀌면 파일 하나만 고치면 되고, 요청마다 다른 사용자의 데이터를 넣을 수도 있다. 학습용 GPU 인프라도 필요 없다.
연구에 따르면 예시의 정답 라벨을 무작위로 바꿔도 성능이 크게 떨어지지 않았다. 성능을 좌우한 건 라벨의 종류, 입력의 생김새, 답의 형식이었다. 모델은 예시에서 완전히 새로운 규칙을 배운다기보다, 이미 아는 능력 중 무엇을 꺼낼지 알아차리는 면이 크다.
그러니 예시를 만들 때는 실제 입력과 비슷한 모양으로, 원하는 답 형식을 정확히 보여 주는 데 신경 쓴다. 결과가 예시의 순서나 표현에 따라 흔들릴 수 있다는 점도 기억해 둔다.
컨텍스트 창이 길어지면서 예시를 수백~수천 개 넣는 매니샷 방식도 쓸 수 있게 됐다. 예시가 많을수록 성능이 뚜렷이 오르고, 일부 작업에서는 파인튜닝에 맞먹는다. 사람이 쓴 예시가 부족하면 모델이 직접 만든 풀이를 예시로 써도 효과가 있다. 다만 예시가 늘어나는 만큼 매 요청의 입력 토큰과 비용도 그대로 늘어난다.
같은 성질이 공격에도 쓰인다. 위험한 질문에 순순히 답하는 가짜 대화를 수백 개 이어 붙여 안전 장치를 무력화하는 '매니샷 탈옥'이 그 예다. 컨텍스트로 행동을 바꿀 수 있다는 건 좋은 쪽으로도 나쁜 쪽으로도 작동한다.
처음부터 파인튜닝하지 말고 단계적으로 넘어가는 게 좋다.
| 단계 | 할 일 | 이럴 때 넘어간다 |
|---|---|---|
| 1. 컨텍스트 | 지시와 예시를 다듬어 품질 확인 | 원하는 품질이 나오면 여기서 끝 |
| 2. 프롬프트 캐싱 | 같은 긴 예시 묶음을 캐시 | 같은 예시를 아주 자주 보낼 때 |
| 3. 파인튜닝 | 지식을 가중치에 굽기 | 비용·지연이 여전히 크거나 사례가 컨텍스트에 다 안 들어갈 때 |
가장 흔한 방법은 원하는 입력·출력 예시 몇 개를 프롬프트에 붙이는 것이다. 따로 학습할 필요 없이 예시와 자료만 바꿔 가며 같은 모델을 여러 작업에 돌려 쓴다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 분류·추출 자동화 | 입력과 정답 형식 예시를 몇 개 넣고, 같은 형식의 라벨이나 JSON을 받는다 |
| 사내 문서 검색 | 검색한 문서를 프롬프트에 넣어 그 내용을 근거로 답하게 한다 |
| 코딩 에이전트 | CLAUDE.md 같은 규칙 파일을 읽혀 프로젝트 관례대로 코드를 쓰게 한다 |
| 고객 응대 챗봇 | 원하는 말투와 답변 예시를 시스템 프롬프트에 넣어 응답 스타일을 맞춘다 |