ai-assisted
How LLMs work.
토큰, 다음 토큰 예측, 컨텍스트 창, 환각의 기본 동작.
**LLM(Large Language Model)**은 입력 텍스트를 토큰 단위로 읽고, 다음에 올 토큰의 확률 분포를 예측해 문장·코드를 생성합니다. 프론트엔드 개발에서 쓰는 AI 코딩 도구의 핵심도 이 예측 루프입니다.
🔢 토큰과 예측
- 토큰: 모델이 처리하는 텍스트 조각입니다. 단어 전체일 수도 있고, 단어의 일부나 기호일 수도 있습니다.
- 프롬프트: 사용자 요청, 시스템 지시, 첨부한 코드·파일 등 모델에 들어가는 입력입니다.
- 다음 토큰 예측: 지금까지의 토큰을 조건으로 다음 토큰 후보의 확률을 계산합니다.
- 샘플링: 확률 분포에서 하나를 고릅니다.
temperature가 높을수록 후보 선택이 넓어집니다.
모델은 “이해했다”기보다 통계적으로 그럴듯한 연속 토큰을 만듭니다. 그래서 문법적으로는 맞아 보이지만 사실·프로젝트 제약과 어긋나는 출력이 나올 수 있습니다.
🪟 컨텍스트 창
한 번에 참고할 수 있는 토큰 양의 상한을 컨텍스트 창이라 합니다.
- 시스템 지시, 대화 이력, 열린 파일, 검색 결과, 도구 출력이 같은 창을 나눠 씁니다.
- 창을 넘기면 앞쪽 내용이 잘리거나 요약되어 중요한 제약이 사라질 수 있습니다.
- 긴 레포에서는 파일을 통째로 넣기보다 관련 경로, 심볼, 실패 로그만 좁혀 넣는 편이 안정적입니다.
🛠️ 도구와 에이전트 루프
코딩 도구는 보통 텍스트만 내보내지 않고 도구 호출을 합니다.
- 모델이
read_file,edit,shell같은 도구 사용을 제안합니다. - 런타임이 도구를 실행하고 결과를 다시 컨텍스트에 넣습니다.
- 모델이 결과를 보고 다음 행동(추가 수정, 테스트, 설명)을 고릅니다.
이 반복이 에이전트 형태입니다. 품질은 모델뿐 아니라 어떤 파일을 보게 하는지, 어떤 명령을 허용하는지에 크게 좌우됩니다.
⚠️ 환각과 한계
- 환각(hallucination): 존재하지 않는 API, 잘못된 버전, 가짜 경로를 자신 있게 말할 수 있습니다.
- 학습 컷오프: 학습 시점 이후의 라이브러리 변경을 모를 수 있습니다. 최신 문서는 검색·공식 문서 확인이 필요합니다.
- 비결정성: 같은 프롬프트라도 샘플링에 따라 답이 달라질 수 있습니다.
- 보안: 비밀키, 개인정보, 사내 미공개 코드를 프롬프트에 넣으면 유출 위험이 생깁니다.
💡 같이 알아둘 것
- 좋은 결과는 “더 똑똑한 모델”만으로 오지 않습니다. 좁은 목표, 충분한 컨텍스트, 실행 가능한 검증이 같이 필요합니다.
- 프론트엔드에서는 타입 에러, 테스트, 스토리북, 브라우저 확인으로 생성 코드를 기계적으로 검증하는 습관이 중요합니다.
🔗 참고 자료
- Attention Is All You Need (Vaswani et al., 2017) — Transformer 구조의 원 논문입니다.
- OpenAI — Tokenizer — 텍스트가 토큰으로 나뉘는 예를 확인할 수 있습니다.
- Anthropic — Claude Code overview — LLM 위에 도구·에이전트 루프를 올린 코딩 도구의 예를 보여 줍니다.
