내 업무에 알고리즘 진화를 들일 자리를 찾아봤다

원래는 그냥 스크롤을 내리려던 참이었다. 주말에 밀린 뉴스레터를 훑다가 "AlphaEvolve, 이제 모든 구글 클라우드 고객에게"라는 줄을 봤다. 7월에 GA로 풀렸다는 소식이었다. 나는 이미 머릿속으로 분류를 끝내고 있었다. 또 코딩 에이전트겠지. Gemini CLI, Claude Code, Copilot 계열에 하나 더 붙는 이름이겠거니 하고 엄지를 아래로 밀었다. 그런데 그 아래 딸려온 한 문장에서 손가락이 멈췄다. "코드 스니펫을 생성하는 게 아니라, 알고리즘을 반복적으로 평가하고 개선한다." 짧은 문장인데 이상하게 걸렸다. 코드를 생성하지 않는 코딩 에이전트라니. 그게 무슨 말인가 싶어서 원래 하려던 걸 멈추고 구글 딥마인드 공개 문서와 작년 논문을 열었다. 그날 밤 나는 이게 뭔지 얼추 이해했다. 이해하는 데는 성공했다. 그런데 이해가 끝나기 무섭게 머리가 멋대로 다음 계산을 시작했다. 그럼 이걸 내 일에 들이면 어디에 꽂히지. 내가 매일 만지는 코드 중에 이 진화 루프한테 던질 만한 게 있긴 한가. 그 질문에 답해보려다가, 생각보다 훨씬 곤란한 자리로 끌려 들어갔다. 미리 밝혀둔다. 나는 AlphaEvolve를 직접 돌려본 적이 없다. 그러니 이 글은 써본 후기가 아니다. 공개된 자료만 읽고, 이걸 내 개발 업무에 들인다면 어디에 쓰고 어디선 무용한지를 머릿속으로 설계해본 사고 실험에 가깝다. 실전 경험담이 아니라 아직 안 써본 사람의 가정과 계산이라고 생각하고 읽어주면 좋겠다. 코딩 도구가 아니라는 게 진짜 핵심이었다 먼저 이름 때문에 생기는 오해부터 걷어내야 한다. AlphaEvolve는 딥마인드가 붙인 이름이고, 이 회사의 Alpha 계보를 안다면 감이 온다. 바둑의 AlphaGo, 단백질 구조의 AlphaFold. 전부 "인간이 손으로 다 뒤져볼 수 없는 거대한 공간에서 좋은 수를 찾아내는" 계열이다. AlphaEvolve도 정확히 그 자리에 있다. 다만 이번에 뒤지는 공...

내가 짠 건 하네스가 아니라 아웃터 루프였다

내가 짠 건 하네스가 아니라 아웃터 루프였다 타임라인에 "루프 엔지니어링(loop engineering)"이라는 단어가 뜬 걸 봤을 때, 나는 반사적으로 이걸 하네스 얘기의 재탕이라고 생각했다. 프롬프트 엔지니어링, 컨텍스트 엔지니어링, 하네스 엔지니어링까지 순서대로 따라온 사람 입장에선 자연스러운 오해다. 접미사가 똑같으니까. 다음 단어가 하나 더 붙었으니 앞 단어의 변형 버전이겠거니 했다. 그래서 대충 넘기려다, 계보를 한 번 되짚어 봤다. 어디서 온 말인지, 앞 세 단어와 뭐가 다른지. 처음엔 "또 하나 지어낸 신조어겠지" 싶은 마음이 반쯤 있었다. 몇 달에 한 번씩 접미사만 바꾼 유행어가 도는 판이니까. 그런데 읽다 보니 이게 하네스의 변형이 아니었다. 하네스 위에 한 층 더 얹히는 다른 층이었다. 접미사가 같아서 옆으로 나란한 단어인 줄 알았는데, 실은 위아래로 쌓이는 관계였다. 그 렌즈를 손에 쥐고 내 blog-studio repo를 다시 열었다. 그리고 좀 이상한 기분이 들었다. 내가 반년 넘게 이름도 모르고 짜 놨던 것들, 오케스트레이터랑 발행 게이트랑 세션 훅 같은 것들이, 사실 전부 아웃터 루프였다. verifier도 stop rule도 이미 코드로 돌아가고 있었다. 나는 그걸 "자동화 스크립트"라고만 불렀지, 루프라고 생각한 적이 없었다. 그런데 되짚으니 새 질문이 하나 생겼다. 내가 얹은 아웃터 루프와, Claude Code가 이미 돌리고 있던 이너 루프의 경계가 생각보다 흐리다는 것. 어디까지가 내가 엔지니어링한 부분이고, 어디부터가 하네스가 그냥 준 것인가. 이 글은 그 경계를 더듬어 본 기록이다. 계보를 한 줄로 되짚으면 먼저 오해부터 풀고 가자. 프롬프트 → 컨텍스트 → 하네스 → 루프. 이 네 단어는 서로를 대체하지 않는다. 아래 단어가 위 단어를 밀어내는 게 아니라, 위에 한 층씩 쌓인다. 적층이지 교체가 아니다. 프롬프트 엔지니어링은 모델에게 한 번 잘 말하는 ...

구글은 서울에서 모델이 아니라 에이전트를 판다

며칠 전 브라우저 탭 세 개를 나란히 열어두고 있었다. 하나는 구글이 서울에서 연다는 "AI Agents Live + Labs" 등록 페이지였고, 하나는 앤트로픽이 6월에 자사 최신 모델 접근을 정부 지침으로 막았다가 다시 연 공지였고, 나머지 하나는 오픈AI가 새 모델 라인업을 미국 정부 요청으로 일부 제한했다는 6월 말 기사였다. 원래는 서울 행사만 확인하려던 거였는데, 탭을 닫으려다 세 화면이 한 눈에 들어왔다. 그 순간 뭔가 어긋나 있다는 느낌이 들었다. 표면만 보면 셋은 따로 노는 뉴스다. 하나는 아시아 개발자 행사 초대장, 둘은 프런티어 랩의 접근 제어 사건. 그런데 시점이 겹친다. 두 프런티어 모델 층이 6월 한 달 사이에 나란히 정부발 제한을 맞는 동안, 구글은 모델 자체 를 자랑하는 대신 그 위에 얹는 층(에이전트, 오케스트레이션, 프로덕션)을 들고 서울로 오고 있었다. 나는 행사 참석자도 아니고 이 모델들을 직접 만져본 사람도 아니다. 세 조각을 나란히 놓고 봤을 뿐이다. 그런데 그렇게 놓고 보니, 구글이 계속 밀어온 "멀티모델 유연성"이라는 슬로건이 갑자기 다르게 읽혔다. 그게 이 글의 출발점이다. 6월에 두 프런티어 모델이 나란히 정부에 붙잡혔다 먼저 곁다리부터 빠르게 짚고 넘어가자. 이 이야기의 주인공은 구글이지만, 배경을 모르면 뒷부분이 안 산다. 6월 12일, 앤트로픽이 방금 공개한 Fable 5와 Mythos 5의 접근을 당일 끊었다. 회사가 스스로 판단해서 조심한 게 아니었다. 앤트로픽 공지 의 표현을 그대로 옮기면 "미국 정부가 국가안보 권한을 근거로, 모든 접근을 중단하라는 수출통제 지침을 발령"했다. 지침은 오후 5시 21분(미 동부시각)에 도착했고, 모델은 그 즉시 내려갔다. 막힌 대상이 흥미롭다. 미국 안이냐 밖이냐를 가리지 않고 "모든 외국 국적자"였다. 앤트로픽에서 일하는 외국 국적 직원까지 포함해서. 국경이 아니라 여권으로 선...

Google I/O 끝나고, 1편을 다시 펼쳤다

1편 끝에서 "닷새 뒤에 다시 만나자"고 적어두었다. 그 닷새가 지나갔고, Google I/O가 끝났고, 오늘은 키노트 일주일 후다. 책상 위에 1편을 다시 펼쳐놓고 다섯 예측을 한 줄씩 채점하기로 했다… 채점은 단순하게 가기로 했다. 맞았으면 ○, 절반만 맞았으면 △, 틀렸으면 ×. 자신만의 시나리오 표 위에서 자기가 그은 줄을 정직하게 보는 게 다음 글의 출발선이라고 생각했다. 다섯 줄을 다 채점하니 △가 많이 보였다. 맞은 자리도 있고 어긋난 자리도 있었다. 거기까지는 예상 범위였다. 시나리오는 거친 표였고, 한 줄 안에 두세 가지가 동시에 묶여 있었으니까. 1편이 거칠게 그린 그림이 키노트와 어느 정도 맞물린다는 사실 자체는 작은 안도였다. 그런데 채점이 끝나고 나서 다른 자리가 더 크게 떠올랐다. 1편이 아예 못 본 변수 두 개가 키노트에서 튀어나왔다. 하나는 1편 작성 시점에 이미 풀려 있던 모델이었고, 다른 하나는 1편이 한 회사 단독 베팅이라고 그린 폼팩터 전선에 다른 회사가 다른 방식으로 같은 카테고리로 진입한 사건이었다. 채점표는 깔끔하게 마무리됐는데, 그 채점표 옆에 적어둔 두 줄짜리 메모가 더 무거웠다. 이 글은 그 채점과 그 메모를 같이 펼쳐놓는 자리다. 다섯 예측, 한 줄씩 채점 먼저 1편의 다섯 예측을 다시 옮긴다. 첫째, Gemini 3.2 Flash 공식 발표. 둘째, 3.2 Pro 티저. 셋째, Android OS 통합 가속. 넷째, Astra 후속 데모. 다섯째, OpenAI는 I/O 직후 응수, Anthropic은 6~7월 Sonnet 5 조용히, Sweetpea는 가을, Opus 5는 그 뒤. 이걸 한 줄씩 본다. 첫째 — 3.2 Flash 공식 → △ Gemini 3.5 Flash가 즉시 풀렸다 . 3.2가 아니라 3.5다. 한 단계 점프했다. 1편은 분기 명칭을 보수적으로 잡았다. 3.1 Pro에서 다음 마이너 업데이트로 3.2 Flash가 풀린다고 적었는데, Google이 발표한 건...

M4 맥북에서 로컬 LLM으로 5일을 살아본 후

지난주에 Google I/O 닷새 전, AI 전선이 세 갈래로 갈라졌다 를 쓰면서 "로컬 LLM은 외롭다"는 한 줄을 마지막 자리에 박아두었다. 그 자리가 마음에 걸렸다. 한 시점 사진처럼 다섯 한계를 펼쳐놓고 끝낸 게, 너무 깔끔하게 정리한 결론처럼 보였다. 그래서 닷새 동안 직접 살아보기로 했다… 5월 11일 월요일 아침부터 5월 15일 금요일 저녁까지. 정확히 5일. 룰은 단순했다. 메인 워크플로를 로컬 LLM으로 돌린다. Anthropic API도, OpenAI API도 끄지는 않되, 손이 먼저 가는 자리를 의도적으로 Ollama 쪽으로 옮긴다. 도망갈 때마다 기록한다. 그리고 닷새가 끝나는 자리에서 무엇이 굳었고 무엇이 흩어졌는지 본다. 5일째 저녁, 두 가지가 동시에 일어났다. 평소 닷새 동안 $45 정도 나가던 API 청구서가 $14에 멈췄다. 그건 의도한 결과다. 그런데 매일 한두 번씩, 어떤 날은 세 번씩 클라우드로 도망갔다. 그 도망이 의지가 약해서 일어난 게 아니라는 점이 흥미로웠다. 매번 합리적인 이유가 있었고, 매번 같은 종류의 자리에서 일어났다. 그 도망의 패턴이 글의 진짜 발견이다. "로컬만 살기"는 단일한 룰이 아니라 사람마다 다른 분기였다. 이게 닷새 동안 일어난 일이다. 5일치 일지 긴 분석을 하기 전에 닷새가 어떻게 흘렀는지 시간순으로 적는다. 추상적 한계는 1편에서 다 펼쳤으니까. 여기는 화요일 오후 3시에 일어난 일, 목요일 새벽 1시에 일어난 일을 적는 자리다. 1일차 (월): 셋업과 첫 한 자릿수 월요일 아침에 셋업부터 다시 했다. 1편에서 깔아본 Qwen3.5 122B를 그대로 쓰되, 이번엔 의도적으로 Ollama 한 번, MLX-LM 한 번 두 가지 백엔드로 동일 모델을 돌려서 차이를 봤다. Ollama에서 qwen3.5:122b-a10b-q4_K_M 을 띄우니 짧은 답 6~8 토큰/초, 긴 답(2,000 토큰 이상 출력)이면 5~6 토큰/초. 첫 토큰 지연(TTF...

로컬 LLM, 회사에 들여놓으면 정말 ROI가 나오나

1편을 쓰고 며칠이 지났을 때, 회사 GPU 워크스테이션 한 대에 같은 Qwen3.5 122B를 깔아봤다. 1편에서 내 M4 노트북이 한 자릿수로 떨어진 자리를 본 뒤, 자연스럽게 다음 질문이 따라왔다. 그러면 회사 차원은 어떨까. 노트북이 외롭다고 끝낸 그 자리가, GPU가 박힌 워크스테이션에서는 어떻게 보일까. 마침 사내에 시범으로 띄울 수 있는 NVIDIA RTX Pro 6000 Blackwell 96GB 한 대가 있었다. 같은 모델을 거기에 올려봤다. 속도는 5배에서 7배 빨라졌다. M4에서 6~8 토큰/초로 떨어졌던 게 워크스테이션에서는 35~50 토큰/초가 나왔다. 챗 답변이 한 글자씩 깜빡이며 떨어지는 그림이 사라지고, 문장이 통째로 흘러나오는 그림이 됐다. 1편에서 본 한 자릿수 두 개의 어긋남에서 한쪽(속도)이 풀린 것이다. 그리고 팀 5명을 거기 붙였다. 잠시 후 평균 응답이 다시 한 자릿수로 돌아왔다. 같은 단어가 다른 차원에서 또 등장했다. 1편에서는 내 노트북 한 대의 속도가 한 자릿수였고, 이번에는 회사 GPU 한 대를 다섯이 동시에 쓰는 큐가 한 자릿수를 만들었다. 큐가 쌓이는 자리에서 토큰/초가 다시 떨어졌다. 거기서 멈췄으면 "GPU 더 깔자"가 답이었을 텐데, 그 주에 회계팀에 보고서를 들고 갔다가 다른 한 자릿수를 마주쳤다. 시트당 단가를 분해해봤더니, 우리가 쓰던 클라우드 ZDR보다 비싸게 나왔다. 그리고 보안팀에서 "누가 어떤 코드를 어떤 모델에 넣었는지 로그가 있느냐"고 물어왔는데, Ollama에는 그런 로그가 기본으로 안 붙어 있었다. 회사 도입은 한 가지 답이 아니었다. 1편이 "외로움"이라 부른 자리가 회사로 가면 1편을 한 줄로 요약하면 이렇다. 로컬 LLM이 벤치는 따라잡았는데 노트북 위에서는 외롭다. 토큰/초가 한 자릿수다. 그리고 OS 통합도, NPU 활용도, 에이전트 통합도, 배터리도, 발열도 어느 것 하나 제대로 풀리지 않는다. 그 다섯...

Google I/O 닷새 전, AI 전선이 세 갈래로 갈라졌다

이미지
어떻게 하면 토큰 사용량을 줄일 수 있을까 고민을 하다 Qwen3.5 122B를 내 M4에 깔아봤다. 그리고 토큰이 한 자릿수로 떨어졌다… 의도한 대로 API 호출은 정말 0이 됐다. 그런데 챗 답변이 깜빡이며 한 글자씩 떨어지는 걸 보다가, 초당 토큰 수가 다른 자릿수도 한 자릿수로 떨어졌다는 걸 깨달았다. 같은 단어가 두 의미로 동시에 들렸다. 비용은 한 자릿수, 속도도 한 자릿수. 한쪽은 내가 원한 결과이고 다른 한쪽은 원치 않은 결과다. 그 사이에 줄임표 같은 침묵이 한 박자 끼었다. 이 모순이 글의 출발점이다. 내 노트북에서 일어난 한 자릿수 두 개의 어긋남은 회사 차원으로 가면 훨씬 커진다. 그리고 이 어긋남이 바로 AI 업계의 다음 전쟁터다. 1년 전만 해도 우리는 "누가 더 똑똑한 모델을 만드나"를 보고 있었다. 텍스트 이해와 추론 능력이 다음을 결정한다고 생각했다. 그런데 2026년 5월 현재, 그 경쟁은 사실상 끝났다. 새 전쟁터는 한 갈래가 아니다. 정확히 세 갈래로 갈라지고 있다. 클라우드, 디바이스, 폼팩터. 그리고 그 세 갈래가 동시에 갈라지는 진짜 동력이 있다. OpenAI는 매출 1달러당 2달러를 인퍼런스 비용으로 쓰고 있다. 2026년 한 해 손실 추정치만 14조 원에 가깝고, 현금 소진 기준으로 보면 23조 원 가까이 된다. 이 숫자가 글의 결론에서 다시 나온다. 일단 그 자리를 비워두자. 그중 디바이스 전선에서 가장 큰 모순이 자라고 있다. 내가 M4에서 본 한 자릿수 두 개의 어긋남이 바로 그 모순의 축소판이다. 닷새 뒤 Google I/O가 열린다. Google이 디바이스 전선에 어디까지 패를 깔지를 보면, 이 세 갈래 경쟁의 향방이 어느 정도 정해진다. 이 글은 그 다섯 일 앞에서 쓰는 정리다. 텍스트 추론 경쟁이 끝났다는 신호 먼저 한 가지 사실부터 짚고 가자. 2026년 5월 기준, Anthropic Claude Opus 4.7, OpenAI GPT-5.5, Google Gemin...