GitHub이 뭔지부터,
머지 한 번에 자동 배포까지
만든 시스템을 진짜로 쓰게 하려면 '배포'가 필요해요. 다룰 게 많아서 두 편으로 나눴어요. 이번 편은 "어떻게 올리나"(GitHub·자동 배포), 다음 편은 "어디에 올리나"(AWS 서버·저장소)예요. 그런데 그 전에 — 'GitHub'이 대체 뭔지부터 짚고 갈게요.
많이 헷갈리는데, 둘은 달라요.
- git = 내 컴퓨터에서 코드의 '변경 이력'을 기록하고 되돌리는 도구. 한마디로 타임머신이에요.
- GitHub = 그 git 코드를 인터넷에 올려두는 공간. 개발자들의 '코드 전용 클라우드 저장소'예요.
글쓰기로 비유하면 — git은 문서의 '버전 기록(되돌리기)' 기능이고, GitHub은 그 문서를 올려두는 '구글 드라이브' 같은 거예요. 개발자들은 GitHub에 코드를 백업하고, 공유하고, 여럿이 함께 고치고, 자동화(배포)까지 연결해요.
처음엔 의아했어요. "혼자 만드는데 이런 게 왜 필요하지? 폴더 백업이면 되잖아?" 그런데 곧 절실해졌어요.
- 되돌리기 — 어제는 멀쩡했는데 오늘 깨졌을 때, "어제 그 상태로" 정확히 되돌릴 수 있어요.
- 기록 — 언제·무엇을·왜 바꿨는지 다 남아요. 한 달 뒤 "이거 왜 이렇게 했더라?"에 답이 되죠.
- AI 협업 — AI가 코드를 왕창 바꿨다가 잘못되면, 통째로 되돌리기. AI와 일할수록 이게 특히 든든했어요.
- 어디서나 같은 코드 — 집·회사 어디서 작업하든 GitHub이 중심이라 늘 최신으로 맞춰져요.
git/GitHub에서 제일 강력한 개념이 브랜치(branch, 가지)예요. 어렵게 들리지만 간단해요. 같은 코드를 통째로 복사한 '평행 세계'라고 보면 돼요. 한쪽에서 뭘 하든, 다른 쪽은 그대로 멀쩡합니다.
저는 평행 세계를 둘 둬요.
dev — 작업장(연습 세계)
막 바꾸고 실험하는 곳. 깨져도 괜찮아요. 사용자가 안 보니까요.
master — 실제 서비스(진짜 세계)
진짜 사용자가 쓰는 코드. 여기선 깨지면 바로 사고예요.
그래서 흐름은 이래요. 모든 작업은 dev에서 마음껏 하고(깨져도 master는 안전), 충분히 검증되면 dev의 변경을 master로 합쳐요. 이 '합치는' 동작을 머지(merge)라고 불러요. 원고로 치면, 초고 사본에서 실컷 고치다가 완성되면 최종본에 반영하는 거죠.
여기가 이번 편의 핵심이에요. "master에 합치기만 했는데, 어떻게 저절로 서버에 반영되지?"
자동 배포가 되려면, GitHub이 내 서버 안에 들어가서 "최신 코드 받아 적용해"라고 시킬 수 있어야 해요. 남의 컴퓨터(서버)에 원격으로 들어가는 표준 방법이 바로 SSH예요.
그런데 자동화라 비밀번호를 매번 칠 수가 없죠. 그래서 비번 대신 '열쇠 한 쌍'을 써요.
- 자물쇠(공개키) → 서버에 붙여둬요.
- 그 자물쇠를 여는 열쇠(개인키) → GitHub에 비밀로 보관해요 (서버 주소도 함께).
그리고 GitHub엔 '이런 일이 생기면 이걸 해라'를 적어두는 자동 심부름꾼이 있어요(GitHub Actions). 거기에 "master에 새 코드가 올라오면 → 그 열쇠로 서버에 접속해 → 최신 코드를 받아 반영해라"를 한 번 적어두는 거예요.
이 세팅을 딱 한 번 해두면(서버에 자물쇠, GitHub에 열쇠+주소 등록), 그 뒤로는 "머지 = 배포"가 돼요. 제가 서버에 직접 손대지 않아도, 합치기만 하면 몇 분 뒤 실서비스에 반영됩니다.
편한 만큼 무서워요. master에 잘못 올리면, 그 잘못도 자동으로 사용자에게 갑니다. 특히 위험한 건 데이터 구조를 바꾸는 작업이에요. 이건 배포될 때 자동 실행돼서, 잘못되면 실제 데이터가 위험해질 수 있어요.
그래서 위험한 작업일수록 dev에서 끝까지 검증해요. 앞 편들에서 본 그 과정 — AI 여섯을 회의시키고, 바깥 AI에게 교차 검토받고 — 이게 다 master에 합치기 '전에' 도는 이유예요.
아무리 조심해도 사고는 나요. 그래서 '되돌릴 기준'을 미리 만들어둡니다.
- 안정 지점에 '이름표'(태그) — 잘 돌아가는 시점에 이름표(예:
1.0)를 찍어둬요. 문제가 생기면 "그 이름표로 돌아가자"는 분명한 기준이 됩니다. - git 자체가 '시간 여행' — 모든 변경이 기록돼 있어서, 언제든 과거의 멀쩡하던 시점으로 되돌릴 수 있어요. 자동 배포가 무섭지 않은 이유죠.
처음 시작하는 분을 위해, 이번 편을 한 장으로 줄이면 이래요.
🤝 '올린다'는 버튼은, 사람이 누른다
핵심 한 줄 요약 — GitHub 편
Tags
'php' 카테고리의 다른 글
| MySQL 기초 — CREATE DATABASE · USE · SELECT · SHOW 완전 정리 (0) | 2026.06.27 |
|---|---|
| 시즌2 7편 — 이제, 그 'AI 부서'를 직접 만들어 봅시다 (0) | 2026.06.27 |
| 시즌2 9편 — 24시간 꺼지면 안 되는 시스템, 그래서 클라우드에 서버를 빌렸다 (3) | 2026.06.26 |
| 시즌2 6편 — AI가 '배포해도 된다'고 했다, 그리고 스스로 말을 뒤집었다 (0) | 2026.06.26 |
| 4편 — '엑셀 보고서'를 없앤 날: 역할별 대시보드 (0) | 2026.06.26 |
왕진 블로그

댓글