If you're waiting for your prototype to be "perfect" before releasing it, that perfection never arrives. This tutorial gets your prototype on the public internet with a real URL, using drag-and-drop or a single click — no terminal, no coding, no cost. It's the final step that turns a half-built restaurant into one that actually serves customers.
Following this tutorial leaves you with three things.
What gets built
my-first-app.vercel.app)📖 Term: What does "deploy" mean? "Deploy" comes from the military — sending troops into the field. In software, it means pushing something off your local machine onto the public internet so anyone can reach it. If you imagine the service you just built as a restaurant you finished decorating, deploying is the moment you hang the sign and flip it to "OPEN." Without that step, no customer can walk in, no matter how beautiful the interior.
Tutorial metadata
| Item | Value |
|---|---|
| Time | 30 min (fast: 15, unhurried: 45) |
| Level | Beginner |
| Tools | Web browser + Google or GitHub account |
| Coding knowledge | None required |
| Terminal | None (everything in the browser) |
| Payment | None — free hosting covers it |
Why this matters — an unshipped service doesn't exist
No matter how wonderful your service looks inside the app builder, if you don't deploy it, the world has no way to know it exists. Only you can use it. To show a friend, you have to record your screen. You can't gather feedback. You can't see how real users behave. Thirty minutes of deployment turns you from "someone with an idea" into "someone running a service." That shift matters enormously when you later talk to investors, partners, or customers. The label you wear in those conversations changes.
Where you are now: you've confirmed what this tutorial produces. Next we check the prerequisites.
Just three things.
Required
Not required
.vercel.app subdomain)📖 Term: What is hosting? Hosting is renting the "computer" that runs your service. Years ago you had to buy a server, put it in your house, and keep it on 24/7. Today companies like Vercel and Netlify run those computers for you, and you just upload files. Think of it as renting a studio apartment instead of building your own house — except the rent is zero. A personal project with modest traffic stays free forever.
Plan B — if you don't yet have something to deploy
You can build a simple landing page in Claude Artifacts in two minutes. Open Claude.ai and send this prompt:
Make a single-page personal landing site as one HTML file.
Include my name, a one-line bio, three projects I'm working on, and a contact email.
Design should be minimal and clean, in dark mode.
When the result comes back, copy the code into a file named index.html. That's what you'll deploy in this tutorial.
Environment check (1 min)
Type these two addresses into your browser in turn and make sure both load:
If both load normally, you're ready.
Where you are now: you have a file (or app-builder project), a browser, and a sign-in account. Next a short WHY section frames why "deploy before it's perfect" is the correct move.
This sounds counterintuitive. "Is it okay to release something half-finished?" The question is natural. The answer is yes, and you should do it now. Three reasons.
Reason 1 — An unshipped service can't get feedback.
You can't polish to perfection alone. There are always blind spots you can't see and usage patterns you can't imagine. When I shipped my memo app and sent a friend the link, he used it in a way I hadn't anticipated — not short one-liners, but long journal-style entries. That's the moment I discovered the "memo doesn't fit on one screen" problem. I couldn't have seen it by myself, because alone I only wrote short things. Feedback exists only after you release.
Reason 2 — "Deploy when it's perfect" never comes.
I've watched this pattern play out countless times with students. "The design isn't quite right yet." "One more bug to fix first." "After I add one more feature." After those sentences, the project usually never ships. Because the standard called "perfect" moves. Fix one issue and two new ones become visible. Fix two and four appear. The illusion of perfection only survives while you don't ship. Once you ship, the bar drops to reality — either "okay this is enough for now" or "I see exactly what to fix next."
An unshipped service doesn't exist. Deployment is the start of existence, not its reward.
Reason 3 — Deployment itself is the training.
At first deployment looks huge. You worry one wrong button will break everything. Unfamiliar terms — domain, DNS, SSL — make you shrink. The first deploy is the scariest. But once you've done it once, every subsequent deploy is a five-minute routine. The hidden goal of this tutorial is to change your perception from "deployment is hard" to "deployment is a five-minute routine." That shift is worth more than any specific service you ship today.
Where you are now: you understand why "deploy now" beats "deploy when perfect." Next we actually do it, in three steps, 20–30 minutes total.
There are five main free hosting platforms. They differ in minor ways. If you have no preference, start with Vercel. It's the most popular, the UI is the most intuitive, and tutorials (in English and Korean) are most abundant.
| Platform | Strength | Recommended primary use |
|---|---|---|
| Vercel | Most popular, intuitive UI, fast | First deploy, Next.js apps, landing pages |
| Netlify | Strongest drag-and-drop flow | Dropping a single HTML file in |
| Cloudflare Pages | Largest free tier limits | High-traffic projects |
| GitHub Pages | Integrated with GitHub | If you already use GitHub daily |
| Deno Deploy | Serverless edge, instant sign-up deploy | Deno / TypeScript backends |
These five share three things. All start free, sign-up takes one click (Google or GitHub), and after deploy you get a unique URL. Their differences only start mattering at pro scale, which isn't this tutorial.
📖 2026 update — one-click deploy from AI builders AI app builders now connect directly to hosting platforms. UIs built in v0.dev deploy to Vercel in one click — no GitHub required. Apps built in bolt.new deploy to Netlify in one click. In these cases you don't need Step 2 Path A separately; the "Deploy" button inside the builder handles everything end to end.
📖 Term: Subdomain vs custom domain After deploying, you'll get an address like
my-first-app.vercel.app. Thevercel.apppart is Vercel's own domain, and themy-first-apppart in front is your subdomain. It's like living in "Apt 101" of a building Vercel owns. Later if you buy a custom domain likemyapp.com, you own the whole building. Buying a domain costs about $10–15 per year, but a free subdomain is plenty for this tutorial. Worry about custom domains only once you have real users.
The choice isn't permanent. In two weeks if another platform tempts you, upload the same files there too. For now, pick one.
Which path you take depends on what you're deploying. Pick one.
Path A — Deploying an app-builder project (Lovable / Bolt / v0.dev / Replit)
Most app builders already have "Publish" or "Deploy" built in. Using the builder's own deploy means no external hosting setup — it handles everything and hands you a subdomain under its brand. Notably, v0.dev connects to Vercel and bolt.new connects to Netlify with a single click, skipping the manual steps below entirely.
my-memo-app.lovable.app) The advantage of the builder's built-in deploy is that the backend comes along automatically. Database, authentication, file uploads — all ship connected and working. The tradeoff: the URL includes the builder's brand domain (lovable.app, netlify.app, etc.).
Path B — Deploying a single HTML file (Artifacts / static site)
HTML made in Artifacts, or a web page you wrote by hand, deploys to a static host via drag-and-drop.
index.html into it (dragging just the file alone works too)wonderful-newton-abc123.netlify.app)📖 Term: Static site vs dynamic site A static site serves the same HTML, CSS, and images to every visitor. Company pages, blogs, landing pages — all static. A dynamic site changes by user (logged-in views, personal memo lists) or over time. In this tutorial, Path B covers static sites, Path A (app builders) covers dynamic sites. It's normal to start with static and graduate to dynamic when you actually need sign-ins and stored data.
Tip — rename the subdomain
The URL you first get is something random like wonderful-newton-abc123.netlify.app. Vercel and Netlify both let you rename that freely.
Renaming to your name or project name makes the URL much cleaner (e.g., dykwon-memo.netlify.app).
Once the first deploy succeeds, you need to feel the "edit and redeploy" loop once. In practice, deploys don't end with the first one. You'll update your service many times.
For app-builder projects (Path A)
For static files (Path B)
index.html (or grab a fresh HTML from Artifacts and overwrite)Where you are now: you've actually deployed, and you've completed one edit-and-redeploy cycle. Next we confirm it truly worked.
All four should be "yes" before you call it complete.
my-app.netlify.app or my-app.vercel.app If any is "no," figure out which step stalled. The most common Path A failure is "there's no Publish button" — usually the app-builder free trial has ended; switch builders or drop to Path B. The most common Path B failure is "I dragged a file but it won't show" — usually the file isn't named index.html. Rename it exactly index.html (case-insensitive).
Variation 1 — Connecting a custom domain
If you want myapp.com instead of my-app.netlify.app, it's two steps: buy the domain, connect it. Buy at Cloudflare, Namecheap, or any registrar — typically $10–15 per year. After buying, click "Add custom domain" in Netlify or Vercel's settings and follow the DNS instructions. It propagates in 10–30 minutes. Your first service is fine on the free subdomain; think about custom domains once you pass ~100 users.
Variation 2 — Locking the site behind a password
If it's too early for the public but you want to share with a select few, use Netlify's "Password protection" (available on the free tier). Site settings → Visitor access → set a password. Visitors see a password prompt before the site. Useful for investor meetings or a small testing group.
Variation 3 — Connecting automatic deploys
Manual drag-and-drop gets old. Connect a GitHub repo instead. Put your files in a GitHub repo, click "Connect to GitHub" in Vercel or Netlify, and from that moment on every push to GitHub triggers an automatic redeploy. This takes more setup the first time but saves enormous effort afterward. It's the natural next step after this tutorial.
Variation 4 — Managing multiple projects under one account
Vercel and Netlify both let a single account host many free projects. One landing page, one memo app, one gift site for a friend — all under the same dashboard. Once the project list grows, the dashboard itself becomes your living portfolio. Each project is evidence you build and ship.
❓ My dragged file doesn't show
Usually the filename isn't index.html. It must be exactly index.html — no caps, no spaces, no Korean characters. Anything else (like profile.html) isn't recognized as the main page. Rename the file or save the file as index.html.
❓ "Your site is still deploying" stays for over 5 minutes Usually a momentary server queue. Refresh in ten minutes and it's often done. If it's still stuck after 30 minutes, the folder you uploaded probably contains something oversized (multi-gigabyte videos are the usual culprit). Free tiers at Netlify and Vercel cap total site size around 100MB–1GB. Trim what you upload.
❓ Visiting the URL shows "This site can't be reached" Deploy succeeded but DNS hasn't propagated yet. Wait 5–30 minutes, try again. Could also be a cache issue — try in an incognito window, or switch to mobile LTE to test.
❓ App builder "Publish" button does nothing Most likely browser popup-blocker. Check the address bar for a popup icon and allow it. Alternatively, the app-builder free trial might have ended — check your plan status.
❓ HTTPS certificate warning appears Netlify and Vercel both auto-issue HTTPS certificates. For the first 5–10 minutes after deploy, the certificate might still be provisioning and warnings can appear. Wait — it resolves itself.
❓ Mobile layout is broken
App-builder projects come responsive-ready. If you uploaded raw HTML, it needs <meta name="viewport" content="width=device-width, initial-scale=1"> inside <head>. Missing that tag causes desktop-sized layout on phones. Ask AI: "update this HTML to be mobile-responsive," then redeploy.
Thirty minutes ago you had a prototype that only lived inside the app builder. Now you're running a service reachable by anyone with the URL. That's not just a technical change. It's a status change — from "someone with an idea" to "someone running a service."
Two things to do right now.
This tutorial is the last chapter of SPIN Part 2 — Produce. The path continues:
The next tutorial covers automating the repetitive work that shows up once your service is running — so it keeps working while you sleep.
The first deploy is scary. Every one after takes five minutes. That's the hidden gift of this tutorial. On your next project, skip the hesitation and jump straight to Step 2. You're a person who ships now.
이 튜토리얼을 따라오시면 다음 세 가지가 손에 남습니다.
완성되는 것
my-first-app.vercel.app)📖 용어: 배포(Deploy)란 무엇인가 배포는 당신이 만드신 서비스를 공용 인터넷에 올려서 누구든 접속 가능한 상태로 만드는 일입니다. 영어로는 "deploy"인데 군대에서 병력을 전장에 파견한다는 뜻에서 왔습니다. 개발 세계에서는 "내 컴퓨터에서만 돌아가던 것을 세상에 내보낸다"는 의미로 씁니다. 비유하자면 식당을 짓고 인테리어까지 마치셨을 때, 간판을 걸고 "영업 중"이라고 붙이는 순간이 배포입니다.
이 튜토리얼의 메타 정보
| 항목 | 값 |
|---|---|
| 소요 시간 | 30분 (빠르게 15분, 차분히 45분) |
| 난이도 | 입문 |
| 필요 도구 | 웹 브라우저 + 구글 또는 깃허브 계정 |
| 사전 코딩 지식 | 필요 없음 |
| 터미널 조작 | 없음 (전부 웹 브라우저에서 진행) |
| 결제 | 필요 없음 — 무료 호스팅으로 충분 |
왜 이걸 만드시나 — 공개되지 않은 서비스는 존재하지 않습니다
앱 빌더 안에서 아무리 멋진 서비스를 만드셔도, 배포하지 않으시면 세상에 존재하지 않습니다. 당신만 쓰실 수 있고, 친구에게 보여드리려면 화면을 녹화해 보내셔야 합니다. 피드백을 받으실 수도 없고, 실제 사용자 반응을 보실 수도 없습니다. 30분의 배포 작업이 당신의 "아이디어 보유자" 신분을 "서비스 운영자" 신분으로 바꿔 드립니다. 이 신분 차이는 나중에 투자자·파트너·고객을 만나실 때 결정적 차이가 됩니다.
여기까지 오신 상황: 이 튜토리얼이 무엇을 만들어주는지 확인하셨습니다. 다음으로 준비물이 갖춰져 있는지 확인합니다.
세 가지만 준비되어 있으시면 됩니다.
필수 준비물
필요 없는 것
.vercel.app 무료 서브도메인으로 시작하시면 됩니다)📖 용어: 호스팅(Hosting)이란 무엇인가 호스팅은 당신의 서비스가 실행되고 있을 "컴퓨터"를 빌리는 일입니다. 예전에는 직접 서버 컴퓨터를 사서 집에 놓고 24시간 켜두셨어야 했습니다. 지금은 Vercel·Netlify 같은 회사가 그 컴퓨터를 대신 관리해주고, 당신은 파일만 올리시면 됩니다. 아파트를 직접 지으시는 대신 월세방을 빌리시는 것과 같은데, 이 월세방은 무료입니다. 접속자가 적은 개인 프로젝트는 평생 무료로 쓰실 수 있습니다.
Plan B — 배포할 서비스가 아직 없으시면
아티팩트(Claude Artifacts)에서 간단한 랜딩 페이지를 2분 만에 만드실 수 있습니다. Claude.ai에 접속하셔서 다음 프롬프트를 던지세요.
한 페이지짜리 개인 소개 랜딩 페이지를 HTML 한 파일로 만들어줘.
이름, 한 줄 자기소개, 하고 있는 프로젝트 3개, 연락처 이메일이 들어가게 해줘.
디자인은 깔끔한 미니멀 스타일로, 다크 모드로.
결과가 나오시면 코드를 복사해서 index.html이라는 파일로 저장하세요. 이것이 이 튜토리얼에서 배포하실 파일이 됩니다.
환경 체크 (1분)
브라우저 주소창에 다음 두 주소를 차례로 입력해서 페이지가 뜨는지 확인하세요.
둘 다 정상 접속되시면 준비 완료입니다.
여기까지 오신 상황: 배포할 파일 또는 앱 빌더 프로젝트 하나, 브라우저, 로그인 계정 — 세 가지 준비되셨습니다. 이제 왜 "완벽해지기 전에 배포"가 중요한지 짚고 본 작업으로 넘어갑니다.
직관에 어긋나는 얘기입니다. "아직 미완성인데 공개해도 되는 거예요?" 이 질문이 자연스럽습니다. 답은 네, 지금 바로 공개하셔야 합니다. 세 가지 이유로 그렇습니다.
첫 번째 이유 — 공개되지 않은 서비스는 피드백을 받을 수 없습니다.
혼자서 완벽하게 다듬으시는 것은 가능하지 않습니다. 당신이 보시지 못하는 문제, 당신이 상상하지 못하신 사용 방식이 반드시 있습니다. 제가 메모 앱을 만들어서 친구에게 링크를 보냈을 때, 친구는 제가 예상하지 못한 방식으로 메모를 썼습니다. 짧은 한 줄이 아니라 긴 일기 형식으로요. 그래서 저는 "메모가 한 화면에 다 안 들어가는 문제"를 그때 처음 알게 됐습니다. 혼자 쓸 땐 짧게만 썼으니까 모를 수 밖에 없었습니다. 피드백은 공개된 다음에만 존재합니다.
두 번째 이유 — "완벽해지면 배포"는 영원히 오지 않습니다.
이 법칙은 학생 수업에서 수없이 확인했습니다. "아직 디자인이 마음에 안 들어서요." "버그 하나만 더 잡고 올릴게요." "기능 하나만 더 추가하면 완성이에요." 이런 말씀 뒤에는 대부분 그 프로젝트가 영영 공개되지 않았습니다. 왜냐하면 완벽이라는 기준 자체가 움직이기 때문입니다. 하나 고치시면 두 개가 보이고, 두 개 고치시면 네 개가 보입니다. 배포하지 않는 동안에만 완벽이라는 환상이 유지됩니다. 배포하시면 "아 이 정도면 됐구나" 또는 "여기를 더 고쳐야겠구나"로 기준이 현실에 닿습니다.
공개되지 않은 서비스는 존재하지 않습니다. 배포가 존재의 시작점입니다.
세 번째 이유 — 배포 자체가 훈련입니다.
처음에는 배포가 커 보이십니다. 뭔가 버튼을 잘못 누르면 망할 것 같고, 도메인이니 DNS니 SSL이니 알 수 없는 용어가 나와서 위축되십니다. 첫 번째 배포가 제일 무섭습니다. 그런데 한 번 해보시면 그 다음부터는 5분이면 끝나는 반복 작업이 됩니다. "배포는 어렵다"는 감각이 "배포는 5분짜리 루틴이다"로 바뀌시는 게 이 튜토리얼의 숨은 목표입니다.
여기까지 오신 상황: "왜 지금 바로 배포인가"를 이해하셨습니다. 이제 실제로 3단계로 나눠 진행하겠습니다. 전부 합쳐 20~30분입니다.
무료 배포 플랫폼은 크게 다섯 곳입니다. 각각 조금씩 특징이 있는데, 판단 기준이 없으시면 Vercel부터 시작하세요. 가장 직관적이고, 자료가 가장 많고, 한글 튜토리얼도 풍부합니다.
| 플랫폼 | 강점 | 주 용도 추천 |
|---|---|---|
| Vercel | 가장 대중적, UI 직관적, 속도 빠름 | 처음 배포, Next.js 앱, 랜딩 페이지 |
| Netlify | 드래그앤드롭 지원 강력 | HTML 파일 하나 바로 올리기 |
| Cloudflare Pages | 무료 한도 가장 큼 | 트래픽 많은 프로젝트 |
| GitHub Pages | 깃허브와 통합 | 깃허브 계정 이미 쓰시는 분 |
| Deno Deploy | 서버리스 엣지, 가입 즉시 배포 | Deno / TypeScript 백엔드 |
이 다섯 곳의 공통점이 있습니다. 전부 무료로 시작하시고, 계정 하나 만드시면 되고, 배포 후 고유한 URL이 발급됩니다. 차이는 나중에 프로 단계에서나 중요해집니다.
📖 2026년 업데이트 — 원클릭 배포 AI 앱 빌더들이 배포 플랫폼과 직접 연동되기 시작했습니다. v0.dev로 만든 UI는 Vercel로 원클릭 배포가 됩니다 — 깃허브 없이 바로 올라갑니다. bolt.new로 만든 앱은 Netlify로 원클릭 배포가 됩니다. 이 경우 아래 2단계 경로 A를 따로 따르실 필요 없이, 앱 빌더 안에서 "Deploy" 버튼 하나로 끝납니다.
📖 용어: 서브도메인 vs 커스텀 도메인 배포를 마치시면
my-first-app.vercel.app같은 주소가 생깁니다. 여기서vercel.app은 Vercel이 소유한 도메인이고, 그 앞의my-first-app이 당신이 정하신 서브도메인입니다. 월세방에서 "101호"에 사시는 것과 비슷합니다. 나중에myapp.com같은 커스텀 도메인을 구매하시면 당신만의 아파트를 지으시는 겁니다. 도메인 구매는 연 1만 원~1만 5천 원 정도인데, 이 튜토리얼에서는 무료 서브도메인으로 충분합니다. 커스텀 도메인은 사용자가 늘어나시면 그때 고민하시면 됩니다.
선택은 영구 계약이 아닙니다. 2주 뒤 다른 플랫폼이 궁금하시면 그때 같은 파일을 거기도 올리시면 됩니다. 지금은 하나만 정하세요.
당신이 가지고 계신 재료에 따라 경로가 갈라집니다. 둘 중 하나를 고르세요.
경로 A — 앱 빌더 프로젝트를 배포하시는 경우 (러버블/Bolt/v0/Replit)
앱 빌더에는 대부분 "Publish" 또는 "Deploy" 버튼이 이미 내장되어 있습니다. 이 경우 외부 호스팅 없이 앱 빌더가 제공하는 서브도메인으로 바로 배포됩니다. 특히 v0.dev는 Vercel과, bolt.new는 Netlify와 원클릭으로 연결됩니다.
my-memo-app.lovable.app) 앱 빌더 내장 배포의 장점은 백엔드까지 자동으로 배포된다는 것입니다. 데이터베이스·인증·파일 업로드가 전부 연결된 상태로 나갑니다. 단점은 앱 빌더 브랜드 도메인이 URL에 포함된다는 것입니다 (lovable.app, bolt.new 등).
경로 B — HTML 파일 하나를 배포하시는 경우 (아티팩트/정적 사이트)
아티팩트에서 만드신 HTML, 또는 텍스트 에디터로 작성하신 웹 페이지는 정적 호스팅 플랫폼에 드래그앤드롭으로 배포됩니다.
index.html 파일이 들어 있는 폴더 전체를 그 영역에 드래그하세요 (파일 하나만 드래그하셔도 됩니다)wonderful-newton-abc123.netlify.app)📖 용어: 정적 사이트 vs 동적 사이트 정적 사이트는 HTML·CSS·이미지 파일만 있어서 누가 접속해도 같은 내용이 보이는 사이트입니다. 회사 소개 페이지, 블로그, 랜딩 페이지가 전부 정적 사이트입니다. 동적 사이트는 사용자마다 다른 내용이 보이거나(로그인/메모장), 실시간으로 데이터가 바뀌는 사이트입니다. 이 튜토리얼에서 경로 B는 정적 사이트용, 경로 A(앱 빌더)는 동적 사이트용입니다. 처음에는 정적 사이트로 시작하시고, 점점 로그인·데이터 저장이 필요해지시면 동적 사이트로 넘어가시면 됩니다.
팁 — 서브도메인 이름 바꾸기
기본 발급되는 URL은 wonderful-newton-abc123.netlify.app 같은 임의 이름입니다. Vercel·Netlify 둘 다 설정에서 이 이름을 원하시는 대로 바꾸실 수 있습니다.
당신의 이름이나 프로젝트 이름으로 바꾸시면 URL이 훨씬 깔끔해집니다 (예: dykwon-memo.netlify.app).
첫 배포가 성공하시면 반드시 한 번은 "수정 후 재배포"를 경험해 보셔야 합니다. 실제로 서비스가 운영되면 수정은 한두 번으로 끝나지 않습니다.
앱 빌더 프로젝트의 경우 (경로 A)
정적 파일의 경우 (경로 B)
index.html을 수정하세요 (또는 아티팩트에서 새 HTML을 받아 덮어쓰세요)여기까지 오신 상황: 실제로 배포를 해보시고, 수정 후 재배포까지 한 바퀴 돌리셨습니다. 이제 이것이 제대로 된 것인지 확인하는 체크 포인트로 넘어갑니다.
다음 4가지 모두 "네"라고 답하실 수 있으시면 이 튜토리얼은 완료입니다.
my-app.netlify.app 또는 my-app.vercel.app 이 중 하나라도 "아니오"시면 어느 단계에서 멈추셨는지 짚어보세요. 가장 흔한 실패는 2단계 경로 A에서 "앱 빌더에 Publish 버튼이 안 보인다"인데, 이건 대부분 앱 빌더 계정이 무료 체험 기간 종료 상태일 때 발생합니다. 다른 앱 빌더로 옮기시거나 경로 B로 전환하세요. 두 번째로 흔한 실패는 경로 B에서 "드래그한 파일이 반영이 안 된다"인데, 이건 index.html이 아니라 다른 파일명으로 저장된 경우입니다. 파일명을 정확히 index.html로 맞추세요 (대소문자 구분 없이).
변형 1 — 커스텀 도메인 연결하기
my-app.netlify.app 같은 서브도메인 말고 myapp.com 같은 당신만의 도메인을 쓰고 싶으시면, 도메인 구매 → 연결 2단계입니다. 구매는 Cloudflare, Namecheap, 가비아(한국) 중 아무 데서나 하세요. 연 1만 원1만 5천 원 정도입니다. 구매 후 Netlify·Vercel 설정에서 "Add custom domain"을 클릭하시고 안내에 따라 DNS 설정만 바꾸시면 됩니다. 1030분 안에 연결됩니다. 첫 서비스는 무료 서브도메인으로 충분하고, 사용자 수가 100명을 넘어서시면 그때 커스텀 도메인을 고민하시면 됩니다.
변형 2 — 비밀번호로 사이트 잠그기
아직 공개가 이르지만 특정 사람에게만 보여드리고 싶으시면, Netlify의 "Password protection" 기능을 쓰세요 (무료 티어에서도 됩니다). Site settings → Visitor access에서 비밀번호를 설정하시면 접속 시 비밀번호 입력창이 뜹니다. 투자자 미팅 직전, 또는 소수 테스트 사용자에게만 공유하실 때 유용합니다.
변형 3 — 자동 배포 연결하기
매번 수동으로 드래그앤드롭하시는 게 번거로우시면 깃허브와 연동하세요. 깃허브 저장소에 파일을 올리시고, Vercel·Netlify에서 "Connect to GitHub"를 클릭하시면, 이후로는 깃허브에 파일을 업데이트하실 때마다 자동으로 재배포됩니다. 이 단계는 처음에는 복잡해 보이지만 한 번 세팅하시면 이후 작업이 훨씬 빨라집니다. 이 튜토리얼 이후 다음 단계로 시도하실 가치가 있습니다.
변형 4 — 여러 프로젝트를 한 계정으로 관리하기
Vercel·Netlify 모두 한 계정에 무료로 여러 프로젝트를 연결하실 수 있습니다. 랜딩 페이지 하나, 메모 앱 하나, 친구 선물용 웹사이트 하나, 전부 같은 대시보드에서 관리하시면 됩니다. 프로젝트 리스트가 쌓이시면 그 자체가 당신의 "살아있는 포트폴리오"가 됩니다.
❓ 드래그앤드롭한 파일이 반영이 안 됩니다
대부분 파일명이 index.html이 아닌 경우입니다. 대소문자, 공백, 한글 없이 정확히 index.html이어야 합니다. 다른 파일(예: profile.html)은 메인 페이지로 인식되지 않습니다. index.html로 이름을 바꾸시거나, 해당 파일을 index.html로 저장하세요.
❓ "Your site is still deploying"이 5분 이상 걸립니다 대부분 서버 일시적 지연입니다. 10분 후 새로고침하시면 완료되어 있는 경우가 많습니다. 30분 넘어가시면 업로드한 폴더에 이상한 파일(수 GB짜리 동영상 등)이 포함되어 있을 가능성이 높으니 확인하세요. Netlify·Vercel 무료 티어는 사이트 총 용량 100MB~1GB 제한이 있습니다.
❓ URL에 접속하니 "This site can't be reached"가 뜹니다 배포는 됐지만 DNS 전파에 시간이 걸리는 경우입니다. 5분~30분 기다리신 다음 다시 접속해보세요. 캐시 문제일 수도 있으니 시크릿 창(Incognito)으로 접속해보시거나, 모바일 LTE로 전환해 시도하시는 것도 방법입니다.
❓ 앱 빌더 "Publish" 버튼을 눌러도 아무 일도 안 일어납니다 브라우저 팝업 차단 때문일 가능성이 높습니다. 주소창 오른쪽에 팝업 차단 아이콘이 뜨는지 확인하시고 허용하세요. 또는 해당 앱 빌더 계정의 무료 체험 기간이 끝났을 수도 있으니 결제 상태를 확인하세요.
❓ HTTPS 인증서 경고가 뜹니다 Netlify·Vercel 둘 다 자동 HTTPS를 제공합니다. 배포 직후 5~10분간은 인증서 발급 중이라 경고가 뜰 수 있습니다. 기다리시면 자동 해결됩니다.
❓ 모바일에서 디자인이 깨집니다
앱 빌더로 만드신 경우는 반응형이 자동 적용되어 있습니다. HTML 파일 하나를 올리신 경우라면 <meta name="viewport" content="width=device-width, initial-scale=1"> 태그가 <head> 안에 있어야 합니다. 없으시면 AI에게 "이 HTML을 모바일 반응형으로 수정해줘"라고 요청하시고 재배포하세요.
30분 전 당신은 앱 빌더 안에만 존재하는 프로토타입을 가지고 계셨습니다. 지금은 누구든 URL을 아는 사람이 접속 가능한 서비스를 운영 중이십니다. 이 차이는 단순한 기술적 차이가 아닙니다. "아이디어를 가진 사람"에서 "서비스를 운영하는 사람"으로 신분이 바뀐 순간입니다.
지금 바로 하실 일 두 가지입니다.
이 튜토리얼은 SPIN 시리즈의 2부 "Produce" 마지막 장입니다. 이어지는 흐름은 다음과 같습니다.
다음 튜토리얼에서는 배포하신 서비스가 작동하는 동안 반복 업무를 자동화하는 법을 다룹니다. 당신이 잠자는 시간에도 서비스가 돌아가게 만드는 기술입니다.
첫 배포는 두렵고 그 다음부터는 5분이면 끝납니다. 이것이 이 튜토리얼의 숨겨진 선물입니다. 다음 프로젝트를 시작하실 때, 배포를 고민하지 마시고 2단계부터 바로 시작하세요. 이제 당신은 배포하는 사람입니다.
Three short questions. Get them all right and the completion stamp is auto-granted. Answers stay on your device.
Q1. Which is the best reason this tutorial gives for "deploy now, before it's perfect"?
The WHY section gives three reasons: unshipped services can't get feedback, "perfect" is a moving target that never arrives before release, and deployment itself is the training. The Perfection Loop vs Deploy Loop diagram visualizes exactly that. The other options are either absent from the tutorial or factually wrong.
Q2. In the STEPS section, what is the most important condition for "Path B" — deploying a single HTML file?
The TROUBLE and VERIFICATION sections both flag filename as the most common failure. Netlify, Vercel, and similar static hosts recognize `index.html` as the root page — caps, spaces, or non-ASCII characters break that recognition. The other options contradict the tutorial or are factually false.
Q3. Why does the VERIFICATION checklist include "open the URL on your phone"?
Deployment fundamentally means "reachable from anywhere on the public internet." Working only on the same computer on the same Wi-Fi doesn't prove that. Loading on a phone over LTE confirms the site is reachable from outside devices and outside networks, which is the purpose of Verification item 2. The other options are technically false.
Completion is stored on this device only. See your full passport at /member.