GitHub: 내 코드의 인터넷 보관함
Git으로 만든 저장 포인트를 GitHub에 올려 두면 컴퓨터가 고장 나도 안전하고, 자동 배포와 클라우드 코딩의 출발점이 돼요.
🎯 이번 레슨을 마치면
- GitHub가 왜 필요한지, Git과 무엇이 다른지 설명할 수 있다
- 저장소, push, pull, 브랜치가 무슨 뜻인지 안다
- GitHub 계정을 만들고 Codex에게 프로젝트를 올리게 할 수 있다
- 공개 저장소에 올리면 안 되는 것을 안다
Git과 GitHub는 달라요
내 컴퓨터 Git으로 커밋
push (올리기) 저장 포인트를 GitHub로
GitHub 저장소 인터넷 보관함
pull (받아 오기) 다른 곳의 변경을 내 컴퓨터로
꼭 알아 둘 말
| 말 | 뜻 | AI에게는 이렇게 |
|---|---|---|
| 저장소저장소 (Repository)GitHub에서 프로젝트 하나의 파일과 변경 기록을 보관하는 칸이에요. 줄여서 repo라고도 해요. (repository, repo) | 프로젝트 하나를 보관하는 GitHub의 칸 | “my-site라는 저장소를 만들어 줘” |
| push푸시 (Push)내 컴퓨터의 커밋(저장 포인트)을 GitHub 저장소로 올리는 것이에요. 반대로 받아 오는 것은 pull이에요. | 내 커밋을 GitHub로 올리기 | “커밋하고 올려 줘” |
| pull | GitHub에 있는 새 변경을 내 컴퓨터로 받아 오기 | “GitHub에서 최신 내용을 받아 와 줘” |
| 브랜치브랜치 (Branch)원본(main)을 건드리지 않고 따로 작업하는 가지예요. 마음에 들면 원본에 합쳐요(merge). (branch) | 원본을 건드리지 않고 따로 작업하는 가지. 기본 가지는 보통 main | “새 가지에서 디자인을 바꿔 줘” |
| 풀 리퀘스트풀 리퀘스트 (Pull Request)GitHub에서 "이 변경을 원래 코드에 합쳐 주세요"라고 요청하는 것이에요. 바뀐 내용을 확인하고 합칠지 정해요. (PR) | “이 가지의 변경을 main에 합쳐 주세요”라는 요청 | “PR을 만들어 줘” |
| README | 저장소 첫 화면에 보이는 소개 글 | “README에 이 사이트 소개를 써 줘” |
1단계: GitHub 계정 만들기 (직접)
- github.com 에서 Sign up으로 무료 계정을 만들어요. 사용자 이름은 나중에 주소에 쓰이니(예:
github.com/minji) 영어로 깔끔하게 정해요. - 설정에서 **2단계 인증(Two-factor authentication)**을 켜요. 비밀번호가 새어 나가도 계정을 지켜 줘요.
2단계: 공개할까, 비공개로 할까?
| 🌍 공개 (Public) | 🔒 비공개 (Private) | |
|---|---|---|
| 누가 코드를 보나요? | 전 세계 누구나 | 나와 내가 초대한 사람만 |
| 좋은 점 | 포트폴리오로 보여 주기 좋아요 | 실수로 올린 정보가 노출될 걱정이 적어요 |
| 자동 배포 | ✅ 돼요 | ✅ 돼요 |
| 추천 | 코드를 보여 주고 싶을 때 | 처음에는 이것 |
3단계: Codex에게 올리게 하기
이 프로젝트를 내 GitHub 계정에 my-site라는 비공개 저장소로 올리고 싶어. 처음이니까 순서를 설명하고 한 단계씩 진행해 줘. - 올리기 전에 비밀 키(.env 등), 개인정보, 필요 없는 큰 폴더(node_modules 등)가 올라가지 않게 .gitignore를 확인해 줘. - README에 이 사이트가 무엇인지 짧게 소개해 줘. - GitHub 연결이나 로그인이 필요하면 내가 브라우저에서 직접 할게. - 다 올리면 GitHub에서 무엇을 확인하면 되는지 알려 줘.
👉 AI 코딩 도구에 따라 GitHub 웹사이트에서 빈 저장소를 먼저 만들어 달라고 할 수도 있어요. 그러면 github.com 오른쪽 위 + → New repository로 만들고, 저장소 주소를 알려 주면 돼요.
4단계: GitHub 화면 둘러보기
저장소 페이지(github.com/내아이디/my-site)를 열어 보세요.
| 어디를 볼까 | 무엇이 보이나요? |
|---|---|
| 파일 목록 | 내 컴퓨터의 프로젝트 파일들이 그대로 보여요. .env가 없어야 정상이에요 |
| Commits (커밋 기록) | 지금까지 만든 저장 포인트가 시간순으로 보여요. 누르면 무엇이 바뀌었는지 비교해서 보여 줘요 |
| README | 파일 목록 아래에 소개 글이 보여요 |
| Branches | 지금 있는 가지 목록. 처음엔 main 하나예요 |
매일 쓰는 흐름
오늘 작업한 내용을 "연락처 구역 추가"로 커밋하고 GitHub에 올려 줘.
작업을 시작하기 전에 GitHub에서 최신 내용을 받아 와 줘. 내 컴퓨터에만 있고 아직 안 올린 변경이 있으면 먼저 알려 줘.
👉 회사 PC, 클라우드 세션 등 여러 곳에서 작업한다면 시작할 때 꼭 받아 오기(pull)부터 해요. 안 그러면 두 곳의 변경이 엉킬 수 있어요.
브랜치: 원본은 그대로, 실험은 따로
큰 변경을 할 때는 main(본 사이트)을 바로 고치지 말고 **새 가지(브랜치)**에서 작업한 뒤, 마음에 들면 합쳐요.
main 지금 공개된 사이트
new-design 가지 여기서 마음껏 실험
풀 리퀘스트 "main에 합쳐 주세요"
합치기 (merge) 확인 후 main에 반영
메인 화면 디자인을 크게 바꿔 보고 싶어. main은 그대로 두고 new-design이라는 새 가지에서 작업해 줘. 다 되면 GitHub에 올리고, main에 합치기 위한 풀 리퀘스트(PR)를 만들어 줘. 합치는 건 내가 확인한 뒤에 할게.
다음 레슨에서 Cloudflare를 연결하면, 이 가지는 미리보기 주소로 따로 배포돼서 합치기 전에 실제 화면을 확인할 수 있어요.
퀴즈
회사 PC에서 작업하고 GitHub에 올렸어요. 집 컴퓨터에서 이어서 작업하려면 먼저 무엇을 할까요?
퀴즈
GitHub에 올리면 안 되는 것은?
📝 정리해 볼까요?
- Git은 내 컴퓨터 안의 저장 포인트, GitHub는 그 저장 포인트를 인터넷에 보관하는 곳이에요.
- 올리기는 push, 받아 오기는 pull이에요. AI에게 "올려 줘", "받아 와 줘"라고 말하면 돼요.
- 처음에는 비공개 저장소로 시작하고, 비밀 키와 개인정보는 절대 올리지 않아요. 계정에는 2단계 인증을 켜요.
📖 새로 나온 용어
- GitHub
- Git으로 저장한 코드를 인터넷에 올려 보관하고 공유하는 서비스예요. 비유: 코드용 클라우드 저장소
- 저장소 Repository
- GitHub에서 프로젝트 하나의 파일과 변경 기록을 보관하는 칸이에요. 줄여서 repo라고도 해요. 비유: 프로젝트별 클라우드 폴더
- 푸시 Push
- 내 컴퓨터의 커밋(저장 포인트)을 GitHub 저장소로 올리는 것이에요. 반대로 받아 오는 것은 pull이에요. 비유: 사진을 클라우드에 업로드
- 브랜치 Branch
- 원본(main)을 건드리지 않고 따로 작업하는 가지예요. 마음에 들면 원본에 합쳐요(merge). 비유: 원본 문서의 복사본에서 수정하기
- 풀 리퀘스트 Pull Request
- GitHub에서 "이 변경을 원래 코드에 합쳐 주세요"라고 요청하는 것이에요. 바뀐 내용을 확인하고 합칠지 정해요. 비유: 수정본을 결재 올리기
잘했어요! 완료 표시는 이 브라우저에 저장돼요.