AI에서 토큰이란?

작심오십년·2026년 4월 10일

AI

목록 보기
3/5

AI의 핵심 단위 '토큰(Token)' 이해와 실전 토큰 최적화 기법

AI 기반의 코딩 에디터(Cursor)와 LLM(ChatGPT 등)을 매일 사용하면서, AI와 소통하는 가장 중요한 개념인 '토큰(Token)'에 대해 깊이 이해할 필요성을 느꼈다. 토큰을 낭비하는 것은 곧 AI의 성능을 떨어뜨리고 불필요한 비용을 발생시키는 지름길이다. 토큰의 정확한 개념과 이를 아끼면서 원하는 결과만 빠르고 정확하게 얻어내는 실전 최적화 기법을 정리해 보았다.


1. 토큰(Token)이란 무엇인가?

개념:
토큰은 AI(거대 언어 모델)가 텍스트를 읽고 쓰는 기본 단위다. 사람처럼 '단어' 단위로 글을 읽는 것이 아니라, 텍스트를 의미 있는 조각(Sub-word)으로 쪼개서 인식한다.

특징:

  • 1단어 ≠ 1토큰: 영어의 경우 대략 1단어가 1.3토큰 정도지만, 한글은 영어보다 토큰 소모량이 훨씬 크다. (형태소나 글자 단위로 더 잘게 쪼개지기 때문)
  • 토큰 = AI의 기억력 한계 (Context Window): 모델마다 한 번에 기억할 수 있는 최대 토큰 수가 정해져 있다. 대화가 길어져 이 한계를 넘어가면, AI는 예전 대화(앞부분의 코드나 지시사항)를 까먹기 시작한다(환각 현상 발생).
  • 토큰 = 돈(비용) & 시간: 입력(Input) 토큰과 출력(Output) 토큰 모두 비용으로 청구되며, 토큰을 많이 쓸수록 AI의 답변 속도도 현저히 느려진다.

2. Cursor 에디터에서 토큰 아끼기 (바이브 코딩 최적화)

Cursor와 같은 AI 에디터에서 자연어로 코드를 짜는 '바이브 코딩(Vibe Coding)'을 할 때 토큰 관리는 생명이다.

1) .cursorignore 설정으로 쓰레기 데이터 차단

AI에게 내 프로젝트 전체(@Codebase)를 읽으라고 하면, 가상환경(venv/), 빌드 파일, 이미지, 로그 파일 등 코딩과 상관없는 수만 개의 토큰을 읽느라 성능이 저하된다.

  • 해결: .cursorignore 파일을 만들어 AI가 읽을 필요 없는 폴더와 확장자를 명시적으로 차단한다.

2) 컨텍스트(Context) 핀포인트 타겟팅

  • 나쁜 예: 무작정 @Codebase를 호출해서 "로그인 로직 고쳐줘"라고 하기.
  • 좋은 예: @login_page.py, @auth_api.py 처럼 작업할 파일만 정확히 @ 기호로 멘션해서 질문하기. 읽어야 할 토큰 양이 획기적으로 줄고 답변이 날카로워진다.

3) 대화 끊어가기 (New Chat)

대화 기록(히스토리)도 모두 누적되어 토큰으로 소비된다. 질문을 여러 번 주고받으며 에러를 해결했다면, 새로운 기능 개발로 넘어갈 때는 반드시 새로운 채팅(New Chat)을 열어 이전 대화 토큰을 초기화해야 한다.


3. 일반 LLM (ChatGPT 등)에서 토큰 아끼기

정보 검색이나 지식을 얻기 위해 LLM을 사용할 때도 프롬프트 엔지니어링을 통해 토큰을 최적화할 수 있다.

① 불필요한 인사말과 미사여구 생략

"안녕? 오늘 날씨 좋은데, 내가 파이썬을 공부하다가 모르는 게 생겨서 그러는데..." 같은 문장은 전부 낭비되는 토큰이다.

  • 해결: 기계에게 명령하듯 두괄식으로 명확하고 건조하게 질문만 던진다.

② 역할(Persona) 부여로 탐색 범위 좁히기

  • 나쁜 예: "웹 자동화 테스트 코드를 짜줘." (AI가 온갖 범용적인 지식을 다 뒤져서 장황하게 설명함)
  • 좋은 예: "너는 10년 차 QA 자동화 엔지니어 멘토야. Playwright와 POM 구조를 사용한 로그인 테스트 코드만 간결하게 작성해."
  • 해결: 역할을 부여하면 모델이 활성화해야 할 가중치(네트워크) 범위가 좁아져, 빠르고 전문적이며 군더더기(토큰) 없는 답변을 내놓는다.

③ 출력 형식 제한하기

AI가 불필요하게 친절한 설명(서론/본론/결론)을 길게 늘어놓지 못하도록 출력 포맷을 강제한다.

  • "설명은 생략하고 코드만 작성해."
  • "마크다운 표(Table) 형식으로 결과만 출력해."
profile
자동화 QA 위주

0개의 댓글