Day 4 — Git/GitHub + 개발환경 세팅

오늘의 목표

  1. Git이 "작업 기록 저장 + 되돌리기 장치"임을 이해한다
  2. GitHub에 내 프로젝트 저장소를 만든다
  3. 프로젝트 폴더 구조를 잡고 첫 커밋을 올린다

준비물: 명세서 + ERD + API 명세 / 노트북, GitHub 계정


0. 복습 — 지금까지 우리는

명세서(무엇을) → ERD(무엇을 저장) → API 명세(어떻게 주고받을지)까지 설계를 끝냈습니다. 오늘부터는 실제로 코드를 쌓을 집터를 닦습니다.


1. Git이란? — 게임 세이브 파일

Git = 코드의 변경 이력을 저장하고, 언제든 과거로 되돌릴 수 있는 도구

게임의 세이브 포인트를 떠올리세요. 보스전 전에 저장(커밋)해두면, 죽어도 그 지점부터 다시 합니다. 코드도 똑같습니다. "여기까진 잘 됐다" 싶을 때 저장해두면, 나중에 망가져도 돌아올 수 있습니다.

Git이 없으면 생기는 일

최종.py
최종_진짜최종.py
최종_이번엔진짜.py
최종_제발.py

이런 파일 만들어본 적 있죠? Git은 이걸 깔끔하게 해결합니다. 파일은 하나, 이력은 전부 기록됩니다.


2. 핵심 용어 4개만

용어비유
repository (저장소/레포)프로젝트 전체를 담는 공간프로젝트 폴더
commit (커밋)변경사항을 저장하는 행위게임 세이브
push (푸시)내 커밋을 GitHub에 올리기클라우드 백업
branch (브랜치)작업을 분리하는 갈래평행세계

💡 지금은 commit / push 만 제대로 익혀도 충분합니다. 브랜치는 Day 12 협업 파트에서 깊게 다룹니다.


3. 실습 — GitHub 저장소 만들고 연결하기

따라 하세요. 한 줄씩.

① GitHub에서 저장소 생성

  1. github.com 로그인 → 우측 상단 +New repository
  2. Repository name: 프로젝트 이름 (예: my-todo-app)
  3. Private 선택 (혼자 보다가 나중에 공개로 바꿔도 됨)
  4. Add a README file 체크
  5. Add .gitignore → 본인 언어 선택 (예: Node, Python)
  6. Create repository 클릭

💡 .gitignore가 뭐예요? GitHub에 올리면 안 되는 파일(비밀번호, 설치 폴더 등)을 자동으로 빼주는 목록입니다. 꼭 추가하세요.

② 내 컴퓨터로 가져오기 (clone)

저장소 페이지의 초록 Code 버튼 → HTTPS 주소 복사 후, 터미널에서:

# 작업할 폴더로 이동 후
git clone https://github.com/내아이디/my-todo-app.git
cd my-todo-app

③ 기본 폴더 구조 만들기

풀스택이니 프론트/백엔드를 나눕니다. (스택에 따라 조정)

my-todo-app/
├── README.md          ← 프로젝트 설명
├── .gitignore         ← 올리면 안 되는 파일 목록
├── backend/           ← 서버 코드
│   └── (여기에 백엔드)
├── frontend/          ← 화면 코드
│   └── (여기에 프론트)
└── docs/              ← 설계 문서 모음
    ├── spec.md        ← Day1 명세서
    ├── erd.md         ← Day2 ERD
    └── api.md         ← Day3 API 명세

💡 지금까지 만든 설계 문서 3개를 docs/ 에 넣으세요. 프로젝트 안에 두면 나중에 AI에게 "docs 보고 코드 짜줘"라고 시키기도 좋습니다.


4. 커밋과 푸시 — 첫 저장

가장 많이 쓰는 4줄입니다. 외워두세요.

git add .                        # 변경된 파일 전부 담기
git commit -m "프로젝트 구조 및 설계 문서 추가"   # 저장 (메시지 필수)
git push                         # GitHub에 올리기
git status                       # 지금 상태 확인 (수시로!)

좋은 커밋 메시지 쓰는 법

✅ "로그인 API 구현"
✅ "할 일 목록 화면 추가"
✅ "마감일 정렬 버그 수정"

❌ "ㅁㄴㅇㄹ"
❌ "수정"
❌ "asdf"

💡 규칙: "무엇을 했는지"를 한 줄로. 나중에 과거로 돌아갈 때 이 메시지가 이정표가 됩니다.

커밋은 얼마나 자주?

"의미 있는 작업 하나가 끝날 때마다." 너무 자주도, 너무 가끔도 아닌, "되돌리고 싶은 단위" 로 끊으세요. 보통 하루에 여러 번 합니다.


5. 개발환경 점검

본인 스택에 맞게 설치되어 있는지 확인하세요.

# 예시 — 본인 스택에 맞게
node -v      # Node.js 버전 확인
python --version
git --version
  • 코드 에디터 설치 (VS Code 등)
  • 본인 백엔드 언어/런타임 설치
  • 데이터베이스 설치 또는 클라우드 DB 준비
  • AI 코딩 도구 준비 (바이브코딩용)

⚠️ 환경 세팅에서 막히는 건 정상입니다. 에러 메시지를 그대로 복사해서 AI에게 물어보세요 — 이것도 중요한 실전 스킬입니다.


6. 오늘의 체크리스트

  • Git이 "기록·되돌리기 장치"임을 이해했다
  • commit / push의 차이를 안다
  • GitHub에 내 저장소를 만들었다
  • 폴더 구조를 잡고 설계 문서 3개를 docs/에 넣었다
  • 첫 커밋을 push 했다 ← 가장 중요!
  • 개발환경(에디터·언어·DB)이 준비됐다

7. 다음 시간 예고

Day 5 — 바이브코딩 입문 + 프롬프트 전략

  • AI에게 코드를 "제대로" 시키는 법을 배웁니다
  • 좋은 프롬프트 / 생성된 코드 검토법 / 막혔을 때 대처
  • 준비물: 세팅 완료된 내 프로젝트 저장소

📌 숙제: GitHub 저장소 주소를 멘토에게 공유하세요. 다음 시간부터 여기에 실제 코드가 쌓입니다.


오늘부로 집터가 생겼습니다. 이제 벽돌(코드)을 쌓을 차례입니다. 🧱