개발 같이해요/AI

[바이브코딩] 배포 완벽 가이드 - 만든 웹사이트를 인터넷에 공개하는 방법

Rio - Moon 2026. 9. 17. 00:58
728x90
반응형
바이브코딩으로 웹사이트를 만들었다면 이제 마지막 관문은 '배포'입니다.

Cursor나 AI 코딩 도구를 이용해 화면을 만들고 기능까지 구현했는데, 내 컴퓨터에서만 실행된다면 아직 다른 사람은 그 서비스를 사용할 수 없습니다.

이번 글에서는 내 컴퓨터의 localhost에서 실행되던 웹서비스를 실제 인터넷 주소로 공개하는 과정을 알아보겠습니다. 배포가 무엇인지부터 환경변수, 빌드, 도메인, HTTPS, 로그 확인과 롤백까지 초보자 기준으로 하나씩 정리해보겠습니다.

1. 웹서비스 배포란 무엇일까?

바이브코딩을 하다 보면 어느 순간 AI가 이런 말을 합니다.
“개발이 완료되었습니다. 이제 애플리케이션을 배포하면 실제 사용자가 접속할 수 있습니다.”
여기에서 말하는 배포(Deployment)란 내가 만든 프로그램을 다른 사람이 사용할 수 있도록 인터넷에 공개하는 과정입니다. 우리가 개발하는 동안에는 보통 내 컴퓨터에서 웹사이트를 실행합니다. 예를 들어 브라우저 주소창에 다음과 같은 주소가 보일 수 있습니다.
http://localhost:3000
이 주소는 내 컴퓨터 안에서만 접속할 수 있는 개발용 주소입니다. 반대로 배포가 완료되면 다음과 같은 실제 인터넷 주소를 가지게 됩니다.
https://myapp.com

 

이제 친구에게 이 주소를 보내거나 고객에게 서비스를 공개할 수 있습니다.
💡 쉽게 이해하기

개발이 음식을 주방에서 만드는 과정이라면, 배포는 완성된 음식을 실제 손님에게 내놓는 과정이라고 생각하면 쉽습니다.

2. localhost와 실제 서비스는 무엇이 다를까?

처음 바이브코딩을 시작하면 대부분 자신의 컴퓨터에서 웹사이트를 실행합니다. 이것을 보통 로컬 개발 환경(Local Development Environment)이라고 합니다. 반대로 실제 사용자가 접속하는 서버 환경을 운영 환경(Production Environment)이라고 부릅니다.

 

 

구분 로컬 개발 환경 운영 환경
사용자 주로 개발자 본인 실제 서비스 사용자
주소 localhost:3000 https://example.com
목적 개발 및 테스트 실제 서비스 제공
데이터 테스트 데이터 실제 사용자 데이터
오류 영향 개발자에게만 영향 사용자에게 직접 영향
여기서 초보자가 가장 많이 착각하는 부분이 있습니다. 내 컴퓨터에서 잘 실행된다고 해서 배포 환경에서도 반드시 잘 실행되는 것은 아닙니다. 내 컴퓨터에는 설치되어 있던 프로그램이 서버에는 없을 수도 있고, 환경변수가 누락될 수도 있으며, 데이터베이스 주소가 다를 수도 있습니다. 그래서 배포 과정에서는 단순히 파일을 인터넷에 올리는 것보다 운영 환경에서도 동일하게 실행될 수 있도록 설정하는 과정이 중요합니다.

3. 배포하기 전에 무엇을 확인해야 할까?

AI가 코드를 작성해줬다고 해서 바로 배포 버튼부터 누르는 것은 권장하지 않습니다. 배포하기 전 최소한 몇 가지를 확인해야 합니다.
기능 확인
↓
오류 확인
↓
환경변수 확인
↓
프로덕션 빌드 확인
↓
Git 저장
↓
배포
먼저 핵심 기능을 직접 테스트합니다. 회원가입 서비스라면 회원가입과 로그인이 되는지, 게시판이라면 글 작성과 삭제가 정상적으로 동작하는지 확인합니다. 그다음 브라우저 개발자 도구나 터미널에 빨간색 오류가 계속 발생하고 있지는 않은지도 확인합니다. 프로젝트에 따라 다음과 같은 명령어로 실제 배포용 빌드가 정상적으로 만들어지는지 확인할 수도 있습니다.
npm run build
이 명령어는 많은 JavaScript 웹 프로젝트에서 개발용 코드가 실제 서버에서 사용할 수 있는 형태로 정상 변환되는지 확인할 때 사용됩니다. 단, 프로젝트마다 명령어가 다를 수 있으므로 AI에게 다음처럼 물어봐도 좋습니다.
AI에게 이렇게 요청해보세요.

“이 프로젝트를 실제 서비스에 배포하려고 해. 배포하기 전에 확인해야 할 항목을 점검하고, 프로덕션 빌드가 정상적으로 되는지도 확인해줘.”

4. 환경변수는 왜 따로 설정해야 할까?

배포 과정에서 초보자가 가장 자주 막히는 부분 중 하나가 바로 환경변수(Environment Variable)입니다. 환경변수란 프로그램에서 사용하지만 소스코드에 직접 넣어두면 안 되는 값이나, 개발 환경과 운영 환경에서 서로 달라지는 설정값을 따로 관리하는 방법입니다. 대표적인 환경변수에는 다음과 같은 것들이 있습니다.
  • API Key
  • 데이터베이스 주소
  • 로그인 Secret Key
  • 외부 API 주소
  • 서비스 URL

 

로컬에서는 보통 다음과 같은 파일을 사용하기도 합니다.
.env
.env.local
예를 들어 다음처럼 사용할 수 있습니다.
API_KEY=your-api-key
DATABASE_URL=your-database-url
하지만 실제 서버에서는 `.env` 파일을 그대로 업로드하기보다 배포 서비스에서 제공하는 환경변수 설정 화면에 값을 등록하는 경우가 많습니다.
⚠️ API Key를 GitHub에 올리지 마세요.

OpenAI API Key, 데이터베이스 비밀번호, Secret Key 같은 값이 GitHub 공개 저장소에 올라가면 다른 사람이 해당 값을 사용할 수 있습니다.

API Key는 소스코드에 직접 작성하지 않고 반드시 환경변수로 분리하는 습관을 들이는 것이 좋습니다.
바이브코딩을 할 때도 AI에게 비밀키를 코드에 직접 작성해달라고 하기보다는 이렇게 요청하는 것이 좋습니다.
“API Key는 코드에 직접 넣지 말고 환경변수로 관리하도록 수정해줘. .env 파일도 Git에 올라가지 않도록 확인해줘.”

5. 실제 배포는 어떤 순서로 진행될까?

웹서비스 배포 방식은 사용하는 기술과 서비스에 따라 조금씩 다릅니다. 하지만 전체적인 흐름은 대부분 비슷합니다
 
소스코드 작성
↓
Git 저장소에 업로드
↓
배포 서비스와 저장소 연결
↓
프로젝트 빌드
↓
환경변수 적용
↓
서버 배포
↓
웹사이트 주소 생성
초보자에게는 GitHub 저장소와 배포 서비스를 연결하는 방식이 비교적 이해하기 쉽습니다. 예를 들어 프론트엔드 중심 웹사이트라면 Vercel, Netlify, Cloudflare Pages 같은 서비스를 사용할 수 있고, 백엔드 서버가 필요한 프로젝트에서는 Render나 기타 클라우드 환경을 활용할 수도 있습니다. 어떤 서비스를 선택해야 할지 모르겠다면 AI에게 현재 프로젝트를 분석하도록 요청하면 됩니다.
예시 프롬프트

“현재 프로젝트의 package.json과 폴더 구조를 확인하고 이 프로젝트를 배포하기 적합한 방법을 설명해줘. 초보자가 진행할 수 있도록 배포 순서도 단계별로 알려줘.”
중요한 것은 특정 배포 서비스를 모두 외우는 것이 아닙니다. 내 코드 → 빌드 → 서버 → 인터넷 주소 이 흐름을 이해하는 것이 먼저입니다.

6. 도메인과 HTTPS는 무엇일까?

처음 배포하면 배포 서비스가 자동으로 임시 주소를 만들어주는 경우가 있습니다. 예를 들어 다음과 같은 형태입니다.
https://my-project.example.app
이 주소만으로도 서비스에 접속할 수 있지만, 실제 서비스처럼 운영하고 싶다면 별도의 도메인을 연결할 수 있습니다. 예를 들어:
https://steptella.com
https://app.example.com

 

처럼 내가 원하는 주소를 사용할 수 있습니다.

 

 
도메인을 서버와 연결할 때 등장하는 것이 DNS입니다. DNS는 쉽게 말해 도메인 이름과 실제 서버 위치를 연결해주는 인터넷 주소록 이라고 이해하면 됩니다. 그리고 주소 앞에 붙는 `https://`는 브라우저와 서버 사이의 통신을 암호화합니다. 요즘 대부분의 주요 배포 플랫폼은 HTTPS 인증서 적용 과정을 상당 부분 자동화해주기 때문에 초보자가 직접 복잡한 인증서 설정을 하지 않아도 되는 경우가 많습니다.
💡 처음에는 기본 주소로 테스트하세요.

처음 배포할 때부터 도메인까지 한꺼번에 연결하려고 하면 문제가 생겼을 때 원인을 찾기 어려워집니다.

먼저 배포 서비스에서 제공하는 기본 URL이 정상적으로 열리는지 확인하고, 그다음 도메인을 연결하는 순서가 좋습니다.

7. 배포가 끝났다고 개발이 끝난 것은 아니다

처음 서비스를 인터넷에 공개하면 이런 생각이 들 수 있습니다. “이제 개발이 끝났구나.” 하지만 실제 서비스 개발에서는 배포가 끝이 아니라 운영의 시작입니다. 서비스가 정상적으로 실행되는지 계속 확인해야 합니다. 대표적으로 살펴보는 것이 다음과 같습니다.
  • 서버가 정상적으로 실행되고 있는지
  • 사용자가 어떤 오류를 경험하고 있는지
  • API 요청이 실패하지 않는지
  • 페이지 로딩이 지나치게 느리지 않은지
  • 데이터베이스 오류가 발생하지 않는지
특히 문제가 생겼을 때 가장 먼저 확인하는 것이 로그(Log)입니다. 로그에는 서버에서 어떤 일이 발생했는지 기록됩니다. 예를 들어 다음처럼 오류를 확인할 수 있습니다.
ERROR
POST /api/orders
500 Internal Server Error
여기서 `500` 오류가 발생했다면 서버 내부에서 문제가 발생했다는 의미입니다. 바이브코딩에서는 이 로그를 그대로 AI에게 전달하면 문제 원인을 찾는 데 도움이 됩니다.
AI에게 이렇게 요청할 수 있습니다.

“배포된 서버에서 아래 오류가 발생하고 있어. 로그를 분석해서 가능한 원인을 설명하고, 수정해야 할 파일을 찾아줘.”
단, 로그를 AI에게 전달할 때도 API Key, 비밀번호, 사용자 개인정보 등이 포함되어 있지 않은지 확인하는 것이 좋습니다.

8. 배포 후 문제가 발생하면 롤백하면 된다

서비스를 수정해서 새 버전을 배포했는데 갑자기 오류가 발생할 수도 있습니다. 이럴 때 알아두면 좋은 개념이 롤백(Rollback)입니다. 롤백이란 현재 버전에 문제가 있을 때 이전에 정상적으로 동작했던 버전으로 되돌리는 것입니다.
 

 
예를 들어 다음과 같은 흐름입니다.
v1.0 정상 운영
↓
v1.1 새 기능 배포
↓
오류 발견
↓
v1.0으로 롤백
↓
오류 수정
↓
v1.2 재배포
이것이 Git을 배우는 이유 중 하나이기도 합니다. Git으로 코드의 버전을 관리하고 있으면 어떤 변경 이후 문제가 생겼는지 비교하기 쉬워집니다.
💡 한 번에 너무 많은 기능을 배포하지 마세요.

바이브코딩은 개발 속도가 빠르기 때문에 AI에게 여러 기능을 한꺼번에 요청하기 쉽습니다. 하지만 기능을 작게 나누어 수정하고 테스트한 뒤 배포하면, 문제가 발생했을 때 원인을 찾기가 훨씬 쉬워집니다.

9. 초보자가 기억해야 할 배포 체크리스트

처음에는 배포라는 단어 자체가 어렵게 느껴질 수 있습니다. 하지만 실제로 몇 번 경험해보면 일정한 순서가 반복된다는 것을 알 수 있습니다.
단계 확인할 내용
1. 기능 테스트 주요 기능이 로컬에서 정상 동작하는지 확인
2. 오류 확인 브라우저와 터미널에 치명적인 오류가 없는지 확인
3. 환경변수 API Key와 비밀번호가 코드에 포함되어 있지 않은지 확인
4. Build 프로덕션 빌드가 정상적으로 완료되는지 확인
5. Git 배포할 코드를 저장소에 안전하게 저장
6. Deploy 배포 서비스에서 프로젝트 빌드 및 배포
7. 실제 URL 테스트 PC와 모바일에서 실제 주소로 접속해보기
8. 로그 확인 배포 후 서버 오류나 API 오류 확인
9. 도메인 기본 주소가 정상 동작한 뒤 필요하면 도메인 연결
10. 운영 서비스 상태를 확인하고 작은 단위로 지속 개선

10. 바이브코딩에서 배포까지 AI에게 맡겨도 될까?

어느 정도는 가능합니다. AI는 프로젝트 구조를 분석하고, 빌드 오류를 수정하고, 환경변수 목록을 정리하고, 배포 설정 파일을 작성하는 데 큰 도움을 줄 수 있습니다. 특히 Cursor나 AI 코딩 에이전트에게 프로젝트 전체를 보여줄 수 있다면 초보자가 직접 모든 설정을 이해하지 못하더라도 배포 과정을 빠르게 진행할 수 있습니다. 하지만 한 가지는 꼭 기억해야 합니다. AI가 배포를 대신해준다고 해서 운영 책임까지 대신지는 않습니다. 환경변수에 어떤 값이 들어가는지, 어떤 데이터베이스를 사용하고 있는지, 서비스가 어느 서버에 배포되어 있는지 정도는 사용자가 알고 있어야 합니다. 그렇지 않으면 나중에 오류가 발생했을 때 무엇을 수정해야 하는지 판단하기 어려워집니다.
⚠️ 특히 결제·회원정보·개인정보가 있는 서비스는 주의하세요.

간단한 개인 프로젝트와 실제 사용자 데이터를 저장하는 운영 서비스는 요구되는 보안 수준이 다릅니다. 실서비스에서는 권한 관리, 데이터 백업, 개인정보 보호, 보안 업데이트 등도 함께 고려해야 합니다.

11. 정리 - 내가 만든 서비스를 인터넷에 공개해보자

이번 글에서는 바이브코딩 배포 과정에서 알아야 할 핵심 개념을 살펴봤습니다. 배포를 처음 경험하면 서버, 도메인, DNS, 환경변수 같은 생소한 단어가 한꺼번에 등장하기 때문에 어렵게 느껴질 수 있습니다. 하지만 전체 흐름은 생각보다 단순합니다.
내 컴퓨터에서 개발
↓
기능 테스트
↓
환경변수 설정
↓
빌드
↓
클라우드에 배포
↓
실제 URL 확인
↓
도메인 연결
↓
로그 확인 및 지속 개선
여기까지 직접 해봤다면 이제 단순히 AI로 코드를 만들어보는 수준을 넘어 아이디어 → 개발 → 테스트 → 배포 → 운영 이라는 하나의 실제 웹서비스 개발 흐름을 경험한 것입니다. 그리고 이것이 바이브코딩의 가장 큰 장점 중 하나입니다. 과거에는 서버와 배포 과정까지 배우는 데 상당한 시간이 필요했지만, 지금은 AI에게 현재 상황을 설명하고 하나씩 문제를 해결하면서 초보자도 실제 서비스 공개까지 도전할 수 있습니다. 처음부터 완벽한 서비스를 만들려고 하지 않아도 됩니다. 작은 서비스를 만들고, 배포하고, 직접 사용해보고, 문제가 생기면 수정하고 다시 배포해보세요. 이 과정을 몇 번 반복하면 바이브코딩은 단순한 AI 사용법이 아니라 실제로 서비스를 만들어내는 개발 방법으로 바뀌게 됩니다.

🔗 바이브코딩 입문 시리즈

반응형