9장. GitHub 입문
교육 의도
GitHub 장의 목표를 금고·세이브·검문 습관으로 제시한다.
핵심 설명
Git 명령 암기가 아니라 코드 사본, 안정 시점, 업로드 전 보안 검문을 얻는 장이다.
발문·활동
컴퓨터 고장과 코드 손상 중 지금 더 대비되지 않은 위험을 묻는다.
오개념·주의
GitHub를 배포 서비스로 소개하지 않는다. 현재는 코드 보관과 복구의 출발점이다.
세 가지 학습 성과를 말한다.
학생용 20개 슬라이드와 1:1로 대응합니다. 비밀 검문, 안전한 업로드, 커밋·푸시, 파괴 테스트와 복구를 통해 GitHub를 ‘금고와 타임머신’으로 이해하도록 설계했습니다.
9장은 Git 명령어 암기 수업이 아닙니다. 학습자가 ‘올리기 전에 검문하고, 잘될 때 세이브하며, 망가지면 안정 시점으로 돌아가는’ 운영 습관을 갖게 하는 장입니다.
Git은 내 컴퓨터의 변경 이력 기술, GitHub는 그 이력을 보관하는 인터넷 금고입니다.
아닙니다. 이미 노출된 키는 즉시 폐기·재발급하고 이력 제거를 별도로 처리해야 합니다.
가시성 제한일 뿐입니다. 비밀·개인정보를 커밋하지 않는 원칙은 동일합니다.
저장소는 코드 보관함입니다. 실행 가능한 공개 URL은 10장 Vercel에서 만듭니다.
GitHub 장의 목표를 금고·세이브·검문 습관으로 제시한다.
Git 명령 암기가 아니라 코드 사본, 안정 시점, 업로드 전 보안 검문을 얻는 장이다.
컴퓨터 고장과 코드 손상 중 지금 더 대비되지 않은 위험을 묻는다.
GitHub를 배포 서비스로 소개하지 않는다. 현재는 코드 보관과 복구의 출발점이다.
세 가지 학습 성과를 말한다.
단일 로컬 사본의 취약성을 문제로 인식한다.
컴퓨터 고장과 AI의 잘못된 수정은 서로 다른 사고지만 둘 다 현재 사본만 있으면 전체 손실로 이어진다.
잘 작동하던 어제 상태로 돌아갈 수 있는지 자가 점검하게 한다.
파일 복사만으로는 변경 이력과 안정 시점의 이름표가 남지 않는다.
외부 사본과 복구 지점이 필요한 이유를 설명한다.
9장의 절차를 PROTECT와 SAVE·RESTORE·SHARE로 구조화한다.
먼저 비밀을 거르고 비공개 저장소에 올린 뒤, 사람 확인·커밋·복구·공유로 확장한다.
단계 중 사람 확인이 두 번 필요한 위치를 찾게 한다.
업로드 성공 메시지를 검문 완료로 오해하지 않게 한다.
일곱 절과 5단 학습 리듬을 연결한다.
안전벨트의 두 반쪽을 구분한다.
PM2는 죽은 프로세스를 재시작하고 Git은 로컬 세이브 이력, GitHub는 그 이력의 인터넷 사본을 보관한다.
서버는 online인데 화면이 망가진 사례에 어떤 장치가 필요한지 묻는다.
커밋만 하고 푸시하지 않은 내용은 GitHub에 없다. Git이 추적하지 않는 데이터도 함께 복구되지 않는다.
프로세스 중단·코드 손상·PC 고장을 각각 올바른 장치에 연결한다.
GitHub의 범위를 초보자 관점에서 제한해 부담을 낮춘다.
이 장에서는 협업 기능보다 금고와 배포 출발점 두 역할만 배운다. 큰 수정 전과 정상 상태에서 세이브한다.
보스전 직전 세이브에 해당하는 프로젝트 순간을 예로 받는다.
브랜치·PR을 미리 깊게 설명하지 않는다. 일부는 11장에서 다시 다룬다.
세이브 시점과 두 가지 보너스를 설명한다.
계정·Username·저장소·가시성의 기본을 익힌다.
프로젝트 하나가 저장소 하나이며 Username은 공개 주소가 된다. 망설여지면 private로 시작한다.
qa-board와 my-plugins의 가시성을 각각 선택하고 이유를 말하게 한다.
Private도 비밀 저장소가 아니다. 향후 공개·초대·계정 침해를 고려해 키는 넣지 않는다.
계정과 qa-board private 원칙을 확인한다.
비밀·개인정보를 애초에 Git 이력에 넣지 않는 원칙을 내면화한다.
.env, data, logs는 반입 금지다. 현재 화면에서 삭제해도 과거 커밋에 남을 수 있다.
이미 키가 올라갔다면 첫 조치가 파일 삭제인지 키 폐기인지 묻는다.
실제 키를 수업 화면·캡처·채팅에 노출하지 않는다. 예시는 반드시 마스킹한다.
반입 금지 대상과 노출 시 키 폐기·재발급을 말한다.
AI 검문과 .gitignore의 역할·한계를 이해한다.
민감 파일을 찾아 제외 이유를 보고하게 하고 git 상태로 추적 여부를 확인한다. 업로드 후에는 사람이 실제 목록을 재검문한다.
.gitignore를 나중에 추가하면 과거 기록도 사라지는지 질문한다.
이미 추적된 파일은 .gitignore만으로 제거되지 않는다. 노출된 자격정보는 회전해야 한다.
.env·data·logs·node_modules 제외와 사람 재검문을 확인한다.
자연어 업로드 지시에서 필요한 조건과 사람 역할을 명확히 한다.
계정·저장소명·private·첫 사용·완료 URL을 지정한다. 도구 점검은 AI가 돕지만 설치 승인과 인증은 사람이 한다.
프롬프트에 private를 쓰지 않으면 어떤 위험이 생기는지 묻는다.
계정명을 실제 사용자 값으로 바꾸고 URL 공개 시 개인정보 노출에 유의한다.
도구 설치와 인증을 구분하고 저장소 URL을 받는다.
GitHub CLI의 대화형 인증을 안전하게 수행한다.
일반 터미널에서는 앞의 !를 빼고 gh부터 입력한다. 일회용 코드를 브라우저에서 승인한 뒤 Claude Code에 완료를 알린다.
브라우저에 다른 계정이 로그인돼 있으면 어떤 저장소에 올라갈지 묻는다.
일회용 코드도 화면 공유하지 않는다. 시크릿 창이나 로그아웃으로 계정을 확인한다.
올바른 계정·코드 승인·인증 완료·작업 재개를 확인한다.
업로드 후 ‘보이지 않아야 할 것’을 사람이 확인한다.
코드와 CLAUDE.md·.claude는 보이고 .env·data·logs는 보이지 않아야 하며 Private 표시도 확인한다.
무엇이 올라갔는가와 무엇이 안 올라갔는가 중 더 중요한 검문을 고르게 한다.
.env가 보이면 먼저 키를 폐기·재발급하고 이력 제거를 처리한다. 단순 삭제로 종료하지 않는다.
네 가지 확인을 저장소 화면에서 직접 수행한다.
커밋과 푸시를 두 개의 핵심 용어로 익힌다.
커밋은 현재 상태와 이름표를 로컬에 남기는 세이브, 푸시는 그 이력을 GitHub로 보내는 동작이다.
‘수정함’과 ‘안정 버전: 게시판 전체 기능 완성’ 중 복구에 유리한 메시지를 고르게 한다.
커밋 완료를 원격 백업 완료로 오해하지 않는다. 푸시 결과도 확인한다.
커밋 메시지와 원격 반영을 확인한다.
의도적 장애 주입으로 복구 전 상태를 명확히 만든다.
안정 커밋을 확인한 뒤 제목과 목록을 망가뜨리고 별도 커밋한다. 브라우저에서 실제 오류를 본다.
왜 ‘고장났다고 가정’하지 않고 화면에서 확인해야 하는지 묻는다.
실제 운영 저장소나 미저장 작업에서 실행하지 않는다. 작업 중 내용은 먼저 보관한다.
안정 지점·고장 커밋·망가진 화면 세 증거를 확인한다.
커밋 기반 복구가 추측 수정과 다른 점을 체험한다.
무엇을 망가뜨렸는지 몰라도 안정 커밋을 기준으로 로컬을 되돌린다. 새로고침 후 질문 등록까지 회귀 확인한다.
되돌린 뒤 제목만 정상이라면 복구 완료인지 묻는다.
복구는 작업 중 변경을 잃을 수 있으므로 먼저 별도 보관한다. Git 비추적 데이터는 복구 범위 밖이다.
화면·목록·질문 등록과 원격 기준 일치를 확인한다.
정상 확인과 비밀 검문을 포함한 저장 자동화를 설계한다.
CLAUDE.md 규칙과 /저장 명령 모두 기능 검사→민감 파일 검사→커밋·푸시 순서를 따른다. 문제면 중단한다.
자동화에 ‘강제 푸시 금지’와 ‘변경 없음 중단’이 필요한 이유를 묻는다.
CLAUDE.md는 지침이므로 누락될 수 있다. GitHub 실제 반영은 사람이 확인한다.
안전장치와 원격 커밋 생성을 확인한다.
public 저장소 공유에서 검문과 README 검증을 적용한다.
my-plugins는 공유 목적이라 public으로 올리되 먼저 비밀·개인정보를 검사하고 실제 설치 절차를 README에 쓴다.
시크릿 창에서 저장소를 여는 검증이 무엇을 증명하는지 묻는다.
공개 저장소는 되돌려도 이미 복사됐을 수 있다. 출처 불명의 플러그인 설치 위험도 상기한다.
로그아웃 공개 확인과 README 절차 일치를 검증한다.
프로세스 복구·코드 복구·외부 사본을 종합한다.
PM2는 재시작, Git·GitHub는 정상 코드 복귀, GitHub 금고는 PC 밖 사본을 제공한다. 검문과 자동화가 습관을 완성한다.
세 사고 시나리오에 알맞은 장치를 빠르게 매칭하게 한다.
GitHub가 데이터베이스 백업까지 자동 수행한다고 설명하지 않는다.
세 장치와 사고 유형을 정확히 연결한다.
검문–업로드–사람 확인–세이브–복구의 표준 절차를 정착시킨다.
자동화가 있어도 사람 확인은 빠지지 않는다. 큰 수정 전과 잘 되는 순간에 커밋·푸시한다.
다섯 단계 중 생략할 경우 피해가 가장 큰 단계를 고르게 한다.
검문과 확인을 같은 것으로 합치지 않는다. 전자는 사전 차단, 후자는 실제 결과 검증이다.
새 프로젝트에 5단계를 순서대로 적용한다.
저장소와 배포 환경을 구분한다.
GitHub URL은 코드 보관함이며 친구가 서비스를 사용하는 URL이 아니다. localhost 의존은 여전히 남아 있다.
저장소 페이지가 열리는 것과 서비스가 실행되는 것의 차이를 설명하게 한다.
GitHub Pages 등 다른 기능과 혼동시키지 않고 이 책의 Vercel 경로에 집중한다.
코드 보관과 실행·배포의 차이를 말한다.
9장의 세 성과를 회고하고 10장의 자동 배포로 연결한다.
금고, 타임머신, 검문 습관을 얻었다. 다음 장은 푸시 이후 Vercel이 자동 배포하는 뒤 반쪽이다.
오늘부터 적용할 개인 세이브 규칙을 한 문장으로 작성하게 한다.
완료감을 주되 아직 운영·데이터·배포 검증이 남았음을 분명히 한다.
세 성과와 다음 장 흐름을 자기 말로 설명한다.