Xcode. Interface Builder. iOS 시뮬레이터. 파일 47개짜리 Swift 프로젝트. 전부 카페에서 iPad Pro로 돌렸습니다. 타협도, 우회도 없이요. 전체 이야기를 들려드릴게요.
"iPad에서 코딩"의 문제
Apple은 해마다 iPad를 더 강력하게 만듭니다. M 시리즈 칩, Liquid Retina XDR 디스플레이, Magic Keyboard. 그리고 해마다 개발자들은 같은 질문을 합니다. 이걸로 정말 코딩할 수 있을까?
답은 늘 "어느 정도는"이었습니다. GitHub Codespaces로 브라우저에서 VS Code를 쓸 수 있고, Blink Shell로 서버에 SSH 접속할 수도 있고, Swift Playgrounds로 간단한 실험도 할 수 있습니다. 하지만 Xcode, Android Studio, Visual Studio, dotfiles까지 갖춘 제대로 된 터미널처럼 진짜 도구가 필요해지는 순간 막힙니다.
이건 임의로 걸어 둔 제약이 아닙니다. Apple은 iPadOS에서 완전한 IDE를 허용하지 않습니다. Xcode는 (적어도 풀 버전은) iPad에서 네이티브로 돌아가지 않을 겁니다. 그리고 브라우저 기반 에디터는 아무리 좋아져도 브라우저 탭이 할 수 있는 일에 근본적으로 묶여 있습니다.
그래서 다른 방법을 써 봤습니다. IDE를 iPad로 가져오는 대신, iPad를 IDE로 가져간 겁니다.
구성: Remio + Mac mini + iPad Pro
제 구성은 민망할 만큼 단순합니다.
- Mac mini M4 — 집에서 항상 켜 둔 채 Xcode와 모든 개발 도구를 실행
- iPad Pro 13" — Magic Keyboard와 Apple Pencil을 챙겨 어디서든
- Remio — 설정 없이 둘을 연결
iPad에서 Remio를 열고 Mac mini에 표시된 PIN을 입력하면, 2초 안에 Mac 데스크톱이 눈앞에 나타납니다. 전체 해상도, 풀 컬러로요. 개발 환경도 제가 두고 온 그대로 있습니다.
설정할 VPN도, 유지할 SSH 터널도, 만들 계정도 없습니다. PIN 하나와 연결뿐입니다.
브라우저 기반 코딩보다 나은 이유
대안은 전부 써 봤습니다. 정말 전부요. 실제 Mac과 함께 쓰는 Remio가 제가 써 본 모든 브라우저 기반 솔루션보다 나은 이유를 알려드릴게요.
GitHub Codespaces / VS Code Web
Codespaces는 웹 개발에는 정말 인상적입니다. 하지만 Linux 컨테이너에서 돌아갑니다. Xcode도, Interface Builder도, iOS 시뮬레이터도, Core Data 모델 에디터도 없습니다. iOS나 macOS 앱을 만든다면 선택지가 아닙니다. 웹 개발이라 해도 브라우저 샌드박스의 제약이 있습니다. 로컬 파일 접근도, 네이티브 터미널도, 임의의 백그라운드 프로세스 실행도 안 됩니다.
SSH + 터미널 에디터
Vim은 정말 좋아합니다. 진심으로요. 하지만 파일 47개, xib, 에셋 카탈로그, Core Data 모델이 있는 SwiftUI 앱을 터미널 에디터로 만드는 건 생산성이 아니라 자학입니다. 코드 완성, 리팩터링, 라이브 프리뷰, 비주얼 디버거 같은 IDE 기능은 다 이유가 있어서 있는 겁니다.
클라우드 데스크톱 (AWS WorkSpaces, Shadow PC)
클라우드에서 Mac을 월 5~10만 원 정도에 빌릴 수 있습니다. 하지만 이미 Mac을 갖고 있잖아요. 왜 더 나쁜 걸 돈 내고 빌리나요? Remio를 쓰면 내 파일, 내 툴체인, 내 환경이 있는 진짜 내 기기를 씁니다. 지연 시간도 더 낫습니다. Mac이 버지니아의 데이터 센터가 아니라 우리 집 네트워크에 있으니까요.
실제 업무가 있는 하루
실제 근무일이 어떤지 보여드릴게요. 카페에서 보낸 어느 화요일입니다.
오전 8:30자리에 앉아 연결하고 이어서
카페에 iPad와 Magic Keyboard를 들고 앉습니다. Remio를 열고 집에 있는 Mac mini에 연결합니다. Xcode는 어젯밤 프로젝트가 그대로 열려 있습니다. 중단점도, 탭도, 커밋하지 않은 변경 사항도 전부 제가 두고 온 자리 그대로입니다.
오전 8:35SwiftUI 작성
SwiftUI 코드를 씁니다. 진짜 Mac에서 진짜 Swift 컴파일러로 돌아가는 진짜 Xcode라서 코드 완성이 완벽하게 동작합니다. 키를 누를 때마다 즉각 반응합니다. Remio의 네이티브 입력 처리 덕분에 키를 누르고 글자가 나타나기까지 체감되는 지연이 없습니다.
네이티브 입력이 호스트로 곧바로 전달됩니다. LAN에서 처리 시간은 내부 측정으로 약 8ms이고, 나머지는 디스플레이 자체의 60Hz 주사율 주기입니다.
오전 9:15iOS 시뮬레이터에서 실행
iOS 시뮬레이터에서 테스트해야 합니다. ⌘R을 누릅니다. Mac에서 시뮬레이터가 실행되고, 그 화면이 iPad에 보입니다. iPad에서 터치 제스처로 시뮬레이션된 iPhone을 조작할 수 있는데, 놀랄 만큼 자연스럽습니다. 탭하고, 쓸어 넘기고, 스크롤합니다. 그냥 됩니다.
오전 10:00Interface Builder로 UI 작업
UI 작업을 할 차례입니다. Interface Builder를 엽니다. 제약 조건을 끌어다 놓고, 레이아웃을 조정하고, 여러 기기 크기로 미리 봅니다. 브라우저 기반 에디터로는 불가능한 바로 그런 작업입니다. 비주얼 도구는 대체할 수 없습니다.
오전 11:30동시성 디버깅
까다로운 동시성 문제를 디버깅합니다. 중단점을 걸고, 코드를 한 줄씩 실행하고, 디버거에서 변수를 확인합니다. 웹 기반 흉내가 아니라 진짜를 쓰고 있어서 LLDB가 완벽하게 동작합니다.
오후 1:00Android로 전환
점심 후에는 Android 프로젝트로 넘어갑니다. Xcode를 닫고 Android Studio를 엽니다. 같은 연결, 같은 구성입니다. Remio는 제가 어떤 앱을 쓰든 상관하지 않습니다. 데스크톱 전체를 스트리밍하니까요.
오후 7:00하루 결산
하루가 끝날 즈음 Swift 코드 약 400줄을 쓰고, 버그 세 개를 고치고, TestFlight에 빌드를 올리고, 풀 리퀘스트 두 건을 리뷰했습니다. 전부 카페의 iPad에서요. 특별한 설정도, 타협도 필요 없었습니다.
이를 가능하게 하는 디테일
키보드 단축키
대부분의 원격 데스크톱 앱이 무너지는 지점입니다. Remio는 모든 키보드 단축키를 정확히 전달합니다. 빌드는 ⌘B, 실행은 ⌘R, 빠른 열기는 ⌘⇧O, 이모지는 ⌃⌘Space(네, 이것도요). Magic Keyboard의 보조 키는 Mac의 보조 키와 1:1로 대응합니다. 변환 계층도, 키 재매핑으로 인한 혼란도 없습니다.
텍스트 렌더링
코드는 작은 글씨입니다. 그것도 아주 많이요. 글자가 흐려지거나 깨지는 원격 데스크톱 앱은 개발에 전혀 쓸 수 없습니다. Remio의 텍스트에 최적화된 H.265 인코딩은 코드를 선명하게 유지합니다. 구문 강조 색상은 정확하고, 글꼴 굵기도 올바릅니다. iPad Pro의 해상도에서는 정말 Xcode가 로컬에서 돌아가는 것처럼 보입니다.
화면 간 전환
Mac mini에는 가상 보조 디스플레이가 있습니다. Remio에서는 탭 한 번으로 보고 있는 화면을 바꿀 수 있습니다. 한쪽엔 코드, 다른 쪽엔 시뮬레이터를 두는 식이죠. iPad에서는 화면 사이를 쓸어 넘기거나 Stage Manager로 작업 공간을 배치합니다.
클립보드와 파일 전송
콘솔의 오류 메시지를 복사해 나중에 검색하고 싶나요? Remio의 클립보드 동기화로 매끄럽게 됩니다. 한 기기에서 텍스트를 복사하고 다른 기기에서 붙여넣기만 하면 됩니다. 프로젝트 폴더에 참고 파일을 넣고 싶을 때는 iPad에서 Mac으로 바로 보냅니다.
작업 방식 팁
이렇게 여섯 달 동안 코딩하면서 경험을 더 좋게 만드는 몇 가지 습관이 생겼습니다.
- Mac은 유선으로 연결하세요. 제 Mac mini는 이더넷으로 공유기에 꽂혀 있습니다. 스트리밍 품질에서 가장 큰 변수를 없애 줍니다.
- iPad는 안정적인 Wi-Fi에 연결하세요. 카페의 5GHz Wi-Fi면 보통 충분합니다. 연결이 불안정하면 Remio의 적응형 화질이 자동으로 조정하지만, 연결이 안정적이면 텍스트가 꾸준히 선명합니다.
- Xcode 글꼴 크기를 13~14pt로 설정하세요. 확대하지 않아도 Remio를 통해 iPad Pro 화면에서 편하게 읽을 수 있습니다.
- 모든 것에 키보드 단축키를 쓰세요. IDE 작업에 터치나 마우스를 덜 쓸수록 더 빨라집니다. 로컬 개발에도 좋은 조언입니다.
- iPadOS 설정에서 "동작 줄이기"를 켜세요. iPad 쪽 애니메이션 부담이 조금 줄어, Remio에 성능 여유가 아주 조금 더 생깁니다.
할 수 없는 일 (솔직하게)
솔직하게 말씀드리자면, 한계는 다음과 같습니다.
- 인터넷이 필요합니다. Wi-Fi 없는 비행기에서는 안 됩니다. 기내 Wi-Fi에서 써 본 적은 있는데, 느렸지만 쓸 만했습니다.
- Mac이 켜져 있어야 합니다. 클라우드 서비스가 아닙니다. 누가 Mac의 전원을 뽑거나 업데이트로 재시작되면, 다시 켜질 때까지 연결이 끊깁니다.
- 지연에 극도로 민감한 작업, 이를테면 게임이나 실시간 오디오 제작에서는 (작지만) 눈에 띄는 지연이 있습니다. 코딩에서는 지연이 느껴지지 않습니다.
이런 트레이드오프는 실제로 있습니다. 하지만 저에게는 700그램짜리 태블릿에 개발 환경 전체를 들고 다닐 수 있다는 점이 훨씬 더 큽니다.
iPad 개발자의 꿈, 현실이 되다
저는 몇 년 동안 Apple이 Xcode를 iPad에 내놓기를 기다렸습니다. 어느 순간, 적어도 완전한 전문가용 버전은 영영 나오지 않을 수도 있다는 걸 깨달았습니다. 그래서 기다리기를 멈추고 더 나은 답을 찾았습니다.
Remio는 iPad에 Xcode를 넣어 주지 않습니다. 대신 Mac 전체를 iPad에 담아 줍니다. 모든 앱, 모든 도구, 모든 파일을요. Mac이 바로 눈앞에 있는 것처럼 느껴지는 화질과 입력 반응성으로요. 중요한 모든 면에서 실제로 그러니까요.
최고의 개발 환경은 마력이 가장 큰 환경이 아닙니다. 실제로 내가 들고 다니는 환경입니다.
Remio를 쓰는 제 iPad Pro는 지금까지 써 본 최고의 개발 머신입니다. 사양 때문이 아니라, 제가 가는 곳이면 어디든 따라오고 개발 환경 전체가 함께 오기 때문입니다.
Mac과 iPad를 가진 개발자라면 Remio를 써 보세요. 설정은 2분이면 됩니다. 계정도 필요 없습니다. 게임 쪽이 궁금하다면 iPad로 PC 게임 하기 가이드를 확인해 보세요. 코딩을 가능하게 하는 저지연 기술이 게임도 놀랍게 만들어 줍니다.