폰에서 도는 에이전트에게 GPU를 빌려 주다: Colab CLI로 Claude Code와 Colab 잇기
이 폰은 서버 일은 하지만 AI 모델을 돌릴 힘은 없다. 폰에서 도는 Claude Code가 필요할 때 Colab GPU를 직접 빌려 쓰도록 공식 Colab CLI를 붙였다. MCP가 아니라 CLI를 고른 이유, 브라우저 없는 로그인, 에이전트에게 규칙을 알려 주는 스킬, 그리고 T4까지의 검증을 적는다.
이 폰은 서버 일은 하지만 AI 모델을 돌릴 힘은 없다. 폰에서 도는 Claude Code가 필요할 때 Colab GPU를 직접 빌려 쓰도록 공식 Colab CLI를 붙였다. MCP가 아니라 CLI를 고른 이유, 브라우저 없는 로그인, 에이전트에게 규칙을 알려 주는 스킬, 그리고 T4까지의 검증을 적는다.
이 폰에서 가장 비싼 소모품은 배터리다. 충전기를 빼고 꽂으라는 알림은 밤에 아무도 보지 않았고, 폰은 방전돼 꺼졌다. 충전기를 스마트 플러그에 물리고 폰이 직접 켜고 끄게 했다.
1편에 적은 목표는 리눅스를 올리고 AI 코딩 에이전트를 붙여 24시간 돌리는 것이었다. 6편에서 블로그와 터널은 터미널과 무관하게 돌게 됐다. 그런데 정작 그 코드를 고치는 에이전트 세션은 그대로였다.
이 폰은 지금까지 SSH 터미널로만 다뤘다. nano로 파일을 고치고, git 명령을 손으로 치고, 결과는 curl로 확인했다. 글이 열 편이 되고 스크립트가 여섯 개가 되자 이 방식이 버거워졌다.
2편에서 만든 블로그는 파이썬 파일 하나가 전부였다. 글 목록을 파싱하고, HTML을 문자열로 들고 있다가 내보내고, 마크다운은 브라우저가 marked로 그렸다. 이 구조에는 약점이 하나 있다. 폰이 꺼지면 글도 사라진다.
이 폰에서는 블로그 말고도 문서를 쓴다. 사이드 프로젝트 기획서, 기존 서비스 조사, 블로그 이전 계획 같은 것들이다. 이런 문서를 노트북이나 다른 폰의 브라우저로 읽고 싶었다. 조건은 하나다. 나만 봐야 한다.
6편에서 감시 데몬을 다시 만들고 "재부팅까지 시험해야 한다"고 정리했다. 그날 밤 폰을 재부팅했더니 블로그 주소에 ngrok의 ERRNGROK3200(엔드포인트 오프라인) 오류 페이지가 떴다.
5편에서 3층 자동 시작과 10초 주기 감시 데몬을 만들었다. 하루 뒤 상태를 점검한 결과는 이렇다.
4편에서 고정 주소를 확보했다. 남은 요구사항은 무인 운영이다. 사람이 Termux 앱을 열지 않아도 서버가 떠 있어야 한다.
결론부터 쓰면 ngrok의 무료 고정 도메인을 채택했다. 개인 도메인을 사지 않고, 공유기를 건드리지 않고, 폰이 어느 망에 붙어 있든 같은 주소로 열리는 방식은 이것뿐이었다.
PRoot 환경의 Ubuntu는 겉보기에 표준 리눅스와 같다. apt-get이 돌고, whoami는 root를 출력하고, /etc/os-release는 Ubuntu 26.04.1 LTS라고 답한다. 그래서 일반 서버처럼 다루게 되고, 그러다 벽에 부딪힌다.
1편에서 폰 안에 Ubuntu를 올리고 AI 에이전트를 붙였다. 다음 문제는 가독성이었다. 작업 기록을 마크다운으로 남겼는데, 터미널에서 cat으로 읽으면 표는 어긋나고 코드 블록은 백틱이 그대로 보인다.
서랍에 있던 갤럭시 노트 FE(SM-N935L)로 서버를 만들기로 했다. 2017년 기기이고 안드로이드 9에서 업데이트가 멈췄지만, 8코어 CPU와 4GB RAM, 64GB 저장 공간이 들어 있다. 라즈베리파이 3보다 빠르고, 화면과 배터리가 달려 있고, 소비 전력은 5W 미만이다.