개발자들이 ngrok 대신 선택한 오픈소스 대안 (Zrok)

BBetter Stack
Internet TechnologySmall Business/StartupsComputing/Software

Transcript

00:00:00완벽한 세상이라면 로컬 호스트 공유가 쉬워야 하겠지만, 왠지 모르게 항상
00:00:05일이 복잡해집니다.
00:00:06ngrok을 열면 제한에 걸리고, 무작위 URL을 받게 되죠. 10초면 끝날 일이
00:00:11모든 걸 망쳐버립니다.
00:00:12더 나쁜 건, 특정 한 사람과만 공유하고 싶은데
00:00:16공개하고 싶지는 않은 경우입니다.
00:00:17이것이 바로 zrock입니다.
00:00:18OpenZiti를 기반으로 제로 트러스트가 내장된 ngrok의 오픈 소스 대안이며, 현재 많은
00:00:24개발자들이 터널링의 고질적인 문제를 해결해주기 때문에 이 도구로 전환하고 있습니다.
00:00:33그렇다면 zrock이란 무엇일까요?
00:00:34기본적으로 포트를 열거나 라우터를 건드리지 않고, 공인 IP 없이도 로컬 앱, 파일,
00:00:40심지어 TCP 및 UDP 서비스를 공개 또는 비공개로 공유할 수 있게 해줍니다.
00:00:45모든 것이 종단간 암호화되므로, 실제로 필요한 것 이상을 노출하지 않고
00:00:50원하는 것만 노출할 수 있다는 개념입니다.
00:00:52무료이며 직접 호스팅 가능하고, 제로 트러스트 메시 기반이라서 여러분의 트래픽은
00:00:58원치 않는 한 공용 인터넷에 노출되지 않습니다.
00:01:01또한 사용감이 더 매끄럽다는 점이 마음에 듭니다.
00:01:03커스텀 도메인, 더 나은 성능, 그리고 새로운 UI 같은 것들 말이죠.
00:01:07하지만 속도가 빠르지 않다면 이 모든 게 소용없겠죠. 직접 보여드리겠습니다.
00:01:10워크플로우를 앞당길 오픈 소스 도구와 코딩 팁을 좋아하신다면, 꼭
00:01:15Better Stack 채널을 구독해 주세요.
00:01:16새로운 영상이 항상 올라오고 있습니다.
00:01:18좋습니다. 깔끔한 환경에서 로컬 호스트에 간단한 Next.js 앱을 실행 중입니다.
00:01:23거창한 건 아니고, 그냥 기본적인 기본 페이지입니다.
00:01:26이걸 공유하려면 몇 단계 과정이 필요할 것 같죠?
00:01:30포트, 설정, 아마도 몇 가지 셋업이 필요하겠지만, 이걸 보세요.
00:01:34먼저 zrock 환경이 활성화되어 있는지 확인합니다.
00:01:37zrock enable 명령어로 한 번만 설정하면 됩니다.
00:01:40그런 다음 여기서 명령어 하나만 실행하면 됩니다.
00:01:44정말 그게 전부입니다.
00:01:45설정 파일도, 추가 셋업도 없이 즉시 공개 https URL을 받게 됩니다.
00:01:51여기서 열어보면, 네, 바로 잘 작동합니다.
00:01:55앱이 인터넷에 실시간으로 연결되었습니다.
00:01:57포트 포워딩도 필요 없습니다.
00:01:58방화벽 변경도 필요 없습니다.
00:02:00이 시점에서는 공개 상태이지만, 동시에 여기서부터 문제가 생길 수도 있습니다.
00:02:05그러니 중단해 보겠습니다.
00:02:06Control C를 누릅니다. 이제 대부분의 개발자가 실제로 원하는 버전을 해보죠.
00:02:10zrock share private localhost, 같은 앱과 장치지만 이제 완전히 다르게 동작합니다.
00:02:17공개 URL 대신 토큰을 받게 되는데, 이것이 가장 큰 차이점입니다.
00:02:23이제 액세스가 그냥 열려 있는 것이 아니라,
00:02:25이 토큰을 사용해야만 권한이 부여되기 때문입니다.
00:02:28제가 신뢰하는 사람이라면 누구든 제가 준 토큰으로 zrock access private을 실행하여
00:02:34오직 그때만 접속할 수 있습니다.
00:02:36엔드포인트를 스캔하는 봇도, 앱에 접속하는 무작위 트래픽도 없습니다.
00:02:42그저 제어된 액세스일 뿐입니다.
00:02:44앱을 노출하는 대신, 원하는 대상에 따라 선택적으로 액세스를 허용한 것이죠.
00:02:49이것이 두 방식의 큰 차이이며, 앱에만 국한되지 않습니다.
00:02:53파일과 폴더에도 동일한 개념이 적용됩니다.
00:02:56backend mode drive를 통해 전체 디렉토리를 탐색 가능한 드라이브로 공유할 수 있습니다.
00:03:02단순한 터널링이 아니라 제어된 공유입니다.
00:03:04그것이 바로 zrock이 우리에게 제공하는 진짜 가치입니다.
00:03:06그럼 이 모든 게 왜 중요할까요?
00:03:08대부분의 터널링 도구는 절충안을 강요하기 때문입니다.
00:03:12ngrok은 세련되었지만 무료 티어는 제약이 많습니다.
00:03:15Cloudflare 터널은 훌륭하지만 설정과 추가 단계가 따릅니다.
00:03:19Tailscale은 좋지만 단순히 빠르게 공유하고 싶을 때는 과한 느낌이 들 수 있죠.
00:03:24그래서 속도, 프라이버시, 제어권 중 하나를 선택해야만 하는데 zrock이 그 문제를 해결합니다.
00:03:29방화벽 설정이 필요 없습니다. 아주 훌륭하죠.
00:03:32NAT 문제도 없습니다. 좋습니다.
00:03:35비공개 공유가 실제로 비공개로 유지됩니다. 우리가 원하는 것이죠.
00:03:38게임 서버, VOIP, IoT를 위한 UDP 지원과 내장된 파일 공유까지.
00:03:44이것이 바로 일상적인 개발 작업입니다.
00:03:46웹훅 테스트도 포함해서 말이죠.
00:03:48이 모든 것들에 zrock을 아주 유용하게 쓸 수 있습니다.
00:03:52그럼 빠르게 zrock과 ngrok을 비교해 보겠습니다.
00:03:54ngrok은 세련된 상용 제품 같은 느낌을 줍니다. 실제로 그렇기도 하고요.
00:03:58zrock은 여러분이 실제로 소유한 도구라는 느낌을 줍니다.
00:04:00그것이 주요 차이점입니다.
00:04:02ngrok은 폐쇄형 소스이고, zrock은 오픈 소스입니다.
00:04:05직접 호스팅할 수도 있습니다.
00:04:06제어권과 프라이버시를 중요하게 생각한다면 큰 장점이죠.
00:04:10다음은 비공개 공유입니다.
00:04:12ngrok에서는 이것이 추가 기능에 가깝습니다.
00:04:15통합된 기능이 아니죠.
00:04:16반면 zrock에서는 모든 것의 중심이 되는 핵심 개념입니다.
00:04:19프로토콜도 중요합니다.
00:04:22ngrok은 주로 HTTP와 TCP에 집중합니다.
00:04:26zrock은 그 두 가지를 모두 지원하면서 UDP도 지원합니다.
00:04:29공정하게 말하자면, ngrok은 여전히 요청 리플레이와 검사 기능을 갖추고 있습니다.
00:04:35zrock에는 그 기능이 없죠.
00:04:36그리고 그 차이는 실제로 중요할 수 있습니다.
00:04:37zrock은 좋습니다.
00:04:38하지만 완벽하지는 않습니다.
00:04:39사람들이 좋아하는 이유는 단순하게 느껴지기 때문입니다.
00:04:41프라이버시 우선입니다.
00:04:43그것은 매우 큰 장점이죠.
00:04:44그리고 직접 호스팅하면 모든 것을 완벽하게 제어할 수 있습니다.
00:04:47물론 다른 오픈 소스 도구처럼 여전히 절충해야 할 부분은 있습니다.
00:04:50더 깊이 파고들려면, 특히 셀프 호스팅 측면에서 학습 곡선이 있습니다.
00:04:55ngrok처럼 내장된 요청 검사 기능도 없습니다.
00:04:58설정 환경에 따라 약간의 지연 시간을 느낄 수도 있습니다.
00:05:01하지만 그런 단점에도 불구하고 대부분의 개발자에게는 더 적합한 도구입니다.
00:05:05그렇다면 zrock은 가치가 있을까요?
00:05:06그것이 바로 여기서 던지는 질문입니다.
00:05:08무언가를 빠르게 공유하는 것이 고민이라면, 네, 확실히 가치가 있습니다.
00:05:12특히 제어권이나 프라이버시를 포기할 필요가 없다면 말이죠.
00:05:15zrock이 그 문제를 해결해 줍니다.
00:05:16이와 같은 오픈 소스 코딩 도구와 팁을 즐기셨다면, 꼭 Better
00:05:20Stack 채널을 구독해 주세요.
00:05:21다른 영상에서 또 뵙겠습니다.

Key Takeaway

zrock은 복잡한 방화벽 설정 없이 제로 트러스트 보안과 UDP 지원을 통해 로컬 환경을 안전하고 빠르게 외부와 연결하는 ngrok의 오픈 소스 대안입니다.

Highlights

zrock은 OpenZiti 기반의 오픈 소스 터널링 도구로 제로 트러스트 보안 모델을 기본으로 내장합니다.

포트 포워딩이나 방화벽 설정 변경 없이 로컬 앱, 파일, TCP/UDP 서비스를 외부에 공유합니다.

private 모드를 실행하면 공개 URL 대신 특정 토큰을 생성하여 허가된 사용자만 접속하도록 제어합니다.

backend mode drive 기능을 사용하면 로컬 디렉토리 전체를 탐색 가능한 드라이브 형태로 공유합니다.

상용 서비스인 ngrok과 달리 직접 호스팅이 가능하며 데이터에 대한 완전한 소유권을 제공합니다.

Timeline

터널링의 한계와 zrock의 등장 배경

  • 기존 ngrok 무료 티어는 연결 제한과 무작위 URL 생성이라는 제약이 따릅니다.
  • 불특정 다수에게 공개하지 않고 특정인과 안전하게 공유할 방법이 필요합니다.

로컬 호스트 공유 과정에서 발생하는 복잡한 설정 문제를 해결하기 위해 zrock이 설계되었습니다. OpenZiti를 기반으로 구축된 이 도구는 보안 사고의 위험을 줄이는 제로 트러스트 방식을 채택합니다. 개발자들은 터널링의 고질적인 제약에서 벗어나기 위해 이 오픈 소스 솔루션으로 전환하는 추세입니다.

zrock의 핵심 기능 및 보안 메커니즘

  • 공인 IP나 라우터 설정 없이 종단간 암호화된 공유 환경을 구축합니다.
  • 제로 트러스트 메시 네트워크를 통해 원치 않는 트래픽의 공용 인터넷 노출을 차단합니다.
  • 커스텀 도메인 지원과 새로운 사용자 인터페이스를 통해 향상된 사용성을 제공합니다.

이 도구는 단순한 웹 앱 공유를 넘어 파일, TCP 및 UDP 서비스까지 범위를 확장합니다. 모든 데이터 전송은 암호화되며 사용자가 허용한 리소스만 노출하는 원칙을 고수합니다. 직접 호스팅이 가능하다는 점은 기업이나 개인 개발자에게 높은 수준의 제어권을 부여합니다.

실제 워크플로우와 비공개 공유 모드

  • zrock enable과 공유 명령어 하나로 즉시 HTTPS URL이 생성됩니다.
  • 비공개 공유 시에는 토큰을 부여받은 사용자만 zrock access 명령어로 접속 가능합니다.
  • 드라이브 모드를 활성화하여 로컬 폴더를 네트워크 드라이브처럼 운영합니다.

Next.js 앱을 활용한 시연에서 추가 설정 파일 없이 즉각적인 인터넷 연결이 이루어짐을 확인합니다. 특히 비공개 모드는 봇의 스캔이나 무작위 접속을 원천 차단하여 보안성을 극대화합니다. 파일 시스템 공유 기능을 통해 단순 터널링 이상의 협업 도구로 활용됩니다.

타사 도구 비교 및 사용 시 고려사항

  • ngrok은 사용이 간편하지만 폐쇄형 소스이며 비공개 기능이 유료 위주로 구성됩니다.
  • zrock은 UDP를 지원하여 게임 서버나 IoT 환경 테스트에 적합합니다.
  • 요청 검사 기능의 부재와 셀프 호스팅 시 발생하는 학습 곡선은 단점입니다.

Cloudflare 터널이나 Tailscale 같은 대안들과 비교했을 때 zrock은 속도와 제어권 사이의 균형을 강조합니다. ngrok이 제공하는 요청 리플레이 및 검사 기능은 부족하지만, 완전한 오픈 소스라는 점과 보안 핵심 구조가 이를 상쇄합니다. 웹훅 테스트부터 실시간 개발 공유까지 다양한 영역에서 효율적인 선택지가 됩니다.

Community Posts

View all posts