휴대폰에서 컴퓨터의 파일 편집하기
리포지토리를 둘러보고, 파일을 검색하고, 정확한 수정을 한 다음 diff를 검토하고 커밋하는 실용적인 워크플로. 원격 데스크톱 없이 모두 휴대폰에서 합니다.
- CLI
- 0.2.17
- 프리뷰 ref
- a2c45c8
목표는 "휴대폰으로 개발하기"가 아닙니다.
목표는 더 좁습니다.
- 설정 값 하나 고치기
- README 한 줄 다듬기
- 경로 하나 업데이트하기
- 기능 플래그 하나 조정하기
…휴대폰에서, 리포지토리는 컴퓨터에 둔 채로.
진짜 어려움은 타이핑이 아니기 때문입니다.
자리를 뜨는 순간 파일 접근이 반쯤 되는 선택지들의 엉망진창이 된다는 점이 문제입니다.
이 가이드는 휴대폰에서 "정확한 수정 한 번"을 안전하게 할 수 있는 워크플로를 다룹니다.
트레이드오프 (의도적으로 고를 수 있도록)
"아이폰에서 원격으로 파일을 편집하고 싶다"고 할 때 보통 다음 중 하나를 뜻합니다.
- SSH + 터미널 편집기(vim/nano)
- 원격 데스크톱(화면 공유)
- 원격 폴더를 iOS 파일 앱에 마운트
- 리포지토리를 휴대폰에 클론(모바일 Git 클라이언트)
모두 쓸 수 있습니다.
문제는 어떤 것이 나에게 덜 실패하느냐입니다.
일반적인 방법과 트레이드오프
- 휴대폰에서 SSH: 기술적으로는 괜찮지만 쾌적한 편집 워크플로는 아닙니다. 작은 터미널에서 진짜 작업을 하게 됩니다.
- 원격 데스크톱: 특히 모바일 네트워크에서 무겁고 번거롭습니다. 일상 워크플로가 아니라 비상용 도구입니다.
- iOS 파일 앱에 폴더 마운트: 끌리지만 깨지기 쉽습니다. 숨김 파일, 권한, 도구의 가정 때문에 이상한 상태에 빠지기 쉽습니다.
- 휴대폰의 로컬 모바일 Git 클라이언트: iPad 중심 워크플로라면 정말 좋습니다. iOS에서는 Working Copy가 대표적인 예입니다.
하지만 어느 것도 여기서 중요한 조합을 주지 않습니다.
컴퓨터가 계속 진실 공급원이고, 파일, diff, 커밋을 위한 깔끔한 휴대폰 UI가 있는 것.
실제로 쓸 수 있는 워크플로
이 워크플로는 리포지토리를 가진 컴퓨터 위에서 원격 UI를 사용합니다.
Happier는 이 방식을 지원하는 선택지 중 하나입니다.
모든 Happier 세션은 컴퓨터 중 하나의 폴더에 연결되어 있고, 세션에서 그 폴더를 직접 다룰 수 있습니다. 휴대폰에서는 세션이 모바일 Cockpit에서 열리며, 다음 탭이 있습니다.
- Files(탐색, 검색, 업로드, 다운로드, 미리 보기)
- 작고 정확한 수정을 위한 내장 편집기(Settings → Features → Embedded file editor에서 기본으로 켜짐)
- Git(변경된 파일, diff, 커밋, pull/push, 기록)
트레이드오프: 컴퓨터가 온라인이어야 합니다.
Happier가 처음이라면 (무엇이고 어디서 받는지)
Happier를 처음 본다면: 신뢰하는 컴퓨터에 워크플로를 두고 휴대폰에서 관리할 수 있게 해 주는 오픈 소스 컴패니언 앱(모바일/웹/데스크톱)입니다.
설정하기:
- 휴대폰에서 Happier 사용하는 방법
- GitHub: https://github.com/happier-dev/happier
- 설치/다운로드: https://github.com/happier-dev/happier#how-it-works
- Discord (커뮤니티 + 지원): https://discord.gg/W6Pb8KuHfg
단계별: 휴대폰에서 컴퓨터의 파일 편집하기
1) 리포지토리 폴더에서 세션 열기
리포지토리에서 실행 중인 기존 세션을 열거나, 새 세션을 시작하고 컴퓨터의 리포지토리 폴더를 작업 디렉터리로 고릅니다.
이제부터는 휴대폰의 사본이 아니라 컴퓨터의 폴더로 작업합니다. 세션이 비활성이어도 컴퓨터가 온라인이면 Happier가 파일을 불러올 수 있습니다.
2) "파일만 필요할 때"는 Files 사용
세션에서 Files 탭을 엽니다.
휴대폰 편집에 중요한 기능은 세 가지입니다.
- 검색(트리를 스크롤하지 않도록)
- 다운로드/업로드(무언가를 옮겨야 할 때)
- "정확한 수정 한 번"에 충분한 편집기
다음 라벨의 검색창이 보이면:
- Search files...
…적극적으로 쓰세요.
휴대폰에서는 이동이 비용입니다. 검색이 그 비용을 돌려줍니다.
3) 가능한 한 작게 수정하기
원하는 파일을 엽니다.
앞으로 나아가는 데 필요한 최소한의 수정을 합니다.
그런 다음 누릅니다.
- Save
깊이 빠져들고 있다는 걸 깨달으면 누릅니다.
- Cancel
좋은 휴대폰 워크플로는 "모든 걸 하기"가 아닙니다.
"멈춤을 막는 10%를 하기"입니다.
4) 무엇을 바꿨는지 검토하기 (자기 기억을 믿지 말 것)
저장한 뒤 다음으로 전환합니다.
- Git 탭과 변경된 파일
그리고 파일의 diff를 엽니다.
리포지토리가 크면 다음이 보일 수 있습니다.
- Large diff detected
수정을 작게 유지하라는 신호입니다.
5) 결정: 유지 / 되돌리기 / 코멘트 / 커밋
휴대폰에서 수정할 때마다 명확히 결정하세요.
- 유지: 맞다.
- 되돌리기: 엉뚱한 게 바뀌었다.
- 리뷰 코멘트 남기기: 에이전트(또는 나중의 내)가 정확하게 바꿔야 한다.
- 커밋: 그 자체로 완결된 개선이다.
커밋, pull, push는 Git 쓰기 작업입니다. Git 문서 (영어)에 따르면 이들은 Settings → Features → Source control operations 뒤에 있으며, 실험적이고 기본으로 꺼져 있습니다. 0.2.12부터 리뷰에서 커밋할 파일을 정확히 고를 수 있어서, 휴대폰 수정이 에이전트의 다른 변경과 함께 커밋되지 않아도 됩니다.
커밋할 때는 다음이 보입니다.
- Commit message
- Commit
커밋은 명확하고 정직하게 유지하세요.
6) 푸시하기 (확신이 있을 때만)
Git 탭에서는 다음을 쓸 수 있습니다.
- Pull
- Push
유용한 규칙:
- pull은 언제든
- push는 diff를 빠르게 검토한 뒤에만
다음이 보이면:
- Operation requires a clean working tree.
…그대로 믿으세요.
제안이 아닙니다.
실제 예시 (휴대폰에서 고칠 만한 것)
"휴대폰에 맞는 수정":
- 기능 플래그나 설정 상수 업데이트
- 깨진 링크 수정
- 버전 고정 조정
- 환경 변수 이름 하나 수정
- 이후 작업을 풀어 주는 TODO 추가
"휴대폰에 맞지 않는 수정":
- 대규모 리팩터링
- 마이그레이션
- 여러 파일에 걸친 일괄 이름 변경
불가능해서가 아닙니다.
평소 도구에서 떨어져 있으면 미묘하게 틀리기 너무 쉽기 때문입니다.
터미널 (선택)
정말 터미널이 필요할 때도 있습니다.
내장 터미널을 쓸 수 있으면 세션에 Terminal 탭도 표시됩니다. 기능 매트릭스 (영어)에 따르면 실험적 기능이며, 연결된 데몬과 접근 가능한 머신이 필요합니다.
최후의 수단으로 다루세요.
- 파일, diff, 커밋은 UI로
- 터미널은 UI에 없는 명령이 필요할 때만
모든 걸 터미널로 한다면 "휴대폰에서 SSH" 문제를 다시 만든 셈입니다.
FAQ
그냥 모바일 Git 클라이언트를 쓰면 되지 않나요?
리포지토리를 휴대폰에 두고 싶다면 그렇습니다.
Working Copy 같은 모바일 Git 클라이언트는 훌륭합니다.
이 가이드는 "리포지토리는 내 컴퓨터에 있고, 원격으로 수정과 검토만 하고 싶다"는 경우를 위한 것입니다.
IDE를 대체하나요?
아니요.
대체하는 건 다급한 순간입니다.
"지금 당장 하나만 바꿔야 하는데 자리에 없다."
그건 다른 일입니다.