사례 1주차 2026-07-26 · 나만의 지식체계 구축 연재

학습 사이트를 처음 배포하며 겪은 두 가지 막힘 — 프라이버시와 GitHub 권한

로컬에서만 보던 사이트를 처음 배포하는데, 학습일지가 공개될 뻔한 것과 Vercel 연결 에러를 연달아 만났다. 둘 다 배포 직전에 막아낸 이야기.

로컬에서만 띄워보던 학습 사이트를 처음으로 인터넷에 올려봤어요. 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 저장소였다면 이 단계 자체가 없었을 거예요.

해결은 이랬어요.

  1. github.com/settings/installations로 들어가요.
  2. 설치된 앱 목록에서 Vercel을 찾아 Configure를 눌러요.
  3. 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 화면”을 여기에 넣으면 따라 하기 훨씬 쉬워요.