studio.soluta

먼저 볼 카드 — 저장과 배포는 다른 일, 커밋·푸시·머지를 그림으로 이해하기

실습 Deploy

배포했다는 말과 화면이 살아 있는 것

이 카드를 다루는 수업 좋은 프롬프트로 이미지와 영상 만들기 파리 거리에서 자전거 타기

배포가 성공했다고 나와도 화면이 죽어 있을 수 있습니다. 저장소에 없는 파일이 조용히 빠지는 경우가 그렇습니다.

왜 대조가 통과하는데 화면이 깨지납니다

배포 전후를 비교할 때 흔히 파일을 하나씩 맞춰 봅니다. 그런데 이 방식은 양쪽에 다 있는 파일만 봅니다. 한쪽에서 통째로 사라진 파일은 비교 대상에 들어가지도 않아서 전부 일치로 나옵니다.

실제로 이런 일이 있었습니다. 배포한 사이트의 이미지 파일 2,768개가 빠졌는데, 남은 파일끼리의 대조는 전부 일치였습니다. 화면을 열고 나서야 리포트 이미지가 전부 깨진 걸 알았습니다. 원인은 그 폴더의 .gitignore에 이미지 폴더가 적혀 있어서, 저장소에서 새로 내려받은 복사본에는 애초에 그 파일이 없었던 것이었습니다.

그래서 개수를 세는 확인이 따로 필요합니다. 직전 배포보다 파일이 수백 개 줄었으면 그 자리에서 멈춥니다.

반대 방향도 있습니다

자산이 다 있는 폴더에서 배포했는데 이번엔 코드가 옛날 것일 수 있습니다. 같은 사이트에서 며칠 전 상태로 되돌아가 버린 일이 있었습니다. 배포에 쓴 폴더가 최신보다 365커밋 뒤에 있었기 때문입니다.

배포할 폴더는 두 가지를 동시에 만족해야 합니다.

  • 코드가 최신인가
  • 저장소에 없는 자산이 갖춰져 있는가

한 폴더가 둘 다 못 채우면, 최신 코드를 받아 놓고 빠진 자산을 복사해 넣은 다음 거기서 배포합니다.

마지막은 눈으로

숫자와 목록으로 하는 확인은 여기까지입니다. 마지막에는 주소를 열어서 이미지가 뜨는지, 링크가 열리는지 직접 봅니다. 직전 배포와 비교하는 검사만 믿으면, 한 번 잘못 나간 상태가 다음번의 기준이 돼서 계속 통과합니다.

실행 순서

  1. 배포하기 전에 배포할 폴더의 `.gitignore`를 엽니다. 여기 적힌 파일은 저장소에 없어서, 깨끗한 복사본에서 배포하면 따라오지 않습니다.

  2. 배포에 쓰는 폴더가 최신인지 확인합니다. 자산이 다 있어도 코드가 며칠 전 것이면 옛 화면이 나갑니다.

  3. 배포 뒤에 올라간 파일 개수를 직전 배포와 비교합니다. 수백 개가 줄었으면 멈추고 원인을 찾습니다.

  4. 마지막에 실제 주소를 브라우저로 열어, 이미지가 뜨는지, 링크가 열리는지 눈으로 봅니다.

이 순서를 한 번에 실행
이 폴더를 배포하기 전에 확인할 것을 알려 줘. 이 폴더의 .gitignore에 어떤 파일이 빠져 있는지, 그 파일이 화면에 필요한 것인지 짚어 줘.

직접 해보기

대괄호 안은 실제 값으로 바꿔서 붙여넣습니다.

내 상황에 맞춰
방금 배포한 주소는 [주소]야. 직전 배포와 비교해서 파일 개수가 줄지 않았는지 확인하고, 실제로 주소를 열어서 이미지와 링크가 살아 있는지 확인해 줘.
한 단계 더
지금 배포에 쓰는 폴더가 최신 main보다 몇 커밋 뒤인지 확인해 줘. 뒤처져 있으면 그 상태로 배포했을 때 무엇이 옛날 것으로 돌아가는지 알려 줘.

최근에 배포한 사이트가 있으면 주소를 직접 열어 이미지가 전부 뜨는지 보세요. 목록에서 하나를 골라 클릭까지 해 보면 더 정확합니다.

헷갈리기 쉬운 것

배포 전후 파일을 하나씩 대조해도 없어진 파일은 안 잡힙니다. 비교 대상이 남아 있는 파일뿐이기 때문입니다. 개수를 세야 잡힙니다. 직전 배포와 비교하는 검사도 한 번 잘못 나가면 그 잘못된 상태가 다음 비교의 기준이 됩니다. 그래서 화면을 직접 여는 확인이 마지막에 필요합니다.

용어 풀이

전체 용어집 →
.gitignore
저장소에 올리지 않을 파일을 적어 두는 목록입니다. 용량이 크거나 공개하면 안 되는 파일을 여기 적습니다.
깨끗한 복사본
저장소에 올라간 파일만 새로 내려받은 폴더입니다. 내 컴퓨터에만 있던 파일은 여기에 없습니다.