배포
Next.js 앱 배포하기
Vercel · Railway — 「로컬에서는 되는데」를 없앱니다
웹 4개를 두 플랫폼에 올려 운영 중입니다. 어디에 올릴지 고르는 기준, 환경변수에서 막히는 대부분의 경우, 도메인과 TLS, 그리고 깨졌을 때 되돌리기까지. 우리는 DNS 를 다 맞춰 놓고도 도메인 등록을 빠뜨려 며칠 헤맸습니다.
- 4개 파트결제 즉시 전부 열립니다
- 21개 산출물손에 남는 결과물
- 25개 자산그대로 복사해 쓰는 것
- 2.9만자읽을 분량
- 평생소장 기수·개강일 없음
- 평생 업데이트 고쳐지면 다시 받으면 최신본
- 7일 청약철회 내려받기 전까지
「평생」은 회사가 이 서비스를 운영하는 기간을 뜻합니다. 서비스를 종료하게 되면 90일 전에 알려드리고, 결제하신 자료를 내려받으실 기간을 90일 이상 보장합니다. 그때까지 한 번도 내려받지 않으셨다면 환급해 드립니다. 환불 규정
「로컬에서는 되는데」에서 멈춘다면
내 컴퓨터에서는 잘 돕니다. 올리면 안 됩니다. 환경 변수인지, 빌드 설정인지, 아니면 다른 무엇인지 — 로그는 길고 어디를 봐야 할지 모릅니다. 배포는 코드가 아니라 환경 문제입니다.
지금
올렸는데 안 되고, 로그를 봐도 어디가 문제인지 모른다
이 강의를 따라 하면
어디에 무엇을 올릴지 정하고, 안 되면 순서대로 짚어 나간다
이 강의의 핵심
- Point 1어디에 올릴지부터 고릅니다Vercel 과 Railway 가 각각 무엇에 맞는지, 무료로 어디까지 되고 언제 돈이 나가는지를 확인 날짜와 함께 비교합니다.
- Point 2환경 변수에서 제일 많이 막힙니다어떤 값이 브라우저까지 나가고 어떤 값이 서버에만 남는지 — 여기서 키가 샙니다.
- Point 3도메인 연결과 인증서주소를 붙이는 순서와, 붙인 뒤에 확인해야 할 것을 적었습니다.
- Point 4배포가 안 올라올 때 짚는 순서빌드가 죽은 건지, 올라갔는데 안 도는 건지부터 가릅니다. 순서를 알면 로그를 다 안 읽어도 됩니다.
글이 아니라 물건입니다
읽고 끝나는 강의가 아닙니다. 그대로 열어서 쓰는 파일을 드립니다. 아래는 실제로 들어 있는 것의 앞부분입니다 — 편집하지 않았습니다.
[1] 요청 하나가 얼마나 걸리나
[ ] 대부분 몇 초 안에 끝난다
[ ] ★ 1분 넘게 걸리는 요청이 있다
→ 실행 시간 제한이 있는 곳은 안 된다
→ 또는 작업을 나눠서 여러 번에 걸쳐 돌게 만든다
[2] 파일을 저장하나
[ ] 저장 안 한다 (또는 외부 저장소를 쓴다)
[ ] ★ 서버에 파일을 쓴다
→ 호스팅형은 재시작하면 사라진다
→ 외부 저장소를 쓰도록 바꾸는 게 대개 낫다
① 내 앱이 무엇을 필요로 하나
고르기 전에 이걸 채우십시오. 여기서 답이 대부분 나옵니다.
함께 들어 있는 자산
- ① 내 앱이 무엇을 필요로 하나
- ② 유형별 비교
- ③ 옮기기 어려워지는 지점
- ④ 고르기 전에 확인할 것
- ⑤ 앱-플랫폼 목록
- ⑥ 선택 근거 기록
- ① 이름 규칙 — 브라우저로 새는 것
- 외 18개
이런 분께
- 로컬에서는 되는데 배포하면 안 되는 분90%가 환경변수입니다. 그 목록을 만듭니다.
- 도메인 연결에서 막힌 분DNS 와 플랫폼 등록은 별개입니다.
- 배포가 무서운 분되돌리기를 미리 연습해 두면 안 무섭습니다.
결제하시면 손에 남는 것 · 21개
강의를 다 보고 나면 이것들이 파일로 남습니다.
- 01내 앱이 무엇을 필요로 하는지 확인표PART 1
- 02플랫폼 유형별 비교 (호스팅형 vs 컨테이너형)PART 1
- 03고르기 전에 확인할 것PART 1
- 04나중에 옮기기 어려워지는 지점PART 1
- 05선택 근거 기록 양식PART 1
- 06환경변수 이름 규칙 (브라우저로 새는 것)PART 2
- 07로컬과 배포 환경변수 대조표PART 2
- 08없을 때 빨리 알아채는 코드PART 2
- 09「로컬에서는 되는데」 진단 순서PART 2
- 10키가 새는 것을 확인하는 법PART 2
- 11도메인 연결 절차PART 3
- 12DNS 설정이 반영되는 시간PART 3
- 13인증서가 안 발급될 때PART 3
- 14www 와 그냥 주소를 하나로 모으기PART 3
- 15주소가 바뀔 때 같이 고칠 곳PART 3
- 16배포 브랜치 확인 (푸시했는데 안 바뀔 때)PART 4
- 17배포 실패를 알아채는 법PART 4
- 18되돌리기 절차 (실제로 해 보기)PART 4
- 19배포 후 확인 항목PART 4
- 20배포 기록 남기기PART 4
- 21자동 백업 — 무엇을 어떻게 (복구 시험 포함)PART 4
커리큘럼 · 4개 파트
파트마다 무엇을 배우고, 무엇이 파일로 남는지까지 적었습니다. 목차만 보고 결제하시게 하지 않겠습니다.
- PART 1어디에 올릴지 고른다
배우는 것
- 앱이 무엇을 필요로 하는지 먼저 본다
- 오래 도는 작업이 있나 확인한다
- 파일을 서버에 저장하나 확인한다
- 정기 실행이 필요한가 확인한다
- 옮기기 어려워지는 지점을 안다
- 나눠 올려도 된다
손에 남는 것
- 내 앱이 무엇을 필요로 하는지 확인표
- 플랫폼 유형별 비교 (호스팅형 vs 컨테이너형)
- 고르기 전에 확인할 것
- 나중에 옮기기 어려워지는 지점
- 선택 근거 기록 양식
복사해 쓰는 자산 6개① 내 앱이 무엇을 필요로 하나 · ② 유형별 비교 · ③ 옮기기 어려워지는 지점 · ④ 고르기 전에 확인할 것 · ⑤ 앱-플랫폼 목록 · ⑥ 선택 근거 기록
- PART 2환경변수에서 대부분 막힌다
배우는 것
- 이름 앞자리가 공개 여부를 정한다
- 값이 없으면 빈 문자열이 된다
- 시작할 때 확인한다
- 로컬과 배포를 대조한다
- 값을 바꾸면 다시 배포해야 한다
- 빌드 결과물에서 확인한다
손에 남는 것
- 환경변수 이름 규칙 (브라우저로 새는 것)
- 로컬과 배포 환경변수 대조표
- 없을 때 빨리 알아채는 코드
- 「로컬에서는 되는데」 진단 순서
- 키가 새는 것을 확인하는 법
복사해 쓰는 자산 6개① 이름 규칙 — 브라우저로 새는 것 · ② 시작할 때 확인 · ③ 로컬과 배포 대조 · ④ 「로컬에서는 되는데」 진단 순서 · ⑤ 자주 나는 환경변수 문제 · ⑥ 배포 전 환경변수 점검표
- PART 3내 도메인을 붙이고 TLS 를 켠다
배우는 것
- 내 도메인이면 옮겨도 주소가 그대로다
- DNS 는 반영에 시간이 걸린다
- 인증서는 대개 자동이다
- 주소를 하나로 모은다
- 주소를 바꾸면 같이 고칠 곳이 많다
- 도메인 만료를 조심한다
손에 남는 것
- 도메인 연결 절차
- DNS 설정이 반영되는 시간
- 인증서가 안 발급될 때
- www 와 그냥 주소를 하나로 모으기
- 주소가 바뀔 때 같이 고칠 곳
복사해 쓰는 자산 6개① 도메인 연결 절차 · ② DNS 가 반영 안 될 때 · ③ 주소를 하나로 모으기 · ④ 인증서가 안 될 때 · ⑤ 주소가 바뀔 때 같이 고칠 곳 · ⑥ 도메인 관리 기록
- PART 4자동으로 배포되고, 깨지면 되돌린다
배우는 것
- 배포 브랜치를 확인한다
- 배포 실패를 알아채야 한다
- 되돌리기를 미리 해 본다
- 배포 후에 실제로 확인한다
- 작게 자주 배포한다
- 배포 기록을 남긴다
손에 남는 것
- 배포 브랜치 확인 (푸시했는데 안 바뀔 때)
- 배포 실패를 알아채는 법
- 되돌리기 절차 (실제로 해 보기)
- 배포 후 확인 항목
- 배포 기록 남기기
- 자동 백업 — 무엇을 어떻게 (복구 시험 포함)
복사해 쓰는 자산 7개① 배포 브랜치 확인 · ② 배포 실패를 알아채기 · ③ 되돌리기 — 미리 해 보십시오 · ④ 배포 후 확인 — 2분 · ⑤ 배포 기록 · ⑥ 배포 점검표 · ⑦ 자동 백업 — 어디에 올리든 필요합니다
다루는 도구 · 3종
이름만 대고 넘어가지 않습니다. 무엇이고, 왜 쓰고, 얼마이고, 대신 쓸 수 있는 건 뭔지까지 적었습니다. 가격은 확인한 날짜를 같이 적었습니다 — 바뀌면 고쳐서 올립니다.
| 도구 | 무엇인가 | 가격 | 대신 쓸 수 있는 것 |
|---|---|---|---|
| Next.js | 웹사이트를 만드는 틀(프레임워크) 입니다. | 무료입니다(오픈소스). 돈이 드는 건 올리는 곳이지 틀이 아닙니다. | 정적 HTML · Astro · React + 별도 서버 |
| Vercel | Next.js 를 만든 회사가 운영하는 배포 서비스입니다. | Hobby 무료 (개인용, 월 100GB 전송·함수 실행 4시간·1M 요청). Pro 월 $20 (전송 1TB, 초과 시 GB당 $… | Netlify · Cloudflare Pages · Railway |
| Railway | 내가 만든 것을 그대로 컨테이너로 돌려 주는 배포 서비스입니다. | Free $0 (월 $1 크레딧), Hobby 월 $5 (월 $5 크레딧 포함), Pro 월 $20. 쓴 만큼 차감되는 방식이라 메… | Render · Fly.io · 직접 서버(가상서버 임대) |
누가 만들었나
앱 7개를 직접 만들어 Google Play 와 App Store 에 올리고, 지금도 운영합니다. 기획도 개발도 심사 대응도 고객 문의도 혼자 합니다. 이 강의는 그 과정에서 실제로 막혔던 지점만 적은 것입니다.
심사도 결제도 고객 문의도 직접 통과시켜 본 것만 씁니다. 남의 사례를 옮기지 않고, 해보지 않은 것을 아는 척하지 않습니다. 그래서 이 페이지에는 지어낸 수강생 수도, 후기도, 할인율도 없습니다 — 없는 것을 적지 않는 것이 우리가 파는 것의 일부입니다.
- 7개스토어에 올려 운영 중인 앱
- 15개같은 방식으로 만든 강의
- 455개강의 전체에 든 복사해 쓰는 자산
묶어 사면 더 쌉니다
이 강의는 아래 패키지에 들어 있습니다. 관련 강의를 같이 보실 생각이면 패키지 쪽이 낫습니다.
자주 묻는 것
- 영상인가요, 글인가요?글입니다. 읽고 그대로 따라 하시는 형식입니다. 재생 시간을 채우는 대신 복사해 쓰는 파일 25개를 드립니다. 낡으면 고쳐서 올립니다.
- 사전 지식이 필요한가요?필요 없습니다. 도구가 무엇이고 왜 쓰는지부터 설명합니다 (이 강의에서 다루는 도구 3종은 위 표에 있습니다). 다만 직접 따라 하실 시간은 필요합니다 — 읽기만 하면 남는 게 없습니다.
- 언제까지 볼 수 있나요?기한이 없습니다. 기수도 개강일도 없고, 결제하시면 4개 파트가 바로 열립니다. 도구와 정책이 바뀌어 내용을 고치면 추가 결제 없이 다시 받으실 수 있습니다.
- 보다가 안 맞으면요?결제일부터 7일 이내에 철회하실 수 있습니다. 다만 본문을 내려받으신 뒤에는 제한됩니다(전자상거래법 제17조제2항제5호). 받지 않으신 상태라면 그대로 철회 대상입니다.
이건 아닙니다
- 플랫폼 가격을 적지 않습니다. 자주 바뀝니다 — 고르는 기준만 다룹니다
- 컨테이너·쿠버네티스는 다루지 않습니다
- Next.js 문법 강의가 아닙니다
환불
결제일부터 7일 이내에 철회하실 수 있습니다. 다만 본문을 내려받으신 뒤에는 청약철회가 제한됩니다(전자상거래법 제17조제2항제5호). 내려받으신 시각은 기록되며, 받지 않으신 상태라면 그대로 철회 대상입니다. 환불 규정 전문