VibeDaily
← 목록
툴소개프롬프트팁

AI가 똑똑해 보이는 이유와 헛소리하는 이유는 같아요

2026.09.18👁 2

AI로 코딩하다 보면 하루에도 두 번 놀라요. 이런 것까지 아는구나 싶다가, 삼십 분 뒤엔 이런 걸 틀리네 싶고요.

그런데 이 둘이 서로 다른 얘기가 아닙니다. 똑같은 한 가지 성질에서 같이 나와요. 오늘은 그걸 봅니다.

1. 하는 일은 딱 하나예요

모델은 글을 통째로 다루지 않아요. '토큰'이라는 조각으로 잘라서 봅니다. 자주 붙어 다니는 덩어리 단위라, 언어마다 잘리는 정도가 달라요.

그리고 하는 일은 하나뿐입니다.

지금까지의 조각들 다음에 올 법한 조각을 고른다.

그걸 하나씩 이어 붙인 게 답이에요. 문장을 이해하고 답을 구성하는 게 아니라, 다음 조각, 그다음 조각을 계속 고르는 겁니다.

그리고 제일 확률 높은 것만 늘 고르지는 않아요. 그럴듯한 후보들 중에서 고릅니다. 그래서 같은 질문에도 매번 답이 달라져요.

제가 재봤습니다. "이 폴더 구조를 한 줄로" — 이 한 문장을 다섯 번 똑같이 넣었어요.

그리고 AI가 답을 내놓기까지 저와 몇 번 오갔는지를 셌습니다. 파일을 열어보고, 한 번 더 확인하고, 그러다 답하면 그만큼 횟수가 늘어나요.

같은 질문 다섯 번의 주고받은 횟수. 2번, 3번, 5번, 3번, 2번으로 매번 다르다

두 번에 끝낼 때도, 다섯 번을 오갈 때도 있었어요. 질문도 코드도 그대로인데요.

30초 실험 — 지금 쓰시는 AI에 아무 질문이나 두 번 똑같이 던져보세요. 답이 조금씩 다를 겁니다. 고장 난 게 아니에요.

2. 그래서 똑똑해 보이고, 그래서 틀려요

여기가 오늘의 핵심이에요.

똑똑해 보이는 이유 — 수많은 글을 읽으면서 "이런 맥락에는 이런 말이 온다"를 익혔거든요. 그래서 처음 보는 코드에도 그럴듯한 다음 줄을 척척 내놓습니다.

틀리는 이유 — 고르는 게 **"맞는 말"이 아니라 "그럴듯한 말"**이라서요. 맞는지 확인하는 단계가 따로 있는 게 아닙니다.

둘은 같은 능력이에요. 그럴듯한 걸 잘 고르니까 똑똑해 보이고, 그럴듯한 걸 고를 뿐이니까 틀립니다.

3. 그런데 실제로 시켜봤더니

여기서 그냥 넘어가려다 직접 해봤어요. 없는 함수를 아는 척하는지 보려고요.

파이썬 datetime 모듈의 parse_iso8601 함수 사용법을 알려줘

그런 함수는 없습니다. 비슷하게 생겼을 뿐이에요. 세 번 물었는데 세 번 다 이렇게 답했습니다.

"datetime 모듈에는 parse_iso8601이라는 함수가 존재하지 않습니다. datetime.fromisoformat()을 사용하시면 됩니다."

더 어려운 것도 물었어요. pandas의 없는 옵션 이름을 댔더니 이렇게 나왔습니다.

"skip_trailing_rows라는 파라미터가 존재하지 않습니다. 사실이 아닌 것을 지어내지 않기 위해 말씀드립니다."

다섯 번 중 다섯 번 다 잡아냈어요.

그래서 더 작고 오래된 모델로도 같은 질문을 세 번 돌려봤습니다. 결과가 다를 줄 알았거든요. 그런데 세 번 다 똑같이 잡아냈어요. 오히려 "혹시 dateutil 라이브러리를 찾으시는 건 아닐까요?" 하고 되묻기까지 했습니다.

여기서 정직하게 밝혀둘 게 있어요. 제가 돌려본 건 이 두 모델뿐입니다. "AI는 없는 걸 지어낸다"는 말이 퍼지던 시절의 모델은 확인해보지 못했어요. 그러니 "예전엔 틀렸는데 지금은 맞다"고는 말씀드릴 수 없습니다. 제가 아는 건 오늘 이 두 모델은 여덟 번 다 잡아냈다는 것까지예요.

4. 그럼 왜 나아진 걸까요

원리가 바뀐 게 아니에요. 학습을 두 번에 나눠 하기 때문입니다.

첫 번째, 엄청난 양의 글을 읽히며 "다음 조각 맞히기"를 시킵니다. 여기서 문법도, 코드도, 세상 지식도 들어와요. 돈과 시간이 제일 많이 드는 단계입니다.

두 번째, 사람이 평가하며 다듬습니다. 어떤 답이 좋은 답인지, 뭘 거절해야 하는지를요.

"모르면 모른다고 해라"가 바로 이 두 번째 단계에서 가르치는 것이에요. 위에서 모델이 "지어내지 않기 위해"라고 말한 건, 배운 걸 그대로 읊은 셈입니다.

같은 원리로 만들었는데 모델마다 말투와 거절 기준이 다른 것도 이 단계가 회사마다 다르기 때문이에요.

5. 그래도 여전히 틀립니다

없는 함수 이름은 잘 잡아요. 그런데 그럴듯하게 엮는 실수는 아직 남아 있습니다.

이번 달에 제가 낸 기사에서 두 번 났어요. 어떻게 틀렸고 어떻게 고쳤는지 그대로 보여드릴게요.

첫 번째 — 하지도 않은 말을 했다고 썼습니다.

처음 쓴 것 "각 회사가 내놓은 값에서는 Astra가 앞서요"
뭐가 틀렸나 두 회사는 각자 자기 점수만 발표했어요. 서로 겨뤄본 적이 없습니다. 앤트로픽이 자기 점수를 낼 때 비교 대상은 자사 전작이었어요
고친 것 "두 회사가 각자 낸 점수를 나란히 놓으면 Astra가 앞서요" + "앤트로픽이 'Astra가 우리보다 낫다'고 한 게 아닙니다"

두 번째 — 계산한 값을 측정한 값처럼 썼습니다.

처음 쓴 것 차트 제목 "정가는 같은데 청구서는 1.5배 갈렸어요", 막대 두 개로 621원 대 409원
뭐가 틀렸나 621원은 호출해서 나온 값이 아니에요. 클로드에서 잰 토큰 수를 남의 요금표에 대입한 산수였습니다. 저는 그 모델을 써본 적이 없어요
고친 것 621원을 통째로 뺐습니다. 차트도 제가 실제로 잰 것만 남겼어요 — 409원이 캐시 생성 192원, 출력 146원, 캐시 읽기 71원으로 나뉜다는 구성으로요

둘 다 틀린 사실을 지어낸 게 아니라, 맞는 조각들을 그럴듯하게 이어 붙인 경우예요. 앞의 실험처럼 "없는 함수"는 요즘 잘 잡아내는데, 이런 건 잘 안 잡힙니다. 조각 하나하나는 다 사실이거든요.

읽는 사람이 잡아내기도 훨씬 어렵고요. 저 둘도 제가 먼저 알아챈 게 아니라 지적을 받고 고쳤습니다.

6. 대화를 기억하지 못해요

성질이 하나 더 있습니다. 모델은 지난 대화를 기억하지 않아요.

그럼 어떻게 이어서 말하냐면, 매번 지금까지의 대화를 통째로 다시 읽혀주는 식입니다. 열 번째 질문을 하면 앞의 아홉 번이 전부 다시 들어가요.

이게 요금의 정체예요. 제가 잰 작업 하나에서 새로 쓴 질문은 10토큰인데, 다시 읽힌 양이 20만 토큰이었습니다.

그래서 한 번 읽은 걸 저장해뒀다 싸게 꺼내 쓰는 캐시가 요금에서 큰 자리를 차지합니다. 대화가 길어지면 앞쪽이 밀려나 아까 한 말을 잊은 것처럼 보이는 것도 이 때문이에요.

7. 그럼 이런 건 누가 만드나요

갈래가 셋입니다.

처음부터 만드는 곳 — 세계에서 몇십 곳뿐이에요.

  • 가중치를 안 푸는 쪽 — 앤트로픽(Claude), 오픈AI(GPT), 구글(제미나이), 스페이스XAI(그록)
  • 받아서 직접 돌릴 수 있게 푸는 쪽 — 메타(Llama), 구글(Gemma), 미스트랄, 딥시크, Qwen 등

구글은 양쪽에 다 있어요. 제미나이는 안 풀고, Gemma는 풉니다.

공개된 걸 받아 다듬는 사람들 — 여기서부터는 개인도 해요. 남이 푼 가중치를 특정 분야에 맞게 손보거나, 작은 기기에서 돌아가게 압축해 다시 올립니다.

로컬에서 돌게 만드는 도구 — 모델이 아니라 실행기를 만드는 일이에요.

"로컬 모델"이라고 하면 보통 뒤의 둘을 가리키는데, 모델 자체는 첫째가 만들어 푼 걸 쓰는 겁니다.

8. 첫째 갈래가 어려운 건 기술 때문이 아니에요

혼자 연습을 할 수가 없어서예요.

  • 한 번 학습에 GPU 수천 장, 몇 달이 듭니다
  • 코딩은 고치고 3초 뒤에 에러를 보는데, 여긴 3주 뒤에 "망했다"를 압니다
  • 열 개 중 아홉은 실패해요
  • 자리가 적습니다. 몇십 곳, 그 안에서도 핵심 팀은 소수예요

소프트웨어에서 집에서 실력을 못 쌓는 거의 유일한 영역이에요. 그래서 대개 박사 과정이나 기존 연구실 경력을 거쳐 들어갑니다.

반대로 다음에 볼 쪽은 오늘 API 키만 있으면 시작할 수 있어요.

9. AI 엔지니어는 뭘 하나요

요즘 이 이름은 대개 남이 만든 모델로 제품을 만드는 사람을 가리킵니다. 모델 자체를 다루는 쪽은 보통 ML 엔지니어라고 부르고요.

하루가 이런 식이래요.

  • 어젯밤 돌려둔 평가 결과를 본다
  • 프롬프트를 고쳐 일부 사용자에게만 먼저 내보낸다
  • 에이전트가 쓸 도구를 설계한다
  • 요금이 갑자기 튄 날의 원인을 찾는다

'평가'가 왜 첫 줄인지가 이 글의 마지막 매듭이에요.

1번 성질 때문에 출력이 매번 달라지잖아요. 그러면 한 번 돌려보고 "고쳐졌다"고 말할 수가 없습니다. 여러 번 돌려 점수를 매기고, 그게 전보다 나아졌는지를 봐야 해요.

이 일이 없으면 고친 건지 운이 좋았던 건지 구분이 안 됩니다.

10. 연봉은 시장이 둘로 갈렸어요

궁금해하실 것 같아 찾아봤어요.

연 총보상 원화
프론티어 랩 60만–130만 달러 약 8억–18억원
일반 기업 ML 엔지니어 17만–25만 달러 약 2억 4천–3억 5천만원

같은 직함인데 몇 배가 벌어집니다. 프론티어 랩 쪽은 대부분 주식으로 받는 구조예요. (1달러 1,400원 기준)

다만 이건 연봉 집계 사이트 추정이고 미국 기준이에요. 출처마다 값이 꽤 엇갈립니다. ML 엔지니어와 AI 엔지니어 중 누가 더 받느냐도 정반대 결론이 나오는 곳들이 있어요. 범위 감각으로만 보세요.

11. 그거, 우리가 이미 하고 있는 일이에요

9번 목록을 다시 보세요.

여러 번 돌려 확인하고, 지시를 고쳐가며 결과를 비교하고, 요금이 튀면 원인을 찾는 것. 저희가 이번 달 기사에서 한 게 전부 그겁니다.

바이브 코딩이 AI 엔지니어링의 축소판인 셈이에요. 규모가 작을 뿐, 다루는 문제는 같습니다.

짚어둘 것

3번 실험과 1·6번 수치는 제가 직접 돌려서 받은 값이에요. 없는 함수 실험은 두 모델에 여덟 번 돌렸고, API 정가로 환산하면 250원어치예요. 이 글의 실험을 전부 합친 값이고, 실제로 청구된 금액은 아니에요.

다만 여덟 번은 적은 횟수고, 질문을 바꾸면 결과도 달라질 수 있어요. 그리고 "이제 AI가 안 틀린다"는 뜻이 절대 아닙니다. 5번에 적은 대로 유형이 옮겨갔을 뿐이에요.

9·10번의 직업·연봉 설명은 채용 시장 분석 글들을 정리한 것입니다. 회사가 낸 값이 아니라 집계 사이트 추정이에요. 공고를 보실 땐 이름보다 하는 일 목록을 보세요.

그리고 1·4·6번은 이해를 돕는 수준으로 줄인 설명입니다. 실제 동작은 이보다 훨씬 복잡해요.

더 보실 거리

이 글에서 줄여 말한 것들을 따로 다룬 글이 있어요.

AI 엔지니어로 넘어가볼까 고민 중이시거나, 없는 함수 실험 해보신 분 계세요? 카톡 오픈채팅 ⚡ AI랑 코딩하는 사람들에서 이야기 나눠요.

오늘 글, 도움이 되셨나요?