출퇴근 시간이 아깝다#
이사를 간 뒤에는 대중교통으로 출퇴근을 하는데 지하철은 편도 50분정도 탄다.
왕복 2시간이 넘는 통근시간이 아깝다는 생각을 해서 생산적인 일을 하기 위해 이런저런 걸 시도해봤다
지금 이렇게 블로그를 쓰는 것도 그러한 활동의 일환인데 가끔 쓰긴 하지만 글을 쓴다는건 생각보다 머리를 쓰는 일이어서 50분 내내 하기는 좀 힘들었다
또 아쉬웠던 것 중 하나가 출퇴근 시간을 빼면 사이드 프로젝트 개발을 할 시간이 생각보다 없다는 것이다. 그래서 생각한것이 출퇴근 시간에 폰으로 개발을 하면 어떨까 싶었다. 문제는 핸드폰으로 어떻게 개발을 하냐는 건데, 클로드 코드와 함께라면 가능할 것 같았다.
준비물#
미니 PC#
집에 미니 PC를 두고 서버처럼 사용했다. 예전에 로컬 AI를 돌리기 위해 구입한 7945hs 미니 PC인데, 이걸 개발 서버로도 활용하기로 했다.
항상 켜두고 SSH로 접속할 수 있으면 핸드폰에서도 termux로 접속해서 개발이 가능하다.
SSH 터널링#
핸드폰에서 미니 PC로 SSH 접속을 하면 터미널에서 클로드 코드를 실행할 수 있다.
그런데 문제가 하나 있었다. 개발 결과물을 눈으로 확인하려면 브라우저에서 봐야 하는데, 핸드폰 브라우저에서 localhost:포트번호로 접속이 안 된다는 것이다.
이때 SSH 터널링을 사용하면 된다. 미니 PC에서 실행 중인 웹 서버 포트를 핸드폰 로컬로 포워딩하는 방식이다.
ssh -L 55555:localhost:55555 user@미니PC주소이렇게 하면 핸드폰 브라우저에서 localhost:55555로 접속했을 때 미니 PC의 55555 포트로 연결된다.
개발 흐름#
설계 및 기획: Superpowers#
본격적인 코딩 전에 기능 설계와 구조를 잡는 데는 Superpowers 플러그인을 활용했다.
클로드 코드에 Superpowers를 설치하면 /brainstorm, /plan 등의 스킬을 사용할 수 있는데, 출퇴근길에 “이런 기능을 만들고 싶다"는 아이디어를 꺼내서 설계 문서를 만들어두면 나중에 구현할 때 훨씬 빠르다.
핸드폰 키보드로 긴 코드를 치는 건 무리지만, 자연어로 요구사항을 설명하고 AI가 설계해주는 건 충분히 가능하다.
구현: oh-my-claude-code#
실제 구현은 oh-my-claude-code(OMC)를 사용했다.
OMC의 ralph나 autopilot 모드를 사용하면 클로드가 스스로 반복해서 코드를 작성하고 검증한다. 내가 할 일은 방향을 잡아주는 것뿐이다.
출퇴근 시간에 “이 기능 구현해줘"라고 한 마디 던져두면 역에 도착할 때쯤 코드가 완성되어 있는 경우도 있었다.
Flutter 웹 서버로 실행#
청첩장도 그랬지만 플러터로 앱 개발을 많이 했는데 Flutter 앱을 웹 서버 모드로 실행하면 브라우저에서 확인할 수 있었다.
flutter run -d web-server --web-port 55555 --web-hostname 0.0.0.0 2>&1--web-hostname 0.0.0.0으로 설정해야 미니 PC 외부에서도 접근이 가능하다. SSH 터널링과 조합하면 핸드폰 브라우저에서 바로 결과를 확인할 수 있다.
개발이 참 편해졌다#
솔직히 처음에는 반신반의했다. 핸드폰으로 개발을 한다는 게 불편하지 않을까 싶었는데, 막상 해보니 생각보다 훨씬 쾌적했다.
AI가 코드를 대부분 써주기 때문에 핸드폰 키보드의 불편함이 크게 느껴지지 않았다. 내가 해야 하는 일은 방향을 잡아주고 결과를 확인하는 것이고, 그건 핸드폰으로도 충분히 가능하다.
출퇴근 시간이 생산적인 시간이 된 것은 물론이고, 자투리 시간에도 개발할 수 있다는 심리적 여유가 생겼다.
LLM이 개발 패러다임을 바꾸고 있다는 걸 새삼 실감한다.