로컬에서만 띄워보던 학습 사이트를 처음으로 인터넷에 올려봤어요. git init부터 실제 주소가 뜨기까지 순탄하게 갈 줄 알았는데, 중간에 두 번 막혔어요. 하나는 제가 직접 발견한 거였고, 하나는 에러 메시지로 알려준 거였어요. 둘 다 배포 직전에 잡아서 다행이었어요.
비공개로 남기고 싶은 폴더가 있는 프로젝트를, private 저장소로 처음 배포하는 분이라면 똑같은 곳에서 막힐 수 있어요.
왜 했나 (Before)
제 학습 사이트엔 journal/이라는 폴더가 있어요. 매일 쓰는 학습일지인데, 사이트 설정상 화면엔 안 뜨게 되어 있어요. 그래서 저는 “이 폴더는 비공개니까 안전하다”고 막연히 생각하고 있었어요. 배포는 그냥 git init → GitHub 저장소 만들기 → Vercel 연결, 이 세 단계면 끝날 줄 알았어요.
첫 번째 막힘 — “사이트에 안 보임”과 “저장소에 안 올라감”은 다른 얘기였다
배포 전에 뭐가 저장소에 올라가는지 .gitignore를 열어봤어요.
# build
dist/
.astro/
# deps
node_modules/
# env
.env
.env.production
# macOS / editor
.DS_Store
*.log
journal/이 어디에도 없더라고요. 사이트가 그 폴더를 페이지로 안 보여주는 것과, GitHub에 그 폴더가 올라가는 것은 완전히 다른 문제였어요. 저장소를 public으로 만들었으면, 화면엔 안 보여도 저장소 파일 목록에서는 누구나 학습일지 원문을 그대로 읽을 수 있었을 거예요.
여기서 두 가지 방법 중 골라야 했어요. journal/을 .gitignore에 추가해서 아예 안 올리거나, 저장소 자체를 private으로 만들어 전부 비공개로 두는 것. 저는 학습일지를 나중에 원본 그대로 백업해두고 싶어서 후자를 골랐어요.
gh repo create learning-hub --private --source=. --remote=origin --push
두 번째 막힘 — Vercel이 저장소를 못 물어왔다
이어서 Vercel에 연결하는데 이런 에러가 떴어요.
Error: Failed to connect 내계정/learning-hub to project.
Make sure there aren't any typos and that you have access to
the repository if it's private.
저장소 이름은 분명 맞는데 “접근 권한이 있는지 확인해라”라니, 처음엔 뭘 봐야 할지 몰랐어요. 알고 보니 이유는 명확했어요. Vercel은 GitHub에 “앱”으로 등록되어 동작하는데, 이 앱이 어떤 저장소를 볼 수 있는지는 저장소마다 따로 관리돼요. 방금 첫 번째 막힘에서 private을 선택한 대가로, 이번엔 이 앱한테 “이 저장소 봐도 돼”라고 따로 허락해줘야 하는 단계가 하나 더 생긴 거였어요. public 저장소였다면 이 단계 자체가 없었을 거예요.
해결은 이랬어요.
github.com/settings/installations로 들어가요.- 설치된 앱 목록에서 Vercel을 찾아 Configure를 눌러요.
- Repository access에서 방금 만든 저장소를 추가하거나(또는 “All repositories”로 바꾸거나) 저장해요.
권한을 열어준 다음 다시 시도하니 바로 됐어요.
vercel git connect --yes
# > Connected
vercel --prod --yes
뭐가 바뀌었나 (After)
몇 초 뒤 실제 주소가 나왔고, 접속해보니 사이트가 그대로 떠 있었어요. 학습일지 경로로 들어가 봐도 여전히 404(페이지 없음)로 잘 막혀 있는 것도 확인했어요. 이제 main에 push할 때마다 Vercel이 알아서 다시 빌드하고 배포해줘요. 배포 명령어를 매번 손으로 칠 필요가 없어졌어요.
가져가세요 (재사용 자산)
- 체크리스트: 뭔가를 배포하기 전엔 “화면에 안 보이는 것”과 “저장소에 안 올라가는 것”을 따로 확인하세요.
.gitignore파일을 직접 열어서, 비공개로 남기고 싶은 폴더 이름이 실제로 적혀 있는지 눈으로 봐야 해요. - 패턴 인식: 배포 서비스 연결 중에 “Failed to connect … access to the repository if it’s private” 비슷한 에러를 보면, 열 곳은 코드가 아니라
github.com/settings/installations예요. private 저장소 + 외부 배포 서비스 조합에서는 “저장소를 만드는 것”과 “그 앱한테 저장소를 볼 권한을 주는 것”이 별개의 단계라는 걸 기억하면 돼요.
📸 스크린샷 자리: “github.com/settings/installations에서 Vercel Configure 화면”을 여기에 넣으면 따라 하기 훨씬 쉬워요.