포스트

[GitHub 100일 챌린지] Day 11 - Repository 개념 이해하기

[GitHub 100일 챌린지] Day 11 - Repository 개념 이해하기

100일 챌린지 Day 11 - Repository는 프로젝트의 모든 것을 담는 저장소입니다

배울 내용

  1. Repository가 무엇인지
  2. Repository의 구성 요소
  3. Public vs Private Repository

Topic1. Repository란?

Repository(저장소) = 프로젝트 보관함

GitHub에서 Repository(줄여서 Repo)는 프로젝트의 모든 파일과 버전 히스토리를 저장하는 공간입니다.

조금 더 정확히 말하면 Repository는 “프로젝트를 운영하는 단위”입니다. 코드만 들어 있는 것이 아니라, 설명 문서, 이슈, PR, 릴리스, 보안 설정, 자동화까지 함께 묶입니다.

처음에는 아래 네 가지를 한 세트로 기억하세요.

요소 역할
Code 실제 파일과 폴더
README 처음 방문한 사람에게 보여주는 안내문
Issues 해야 할 일, 버그, 질문 관리
Pull requests 변경 제안과 리뷰

실제 폴더와 차이점

1
2
3
4
5
6
7
8
9
10
11
12
일반 폴더:
📁 my-project/
  ├── index.html
  └── style.css

GitHub Repository:
📦 my-project/ (Repository)
  ├── index.html
  ├── style.css
  ├── README.md (프로젝트 설명서)
  ├── .git/ (버전 관리 정보)
  └── 히스토리 (누가, 언제, 무엇을 변경했는지)

핵심 차이:

  • 버전 관리: 모든 변경 이력 추적
  • 협업 기능: 여러 사람이 동시 작업
  • 백업: 클라우드 저장소로 안전 보관

해보기: 다른 사람의 Repository 둘러보기

1
2
3
4
1. GitHub 홈페이지 접속
2. 검색창에 "awesome-python" 입력
3. vinta/awesome-python Repository 클릭
4. 파일 목록, README, Issues, Pull requests 탭 둘러보기

결과: 인기있는 오픈소스 Repository의 구조를 파악할 수 있습니다

둘러볼 때는 코드만 보지 말고 About 영역도 확인하세요. Description, Website, Topics가 정리된 저장소는 검색과 이해가 훨씬 쉽습니다.


Topic2. Repository 구성 요소

Repository는 다양한 요소로 구성됩니다:

필수 요소

1. 파일과 폴더

1
2
3
4
5
프로젝트의 실제 코드와 리소스:
- 소스 코드 (.js, .py, .java 등)
- 설정 파일 (.json, .yml 등)
- 문서 (.md, .txt 등)
- 이미지/에셋 (.png, .svg 등)

2. README.md

1
2
3
4
5
프로젝트 소개서:
- 프로젝트 설명
- 설치 방법
- 사용 예제
- 기여 방법

3. Commits (커밋)

1
2
3
4
변경 이력의 스냅샷:
📸 Commit 1: "프로젝트 초기화"
📸 Commit 2: "로그인 기능 추가"
📸 Commit 3: "버그 수정"

선택 요소

4. .gitignore

1
2
3
4
Git이 무시할 파일 목록:
node_modules/
.env
*.log

5. LICENSE

1
2
3
4
오픈소스 라이선스:
- MIT: 자유롭게 사용 가능
- GPL: 수정 시 소스 공개 필요
- Apache: 특허 보호 포함

6. Issues / Pull Requests

1
2
3
협업 도구:
- Issues: 버그 리포트, 기능 요청
- Pull Requests: 코드 변경 제안

메타데이터도 중요합니다

Repository 오른쪽 또는 상단의 About 영역에는 프로젝트를 설명하는 정보가 들어갑니다.

  • Description: 프로젝트를 한 문장으로 설명
  • Website: 배포 URL 또는 문서 URL
  • Topics: react, portfolio, cli 같은 검색 키워드
  • Releases: 사용자가 받을 수 있는 버전
  • Packages/Deployments: 배포와 패키지 정보

좋은 저장소는 파일 목록을 열기 전에도 “무엇을 하는 프로젝트인지” 알 수 있습니다. Phase 2에서는 코드를 쓰는 것만큼 이 설명 정보를 정리하는 연습도 중요합니다.

해보기: 아무 Repository에서 구성 요소 찾기

1
2
3
4
1. github.com/rails/rails 접속
2. README.md 찾아보기 (↓ 스크롤하면 보임)
3. LICENSE.md 파일 클릭
4. "Commits" 링크 클릭해서 히스토리 확인

결과: Repository의 기본 구조를 이해할 수 있습니다


Topic3. Public vs Private Repository

GitHub에는 두 가지 저장소 유형이 있습니다:

Public Repository (공개)

1
2
3
4
5
6
7
8
9
10
11
특징:
✅ 누구나 볼 수 있음
✅ 검색 가능
✅ 무료 무제한
✅ 오픈소스에 적합

사용 예:
- 오픈소스 라이브러리
- 포트폴리오 프로젝트
- 학습 자료
- 블로그/문서

장점:

  • 🌟 포트폴리오: 취업/이직 시 코드 실력 증명
  • 🤝 협업: 전 세계 개발자와 협업 가능
  • 📈 성장: 피드백 받고 배울 수 있음
  • 인지도: Star 받으면 동기부여

단점:

  • ⚠️ 보안: 비밀번호, API 키 노출 주의
  • ⚠️ 저작권: 코드 복사/도용 가능성
  • ⚠️ 미완성 노출: 설명이 부족하면 오해를 살 수 있음

Private Repository (비공개)

1
2
3
4
5
6
7
8
9
10
11
특징:
✅ 나와 초대한 사람만 볼 수 있음
✅ 검색 불가
✅ 무료 계정도 무제한
✅ 회사/개인 프로젝트에 적합

사용 예:
- 회사 프로젝트
- 개인 메모
- 민감한 정보 포함
- 완성 전 프로젝트

장점:

  • 🔒 보안: 외부 노출 걱정 없음
  • 🚧 WIP: 완성 전에도 안전하게 작업
  • 💼 업무: 회사 코드 관리

단점:

  • 포트폴리오 불가: 외부에서 볼 수 없음
  • 협업 제한: 초대한 사람만 참여

비교표

구분 Public Private
가격 무료 무료
가시성 전체 공개 초대자만
용도 오픈소스, 포트폴리오 회사, 개인 프로젝트
검색 가능 불가능
Star 가능 불가능

선택 기준은 간단합니다.

1
2
포트폴리오/학습 기록/오픈소스 → Public
회사 코드/개인정보/비밀 키/미완성 실험 → Private

Public으로 만들기 전에는 반드시 .env, API 키, 개인 정보, 유료 에셋이 들어 있지 않은지 확인하세요. 한 번 공개 저장소에 올라간 비밀 값은 삭제해도 이미 노출됐다고 생각하고 회전해야 합니다.

해보기: Public Repository 탐색하기

1
2
3
4
1. GitHub 검색창에 관심 기술 검색 (예: "react todo")
2. Star 개수 많은 Repository 클릭
3. Code, Issues, Pull requests 탭 둘러보기
4. Star 버튼 눌러보기 (⭐)

결과: Public Repository의 오픈소스 문화를 경험할 수 있습니다


실전 판단 연습

아래 프로젝트는 Public과 Private 중 무엇이 좋을까요?

프로젝트 추천 이유
개인 포트폴리오 웹사이트 Public 코드와 결과물을 보여주기 좋음
회사 내부 매출 대시보드 Private 업무 데이터와 내부 로직 포함
알고리즘 풀이 기록 Public 학습 기록으로 활용 가능
API 키가 들어간 실험 코드 Private 먼저 비밀 값 제거 필요

정답보다 중요한 것은 판단 기준입니다. 공개해도 되는 정보인지, 다른 사람이 봤을 때 설명이 충분한지, 라이선스가 필요한지 함께 생각하세요.


정리

완료 체크:

  • Repository가 일반 폴더와 어떻게 다른지 설명할 수 있다
  • Repository의 주요 구성 요소를 알고 있다
  • Public과 Private의 차이를 이해했다
  • About, Topics, README의 역할을 설명할 수 있다
  • 공개 저장소에 올리면 안 되는 정보를 구분할 수 있다

핵심 요약:

1
2
3
4
Repository = 프로젝트 보관함
- 파일 + 버전 히스토리 + 설명 문서 + 협업 도구
- Public: 포트폴리오, 오픈소스
- Private: 회사, 개인 프로젝트

다음: Day 12 - 첫 Repository 생성

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.