2025. 8. 5. 12:25ㆍ대외활동/인공지능사관학교
#인공지능사관학교 #Git #GitHub #협업툴 #프로젝트관리 #코드버전관리 #깃허브기초 #개발자협업툴

1. Git과 GitHub, 왜 인공지능사관학교에서 중요할까?
직접 프로젝트에 참여하면서 느꼈던 건, 개발자에게 Git은 글쓰기의 문법 같고, GitHub는 협업을 위한 도화지 같다는 것이었습니다.
인공지능사관학교에서는 팀 기반의 프로젝트가 빈번하게 이루어지고, 실시간으로 여러 명이 코드를 작성하거나 수정하는 경우가 많습니다. 이때 Git과 GitHub를 제대로 사용하지 않으면 충돌(conflict)은 물론, 코드 유실, 버전 꼬임 같은 문제가 생기기 쉽죠.
Git은 로컬 버전 관리 도구, GitHub는 이를 클라우드 기반으로 협업하게 해주는 플랫폼입니다. 둘은 비슷하면서도 다르고, 둘 다 익혀야 비로소 프로젝트다운 프로젝트가 가능합니다.
저는 개인적으로 항상 프로젝트를 진행할 때마다 github를 이용하는데, 아직 많은 분들이 github 사용 자체를 어려워 하시거나 git과 github을 혼동 하시는 경우가 많더라구요! 그래서 이번 컨텐츠를 통해서 git/github를 간단하게라도 소개해 드리고자 합니다😊


2. Git/GitHub을 처음 접하는 사람에게 추천하는 시작 포인트
제가 Git을 처음 배울 때 가장 혼란스러웠던 건 명령어의 종류와 흐름이었습니다.
하지만 다음 3가지만 명확히 이해하면 시작이 훨씬 쉬워집니다
- Git은 로컬에서 버전을 관리하는 도구
(예: git init, git add, git commit) - GitHub는 온라인 저장소 역할
(예: git push, git pull) - 협업을 위해선 브랜치와 merge 개념이 중요
(예: git checkout -b, git merge)
3. 프로젝트에서 가장 자주 쓰는 Git 명령어 TOP 10
- git init: 로컬 저장소 초기화
- git clone [URL]: 원격 저장소 복사
- git add .: 변경된 파일을 스테이징
- git commit -m "설명": 버전 기록
- git push origin main: GitHub로 업로드
- git pull origin main: 최신 버전 가져오기
- git status: 현재 상태 확인
- git log: 커밋 히스토리 보기
- git branch: 브랜치 목록 보기
- git checkout -b [브랜치명]: 새 브랜치 생성
실제 예시: 제가 속했던 프로젝트에서는 main, dev, feature/모델링 이렇게 브랜치를 나눠서 각 팀원이 병렬로 작업했습니다. 이 덕분에 코드 충돌을 많이 줄일 수 있었죠.
실제 VS Code 화면으로 알아보는 Git & GitHub 사용법 (with 인사교 프로젝트 예시)
1. 깃허브에 올린 내 CS 학습 저장소: 화면 소개
아래 이미지는 GitHub에 업로드된 제 CS 학습용 저장소입니다.
README에는 학습 목적과 안내 메시지를 적어두었고, /data-structures 폴더 아래에 카테고리별 정리 파일들을 추가할 예정입니다.
이 저장소를 만들고 VS Code에서 연동한 과정을 아래에서 단계별로 설명드릴게요.

2. VS Code + Git 연동 구조 한눈에 보기

- 🔵 파란색 영역: Git Graph 확장 기능으로 커밋 히스토리를 시각적으로 확인할 수 있습니다. 현재 main 브랜치에서 "첫 업로드" 커밋 1건이 있습니다.
- 🔴 빨간색 영역: 현재 작업 중인 브랜치(main)와 가장 최근 커밋 메시지를 확인할 수 있습니다.
- 🟡 노란색 영역: 터미널 창입니다. 대부분의 Git 명령어는 여기에서 직접 입력합니다 (git init, git add, git push 등).
3. 실제 GitHub에 업로드하는 흐름
프로젝트를 GitHub에 업로드할 때 제가 사용하는 흐름은 다음과 같습니다.
초기 설정
git init git remote add origin https://github.com/사용자명/저장소명.git
파일 변경 및 커밋(로컬)
git add . git commit -m "첫 업로드"
GitHub에 업로드(원격)
git push -u origin main
이 과정을 마치면 GitHub 웹페이지에서 업로드된 파일들을 확인할 수 있어요.
위에서 보신 첫 번째 스크린샷이 바로 그 결과입니다.
4. 제가 자주 사용하는 Git 명령어 정리
| 초기화 | git init | 로컬 저장소 생성 |
| 원격 연결 | git remote add origin [URL] | GitHub 저장소 연결 |
| 버전 저장 | git add . → git commit -m "내용" | 커밋 등록 |
| 업로드 | git push origin main | GitHub로 올리기 |
| 최신 내용 가져오기 | git pull origin main | GitHub에서 받아오기 |
| 브랜치 생성 | git checkout -b feat/기능명 | 새로운 기능 개발 시 |
| 브랜치 병합 | git merge 브랜치명 | 기능 병합 |
| 커밋 취소 | git reset --hard HEAD | 되돌리기 |
5. 팁: GitHub 업로드, 이건 기억하세요!
- 작업 전 git pull, 작업 후 git push는 습관처럼!
- 브랜치 전략을 초기에 정해두면 협업이 수월합니다.
- VS Code의 Git Graph, GitLens 확장도 꼭 설치해 보세요.
- 커밋 메시지는 짧고 명확하게 ([fix] 로그인 오류 수정 등)
: 이건 저도 이번에 정리하면서 배운 부분이었습니다!
저도 다음 프로젝트 때는 이걸 생각해서 커밋 해 봐야 겠다고 느꼈습니다 - 이래 커밋 규칙 사항 정리해 뒀습니다. 필요하시면 열어서 확인해 보세요!
<기본 커밋 구조>
[타입] 작업 요약 (선택: #이슈번호)
<예시>
[feat] 출석 QR 기능 구현 #32
[fix] BLE 스캔 시 앱 크래시 수정
[docs] README.md에 기능 설명 추가
| 타입 | 의미 | 예시 |
| feat | 새로운 기능 추가 | [feat] 글쓰기 기능 추가 |
| fix | 버그 수정 | [fix] QR 스캔 오류 수정 |
| docs | 문서 작성/수정 | [docs] TIL 템플릿 정리 |
| style | 코드 포맷/스타일 변경 (로직X) | [style] 들여쓰기 일괄 정리 |
| refactor | 코드 리팩토링 (기능 변화X) | [refactor] 사용자 모듈 분리 |
| test | 테스트 코드 추가/변경 | [test] 유닛 테스트 작성 |
| chore | 기타 잡일 (빌드, 패키지 등) | [chore] .gitignore 업데이트 |
| perf | 성능 개선 | [perf] 모델 추론 속도 개선 |
👉 Tip: 커밋을 보기만 해도 어떤 변경인지 명확히 보여야 합니다!
<실제 개인 커밋 수정 사항>
[feat] 출석 도장 스캔 기능 구현
[fix] GitHub push 시 토큰 누락 오류 해결
[docs] CS 스터디 커밋 컨벤션 정리
[refactor] floor_detector.dart 로직 단순화
[style] 버튼 색상 인사교 테마 반영
[test] BLE 감지 기능 테스트 추가
[chore] firebase.json 배포 설정 변경
👉 이런 식으로 작성했어야 했는데 저는 지금까지 너무 지저분하게 커밋을 사용했습니다ㅠㅠ
📌 요약
| 저장소 생성 | GitHub에서 repo 생성 후 VS Code에서 git init |
| 연결 | git remote add origin [URL] |
| 커밋 & 푸시 | git add . → git commit → git push |
| 시각화 도구 | Git Graph, GitLens 추천 |
| 협업 팁 | 브랜치 나눠 작업, merge 시 PR 사용 |
이렇게 실제로 제가 만든 저장소 화면과 VS Code 연동 과정을 기반으로 Git을 사용하는 흐름을 정리해 보았습니다.
4. 협업 시 꼭 알아야 할 GitHub 사용법
처음 GitHub을 쓸 땐 단순히 "코드를 올리는 곳"이라고 생각했는데, 프로젝트를 하면서 진짜 핵심은 협업 기능이라는 걸 깨달았습니다.
- README.md로 프로젝트 설명
- .gitignore로 불필요한 파일 제외
- Issue로 팀원들과 소통
- Pull Request로 코드 리뷰 요청
- Projects 탭으로 칸반보드처럼 일정 관리
실제 예시: 프로젝트를 진행하면서 README.md를 통해서 전체적인 정보 전달 및 정리 하였습니다.

5. 실전에서 겪은 Git 실수 Best 3 (그리고 예방법)
- pull 없이 push 해서 conflict 폭탄
- 항상 작업 전 git pull 먼저 하기
- main 브랜치에서 작업하다가 전체 파일 변경
- dev나 feature/ 브랜치에서 작업 후 PR
- 커밋 메시지 통일되지 않아 히스토리가 엉망
- [feat], [fix], [docs] 등 커밋 컨벤션 사용
이런 실수는 한 번 겪고 나면 무섭게 되지만, 초기에 팀에서 규칙을 정해두면 미연에 방지할 수 있습니다.
6. Git 브랜치 전략 예시
- main: 최종 결과물
- dev: 통합 테스트용 브랜치
- feature/modeling, feature/frontend, fix/login-error: 세부 작업용 브랜치
- PR 시 코드 리뷰 → merge
특히 모델링 프로젝트에서는 model-v1, model-v2와 같이 실험 단위로 브랜치를 나눴던 게 큰 도움이 되었습니다.
7. GitHub에 꼭 올리지 말아야 할 것들
- .env 파일 (API Key, DB 비밀번호 포함된 파일)
- 개인정보 / 인증서 / 사진 등 민감한 자료
- 용량이 큰 데이터 파일 (>100MB는 Git LFS 사용)
.gitignore 설정을 안 해서 실수로 토큰이 유출된 사례가 있었는데, GitHub Actions 로그에 노출된 후 재발급 조치를 했습니다. 이런 실수를 예방하려면 .gitignore는 꼭 설정해야 합니다.
8. 마무리: Git/GitHub은 개발자의 ‘시간여행 도구’
직접 프로젝트를 해보니 Git은 단순한 도구가 아닌 기록, 복구, 소통, 성장을 위한 핵심 툴이라는 걸 깨달았습니다. GitHub는 그 기록을 세상과 나누는 창구죠.
✅ 인사교 학습자들을 위한 팁 요약
- 작업 전에는 항상 pull, 후에는 push
- 커밋 메시지는 목적을 명확히!
- 실험은 브랜치로, 합치는 건 PR로!
- README는 프로젝트의 얼굴이다
- .gitignore 설정은 필수!
👉 이 글이 생도분들의 프로젝트 진행과 Git과 GitHub를 시작하는 분들께 도움이 되길 바랍니다.
혹시 GitHub 사용하시면서 궁금하신 점 있으시면 댓글이나 디스코드로 요청해주세요!
제가 도움을 드릴 수 있는 부분이 있다면 최대한 말씀드리도록 하겠습니다.
추가적으로 git 설치, github 연결에 대한 부분도 필요하시면 남겨주시면 그것에 관련된 컨텐츠도 만들어 보겠습니다~