최근 '포트스팬(Portspan)'이라는 새로운 프로젝트가 공개되며, 로컬 개발 환경을 외부 인터넷에 안전하게 노출하는 데 널리 사용되는 'ngrok'의 자가 호스팅(self-hosted) 대안으로 주목받고 있습니다. 포트스팬은 개발자가 직접 소유한 서버에 설치하여 로컬 포트를 예측 가능한 호스트명으로 외부에 공개할 수 있도록 설계되었습니다. 예를 들어, `tunnel --port 3000 --domain app` 명령어를 통해 `https://app.<자신만의-기본-도메인>`과 같은 주소로 로컬 애플리케이션에 접근할 수 있습니다.
포트스팬의 핵심 기술 스택은 'frp'라는 오픈소스 프로젝트를 기반으로 합니다. frp는 서브도메인 라우팅, 토큰 인증, 암호화된 클라이언트/서버 통신을 제공하며, 여기에 Nginx가 공개 TLS(전송 계층 보안)를 처리하고 HTTP 트래픽을 frp로 전달하는 구조입니다. 이를 통해 frp의 제어 포트와 실제 애플리케이션 트래픽이 분리되어 보안을 강화합니다. 설치 과정은 DNS 레코드 설정, 서버 및 클라이언트 설치, Nginx 및 HTTPS 활성화 단계를 거치며, 특히 와일드카드 DNS를 활용하여 새로운 서브도메인마다 별도의 설정 없이 유연하게 사용할 수 있는 점이 특징입니다.
이러한 자가 호스팅 방식은 개발자에게 여러 이점을 제공합니다. 첫째, ngrok과 같은 상용 서비스의 구독료 부담을 줄일 수 있어 비용 효율적입니다. 둘째, 모든 트래픽이 개발자 소유의 서버를 통과하므로 데이터 주권과 보안 측면에서 더 큰 통제권을 가집니다. 셋째, 예측 가능한 고정 호스트명을 사용하여 개발 및 테스트 워크플로우를 간소화할 수 있습니다. 특히 1인 개발자나 소규모 팀에게는 초기 비용 부담 없이 안정적인 개발 환경을 구축할 수 있는 매력적인 대안이 될 수 있습니다. 클라우드플레어(Cloudflare) 터널과 같은 서비스도 있지만, 포트스팬은 명령 한 줄로 새로운 서브도메인을 등록하는 개발자 중심의 워크플로우에 더 적합합니다.