
AI가 Brainf*ck 코드 앞에서 무한 루프에 빠지는 진짜 이유
Gemini 3가 Brainf*ck 코드 앞에서 무한 루프에 빠지는 현상을 통해, 데이터 희소성, 맥락 의존성, 확률적 생성이라는 AI의 근본적 한계와 개발자의 역할을 고찰합니다.
송찬영
CTO

안녕하세요. 풀링포레스트 CTO 송찬영입니다.
최근 흥미로운 리포트 하나를 읽고 깊은 생각에 잠겼습니다. 최신 모델인 Gemini 3에게 난해한 프로그래밍 언어인 'Brainf*ck' 코드를 생성해 달라고 요청하면, 모델이 무한 루프에 빠져버린다는 내용이었습니다. 단순히 오류를 뱉는 수준이 아니라, 마치 DDoS 공격을 받은 서버처럼 의미 없는 문자열을 끝없이 쏟아내며 멈춰버린다는 것이죠. 풀링포레스트에서도 개발 생산성을 높이기 위해 Cursor나 Claude 같은 도구를 적극 도입하고 있지만, 이 현상은 우리가 AI를 어떻게 바라봐야 하는지에 대한 중요한 시사점을 던져줍니다.
솔직히 고백하자면, 저 역시 처음에는 AI가 코드를 '이해'한다고 믿었습니다. 복잡한 리팩토링을 척척 해내는 모습을 보며, 우리 개발팀의 주니어 엔지니어보다 낫다는 생각까지 했으니까요. 하지만 이번 Brainf*ck 사례는 AI의 화려한 퍼포먼스 뒤에 숨겨진 명확한 한계를 보여줍니다. 그리고 이것은 우리가 현업에서 마주하는 문제들과도 밀접하게 닿아 있습니다.
첫 번째로 주목할 점은 '데이터의 희소성'과 '추론'의 차이입니다. LLM(대규모 언어 모델)은 자바스크립트나 파이썬 코드를 기가 막히게 잘 짭니다. 이유는 단순합니다. 인터넷상에 학습할 수 있는 오픈소스 코드가 수억 줄(LOC) 넘게 존재하기 때문입니다. 반면 Brainf*ck은 학습 데이터가 통계적으로 무시할 수 있을 만큼 적습니다. 데이터가 충분할 때 AI는 '기억'에 의존하여 정답을 내놓지만, 데이터가 희소한 영역에서는 진짜 '논리적 추론'을 해야 합니다. 여기서 밑천이 드러나는 셈입니다. 우리 팀이 내부적으로 사용하는 레거시 모듈이나 특수한 비즈니스 로직을 AI에게 맡겼을 때 엉뚱한 코드를 내놓는 이유도 이와 같습니다. 모방할 패턴이 없으면, AI는 길을 잃습니다.
두 번째는 '맥락 없는 코드'의 위험성입니다. Brainf*ck은 변수명도, 함수명도, 주석도 없습니다. 오직 기호들의 나열뿐이죠. 이는 현대 소프트웨어 공학이 추구하는 가독성과 정반대입니다. ++++++++[ -] 같은 코드를 해석하려면 문법 암기가 아니라, 프로그램이 메모리 상에서 어떻게 동작하는지에 대한 정확한 '정신적 모델(Mental Model)'이 필요합니다. 우리는 AI가 코드를 읽을 때 사람처럼 구조를 파악한다고 착각하지만, 사실 AI는 변수명이나 주석 같은 텍스트 패턴에 크게 의존합니다. 이런 힌트가 제거된 제로샷(Zero-shot) 환경에서는 AI조차 초보자와 다를 바 없다는 사실을 뼈저리게 느꼈습니다.
세 번째는 LLM의 근본적인 작동 원리인 '확률적 생성'의 함정입니다. Brainf*ck 코드는 언어 특성상 동일한 문자가 반복됩니다. AI는 다음 토큰을 예측할 때 이전에 나온 패턴을 참고하는데, 반복적인 입력이 계속되면 "다음에도 이 문자가 나올 확률이 가장 높다"고 판단해버립니다. 일종의 자기충족적 예언에 갇혀 무한 루프를 도는 것이죠. 현업에서도 비슷한 경험을 하곤 합니다. 반복적인 보일러플레이트 코드를 생성시키다 보면, 어느 순간 AI가 로직을 무시하고 무의미한 패턴만 복사해서 붙여넣는 현상을 목격합니다. 이는 AI가 논리를 전개하는 것이 아니라, 그저 확률 높은 단어를 이어 붙이고 있다는 방증입니다.
결국 Brainf*ck은 AGI(인공 일반 지능)를 판별하는 훌륭한 리트머스 시험지일지도 모릅니다. 하지만 먼 미래의 AGI를 논하기 전에, 당장 오늘 코드를 작성하는 우리에게 주는 교훈은 명확합니다.
AI는 훌륭한 도구지만, '원리'를 이해하고 있는 것은 아닙니다. 방대한 데이터 덕분에 이해하는 척할 뿐입니다. 그렇기에 우리 개발자들은 더욱더 기본에 충실해야 합니다. AI가 짜준 코드가 왜 작동하는지, 그 이면에 어떤 논리가 숨어 있는지 파악하지 못한다면, 데이터가 조금만 부족하거나 맥락이 사라진 상황에서 우리는 무기력해질 수밖에 없습니다.
기술의 발전 속도는 빠르지만, 그 근간에 있는 엔지니어링의 본질은 변하지 않습니다. 도구에 의존하되 매몰되지 않는, 본질을 꿰뚫어 보는 엔지니어가 되시기를 응원합니다. 저 또한 풀링포레스트 팀원들과 함께, AI가 채워주지 못하는 그 '한 끗'의 논리를 고민하며 나아가겠습니다.


