배포
배포는 내 컴퓨터에서만 돌던 프로그램을 인터넷 서버에 올려 누구나 주소로 쓰게 만드는 일이에요. 배포 단계, 릴리스와 차이, 안 멈추고 바꾸는 법과 롤백까지 정리했어요.
목차 보기
배포는 내 컴퓨터에서만 돌던 프로그램을 인터넷에 연결된 서버에 올려, 누구나 주소로 들어와 쓸 수 있게 만드는 일이에요. 집 부엌에서 만든 요리를 가게 진열대에 올리는 것과 같아요.
한눈에 보기
- 내 컴퓨터의
localhost주소는 나만 들어와요. 배포해야 다른 사람이 들어와요. - 배포는 보통 빌드(포장) → 올리기 → 실행 순서로 가요.
- 서비스를 멈추지 않고 바꾸는 법과, 잘못됐을 때 되돌리는 법(롤백)까지 정해 두는 게 좋은 배포예요.
배포하면 무슨 일이 일어나요?
세 단계로 나눠 보면 쉬워요.
| 단계 | 하는 일 | 쉽게 말하면 |
|---|---|---|
| 빌드 | 코드를 실행할 수 있는 묶음으로 만들어요. 도커 이미지가 대표적이에요. | 요리를 포장해요 |
| 릴리스 | 묶음에 그 서버용 설정(주소·비밀번호)을 붙이고 번호를 매겨요. | 가게별 가격표를 붙여요 |
| 실행 | 서버에서 그 묶음을 켜고 주소에 연결해요. | 진열대에 올려요 |
세 단계를 섞지 말고 따로 두라는 원칙이 널리 쓰여요. 그래야 "어떤 번호의 묶음이 지금 돌고 있는지"가 분명해지고, 문제가 나면 이전 번호로 바로 돌아갈 수 있어요.
왜 내 컴퓨터에서는 남이 못 들어와요?
2026-10-29 사무실 PC 에서 파이썬으로 작은 웹 서버를 켜 봤어요.
$ python -m http.server 8765 --bind 127.0.0.1
$ curl -I http://localhost:8765/
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.12.8
내 컴퓨터에서는 200(정상)이 나와요. 하지만 localhost(127.0.0.1)는 '나 자신'을 뜻하는 주소예요. 옆자리 사람이 같은 주소를 치면 그 사람 컴퓨터를 찾아가요.
집 공유기 안쪽 주소(192.168.…)도 밖에서는 보이지 않아요. 그래서 24시간 켜져 있고, 인터넷에서 찾아올 수 있는 주소와 도메인이 붙은 서버에 올려야 해요. 이 일이 배포예요.
배포와 릴리스는 뭐가 달라요?
둘을 섞어 쓰기도 하지만 엄밀히는 달라요. 배포는 새 코드를 서버에 올려 켜는 기술적인 일이에요. 릴리스는 그 기능을 손님에게 공개하는 결정이에요.
예를 들어 새 결제 화면 코드를 미리 배포해 두고, 스위치(기능 플래그)를 꺼 둘 수 있어요. 준비가 끝난 날 스위치만 켜면 그게 릴리스예요.
서비스를 안 멈추고 바꾸는 법이 있나요?
| 방식 | 어떻게 | 좋은 점 | 아쉬운 점 |
|---|---|---|---|
| 한 번에 교체 | 끄고 새 버전을 켜요 | 가장 간단해요 | 바꾸는 동안 잠깐 멈춰요 |
| 롤링 | 서버 여러 대를 한 대씩 차례로 바꿔요 | 멈추지 않아요 | 잠깐 두 버전이 섞여 돌아요 |
| 블루-그린 | 새 버전을 옆에 다 띄운 뒤 길을 한 번에 돌려요 | 되돌리기가 빨라요 | 잠깐 서버가 두 배 필요해요 |
| 카나리 | 손님 일부에게만 먼저 새 버전을 보여 줘요 | 문제를 작게 발견해요 | 나누는 장치가 필요해요 |
혼자 운영하는 작은 서비스라면 한 번에 교체로 충분해요. 손님이 많은 시간을 피해서 하면 돼요.
잘못 배포하면 어떻게 되돌려요?
바로 전 버전으로 다시 배포하는 걸 롤백이라고 해요. 묶음에 번호(태그)를 매겨 두었다면 "v1.2 로 다시"처럼 번호만 바꿔 배포하면 돼요.
데이터베이스 구조를 바꾼 배포는 코드만 되돌려선 안 될 때가 있어요. 그래서 큰 배포 전에는 백업이나 스냅샷을 먼저 남겨요.
직접 배포하고 되돌려 보면 어때요?
2026-10-29 사무실 PC 에서 웹 서버 컨테이너(nginx)로 작은 실험을 했어요. 화면에 "v1" 만 찍는 페이지를 배포하고, "v2" 로 바꾼 뒤, 다시 v1 로 롤백했어요. 그동안 0.05초마다 페이지를 열어 보며 몇 번 끊기는지 셌어요.
docker run -d --name web -p 127.0.0.1:28413:80 -v ./v1:/usr/share/nginx/html:ro nginx:1.30.6-alpine
docker rm -f web # 옛 버전 끄기
docker run -d --name web ... -v ./v2:/usr/share/nginx/html:ro ... # 새 버전 켜기
| 단계 | 새 버전이 보이기까지 | 접속이 끊긴 시간 |
|---|---|---|
| 처음 배포(v1) | 0.66초 | — |
| 업데이트(v1 → v2, 한 번에 교체) | 1.46초 | 약 1.0초 |
| 롤백(v2 → v1) | 1.64초 | 약 1.1초 |
12초 동안 149번 열어 봤는데 14번이 실패했어요. 옛 버전을 끄고 새 버전이 뜨기 전까지 1초쯤 빈틈이 생긴 거예요. 한 번에 교체하는 방식의 약점이 바로 이 빈틈이에요. 롤링이나 블루-그린은 새 버전을 먼저 띄운 뒤 길을 돌려서 이 1초를 없애요.
롤백도 결국 '옛 번호로 다시 배포'였어요. v1 폴더(이미지)를 지우지 않고 남겨 두었기 때문에 2초 안에 돌아갈 수 있었어요.
자주 하는 오해는 뭐예요?
| 오해 | 실제 |
|---|---|
| 배포는 한 번 하면 끝이다 | 고칠 때마다 다시 배포해요. 그래서 자동으로 하는 CI/CD(코드를 올리면 시험과 배포가 자동으로 도는 흐름)를 쓰기도 해요. |
| 내 컴퓨터에서 되면 서버에서도 된다 | 운영체제·설정이 달라 안 될 때가 많아요. 컨테이너로 묶어 배포하면 이 차이가 줄어요. |
| 비밀번호는 코드에 넣어 함께 배포한다 | 코드와 설정은 따로 둬요. 비밀값은 서버의 환경변수나 비밀 저장소에 넣어요. |
퓨쳐인프라에서는 어떻게 배포해요?
퓨쳐인프라 앱 호스팅은 도커 이미지 이름만 알려 주면 배포돼요. API 로는 두 번이면 끝나요.
POST /v1/apps { "slug": "myshop" }
POST /v1/apps/<id>/deploy { "image": "ghcr.io/me/myshop:v1.2.0" }
# https://myshop.futureinfra.app 이 열려요
주소와 HTTPS 가 같이 붙고, 태그를 바꿔 다시 배포하면 그게 업데이트예요. 한 달 5,500원이에요. 실제로 올려 본 시간과 다른 곳 요금은 도커 호스팅 비용 글에 있어요.
자주 묻는 질문
배포는 영어로 뭐예요?
deploy(동사), deployment(명사)예요. 원래 '병력을 배치하다'라는 뜻에서 왔어요.
무료로 배포할 수 있는 곳이 있나요?
정적인 홈페이지는 무료로 올려 주는 곳이 많아요. 데이터베이스나 계속 도는 프로그램이 있으면 보통 유료예요. 비교는 버셀 도메인 연결, 넷리파이 글을 참고하세요.
배포하면 바로 도메인이 생기나요?
서비스마다 달라요. 퓨쳐인프라는 myshop.futureinfra.app 같은 기본 주소를 바로 주고, 가진 도메인도 붙일 수 있어요.
배포 중에 손님이 들어오면 어떻게 돼요?
한 번에 교체하는 방식이면 몇 초~몇십 초 동안 접속이 안 될 수 있어요. 손님이 적은 시간에 하거나 롤링·블루-그린 방식을 써요.
함께 알아 두면 좋은 용어
컨테이너 · 도커 · PaaS · 쿠버네티스 · 스냅샷 · 바이브 코딩
이 글의 근거
- 배포·롤백 실험: 2026-10-29 23:13 사무실 PC(Docker 29.1.3, nginx:1.30.6-alpine)에서 컨테이너를 끄고 켜며, 파이썬으로 0.05초마다 요청해 응답을 기록했어요. 한 번 잰 값이에요.
- 로컬 서버 실행: 2026-10-29 23:07 사무실 PC 에서 Python 3.12 의 http.server 를 127.0.0.1 에만 열고 curl 로 요청한 결과예요.
- 빌드·릴리스·실행 분리: The Twelve-Factor App — 빌드, 릴리즈, 실행
- 배포와 릴리스·배포 방식: Atlassian — 소프트웨어 배포
- 퓨쳐인프라 앱 배포: 앱 호스팅 안내(2026-10-29 확인)
- 작성: 서순명(솔리드그루 이사 · 퓨쳐인프라 — 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 를 운영) · 작성일 2026년 10월 29일
- 운영사: 솔리드그루 · 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계: 로컬 서버와 배포·롤백 실험은 사무실 PC 한 대에서 한 번 실행한 결과라, 실제 서버·이미지 크기에 따라 시간이 달라져요. 배포 방식의 장단점은 서비스 규모에 따라 달라져요.
- 이해관계: 퓨쳐인프라는 앱 호스팅과 클라우드 서버를 파는 회사예요.
연관 서비스
많이 본 글
-
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글 0
로그인하면 댓글을 남길 수 있습니다.