왜 나는 ngrok 사용을 중단하고 나만의 터널링 도구를 만들었는가
Source: Dev.to
Introduction
저는 수년간 ngrok을 사용해 왔습니다. 좋은 도구였지만… 그렇지 않을 때도 있었습니다. 직접 도메인을 사용하려고 했을 때, 기본적인 기능이라 생각했지만 작은 것이 아닌 큰 비용이 요구되는 결제 장벽에 부딪혔습니다.
Typical workflow
- 로컬 서버를 실행한다.
- 웹훅이나 클라이언트 데모용으로 외부에 노출한다.
- 때때로 팀원과 공유한다.
ngrok은 이 용도에 잘 맞습니다.
Limitations of ngrok
- Custom domains(맞춤 도메인) 사용은 유료 플랜이 필요합니다(가장 큰 장애물).
- Tunnels expire(터널이 만료)되는 것이 무료 티어에서는 기본입니다.
- Pricing adds up(가격이 누적)되어 자주 사용할 경우 부담이 됩니다.
이러한 문제들이 마음에 들지 않아, 저는 더 깊이 파고들었습니다.
Building my own tunneling tool
결국 저만을 위한 작은 터널링 도구를 직접 만들었습니다.
What it lets me do
localhost를 HTTPS로 외부에 노출한다.- 내 자체 도메인을 사용할 수 있다.
- NAT 뒤에서도 별도 설정 없이 동작한다.
몇 달째 매일 사용하고 있으며, 충분히 안정적이라 믿고 있습니다.
Lessons learned
- 불안정한 네트워크 환경에서도 연결을 안정적으로 처리하기.
- 맞춤 도메인을 위한 TLS를 깔끔하게 관리하기.
- 실시간 사용에 충분히 낮은 지연 시간을 유지하기.
이 과정은 처음 예상했던 것보다 인프라 문제에 더 가깝게 다가왔습니다.
Invitation for feedback
원래는 저만을 위해 만들었지만, 다른 사람들도 같은 불편을 겪고 있을 것이라 생각했습니다. ngrok(또는 Cloudflare tunnels)을 사용하고 있다면, 여러분의 의견을 궁금해합니다:
- 무엇이 좋고/싫은가?
- 어떤 점을 개선하고 싶은가?
좋든 나쁘든 피드백을 환영합니다.