← 궁금증 모음 🚀 따라하기
작성일 2026. 9. 21. 모든 콘텐츠는 작성일 기준의 정보를 담고 있습니다. 기간이 많이 지난 경우 내용이 달라질 수 있는 점 양지해 주시기 바랍니다.
🚀 따라하기 · 9분 읽기 · 왕초보 OK

내가 만든 프로그램에
주소 붙이기

AI랑 뭔가 만들긴 했는데, 주소창에 localhost:3000이라고 떠 있죠?
그건 내 컴퓨터에서만 열리는 주소입니다. 남에게 보여주려면 진짜 주소가 필요해요.
DuckDNS로 공짜로 하나 받는 게 이 글의 목표입니다.

🔒
지금
localhost:3000 — 나만 볼 수 있음
→
🌍
이 글을 따라하면
내이름.duckdns.org — 누구나 볼 수 있음
흔한 장면

"주소 알려줘" 했는데 알려줄 주소가 없습니다

AI와 몇 시간 씨름해서 뭔가 만들었습니다. 브라우저에 잘 뜹니다. 그런데 친구가 "링크 줘봐"라고 하면… 줄 게 없습니다. localhost:3000을 그대로 보내면 친구 컴퓨터의 3000번을 열려고 해서 아무것도 안 뜨거든요.

localhost는 "이 컴퓨터"라는 뜻입니다. 주소가 아니라 "여기"라는 말에 가까워요. 그래서 남에게 보여주려면 바깥에서 찾아올 수 있는 이름이 하나 필요합니다.

도메인을 사려면 보통 1년에 1~2만 원쯤 듭니다. 그런데 연습용·개인용이라면 공짜로 되는 방법이 있어요. 그게 DuckDNS입니다.

먼저 알아둘 것

주소, 이름, 그리고 이사 문제

용어 세 개만 비유로 정리하면 나머지는 술술 풀립니다.

🏠
IP 주소 = 집 주소
203.0.113.42 같은 숫자. 정확하지만 외우기 어려움
🏪
도메인 = 가게 이름
naver.com 처럼 사람이 외우는 이름
📮
DDNS = 주소 이전 신고
이사 가도 가게 이름으로 찾아오게 해줌
★ 이 글의 핵심

인터넷의 모든 컴퓨터에는 IP 주소라는 숫자 주소가 있습니다. 그런데 사람이 203.0.113.42를 외울 순 없으니, 도메인이라는 이름을 붙여 놓고 "이 이름 = 저 숫자"라고 안내소에 등록해 둡니다. 우리가 naver.com을 칠 때 실제로 벌어지는 일이 그거예요.

문제는 여기서 생깁니다. 집이나 사무실 인터넷의 IP 주소는 수시로 바뀝니다. 통신사가 돌려쓰기 때문인데, 공유기를 껐다 켜거나 며칠 지나면 슬쩍 달라져 있어요. 이걸 유동 IP라고 합니다.

그래서 도메인만 사두면 IP가 바뀔 때마다 안내소에 가서 손으로 고쳐야 합니다. 자고 일어나면 사이트가 죽어 있는 거죠. 이걸 자동으로 해주는 게 DDNS(다이나믹 DNS)이고, DuckDNS는 그걸 공짜로 해주는 서비스입니다.

왜 DuckDNS인가

공짜인데 조건이 거의 없습니다

항목내용
가격무료. 카드 등록도, 기간 만료도 없습니다
받는 주소 모양내가정한이름.duckdns.org
개수계정당 5개까지
가입따로 없습니다. 구글·깃허브 계정으로 로그인하면 끝
IP 자동 갱신✅ 됩니다 (이게 핵심)
💡 한계도 알아두세요. 주소가 .duckdns.org로 끝나는 건 바꿀 수 없습니다. 연습용·개인용·팀 내부용으로는 충분하지만, 손님에게 보여줄 진짜 서비스라면 나중에 .com 같은 도메인을 따로 사시는 게 좋습니다. 그때도 서버 설정은 그대로 두고 주소만 바꿔 끼우면 돼요.
따라하기 · 1부

주소 받기 — 3분이면 끝납니다

1

duckdns.org 접속해서 로그인

www.duckdns.org에 들어가서 위쪽의 로그인 버튼을 누릅니다. 구글·깃허브 계정으로 바로 됩니다. 회원가입 절차가 따로 없어요.

2

원하는 이름을 적고 add domain

입력칸에 쓰고 싶은 이름을 넣고 버튼을 누릅니다. 이미 쓰는 사람이 있으면 안 되니 몇 개 시도해 보세요. 성공하면 내이름.duckdns.org가 목록에 생깁니다.

3

토큰을 복사해 둔다

화면 위쪽에 token이라는 긴 글자열이 있습니다. 이게 "이 주소를 고칠 수 있는 열쇠"예요. 메모장에 복사해 두세요. 남에게 보여주면 안 됩니다.

4

제대로 됐는지 확인

터미널에서 ping 내이름.duckdns.org — 숫자로 된 IP가 나오면 성공입니다. 지금은 그 숫자가 내 집 IP로 잡혀 있어요.

🎉 여기까지가 "주소 받기"입니다. 아직 아무것도 안 보이는 게 정상이에요. 이름표만 만든 거고, 그 이름으로 찾아왔을 때 보여줄 가게가 아직 없으니까요. 2부에서 만듭니다.
따라하기 · 2부

IP가 바뀌어도 따라오게 만들기

DuckDNS 홈페이지는 접속한 순간의 내 IP를 기억합니다. 그런데 앞에서 말한 대로 IP는 바뀝니다. 바뀌면 그 이름으로 찾아온 사람이 엉뚱한 집 문을 두드리게 돼요.

그래서 "내 IP 바뀌었어요"라고 주기적으로 알려주는 일을 서버가 자동으로 하게 만듭니다. 방법은 간단합니다 — 주소 하나를 5분마다 열어주면 끝이에요.

그 주소가 이렇게 생겼습니다. 두 곳만 내 것으로 바꾸시면 됩니다:

https://www.duckdns.org/update?domains=내이름&token=내토큰&ip=

맨 끝 ip=는 비워 두세요. 비워 두면 DuckDNS가 "지금 접속해온 그 IP"로 알아서 잡아줍니다. 브라우저로 한 번 열어보면 OK라고 뜹니다.

🍎
맥 · 리눅스
crontab -e로 열어서 아래 한 줄 추가

*/5 * * * * curl -s "위주소" >/dev/null

5분마다 자동 실행됩니다
🪟
윈도우
작업 스케줄러에서 "5분마다 반복" 작업을 만들고, 동작으로 curl "위주소"를 실행하게 하면 됩니다
💡 직접 하기 번거로우면 AI에게 시키세요. 서버에서 Claude Code를 열고 이렇게 말하면 됩니다:

"DuckDNS 주소 내이름.duckdns.org의 IP를 5분마다 자동 갱신하도록 설정해줘. 토큰은 내가 직접 입력할게."

운영체제를 보고 알아서 등록해 줍니다. 토큰은 채팅에 붙여 넣지 마시고, AI가 만들어 준 파일에 직접 적어 넣으세요.
따라하기 · 3부

바깥에서 들어올 문 열어주기

이제 이름은 내 집을 정확히 가리킵니다. 그런데 아직 문이 잠겨 있어요. 공유기가 바깥에서 오는 접속을 전부 막고 있거든요(원래 그래야 맞습니다).

그래서 "80번·443번 문으로 온 손님은 내 서버 컴퓨터로 보내줘"라고 공유기에 등록해야 합니다. 이걸 포트포워딩이라고 해요.

문 번호용도
80일반 접속(http). 인증서를 받을 때도 이 문이 열려 있어야 합니다
443보안 접속(https). 실제로 쓰이는 건 이쪽입니다

공유기 설정 화면은 제조사마다 다르지만 보통 이 경로에 있습니다:

ipTIME고급 설정 → NAT/라우터 관리 → 포트포워드 설정
통신사 공유기포트포워딩 / 포트 포워드 메뉴
공통"내부 IP"에는 서버 컴퓨터의 주소(예: 192.168.0.10)를 넣습니다
⚠️ 여기서부터는 내 컴퓨터가 인터넷에 노출됩니다. 문을 여는 순간, 전 세계의 자동 침입 시도가 곧바로 들어옵니다. 아래 "안전하게 쓰기"를 꼭 읽어 주세요.
따라하기 · 4부

자물쇠(https) 달기 — 이게 제일 쉽습니다

주소창에 자물쇠가 없으면 브라우저가 "주의 요함"이라고 경고를 띄웁니다. 예전엔 인증서를 받는 게 큰일이었는데, 지금은 자동으로 해주는 프로그램이 있어요.

Caddy(캐디)를 쓰면 설정 파일 두 줄로 끝납니다. 인증서 발급도, 90일마다 갱신하는 것도 알아서 합니다.

설정 파일(Caddyfile)에 이렇게만 적으면 됩니다:

내이름.duckdns.org {
  reverse_proxy localhost:3000
}

"이 주소로 온 손님은 내 컴퓨터 3000번에서 돌아가는 프로그램에게 연결해줘"라는 뜻입니다. 3000 자리에 내 프로그램이 쓰는 번호를 넣으세요.

💡 이것도 AI에게 맡기면 됩니다: "Caddy 깔고 내이름.duckdns.org로 들어오면 localhost:3000으로 연결되게 설정해줘. https도 자동으로 붙여줘."
확인

다 됐는지 보는 법

확인할 것이렇게 하면 됩니다
이름이 내 IP를 가리키나ping 내이름.duckdns.org → 숫자가 나옴
자동 갱신이 도나갱신 주소를 브라우저로 열어 OK 확인. 등록한 작업이 돌고 있는지도 확인
바깥에서 열리나휴대폰 Wi-Fi를 끄고(LTE·5G 상태에서) 주소를 열어보세요. 집 Wi-Fi 안에서는 안 열려도 밖에서는 열리는 경우가 있어 헷갈립니다
자물쇠가 붙었나주소창 왼쪽에 🔒 표시 확인
여기서 다들 넘어집니다

안 될 때 보는 순서

1

집에서는 안 열리는데 밖에서는 열린다

❌ 증상
  • 집 Wi-Fi에서 주소를 치면 공유기 설정 화면이 뜨거나 아무것도 안 뜸
✅ 정상입니다
  • 공유기가 "밖으로 나갔다 다시 들어오는 길"을 못 만들어서 그렇습니다. 고장이 아니에요. 집 안에서는 192.168.… 주소로 접속하세요
2

어디서도 안 열린다

❌ 원인 후보
  • 서버 컴퓨터가 잠들었거나 프로그램이 꺼져 있음
  • 포트포워딩의 내부 IP가 바뀜
✅ 이렇게 하세요
  • 서버에서 먼저 localhost:3000이 열리는지 확인 — 여기서 안 되면 바깥 문제가 아닙니다
  • 서버 컴퓨터 IP를 고정으로 잡아두세요(공유기의 "고정 IP 할당")
3

어제까진 됐는데 오늘 안 된다

❌ 십중팔구
  • IP가 바뀌었는데 자동 갱신이 안 돌았습니다
✅ 이렇게 하세요
  • 갱신 주소를 손으로 한 번 열어 보세요. 열자마자 살아나면 자동 갱신 등록이 문제입니다
4

통신사가 막는 경우도 있습니다

❌ 증상
  • 설정을 다 맞췄는데도 바깥에서 전혀 안 열림
✅ 확인
  • 공유기에 표시된 외부 IP와, 검색창에 "내 아이피"를 쳐서 나온 IP가 다르면 통신사가 IP를 나눠 쓰는 중이라 포트포워딩이 안 됩니다. 이땐 아래 "문을 안 여는 방법"으로 가세요
중요

안전하게 쓰기

포트를 여는 건 우리 집 문을 길가 쪽으로 하나 내는 것과 같습니다. 문을 열면 손님도 오지만, 문고리를 돌려보는 사람도 옵니다. 실제로 열자마자 몇 분 안에 자동화된 접속 시도가 들어옵니다.

꼭 지킬 것이유
관리자 페이지를 열어두지 마세요DB 관리 화면, 설정 화면이 그대로 노출되면 끝입니다
기본 비밀번호를 바꾸세요admin/admin 같은 건 제일 먼저 시도됩니다
22번 포트는 열지 마세요원격 접속용 문입니다. 굳이 필요하면 비밀번호 로그인은 끄고 키 로그인만 허용하세요
중요한 파일은 그 컴퓨터에 두지 마세요연습용 서버와 개인 자료는 분리하는 게 안전합니다
안 쓸 땐 닫으세요포트포워딩은 필요할 때만 켜두는 게 제일 안전합니다
더 쉬운 길

문을 안 여는 방법도 있습니다

위 내용이 부담스럽거나, 통신사가 막아서 포트포워딩이 아예 안 되는 경우도 있습니다. 그럴 땐 공유기를 건드리지 않는 방법을 쓰면 됩니다.

🔐
나만 볼 거면 — Tailscale
내 기기들끼리만 통하는 사설 통로를 만듭니다. 인터넷에 아무것도 열지 않아 가장 안전합니다. 대신 남에게는 못 보여줍니다
☁️
남에게 보여줄 거면 — Cloudflare Tunnel
내 서버가 바깥으로 먼저 연결을 맺는 방식이라 문을 열 필요가 없습니다. 무료이고 https도 자동. 대신 설정이 한 단계 더 있습니다
💡 정리하면 — 연습·공부용이면 DuckDNS + 포트포워딩으로 충분하고, 나만 쓸 거면 Tailscale, 남에게 계속 보여줄 거면 Cloudflare Tunnel이 편합니다.

3줄 요약

localhost는 주소가 아니라 "여기"라는 뜻이라 남에게 못 보여줍니다.
DuckDNS에서 공짜 주소를 받고, 5분마다 IP를 알려주는 작업만 걸어두면 이름이 내 집을 계속 가리킵니다.
그다음 공유기에 문(80·443)을 열고 Caddy로 자물쇠를 달면 끝 — 대신 문을 열었다는 건 잊지 마세요.

주소는 공짜로 받고, 보안은 공짜가 아닙니다.
작성일 2026. 9. 21. 모든 콘텐츠는 작성일 기준의 정보를 담고 있습니다. 기간이 많이 지난 경우 내용이 달라질 수 있는 점 양지해 주시기 바랍니다.
다른 궁금증도 있으세요? 전체 보기 →
🖥️따라하기

노트북은 화면만, 실행은 서버에서 — SSH + tmux 원격 개발

8분 읽기 · 왕초보 OK
🍎따라하기

맥북 샀어요. 개발하려면 뭘 깔아야 하나요?

9분 읽기 · 왕초보 OK
💰돈과 요금

AI로 만든 프로그램, 돌리면 돈이 얼마나 나갈까?

7분 읽기 · 왕초보 OK
💬도구 이해

클로드 데스크탑이랑 클로드 코드, 뭐가 다른가요?

5분 읽기 · 왕초보 OK
📦사용 팁

AI한테 시켰는데, 왜 결과가 이상할까?

6분 읽기 · 왕초보 OK
🔌작동 원리

MCP가 도대체 뭔가요?

준비 중