
며칠 전, 갓 입사한 주니어가 맥북 프로 팬이 이륙하는 소리를 내며 끙끙대고 있더군요. 뭘 하나 봤더니 로컬에 Llama 3 8B 모델을 띄워놓고 "자연어로 캘린더 정리하는 에이전트"를 만들고 있었습니다. 기특하긴 한데, 캘린더 일정 하나 등록하려고 배터리 20%를 태우는 게 과연 합리적일까요? 저는 그 친구에게 모니터를 끄게 하고 커피 한 잔 사주며 말했습니다. "엔지니어링은 낭만이 아니라 비용 싸움이야." 오늘은 최근 깃허브 트렌드에 올라온 'SYSTEM'이라는 프로젝트를 통해, 왜 무조건적인 온디바이스 AI가 정답이 아닌지, 그리고 진짜 효율적인 아키텍처가 무엇인지 이야기해 보려 합니다.
많은 개발자들이 '개인화 비서'를 꿈꾸며 로컬 LLM에 집착합니다. 데이터 프라이버시 때문이라고 항변하지만, 솔직히 말해 그냥 최신 기술을 로컬에서 돌려보고 싶은 욕망이 더 클 겁니다. 하지만 'SYSTEM' 프로젝트는 매우 영리하게도 '뇌(Brain)'와 '몸(Body)'을 분리했습니다. 뇌는 Cloudflare Workers에 두고, 몸은 로컬 맥북에 둔 것이죠. 이게 무슨 차이냐고요? 추론 비용과 리소스를 분리했다는 뜻입니다.
SYSTEM의 아키텍처를 뜯어보면 흥미롭습니다. Cloudflare Workers 위에서 돌아가는 에이전트가 Claude API를 통해 자연어를 해석하고 상태(State)를 관리합니다. 그리고 로컬 머신에 설치된 브리지(Bridge) 서버와 WebSocket으로 통신하며 명령을 내립니다. 즉, 무거운 추론은 클라우드가 담당하고, 로컬 머신은 AppleScript나 셸 커맨드 같은 '가벼운 실행'만 담당하는 구조입니다. 이게 바로 제가 항상 강조하는 '적재적소'의 원칙입니다. 로컬 리소스를 갉아먹지 않으면서도, 클라우드의 강력한 추론 능력을 빌려오는 하이브리드 방식이죠.
특히 이 프로젝트가 Raycast 확장을 도구(Tool)로 활용하는 방식은 칭찬할 만합니다. 보통 주니어들은 스포티지 제어 기능을 만들겠다고 하면 스포티파이 API 문서를 정독하고 인증 토큰부터 발급받으려 합니다. 하지만 SYSTEM은 이미 설치된 Raycast 확장의 커맨드를 그대로 호출합니다. spotify_play 명령 하나로 끝나는 일을, 굳이 바퀴를 재발명하며 시간을 낭비하지 않는 것이죠. 있는 도구를 잘 엮어내는 오케스트레이션 능력이야말로 AI 시대 엔지니어에게 필요한 덕목입니다.
물론 이 구조에도 치명적인 맹점은 있습니다. '보안'입니다. 아무리 Bearer 토큰으로 인증하고 Cloudflare Tunnel을 쓴다 한들, 내 로컬 머신의 셸(Shell) 권한을 외부 네트워크에 열어두는 건 시한폭탄을 안고 사는 것과 같습니다. iMessage 전송 전에 사용자 확인 절차를 넣는 'Safe Flow'를 구현해 뒀지만, 만약 공격자가 토큰을 탈취한다면? 내 맥북은 순식간에 원격 제어 가능한 좀비 PC가 됩니다. 편리함과 보안 사이의 트레이드오프는 여기서도 피해 갈 수 없는 숙제입니다.
하지만 이 프로젝트가 시사하는 바는 명확합니다. 모든 것을 로컬에서 처리하려는 강박을 버리세요. 단순한 텍스트 요약이나 분류가 아니라, OS 레벨의 제어와 복잡한 추론이 필요한 작업이라면 하이브리드 구조가 훨씬 경제적이고 안정적입니다. SYSTEM이 보여준 것처럼, 상태 관리는 Durable Objects 같은 기술로 가볍게 처리하고, 실행은 로컬의 기존 도구(AppleScript, Raycast)에 위임하는 방식이 현실적인 'AI 에이전트'의 모습에 가깝습니다.
결국 중요한 건 '모델'이 아니라 '파이프라인'입니다. 최신 모델을 로컬에 깔았다고 좋아할 게 아니라, 그 모델이 내 시스템 비용을 얼마나 아껴주고 생산성을 얼마나 높여주는지 계산기를 두드려봐야 합니다. 엑셀로 1분이면 끝날 일을 위해 GPU 서버를 띄우지 마세요. SYSTEM의 코드를 한 번 뜯어보시길 권합니다. 화려한 AI 기능 뒤에 숨겨진 투박한 AppleScript와 웹소켓 통신을 보면서, 환상이 아닌 진짜 엔지니어링을 느끼셨으면 좋겠습니다.


