목록으로 돌아가기

블로그

연결 모드 해설: 로컬 네트워크 vs. Cloudflare Tunnel

Tactic Remote는 두 가지 연결 모드를 지원합니다: 같은 Wi-Fi에서 100ms 미만의 지연 시간을 제공하는 로컬 네트워크 모드와 어디서나 안전하게 접속할 수 있는 Cloudflare Tunnel 모드. 각각의 작동 방식과 사용 시나리오를 설명합니다.

게시일 태그: networking / architecture / cloudflare / security
블로그

이 카테고리의 제품 및 엔지니어링 업데이트를 확인하세요.

카테고리 보기

Tactic Remote 신규 사용자에게 가장 자주 받는 질문 중 하나는 "로컬 네트워크 모드와 Cloudflare Tunnel 중 어떤 것을 사용해야 하나요?"입니다. 답은 어디에서 어떻게 작업하느냐에 따라 다릅니다. 이 글에서는 두 모드를 상세히 설명합니다 — 아키텍처 차이, 성능 및 보안 특성, 그리고 Tactic Remote가 모드 간 전환을 어떻게 처리하는지를 다룹니다.

두 가지 모드, 하나의 인터페이스

기술적 세부사항에 들어가기 전에 가장 중요한 점을 먼저 말씀드리면: 어떤 연결 모드를 사용하든 iPhone 앱의 동작은 완전히 동일합니다. 세션 관리, 터미널 스트리밍, 승인 워크플로, 푸시 알림 — 이 모든 것은 iPhone이 Mac과 같은 Wi-Fi에 있든, 전국 어디에서 셀룰러 네트워크를 사용하든 동일하게 작동합니다.

연결 모드는 iPhone이 Companion 앱의 API에 도달하는 방식에만 영향을 미칩니다. 전송 계층 위의 모든 것은 동일합니다.

로컬 네트워크 모드

로컬 네트워크 모드는 기본값이며 가장 간단한 구성입니다. Mac의 Companion 앱이 HTTP/WebSocket 서버를 로컬 네트워크 포트에 바인딩하고, iPhone이 해당 IP 주소와 포트로 직접 연결합니다.

작동 방식

  1. Companion 앱이 포트 48736(설정 변경 가능)에서 내장 서버를 시작합니다.
  2. Mac이 로컬 IP 주소를 알립니다 (예: 192.168.1.42:48736).
  3. iPhone이 로컬 Wi-Fi 네트워크를 통해 해당 주소로 연결합니다.
  4. 모든 통신이 로컬 네트워크에서 두 기기 간에 직접 이루어집니다 — 중간 경유 없음.

성능

로컬 네트워크 모드는 패킷이 최단 경로로 이동하기 때문에 가장 낮은 지연 시간을 제공합니다: iPhone에서 라우터를 거쳐 Mac으로 (또는 일부 네트워크 구성에서는 Wi-Fi Direct를 통한 직접 연결).

지표일반적인 범위
연결 수립30-80ms
터미널 업데이트 지연40-100ms
승인 왕복 시간60-120ms
WebSocket ping5-20ms
짧은 단절 후 재연결0.5-1.5s

이 수치는 표준적인 가정 또는 사무실 Wi-Fi 네트워크를 기준으로 합니다. 혼잡한 네트워크(예: 컨퍼런스 Wi-Fi)에서는 지연 시간이 높아질 수 있지만, 같은 네트워크에서 로컬 네트워크 모드는 항상 터널 연결보다 우수한 성능을 보입니다.

보안 프로파일

로컬 네트워크 모드의 보안은 두 가지 계층에 기반합니다:

네트워크 격리. 로컬 네트워크가 보안 경계 역할을 합니다. 같은 네트워크의 기기만 Companion 앱의 포트에 접근할 수 있습니다. 대부분의 가정 및 사무실 환경에서는 이것으로 충분합니다.

Token 인증. 모든 API 요청에 Bearer Token이 필요합니다. 공격자가 로컬 네트워크에 있더라도 Token 없이는 Companion 앱과 상호작용할 수 없습니다.

로컬 네트워크 모드가 방어하지 못하는 경우: 네트워크 내 침해된 기기가 Token을 탈취한 경우. 로컬 네트워크를 신뢰할 수 없는 환경(공유 코워킹 스페이스, 호텔 Wi-Fi)에서는 Cloudflare Tunnel 모드를 권장합니다.

제한 사항

  • 같은 네트워크 필수. iPhone과 Mac이 같은 Wi-Fi 네트워크(또는 같은 LAN 내에서 도달 가능)에 있어야 합니다. 홈 네트워크를 벗어나면 연결이 끊어집니다.
  • IP 주소 변경. Mac의 로컬 IP가 변경되면(DHCP 임대 갱신, Wi-Fi 재연결) iPhone의 연결 설정을 업데이트해야 합니다. QR 코드 재스캔으로 완화할 수 있지만 수동 작업이 필요합니다.
  • 셀룰러에서 접속 불가. 셀룰러 데이터는 홈 네트워크로 라우팅되지 않습니다.

Cloudflare Tunnel 모드

Cloudflare Tunnel 모드는 Mac에서 Cloudflare의 글로벌 에지 네트워크로 지속적인 아웃바운드 연결을 생성합니다. iPhone이 Cloudflare URL에 연결하면, Cloudflare가 트래픽을 터널을 통해 Mac으로 라우팅합니다.

작동 방식

  1. Companion 앱이 터널 자격 증명을 사용하여 cloudflared를 관리형 자식 프로세스로 실행합니다.
  2. cloudflared가 가장 가까운 Cloudflare 에지 서버로 아웃바운드 연결을 수립합니다(이중화를 위해 일반적으로 2-4개의 동시 연결).
  3. 터널이 설정한 URL(예: claude.yourdomain.com)에서 접근 가능해집니다.
  4. iPhone이 해당 URL로 연결합니다. Cloudflare가 요청을 네트워크를 통해 Mac의 cloudflared 프로세스로 라우팅합니다.
  5. cloudflared가 요청을 Companion 앱의 로컬 서버로 전달합니다.

핵심 아키텍처 특성: Mac은 인터넷으로부터 인바운드 연결을 절대 받지 않습니다. 터널은 아웃바운드 전용이므로, 포트를 열 필요도 없고, 방화벽 규칙도 필요 없으며, 포트 스캔에 노출되지 않습니다.

성능

Cloudflare Tunnel은 트래픽이 Cloudflare의 에지 네트워크를 경유하기 때문에 체감할 수 있는 지연 시간이 추가됩니다:

지표일반적인 범위
연결 수립150-300ms
터미널 업데이트 지연100-250ms
승인 왕복 시간200-400ms
WebSocket ping40-120ms
짧은 단절 후 재연결2-4s

지연 시간은 가장 가까운 Cloudflare 에지 서버까지의 지리적 거리에 따라 달라집니다. Cloudflare는 전 세계 300개 이상의 도시에서 운영되므로, 도시 지역의 대부분의 사용자는 위 범위의 하한에 가까운 지연 시간을 경험합니다. Cloudflare 접속 지점이 적은 지역에서는 더 높은 지연 시간이 발생할 수 있습니다.

실제 사용 시 이 지연 시간은 처음 몇 분간은 느껴지지만 곧 익숙해집니다. 터미널 출력은 여전히 부드럽게 스크롤되며, 승인 상호작용도 충분히 반응성이 좋아서 대부분의 사용자가 알림 수신 후 15초 이내에 처리합니다.

보안 프로파일

Cloudflare Tunnel은 여러 면에서 로컬 네트워크 모드보다 강력한 보안 태세를 제공합니다:

인바운드 공격 표면 없음. Mac이 인터넷 연결을 수신 대기하지 않습니다. 포트 스캔 대상도, 무차별 대입 공격 대상도 없습니다.

TLS 암호화. iPhone과 Cloudflare 간, 그리고 Cloudflare와 Mac 간의 모든 트래픽이 TLS로 암호화됩니다. Tactic Remote의 Token 인증과 결합하여 두 개의 독립적인 보안 계층을 제공합니다.

Cloudflare의 DDoS 및 봇 방어가 기본적으로 터널 엔드포인트에 적용되어 자동화된 공격에 대한 추가 보호를 제공합니다.

트레이드오프: 트래픽이 Cloudflare의 네트워크를 경유합니다. 암호화되어 있지만, Cloudflare가 신뢰할 수 있는 중개자가 된다는 의미입니다. 대부분의 개인 개발자에게 편의성을 고려하면 허용 가능한 트레이드오프입니다. 민감한 환경에 대해서는 보안 및 네트워크 하드닝 가이드에서 추가 조치를 확인하세요.

제한 사항

  • Cloudflare 계정 필요. 무료 Cloudflare 계정과 Cloudflare에서 관리하는 도메인이 필요합니다. 터널 자체는 무료이지만, 초기 DNS 설정에 몇 분이 소요됩니다.
  • Cloudflare 가용성에 의존. Cloudflare에 장애가 발생하면 터널 모드 접속을 사용할 수 없습니다. 드문 경우이지만(Cloudflare의 가동률 실적은 우수합니다) 알아둘 필요가 있습니다.
  • 로컬 모드보다 높은 지연 시간. 위에서 설명한 대로, 모든 상호작용에서 로컬 네트워크 모드 대비 50-200ms가 추가됩니다.

QR 코드 연결 흐름

두 모드 모두 초기 페어링에 동일한 QR 코드 흐름을 사용하지만, QR 코드 내용은 다릅니다:

로컬 네트워크 QR 코드 인코딩 내용: http://<local-ip>:<port> 및 인증 Token.

Cloudflare Tunnel QR 코드 인코딩 내용: https://<your-tunnel-domain> 및 인증 Token.

iPhone 앱은 URL 스킴과 네트워크 특성을 기반으로 연결 모드를 자동 감지합니다. QR 코드에 로컬 IP 주소가 포함되어 있으면 로컬 네트워크 모드로 설정하고, HTTPS 도메인이 포함되어 있으면 Cloudflare Tunnel 모드로 설정합니다.

모드를 전환하려면 Companion 앱의 메뉴 바 드롭다운에서 새 QR 코드를 생성하고 iPhone으로 스캔합니다. 앱이 이전 연결 설정을 대체합니다. 전체 모드 전환은 10초 이내에 완료됩니다.

나란히 비교

요소로컬 네트워크Cloudflare Tunnel
설정 복잡도최소(자동)중간(5-10분)
지연 시간40-100ms100-250ms
네트워크 외부에서 사용불가가능
Cloudflare 계정 필요 여부불필요필요
인바운드 포트 필요 여부없음(LAN 전용)없음
서드파티 신뢰없음Cloudflare
비용무료무료(Cloudflare 무료 티어)
재연결 속도0.5-1.5s2-4s
최적 용도자택/사무실 데스크 작업통근, 출장, 원격

권장 사용 패턴

로컬 네트워크 모드를 사용해야 할 때: 데스크에 있거나 Mac과 같은 네트워크에 있을 때. 낮은 지연 시간으로 터미널 스트리밍이 눈에 띄게 매끄러워지며, 서드파티 의존성이 없습니다.

Cloudflare Tunnel 모드를 사용해야 할 때: 로컬 네트워크 외부에서 접속해야 할 때 — 통근 중, 여행 중, 다른 장소에서 작업할 때, 또는 집에서 작업을 시작하고 사무실에서 모니터링하고 싶을 때.

두 가지 모두 사용: Mac에 Cloudflare Tunnel을 설정해두고 집에 있을 때는 로컬 네트워크 모드로 연결합니다. Companion 앱은 두 모드를 동시에 제공할 수 있습니다. iPhone에 두 연결 프로필을 모두 저장하고, 앱의 연결 설정에서 한 번의 탭으로 전환할 수 있습니다.

많은 사용자가 Cloudflare Tunnel을 보험용으로 한 번 설정하고 일상적으로는 로컬 네트워크 모드를 사용합니다. 외출 시 터널 프로필로 전환합니다. 이를 통해 가능할 때 최저 지연 시간을, 필요할 때 원격 접속을 확보할 수 있습니다.

향후 계획

iPhone이 Mac과 같은 네트워크에 있는지 감지하여 로컬로 라우팅하고, 떠날 때 Cloudflare Tunnel로 폴백하는 자동 모드 선택 기능을 검토하고 있습니다. 이를 통해 수동 모드 전환이 완전히 불필요해집니다. 초기 테스트에서 iOS의 네트워크 감지는 신뢰할 수 있지만, VPN과 스플릿 터널 구성의 엣지 케이스는 아직 해결이 필요합니다.

설정 안내는 로컬 네트워크 모드의 경우 시작하기를, 원격 접속 설정의 경우 Cloudflare Tunnel 설정을 참조하세요.

Tactic Remote 사용해 보기

휴대전화로 코딩 에이전트를 원격 제어하세요

Mac, Windows, Linux 컴퓨터의 Claude Code, Codex 등에 연결하세요. iPhone이나 iPad에서 진행 상황을 확인하고 다음 요청을 보낼 수 있습니다.