가이드

공유창고 만드는 법

내 컴퓨터의 폴더를, 아무 서버 없이, 인터넷 주소 하나로 여는 세 가지 길

Tailscale Funnel · Cloudflare Tunnel + R2 · indiebizOS

「강국진의 창고가 열렸습니다」에서 저는 공유창고를 여는 방법으로 Tailscale의 FunnelCloudflare의 Tunnel + R2를 이름만 언급하고, "자세한 것은 여러분의 AI와 상담하라"며 넘어갔습니다. 이 글은 그 미룬 설명을 채웁니다 — 무엇을 어떻게 하면 실제로 창고가 열리는지, 그리고 indiebizOS를 설치했다면 무엇이 달라지는지를.

공유창고란 무엇인가

거창한 게 아닙니다. 내 컴퓨터 안의 어떤 폴더 하나를, 인터넷 주소를 아는 사람이 브라우저로 열어볼 수 있게 하는 것입니다. 신문이든, 보고서든, 맛집 목록이든, 그 폴더에 넣어둔 파일을 남이 받아볼 수 있으면 그게 창고입니다. 제 창고는 finder.kukjinkang.uk 에 열려 있습니다.

문제는 하나입니다. 내 컴퓨터는 보통 인터넷에서 직접 접근할 수 없습니다. 집 공유기 뒤에 숨어 있고(사설 IP), 통신사도 주소를 감춥니다(CGNAT). 옛날 방식은 공유기에서 포트포워딩을 열고 방화벽을 만지는 것이었는데, 위험하고 번거롭습니다. 그래서 요즘은 반대로 합니다 — 내 컴퓨터가 바깥의 중계 서버로 먼저 '터널'을 뚫고 나가서, 방문자는 그 중계 서버를 거쳐 내 컴퓨터에 닿습니다. 포트를 열 필요도, 고정 IP도 필요 없습니다. 아래 세 방법이 모두 이 원리입니다.

공통 준비물. 어느 방법이든, 먼저 내 컴퓨터에서 그 폴더를 웹으로 내보내는 작은 서버가 하나 돌고 있어야 합니다. 가장 간단한 건 파이썬 내장 서버입니다. 공유할 폴더 안에서 터미널을 열고:
cd /공유할/폴더/경로
python3 -m http.server 8080
이제 localhost:8080 에 그 폴더가 열립니다. 아래 방법들은 이 8080 포트를 바깥 세상으로 꺼내는 서로 다른 통로일 뿐입니다.

방법 1 Tailscale Funnel — 무료, 가장 쉬움

Tailscale은 WireGuard 기반의 개인 VPN 서비스입니다. 그 부가기능인 Funnel이, 내 기기의 한 포트를 공개 인터넷에 HTTPS 주소로 그대로 노출해 줍니다. 개인 용도로 무료이고, 신용카드도 도메인도 필요 없습니다. 가장 빠른 길입니다.

1. 설치하고 로그인

tailscale.com/download 에서 설치한 뒤:

# macOS는 앱 설치 후 로그인, 리눅스는:
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up          # 브라우저가 열리며 계정 로그인(구글/깃허브 등)

2. Funnel 기능 켜기 (최초 1회)

Funnel은 안전을 위해 기본은 꺼져 있습니다. Tailscale 관리자 콘솔(admin console)의 DNS 탭에서 HTTPS 인증서를 활성화하고, Access Controls에서 Funnel 사용을 허용해야 합니다. 실은 다음 단계 명령을 처음 실행하면 "여기를 눌러 켜라"는 링크를 직접 띄워주므로, 그 링크만 눌러도 됩니다.

3. 포트를 인터넷에 열기

앞의 파이썬 서버(8080)가 돌고 있는 상태에서, 다른 터미널 창에:

tailscale funnel 8080

그러면 https://내기기이름.내tailnet이름.ts.net/ 형태의 공개 주소가 뜹니다. 이 주소를 아는 사람은 누구나 브라우저로 내 폴더를 열 수 있습니다. 끝입니다.

tailscale funnel --bg 8080   # 창을 닫아도 계속 돌게(백그라운드)
tailscale funnel status      # 지금 열린 주소 확인
tailscale funnel off         # 창고 닫기
장단점. 무료·5분 완성이 최대 장점입니다. 다만 주소가 ...ts.net 으로 길고, 방문자가 몰리거나 큰 동영상을 여럿이 볼 때 내 컴퓨터가 그 트래픽을 전부 직접 감당합니다. 문서·사진 위주의 소박한 창고엔 완벽하고, "영상을 여러 사람이 동시에" 같은 부하가 예상되면 방법 2를 고려하세요.

방법 2 Cloudflare Tunnel + R2 — 내 도메인, 캐시

좀 더 손이 가지만 보기 좋은 내 도메인 주소(예: finder.내도메인.com)를 쓸 수 있고, R2(Cloudflare의 저장소)로 캐시를 걸 수 있습니다. 자주 보는 파일·동영상을 Cloudflare가 대신 기억해 뿌려주므로, 여러 사람이 봐도 내 컴퓨터가 덜 힘듭니다. Cloudflare에 도메인 하나를 연결해 두었다는 전제가 필요합니다(무료 등록 가능).

1. cloudflared 설치 & 로그인 (최초 1회)

brew install cloudflared          # macOS (윈도우/리눅스는 공식 설치 안내 참고)
cloudflared tunnel login          # 브라우저에서 내 도메인 선택·인증

2. 터널 만들고 주소(DNS) 연결

cloudflared tunnel create mycreek        # 터널 생성 → 터널 ID가 나옴
cloudflared tunnel route dns mycreek finder.내도메인.com   # 공개 주소를 이 터널로

3. 어떤 포트로 보낼지 설정

~/.cloudflared/config.yml 파일을 만들어, 그 주소로 온 요청을 아까의 8080 포트로 넘깁니다:

tunnel: <터널 ID>
credentials-file: ~/.cloudflared/<터널 ID>.json

ingress:
  - hostname: finder.내도메인.com
    service: http://localhost:8080
  - service: http_status:404

4. 터널 켜기

cloudflared tunnel run mycreek

이제 https://finder.내도메인.com 으로 내 창고가 열립니다.

5. (선택) R2로 캐시 걸기

동영상처럼 무거운 걸 여럿이 볼 때, Cloudflare Worker를 앞단에 두고 R2 버킷에 한 번 받아온 파일을 캐시하도록 만들면, 두 번째 방문자부터는 Cloudflare가 대신 뿌려줍니다. R2는 이용료가 저렴하고 다운로드(egress) 요금이 없다는 점이 이 용도에 맞습니다. 다만 이 단계는 Worker 코드를 다뤄야 해서 손이 제법 갑니다 — 원문에서 말했듯 당장 급한 일은 아닙니다. 창고가 커지고 영상 수요가 실제로 생겼을 때 붙이면 됩니다. (그리고 이 귀찮은 조립을 대신 해주는 게 다음의 indiebizOS입니다.)

비교

항목Tailscale FunnelCloudflare Tunnel (+R2)
비용개인 무료터널 무료 · R2는 소액
도메인불필요(*.ts.net)내 도메인 필요
설정 난이도매우 쉬움(5분)중간
대량·동영상 부하내 컴퓨터가 감당R2 캐시로 완화
추천 대상처음 여는 소박한 창고주소·규모를 갖추고 싶을 때

방법 3 indiebizOS를 설치했다면

위 두 방법은 결국 터널을 뚫고 · 폴더를 서빙하고 · 캐시를 붙이는 세 가지 손일입니다. indiebizOS는 이걸 내장 기능으로 대신 해줍니다. 직접 명령어를 치는 대신, 아래 흐름을 따르면 됩니다.

1. (최초 1회) 터널 연결

Cloudflare 토큰·도메인을 준비했다면, AI에게 "공유창고 터널을 설정해줘"라고 말하면 됩니다. AI가 위 방법 2의 명령들 (cloudflared 로그인 → 터널 생성 → DNS 연결 → 설정 저장)을 대신 수행하고, 그 결과를 설정 → 터널 탭에 채워 넣습니다. 그다음엔

2. 폴더를 창고에 올리기

터널이 켜졌으면, 이제 어떤 폴더를 세상에 보여줄지만 고르면 됩니다. AI에게 "이 폴더를 공유창고에 올려줘" 라고 하거나, 공개파일(showcase) 기능을 씁니다. 핵심 규칙은 두 가지입니다:

내부적으로는 이런 어휘가 실행됩니다(참고):

[others:showcase]{op:"add", path:"/Users/.../오송맛집", mode:"files"}   # 폴더 추가
[others:showcase]{op:"basket_save", title:"오송 창고"}                  # 주소 발급(5자 코드)
[others:showcase]{op:"basket_toggle", basket_id:"bsk_…", folder_id:"fld_…"}  # 그 주소에 담기
[others:showcase]{op:"status"}                                          # 폴더·주소 현황

indiebizOS가 대신 해주는 것

주의 한 가지. 어느 방법이든 창고는 내 컴퓨터가 켜져 있을 때만 열립니다 (파일이 실제로 내 컴퓨터에 있으니까요). R2 캐시에 남은 것만 컴퓨터가 꺼져도 잠깐 보일 수 있습니다. 늘 열어두려면 컴퓨터를 켜 두거나, 항상 켜진 기기(미니 PC 등)에 두는 게 좋습니다.

정리

창고에 넣을 게 많지 않아도 괜찮습니다. 하나씩 열리고 그게 이어져 망이 되면, 우리는 서로에게서 많은 것을 얻게 됩니다. 당신의 창고도 하나 열어보시길.

— 창고 하나가, 인터넷을 조금 되찾는다.