본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

시즌2 8편 — GitHub이 뭔지부터, 머지 한 번에 자동 배포까지

by 왕진 2026. 6. 27.
반응형

 

 

Dev Story · 시즌2 8편 — GitHub(버전관리·자동배포)

GitHub이 뭔지부터,
머지 한 번에 자동 배포까지

비개발자가 처음 배운 것들 — git·GitHub·브랜치, 그리고 SSH 자동 배포

만든 시스템을 진짜로 쓰게 하려면 '배포'가 필요해요. 다룰 게 많아서 두 편으로 나눴어요. 이번 편은 "어떻게 올리나"(GitHub·자동 배포), 다음 편은 "어디에 올리나"(AWS 서버·저장소)예요. 그런데 그 전에 — 'GitHub'이 대체 뭔지부터 짚고 갈게요.

※ 개발 처음 보는 분도 따라오게 천천히 풀어요. 실제 서버 주소·계정·열쇠 같은 정보는 가립니다.
1 먼저, git과 GitHub은 다르다

많이 헷갈리는데, 둘은 달라요.

  • git = 내 컴퓨터에서 코드의 '변경 이력'을 기록하고 되돌리는 도구. 한마디로 타임머신이에요.
  • GitHub = 그 git 코드를 인터넷에 올려두는 공간. 개발자들의 '코드 전용 클라우드 저장소'예요.

글쓰기로 비유하면 — git은 문서의 '버전 기록(되돌리기)' 기능이고, GitHub은 그 문서를 올려두는 '구글 드라이브' 같은 거예요. 개발자들은 GitHub에 코드를 백업하고, 공유하고, 여럿이 함께 고치고, 자동화(배포)까지 연결해요.

즉 코드는 내 컴퓨터(작업) + GitHub(인터넷 보관·중심지) 두 곳에 있어요. 내 컴퓨터가 고장 나도 GitHub에 그대로 있고, 거기서 서버로도 보내져요.

2 혼자인데, 왜 필요했나

처음엔 의아했어요. "혼자 만드는데 이런 게 왜 필요하지? 폴더 백업이면 되잖아?" 그런데 곧 절실해졌어요.

  • 되돌리기 — 어제는 멀쩡했는데 오늘 깨졌을 때, "어제 그 상태로" 정확히 되돌릴 수 있어요.
  • 기록 — 언제·무엇을·왜 바꿨는지 다 남아요. 한 달 뒤 "이거 왜 이렇게 했더라?"에 답이 되죠.
  • AI 협업 — AI가 코드를 왕창 바꿨다가 잘못되면, 통째로 되돌리기. AI와 일할수록 이게 특히 든든했어요.
  • 어디서나 같은 코드 — 집·회사 어디서 작업하든 GitHub이 중심이라 늘 최신으로 맞춰져요.
버전 관리는 '안전벨트'였어요. 혼자 운전이라도, 사고는 나니까요.

3 브랜치 — 같은 코드의 '평행 세계'

git/GitHub에서 제일 강력한 개념이 브랜치(branch, 가지)예요. 어렵게 들리지만 간단해요. 같은 코드를 통째로 복사한 '평행 세계'라고 보면 돼요. 한쪽에서 뭘 하든, 다른 쪽은 그대로 멀쩡합니다.

저는 평행 세계를 둘 둬요.

dev — 작업장(연습 세계)

막 바꾸고 실험하는 곳. 깨져도 괜찮아요. 사용자가 안 보니까요.

master — 실제 서비스(진짜 세계)

진짜 사용자가 쓰는 코드. 여기선 깨지면 바로 사고예요.

그래서 흐름은 이래요. 모든 작업은 dev에서 마음껏 하고(깨져도 master는 안전), 충분히 검증되면 dev의 변경을 master로 합쳐요. 이 '합치는' 동작을 머지(merge)라고 불러요. 원고로 치면, 초고 사본에서 실컷 고치다가 완성되면 최종본에 반영하는 거죠.


 

반응형

 

4 머지하면 — 왜 '자동으로' 서버에 올라가나 (SSH)

여기가 이번 편의 핵심이에요. "master에 합치기만 했는데, 어떻게 저절로 서버에 반영되지?"

자동 배포가 되려면, GitHub이 내 서버 안에 들어가서 "최신 코드 받아 적용해"라고 시킬 수 있어야 해요. 남의 컴퓨터(서버)에 원격으로 들어가는 표준 방법이 바로 SSH예요.

그런데 자동화라 비밀번호를 매번 칠 수가 없죠. 그래서 비번 대신 '열쇠 한 쌍'을 써요.

  • 자물쇠(공개키)서버에 붙여둬요.
  • 그 자물쇠를 여는 열쇠(개인키)GitHub에 비밀로 보관해요 (서버 주소도 함께).

그리고 GitHub엔 '이런 일이 생기면 이걸 해라'를 적어두는 자동 심부름꾼이 있어요(GitHub Actions). 거기에 "master에 새 코드가 올라오면 → 그 열쇠로 서버에 접속해 → 최신 코드를 받아 반영해라"를 한 번 적어두는 거예요.

master에 머지 GitHub 심부름꾼 발동 열쇠로 서버에 SSH 접속 최신 코드 받아 반영

이 세팅을 딱 한 번 해두면(서버에 자물쇠, GitHub에 열쇠+주소 등록), 그 뒤로는 "머지 = 배포"가 돼요. 제가 서버에 직접 손대지 않아도, 합치기만 하면 몇 분 뒤 실서비스에 반영됩니다.

실제 '열쇠'와 서버 주소는 코드에 절대 안 적어요. GitHub의 비밀 금고(Secrets)에 따로 넣어둬요. 이게 새면 서버를 통째로 내주는 거라, 가장 조심해야 할 부분이에요.

5 그래서 master는 함부로 못 건드린다

편한 만큼 무서워요. master에 잘못 올리면, 그 잘못도 자동으로 사용자에게 갑니다. 특히 위험한 건 데이터 구조를 바꾸는 작업이에요. 이건 배포될 때 자동 실행돼서, 잘못되면 실제 데이터가 위험해질 수 있어요.

master에 올린다 = 손님 앞에 내놓는다. 그러니 가볍게 누를 수 없어요.

그래서 위험한 작업일수록 dev에서 끝까지 검증해요. 앞 편들에서 본 그 과정 — AI 여섯을 회의시키고, 바깥 AI에게 교차 검토받고 — 이게 다 master에 합치기 '전에' 도는 이유예요.


6 그래도 사고가 나면 — 되돌릴 지점

아무리 조심해도 사고는 나요. 그래서 '되돌릴 기준'을 미리 만들어둡니다.

  • 안정 지점에 '이름표'(태그) — 잘 돌아가는 시점에 이름표(예: 1.0)를 찍어둬요. 문제가 생기면 "그 이름표로 돌아가자"는 분명한 기준이 됩니다.
  • git 자체가 '시간 여행' — 모든 변경이 기록돼 있어서, 언제든 과거의 멀쩡하던 시점으로 되돌릴 수 있어요. 자동 배포가 무섭지 않은 이유죠.
서버 데이터 백업이나 암호화 '열쇠(APP_KEY)' 보존 같은 '서버 쪽' 안전장치는 다음 편(AWS)에서 다뤄요.

7 이번 편의 산출물 — git/GitHub 입문 한 장 정리

처음 시작하는 분을 위해, 이번 편을 한 장으로 줄이면 이래요.

☑ 비개발자를 위한 git/GitHub 정리
git = 코드 타임머신(되돌리기·기록) / GitHub = 그 코드를 올려두는 클라우드 저장소
브랜치 = 같은 코드의 평행 세계 → dev(작업장) / master(실제 서비스)
☐ 작업은 dev에서, 검증되면 master로 합친다(머지)
SSH 열쇠 한 쌍(서버=자물쇠 / GitHub=열쇠)으로 → master 머지 시 자동 배포
☐ master = 사용자에게 직행 → 위험한 건 dev에서 검증 후에만
☐ 안정 지점엔 이름표(태그), 문제 생기면 그 지점으로 되돌리기

8 AI가 갈린 지점 / 사람이 결정한 지점

🤝 '올린다'는 버튼은, 사람이 누른다

AI가 한 것: 이 SSH·자동 배포 세팅을 저는 외워서 한 게 아니에요. AI가 설정을 깔아주고, 막히면 "이건 이래서 이렇게 한다"고 풀어줬어요. 비개발자가 이런 인프라를 만질 수 있었던 건 그 덕이에요.
사람이 한 것: "이걸 지금 master에 합쳐도 되나 — 사용자에게 보내도 되나"를 정하는 일이요. 배포는 되돌리기 어려운 행동이라(이미 사용자가 본 뒤니까), 그 결정과 책임은 사람 몫이었어요.
그래서: 기계 장치(git·SSH·자동 배포)는 AI와 함께 깔고, 마지막에 사람이 "올린다"를 누른다. 그게 1인 개발자가 AI와 함께 안전하게 배포하는 방법이었어요.

핵심 한 줄 요약 — GitHub 편

git vs GitHubgit=코드 타임머신 / GitHub=코드 올려두는 클라우드 저장소
왜 필요되돌리기·기록·AI 복구·어디서나 같은 코드
브랜치같은 코드의 평행 세계 → dev(작업장)/master(실서비스)
자동 배포SSH 열쇠 한 쌍 → master 머지 시 GitHub이 서버에 접속해 반영
그래서master=사용자 직행 → 위험한 건 dev 검증(회의·사외이사) 후
되돌리기안정 지점 태그 + git 시간 여행
사람의 몫'올린다' 버튼 — 되돌리기 어려운 결정과 책임
다음 편AWS — 클라우드 서버 · S3 저장소 · 용량/백업 관리

Tags

#GitHub #git #버전관리 #브랜치 #SSH #자동배포 #CICD #깃허브입문 #1인개발 #비개발자 #웹개발 #티스토리
▼ 티스토리 태그 입력란 복사용
GitHub, git, 버전관리, 브랜치, SSH, 자동배포, CICD, 깃허브입문, 1인개발, 비개발자, 웹개발, 티스토리
반응형

댓글