둠 스크롤링을 멈추고 둠 코딩을 시작하라: 스마트폰으로 터미널에서 빌드하기
(github.com/rberg27)- 스마트폰만으로 언제 어디서나 코딩할 수 있는 방법을 단계별로 설명한 오픈소스 가이드
- Tailscale, Termius, Claude Code를 이용해 원격 컴퓨터에 접속하고 터미널에서 직접 코드 실행 가능
- 컴퓨터는 24시간 인터넷 연결 상태를 유지해야 하며, 스마트폰에서는 VPN과 SSH 클라이언트를 설정
- 웹사이트 미리보기, 데이터베이스 접근, 세션 기록 관리 등 모바일 개발 효율을 높이는 팁 포함
- 이동 중에도 개발 환경을 유지할 수 있어 개발자의 생산성과 자유도를 확장하는 실용적 접근
Doom Coding 개요
- Doom Coding은 스마트폰을 이용해 터미널에서 코딩하는 방식으로, Doom Scrolling(무의미한 스크롤링)을 대체하는 생산적 활동 제안
- 인터넷이 연결된 환경이라면 어디서든 코딩 가능
- 작성자는 대만에서 필라델피아의 컴퓨터에 접속해 프로토타입을 개발한 경험을 언급
- 이 가이드는 5분 내 설정 가능한 단계별 안내서로 구성되어 있음
- 최신 모바일 코딩 도구(예: Claude Code on the Web)에 대한 비교 업데이트 예정
준비물
- 24시간 작동하는 인터넷 연결 컴퓨터
- 스마트폰
- Claude Pro 구독 계정
전체 구성 개요
- Tailscale, Termius, Claude Code를 이용해 원격 개발 환경 구축
- VPN과 SSH를 통해 스마트폰에서 컴퓨터 터미널에 직접 접근 가능
1단계: 컴퓨터 설정
- 절전 모드 비활성화로 컴퓨터가 항상 켜진 상태 유지
- SSH/원격 로그인 활성화 필요
- Tailscale 설치 및 로그인
- Claude Code 설치
2단계: 스마트폰 설정
- Tailscale 앱 설치 및 동일 계정 로그인
- Termius 설치 (모바일 SSH 클라이언트)
- MagicDNS 주소 확인 (예: my-computer.tailnet-name.ts.net)
- Termius에서 새 호스트 생성
- Label: 연결 이름
- Hostname: MagicDNS 주소
- Port: 22
- Username/Password: 컴퓨터 로그인 정보
3단계: 연결 및 코딩
- 스마트폰에서 Tailscale VPN 활성화
- Termius에서 호스트 선택 후 연결
- 터미널에서
claude명령어 실행 후 코딩 시작
문제 해결(Troubleshooting)
-
연결 실패 시 조치
- Tailscale VPN이 켜져 있는지 확인
- Tailscale 앱에서 기기 옆 초록색 원 표시 확인 (없을 경우 네트워크 문제)
-
컴퓨터 전원 및 잠금 해제 상태 확인
- 전원 재연결 시 반드시 잠금 해제 필요
모범 사례(Best Practices)
-
진행 상황 기록
- 세션 종료 시 Claude에게
CLAUDE.md업데이트 요청
- 세션 종료 시 Claude에게
-
웹사이트 미리보기
-
python -m http.server 3005실행 후
http://your-machine.tailnet-name.ts.net:3005/your-html-file.html접속 -
localhost대신 MagicDNS 주소 사용
-
-
데이터베이스 보기
- PostgreSQL 클라이언트 앱 사용
https://apps.apple.com/us/app/postgresql-client/id1233662353
- PostgreSQL 클라이언트 앱 사용
-
유용한 사이트 북마크
- Google OAuth, GitHub 등 자주 사용하는 개발 사이트를 Chrome 앱에서 바로 접근 가능하도록 저장
마무리
- Doom Coding은 이동 중에도 개발을 지속할 수 있는 실용적 원격 코딩 방식
- 사용자는 자신의 베스트 프랙티스와 활용 사례를 공유하도록 권장
- “Happy Doom Coding!”이라는 인사로 프로젝트 종료
Hacker News 의견들
-
24시간 컴퓨터를 켜두기 싫어서 전력 절약과 자동 기동을 동시에 해결하는 방식을 만들었음
내가 만든 ssh-wol-proxy는 SSH 접속 시 대상 머신에 WOL 패킷을 보내고, 부팅될 때까지 연결을 유지함
그리고 debian-autoshutdown을 설정해 15분간 SSH 트래픽이 없으면 자동으로 종료되게 했음
이렇게 하면 노트북이나 폰에서 SSH만 하면 30초 내에 서버가 깨어남. 물리 버튼을 누를 필요가 없음
자세한 과정은 내 블로그에 정리했고, 지금은 Proxmox VM을 원격으로 켜는 ‘machine on proxy(mop)’ 버전을 개발 중임 -
나는 Android 터미널과 Claude Code를 이용해 이동 중에도 코딩함
가족과 함께 있을 때 요리나 청소 중에도 Claude와 대화하며 개발함
약 500단어 정도의 프롬프트로, Claude가 nmap으로 네트워크 포트를 스캔하고, cURL로 퍼징하고, Hue 브리지와 오래된 Samsung TV의 API를 찾아 조명 제어 스크립트와 HTML+JS 리모컨을 만들어줬음
가장 흥미로웠던 건 Claude가 나에게 Hue 브리지의 버튼을 눌러 API 키를 받으라고 지시한 순간이었음
결과적으로 Hue의 인증 구조, Entertainment 모드, SmartThings의 websocket 기반 통신까지 이해하게 되었음. 단 500단어로 이런 학습을 얻은 건 놀라운 경험이었음- README를 읽어봤는데, 이게 전부 Claude의 CLI 인터페이스로 가능한 일인지 궁금함
파일을 수정하고 유틸리티를 실행하면서도 오류가 적어 실제로 생산적인 수준인지, 그리고 Claude만 이런 기능을 제공하는지도 알고 싶음
- README를 읽어봤는데, 이게 전부 Claude의 CLI 인터페이스로 가능한 일인지 궁금함
-
VPN을 써서 폰으로 코딩하는 글을 여러 번 봤는데, 혹시 이메일 인터페이스로 Claude Code를 쓰는 게 더 낫지 않을까 생각했음
이메일로 Claude에게 작업을 요청하고, Claude가 필요한 정보를 메일로 물어보면 답장으로 지시를 내리는 식임
프로그램 실행 결과를 스크린샷으로 보내주는 것도 가능할 듯함. VPN보다 간단해 보이는데 단점이 뭘까 궁금함- “망치만 있으면 모든 게 못처럼 보인다”는 말이 떠오름. 이메일 자동화는 지원 티켓 같은 데엔 좋지만, 즉시성이 필요한 개발 환경에는 부적합함
솔직히 말해 폰으로 코딩하는 건 흥미롭지만 실제로 하고 싶진 않음. 진지한 개발이라면 결국 노트북이 훨씬 나은 경험을 줌 - 이런 글들 대부분이 Tailscale을 언급하던데, 며칠 내에 투자 소식이 나올지도 모르겠다는 생각이 듦
- 이메일은 피드백이 느리고 불편함. 반면 Tailscale은 설정이 간단하고 안정적임
작성자는 Termius SSH 앱과 Mosh를 써서 세션을 유지하고, tmux로 작업을 이어감
나도 비슷하게 하지만, 집의 Mac 대신 $5짜리 Linode VPS를 씀. 이 방식은 Pieter Levels(@levelsio)가 처음 대중화시킨 것으로 보임 - 이메일 대신 Telegram 봇을 만들어 CLI 명령을 대신 실행하게 할 수도 있음. 라우터 포트를 열 필요도 없음
- 나는 iOS용 Claude Code 앱(Pro 계정)을 사용 중임. GitHub 리포를 연결하고 이슈를 지정하면 Claude가 알아서 작업함. 설정도 거의 필요 없었음
- “망치만 있으면 모든 게 못처럼 보인다”는 말이 떠오름. 이메일 자동화는 지원 티켓 같은 데엔 좋지만, 즉시성이 필요한 개발 환경에는 부적합함
-
예전엔 로컬 컴퓨팅과 원격 터미널 사이를 오가는 흐름이 있다고 생각했는데, 이제는 이중 원격 구조(폰 → 컴퓨터 → Claude 서버)로 가는 것 같음
- 지난 5년간 내 노트북은 거의 완전히 다른 머신의 터미널이 되었음. 웹 브라우징이나 간단한 스크립트만 로컬에서 하고, 진짜 연산은 전부 원격에서 함
AI 코딩은 연구자로서도 아직 감이 안 오는 영역임. 폰에서라면 타이핑이 불편하니 그나마 의미가 있을 듯함 - 미래에는 집에 데이터 허브를 두고, AI 연산은 근처 데이터센터에서 처리하며, 우리는 VR 헤드셋이나 태블릿으로 어디서든 접속하는 구조가 될 수도 있음
- 물론, 그보다 더 나쁜 시나리오는 모든 내부 대화와 코드가 Microsoft 서버 로그에 저장되는 상황일 수도 있음. 상상만 해도 아찔함
- 지난 5년간 내 노트북은 거의 완전히 다른 머신의 터미널이 되었음. 웹 브라우징이나 간단한 스크립트만 로컬에서 하고, 진짜 연산은 전부 원격에서 함
-
Android라면 QPython으로 충분히 코딩 가능함. 굳이 24시간 켜둔 원격 컴퓨터에 의존할 필요가 없어 보임
- Pixel 폰이라면 새로 추가된 Terminal 앱으로 Debian VM을 돌릴 수 있음. 사실상 손안의 Linux 머신임. Python뿐 아니라 Anaconda 전체도 설치 가능함
- 나는 iPhone 사용자라 아쉽지만, 서버에서 직접 빌드하는 대신 QPython으로 Dockerfile을 실행하고 git으로 푸시하는 방법도 고려 중임
-
폰으로 대화하듯 코딩할 수 있다는 건 큰 변화처럼 느껴짐
예전엔 폰 코딩이 고통스러웠지만, 대화형이라면 오히려 더 나을 수도 있음
침대에서 버그를 고치거나 이동 중 MVP를 만드는 게 가능해졌음
더 작고 통합된 접근을 원한다면 내가 만든 오픈소스 앱 빌더 tinykit을 추천함
Lovable 같은 빌더에 데이터베이스, 파일, 인증, 결제 등 내장 서비스가 있고, Svelte 5 파일 하나로 앱을 만들 수 있음. Node + PocketBase 기반이라 $2 VPS에서도 충분히 돌아감- 폰 타이핑은 여전히 끔찍함. 대신 음성 인식이 잘 된다면 꽤 쓸만할 것 같음
-
나는 toad와 opencode로 즉흥적인 아이디어를 바로 구현함. 갑자기 떠오른 생각을 기록하기엔 최고지만, 대형 프로젝트에는 한계가 있음
- 그렇지만 이런 방식을 더 큰 사이드 프로젝트에도 적용할 수 있는 구조가 있을지 궁금함
-
나는 커스텀 해커 키보드(GNU screen, emacs용 ctrl/meta 키 포함)와 포크한 SSH 클라이언트를 수년째 사용 중임
Pixel Fold를 접은 상태로도 거의 동일한 생산성을 내며, 펼치면 화면과 키가 커져 더 쾌적함
곧 출시될 Click Communicator를 기대 중임
내 세팅을 글로 정리하고 오픈소스로 공개할 계획임
Clojure처럼 간결한 언어를 쓰면 폰에서도 괜찮지만, Java처럼 긴 문법은 80자 제한 때문에 힘듦 -
“Claude Pro 구독”이라는 표현보다 ‘Doom Slopping’ 이 더 어울린다는 농담이 나왔음
- 완전히 동의함
-
폰에서 코딩하는 건 새로운 일이 아님. 예전에도 tmux로 직접 개발한 사람들이 많았음
일부 지역에서는 노트북이 없어 폰이 유일한 개발 수단이기도 함
다만 이번 글의 예시 이미지들은 꽤 웃겼음- 그런데 노트북을 판매하지 않는 나라가 실제로 있긴 한지 궁금함