GitHub 저장소 가시성: 공개 vs 비공개
GitHub에서 저장소(Repository)를 만들 때 가장 먼저 결정해야 할 사항 중 하나는 저장소의 가시성(Visibility) 입니다. 즉, 공개(Public) 로 만들 것인지 비공개(Private) 로 만들 것인지 선택하는 것이죠. 이 두 가지 설정은 GitHub의 협업 방식과 코드 공유에 큰 영향을 미칩니다.
1. 공개 저장소(Public Repository)란?
공개 저장소는 누구나 접근할 수 있는 저장소 입니다.
아래의 특징을 갖습니다.
✅ 인터넷에 공개됨 → 누구나 저장소를 검색하고 찾을 수 있음
✅ 누구나 내용을 볼 수 있음 → 코드, 이슈, 위키 등을 확인 가능
✅ 클론(Clone) 가능 → 저장소의 코드를 복제하여 사용할 수 있음
✅ 변경 권한은 없음 → 공동 작업자로 초대되지 않은 사용자는 저장소에 직접 변경 사항을 푸시(Push)할 수 없음
🎯 예제: 오픈소스 프로젝트
우리가 자주 보는 유명한 오픈소스 프로젝트(예: React)는 대부분 공개 저장소입니다.
누구나 코드를 보고, 자신의 로컬에 복제하고, 수정한 후 Pull Request를 통해 기여할 수 있습니다.
2. 비공개 저장소(Private Repository)란?
비공개 저장소는 소유자와 초대된 사용자만 접근할 수 있는 저장소 입니다.
✅ 소유자와 초대된 사용자만 볼 수 있음
✅ 검색되지 않음 → GitHub 검색에서도 나타나지 않음
✅ 비공개 협업 가능 → 특정 사용자에게만 코드 접근을 허용
✅ 보안이 중요한 프로젝트에 적합
🎯 예제: 개인 프로젝트 & 기업 내부 프로젝트
회사의 내부 코드, 개발 중인 개인 프로젝트 등은 외부에 노출되지 않도록 비공개 저장소로 설정하는 것이 일반적입니다.
3. 공개와 비공개의 차이점 한눈에 보기
공개 저장소 | 비공개 저장소 | |
---|---|---|
누가 볼 수 있는가? | 누구나 | 소유자와 초대된 사용자 |
검색 가능 여부 | 가능 | 불가능 |
클론(Clone) 가능 여부 | 누구나 가능 | 초대된 사용자만 가능 |
협업 방식 | 오픈소스 기여 가능 | 제한된 사용자와 협업 가능 |
사용 예시 | 오픈소스 프로젝트, 문서 저장소 | 개인 프로젝트, 기업 내부 프로젝트 |
4. 저장소 공개/비공개 전환 방법
저장소의 공개 여부는 생성 시 설정하지만, 나중에 변경할 수도 있습니다.
📌 설정 방법:
- GitHub 저장소의 Settings 탭으로 이동
- "Danger Zone"(위험 영역) 섹션까지 스크롤
- "Change repository visibility" 버튼 클릭
- 공개 → 비공개 또는 비공개 → 공개로 전환
- 저장소 이름을 입력하고 변경 확인
⚠️ 주의할 점
- 공개 → 비공개 전환 시: 저장소를 보고 있던 사람들은 더 이상 접근할 수 없음
- 비공개 → 공개 전환 시: 누구나 볼 수 있게 됨 (보안에 유의)
- 스타(⭐), 이슈, 위키 등의 공개 기능이 사라질 수 있음
🎯 예제: 공개 저장소를 비공개로 전환했을 때
- A라는 사람이
bookish-disco
라는 공개 저장소를 보고 있었음- 저장소 소유자가
bookish-disco
를 비공개로 전환- A가 다시 저장소에 접근하려 하면 404 Not Found 오류 발생
이처럼 비공개로 변경하면 기존에 접근 가능하던 사용자도 접근할 수 없게 됩니다.
5. 언제 공개/비공개를 선택해야 할까?
✔ 공개 저장소를 선택해야 하는 경우
- 오픈소스 프로젝트를 운영할 때
- 개발한 프로젝트를 공개하고 싶을 때
- 누구나 기여할 수 있도록 하고 싶을 때
✔ 비공개 저장소를 선택해야 하는 경우
- 개인 또는 기업의 기밀 프로젝트일 때
- 아직 개발 중이라 공개하고 싶지 않을 때
- 특정 사용자만 접근하도록 제한하고 싶을 때
📌 일반적인 흐름:
개발 초기에는 비공개 저장소에서 시작하고, 준비가 되면 공개 저장소로 전환하는 방식이 많이 사용됩니다.
🚀 마무리
GitHub의 공개 저장소와 비공개 저장소는 각기 다른 장점이 있습니다.
공개 저장소는 열린 협업과 공유를 위한 공간이며, 비공개 저장소는 보안과 제한된 협업에 적합합니다.
어떤 프로젝트든 목표와 필요에 따라 가시성을 적절히 선택하는 것이 중요합니다.
GitHub에서 공동 작업자 추가하기
GitHub에서 저장소를 단독으로 관리할 수도 있지만, 다른 사람들과 함께 협업하는 경우가 많습니다. 이때, 공동 작업자(Collaborators) 를 추가하면 저장소에 접근하여 직접 코드를 수정하고 변경 사항을 반영할 수 있습니다.
❗ 공동 작업자와 공개 저장소는 다르다!
- 공개 저장소는 누구나 코드를 볼 수 있지만, 변경할 수는 없음
- 공동 작업자는 코드 변경이 가능하며, 저장소에 직접 푸시(Push) 가능
1. GitHub 공동 작업자란?
공동 작업자는 저장소의 소유자가 허락한 사용자 로, 저장소에 코드를 푸시하고 변경할 수 있는 권한을 가집니다.
하지만 소유자와 동일한 권한을 갖지는 않습니다. (예: 저장소 삭제, 설정 변경 불가)
✅ 코드를 푸시할 수 있음
✅ 이슈 및 PR 관리 가능
❌ 저장소 삭제 불가
❌ 다른 공동 작업자 추가/삭제 불가
2. GitHub 공동 작업자 추가하는 방법
소유자는 저장소 설정에서 공동 작업자를 추가할 수 있습니다.
아래의 단계를 따르면 됩니다.
📌 설정 방법:
1️⃣ GitHub 저장소로 이동
2️⃣ Settings(설정) → Collaborators(공동 작업자) 선택
3️⃣ GitHub 사용자명 또는 이메일 입력
4️⃣ 초대(Invite) 버튼 클릭
5️⃣ 상대방이 초대를 수락하면 공동 작업자로 추가됨
🎯 예제: Stevie를 공동 작업자로 추가하기
bookish-disco
라는 저장소에 공동 작업자를 추가하려 함- GitHub 사용자 StevieChicks를 검색 후 초대
- Stevie가 이메일을 확인하고 초대를 수락
- Stevie는 이제 저장소에 접근하고 코드를 푸시할 수 있음
3. 공동 작업자 초대 과정
(초대 후 상대방이 이메일을 확인하고 수락해야 최종 등록됨)
✅ 소유자는 초대만 가능
✅ 공동 작업자는 초대를 수락해야만 저장소에 접근 가능
✅ 자동 초대 불가! – 보안을 위해 상대방의 동의가 필요함
4. 공동 작업자의 권한
공동 작업자로 추가되었다고 해서 모든 권한이 주어지는 것은 아닙니다.
권한 | 소유자 | 공동 작업자 |
---|---|---|
코드 보기 | ✅ | ✅ |
코드 푸시 | ✅ | ✅ |
이슈/PR 관리 | ✅ | ✅ |
저장소 삭제 | ✅ | ❌ |
다른 공동 작업자 추가/삭제 | ✅ | ❌ |
설정 변경 | ✅ | ❌ |
❗ Stevie가 공동 작업자가 되었다고 해서 설정을 변경할 수 있는 것은 아님!
공동 작업자는 저장소에 접근하고 변경 사항을 푸시할 수 있지만, 설정 탭은 보이지 않음.
5. 공동 작업자 제거 방법
필요에 따라 공동 작업자를 삭제할 수도 있습니다.
📌 삭제 방법:
1️⃣ GitHub 저장소의 Settings(설정) → Collaborators(공동 작업자) 이동
2️⃣ 제거할 공동 작업자의 "Remove" 버튼 클릭
3️⃣ 공동 작업자가 삭제됨
❌ 공동 작업자가 제거되면, 더 이상 코드에 접근할 수 없음
❌ 기존에 푸시한 커밋은 그대로 유지됨
6. 공동 작업자를 추가하는 경우
✔ 팀 프로젝트를 진행할 때
✔ 개인 저장소를 여러 명이 함께 관리할 때
✔ 코드 리뷰 및 협업이 필요할 때
❗ 그러나 무분별한 추가는 보안 문제를 초래할 수 있음
❗ 저장소 접근 권한을 신중하게 부여해야 함
🚀 마무리
GitHub에서는 공동 작업자 시스템을 통해 협업을 원활하게 진행할 수 있습니다.
하지만 공동 작업자는 소유자와 동일한 권한을 갖지 않으며, 초대 후 수락 과정이 필요합니다.
GitHub 협업 데모: 기본적인 협업 워크플로
GitHub는 단순한 코드 저장소를 넘어, 여러 개발자가 동시에 협업할 수 있는 강력한 플랫폼입니다. 이번 글에서는 여러 명이 한 저장소에서 협업하는 기본적인 GitHub 워크플로를 살펴보겠습니다.
1. GitHub 협업 기본 개념
공동 작업자는 다른 사람의 저장소에 접근하여 코드 변경 사항을 반영할 수 있는 사용자 입니다.
GitHub에서 협업할 때는 보통 다음과 같은 흐름으로 진행됩니다.
1️⃣ 저장소 소유자가 저장소를 생성하고 공동 작업자를 추가
2️⃣ 공동 작업자가 저장소를 복제(Clone) 하고, 로컬에서 수정
3️⃣ 공동 작업자가 변경 사항을 커밋(Commit)하고 원격 저장소에 푸시(Push)
4️⃣ 소유자가 변경 사항을 풀(Pull)하여 반영
이를 그림으로 표현하면 다음과 같습니다.
(1) 저장소 생성 → (2) 공동 작업자가 클론 → (3) 코드 수정 후 푸시 → (4) 소유자가 풀(Pull)
2. GitHub 협업 예제
여기서는 두 명의 사용자인 Colt와 Stevie가 같은 저장소에서 협업하는 과정을 시뮬레이션해보겠습니다.
Step 1: 저장소 생성 및 공동 작업자 추가
Colt는 bookish-disco
라는 GitHub 저장소를 생성하고, 공동 작업자로 Stevie를 추가합니다.
📌 공동 작업자 추가 방법
- GitHub 저장소의 Settings(설정) → Collaborators(공동 작업자) 이동
- Stevie의 GitHub 사용자명을 입력하고 초대(Invite)
- Stevie가 초대를 수락하면 공동 작업자로 등록됨
✅ 이제 Stevie도 저장소에 접근할 수 있음!
Step 2: 저장소 초기화 및 첫 커밋
Colt가 저장소를 초기화하고 첫 번째 파일을 추가합니다.
# 저장소 초기화
git init
# 새로운 파일 생성
echo "Bee Gees" > artists.txt
# 파일을 Git에 추가하고 커밋
git add artists.txt
git commit -m "첫 번째 커밋: 아티스트 목록 시작"
# 원격 저장소 연결
git branch -M main
git remote add origin https://github.com/Colt/bookish-disco.git
# GitHub에 업로드
git push -u origin main
✅ 결과:
Colt의 GitHub 저장소에는 artists.txt
파일이 추가되었고, "첫 번째 커밋"이 기록됨.
Step 3: Stevie가 저장소 클론(Clone)
Stevie는 이 저장소를 자신의 로컬 환경으로 복제합니다.
# Stevie의 로컬 환경에서 저장소 클론
git clone https://github.com/Colt/bookish-disco.git
# 저장소 폴더로 이동
cd bookish-disco
# 현재 브랜치 확인
git branch
✅ 결과:
Stevie는 bookish-disco
저장소를 자신의 컴퓨터로 다운로드했으며, 같은 파일과 커밋을 볼 수 있음.
Step 4: Stevie가 파일 수정 및 커밋
Stevie는 artists.txt
파일에 새로운 가수를 추가하고, 변경 사항을 커밋합니다.
# 아티스트 추가
echo "Sylvester" >> artists.txt
# 변경 사항 Git에 추가
git add artists.txt
# 커밋
git commit -m "아티스트 추가: Sylvester"
✅ 결과:
Stevie의 로컬 저장소에 새로운 커밋이 생성됨.
Step 5: Stevie가 변경 사항 푸시(Push)
Stevie는 GitHub에 변경 사항을 반영하기 위해 푸시(Push) 합니다.
git push origin main
✅ 결과:
GitHub 저장소에 Stevie의 커밋이 반영되었으며, 이제 Colt도 이 변경 사항을 볼 수 있음!
Step 6: Colt가 변경 사항 풀(Pull)
Colt는 Stevie가 푸시한 변경 사항을 자신의 로컬 환경으로 가져옵니다.
git pull origin main
✅ 결과:
Colt의 로컬 저장소에도 artists.txt
에 추가된 내용이 반영됨.
3. GitHub 협업 흐름 요약
✅ 소유자(Colt)
- GitHub에 저장소 생성
- 공동 작업자(Stevie) 추가
- 파일을 생성하고 첫 커밋 후 푸시
✅ 공동 작업자(Stevie)
- 저장소를 클론
- 파일을 수정하고 커밋
- 변경 사항을 푸시
✅ 소유자(Colt)
- 변경 사항을 풀(Pull)하여 반영
이 과정을 반복하면 원활한 협업이 가능해집니다!
4. 협업 시 유의할 점
🔹 커밋 메시지를 명확하게 작성 → "수정 완료" 같은 메시지 대신 변경 사항을 설명
🔹 원격 저장소에서 변경 사항을 자주 풀(Pull) → 최신 상태 유지
🔹 충돌(Conflict) 해결 능력 필요 → 같은 파일을 동시에 수정하면 충돌 가능
🚀 마무리
GitHub 협업은 클론 → 변경 → 커밋 → 푸시 → 풀 의 흐름으로 진행됩니다.
기본적인 협업 방식만 익혀도 원활한 협업이 가능하며, 이후 브랜치를 활용한 협업 전략 등을 배우면 더욱 효과적으로 프로젝트를 관리할 수 있습니다.
README란 무엇인가?
GitHub에서 저장소를 만들 때 README 파일을 추가하는 옵션을 본 적이 있을 것입니다. README는 단순한 텍스트 파일이지만, 프로젝트의 얼굴과 같은 역할을 하며, 사용자 및 개발자에게 가장 먼저 보여지는 정보입니다. 그렇다면 README 파일은 정확히 무엇이며, 왜 중요한지 살펴보겠습니다.
1. README 파일이란?
README는 프로젝트에 대한 정보를 제공하는 문서입니다.
저장소의 루트 디렉토리에 README.md
라는 파일명을 사용하며, GitHub는 이를 자동으로 감지하여 프로젝트 페이지에서 표시합니다.
✅ README의 역할
- 프로젝트가 무엇을 하는지 설명
- 프로젝트를 설치하고 실행하는 방법 안내
- 사용 방법, 기능 소개, 예제 코드 제공
- 공동 작업을 위한 기여 방법 안내
- 라이선스 및 문의 정보 포함
📝 README 파일 예시
# Bookish Disco 🎵
음악 추천 및 공유를 위한 GitHub 프로젝트입니다.
## 🚀 시작하기
1. 저장소 클론하기: `git clone https://github.com/Colt/bookish-disco.git`
2. 프로젝트 실행: `npm start`
## 📌 주요 기능
- 음악 추천 알고리즘
- 사용자 리뷰 및 평점 기능
- 실시간 스트리밍 지원
## 🤝 기여하기
1. 이슈 확인 후 Fork하기
2. 브랜치 생성: `git checkout -b feature-branch`
3. 변경 사항 반영 후 PR 생성
2. README는 어디에서 볼 수 있나요?
GitHub에서 저장소를 방문하면 가장 먼저 보이는 것이 바로 README 파일입니다.
저장소의 루트 디렉토리에 위치한 README.md
는 자동으로 감지되어 GitHub 페이지에 표시됩니다.
📌 예제: React의 공식 GitHub 저장소
- React GitHub 저장소에 가보면, 최상단에 README 파일의 내용이 나타납니다.
- React의 개요, 사용법, 기여 방법 등이 정리되어 있음.
- 프로젝트를 처음 방문하는 개발자에게 출발점 역할을 함.
3. README에 포함하면 좋은 내용
README 파일에는 프로젝트의 성격에 따라 다양한 내용을 담을 수 있습니다.
다음과 같은 요소를 포함하면 효과적인 README를 만들 수 있습니다.
섹션 | 설명 |
---|---|
프로젝트 이름 및 설명 | 프로젝트의 목적을 간결하게 소개 |
설치 방법 | 개발자가 프로젝트를 로컬 환경에서 실행하는 방법 안내 |
사용법(Usage) | API 호출 예제, 실행 방법 등의 가이드 |
기여 방법(Contribution) | 오픈소스 프로젝트의 경우, 기여하는 방법 설명 |
라이선스 정보 | 프로젝트의 사용 범위를 명확히 하기 위한 라이선스 설명 |
문의 및 지원 방법 | 개발자 또는 사용자와 소통하는 방법 안내 |
4. README는 왜 중요한가?
✔ 사용자 및 개발자를 위한 첫인상
✔ 협업 시 정보 공유를 원활하게 함
✔ 오픈소스 프로젝트의 기여 장벽을 낮춤
✔ 프로젝트의 신뢰도를 높여줌
README는 단순한 문서가 아니라, 프로젝트의 문서화 수준을 보여주는 중요한 요소입니다.
잘 정리된 README는 더 많은 사용자를 유치하고, 기여를 유도하는 데 큰 도움이 됩니다.
5. README와 Markdown
README 파일은 일반적으로 Markdown(.md
) 형식을 사용합니다.
Markdown은 간결한 문법으로 서식을 지정할 수 있는 문서 형식입니다.
📌 Markdown 문법 예제
# 제목입니다
## 작은 제목입니다
**굵게 표시**
_기울임 표시_
- 목록 1
- 목록 2
이러한 문법을 사용하면 가독성이 좋은 문서를 만들 수 있으며,
GitHub는 이를 자동으로 렌더링하여 깔끔한 형식으로 표시합니다.
🚀 마무리
README는 프로젝트의 가장 중요한 문서 중 하나이며,
첫인상과 정보 전달을 동시에 담당합니다.
📌 정리하자면,
✅ README는 프로젝트의 개요를 설명하는 문서이다.
✅ GitHub 저장소의 루트 디렉토리에 위치하며, 자동으로 표시된다.
✅ Markdown 형식을 사용하여 쉽게 서식을 지정할 수 있다.
✅ 프로젝트의 첫인상을 결정짓는 중요한 요소이다.
Markdown 집중 학습: 깃허브 문서화의 필수 도구
GitHub에서 문서를 작성할 때 가장 많이 사용되는 형식이 Markdown입니다. 특히 README.md
파일은 GitHub 저장소의 얼굴과 같은 역할을 하므로, Markdown 문법을 잘 활용하면 가독성 높은 문서를 만들 수 있습니다. 이번 글에서는 Markdown의 기본 개념과 주요 문법을 정리해보겠습니다.
1. Markdown이란?
Markdown은 텍스트를 간결한 문법으로 작성하고, 이를 HTML로 변환하는 마크업 언어입니다.
특징은 다음과 같습니다.
✅ 간단한 문법 → 쉽게 배우고 사용할 수 있음
✅ 가벼운 파일 형식 → .md
확장자를 사용하며, 일반 텍스트 에디터에서 작성 가능
✅ 자동 렌더링 지원 → GitHub, Reddit, VS Code 등 다양한 플랫폼에서 지원
📌 Markdown 파일 예시 (README.md
)
# Bookish Disco 프로젝트 🎵
음악 추천 및 공유를 위한 깃허브 프로젝트입니다.
## 🚀 시작하기
1. 저장소 클론: `git clone https://github.com/Colt/bookish-disco.git`
2. 프로젝트 실행: `npm start`
## 📌 주요 기능
- 🎶 음악 추천 알고리즘
- ⭐ 사용자 리뷰 및 평점 기능
- 📡 실시간 스트리밍 지원
위 파일은 GitHub에서 자동으로 HTML로 변환되어 저장소의 메인 페이지에 표시됩니다.
2. Markdown 기본 문법 정리
2.1 제목(Heading)
제목을 만들 때는 #
기호를 사용합니다.#
의 개수에 따라 제목의 크기가 달라집니다.
# 제목 1
## 제목 2
### 제목 3
#### 제목 4
##### 제목 5
###### 제목 6
🔽 렌더링 결과
제목 1
제목 2
제목 3
제목 4
제목 5
제목 6
2.2 텍스트 서식 (굵게, 기울임, 취소선)
**굵은 글씨**
*기울인 글씨*
~~취소선~~
🔽 렌더링 결과
굵은 글씨
기울인 글씨
취소선
2.3 수평선 (구분선)
문서를 나눌 때 ---
또는 ***
를 사용합니다.
---
🔽 렌더링 결과
2.4 목록 (리스트)
📌 순서 없는 목록 (불릿 리스트)
- 아이템 1
- 아이템 2
- 하위 아이템
- 하위 아이템
- 아이템 3
🔽 렌더링 결과
- 아이템 1
- 아이템 2
- 하위 아이템
- 하위 아이템
- 아이템 3
📌 순서 있는 목록 (번호 리스트)
1. 첫 번째 아이템
2. 두 번째 아이템
3. 세 번째 아이템
🔽 렌더링 결과
- 첫 번째 아이템
- 두 번째 아이템
- 세 번째 아이템
2.5 링크 (Hyperlink)
[GitHub 홈페이지](https://github.com)
🔽 렌더링 결과
GitHub 홈페이지
2.6 이미지 추가

🔽 렌더링 결과
2.7 코드 블록 (Code Block)
📌 인라인 코드
`console.log("Hello, world!");`
🔽 렌더링 결과console.log("Hello, world!");
📌 여러 줄 코드 블록
```
console.log("Hello, world!");
```
🔽 렌더링 결과
console.log("Hello, world!");
📌 특정 프로그래밍 언어 강조
```javascript
console.log("Hello, JavaScript!");
🔽 **렌더링 결과**
```javascript
console.log("Hello, JavaScript!");
2.8 표 (Table)
| 이름 | 나이 | 직업 |
|------|----|------|
| 콜트 | 30 | 개발자 |
| 스티비 | 25 | 디자이너 |
🔽 렌더링 결과
| 이름 | 나이 | 직업 |
|------|----|------|
| 콜트 | 30 | 개발자 |
| 스티비 | 25 | 디자이너 |
2.9 인용구 (Blockquote)
> "이것은 인용구입니다."
🔽 렌더링 결과
"이것은 인용구입니다."
2.10 체크리스트 (Task List)
- [x] GitHub 계정 생성
- [ ] README 파일 작성
- [ ] 프로젝트 초기화
🔽 렌더링 결과
- GitHub 계정 생성
- README 파일 작성
- 프로젝트 초기화
3. Markdown을 활용한 GitHub 문서 작성
📌 Markdown은 어디에서 사용할 수 있을까요?
README.md
(GitHub 저장소 설명 파일)ISSUE_TEMPLATE.md
(GitHub 이슈 템플릿)PULL_REQUEST_TEMPLATE.md
(PR 템플릿)- 블로그 및 위키 문서
- 노션, 슬랙, 레딧 등 다양한 플랫폼
📌 Markdown 미리보기 도구
- GitHub Markdown Preview
- Markdown Live Editor
- VS Code 확장 프로그램:
Markdown Preview
🚀 마무리
Markdown은 간결한 문법과 높은 가독성을 갖춘 문서 작성 도구입니다.
특히 GitHub에서는 README 작성뿐만 아니라 이슈, PR, 위키 문서에도 활용되므로, 필수적으로 익혀두는 것이 좋습니다.
프로젝트에 README 추가하기
이제까지 README란 무엇인가?, 그리고 Markdown을 활용하는 방법에 대해 살펴보았습니다.
이번에는 실제 프로젝트에 README 파일을 추가하는 과정을 단계별로 살펴보겠습니다.
1. 왜 README를 추가해야 할까?
README 파일은 프로젝트를 설명하는 가장 중요한 문서입니다.
개발자뿐만 아니라 비개발자(채용 담당자, 팀원, 오픈소스 사용자 등) 도 이 파일을 통해 프로젝트의 개요를 파악할 수 있습니다.
✔ README는 프로젝트의 얼굴이다!
- README는 프로젝트를 처음 방문한 사람이 가장 먼저 보는 파일입니다.
- README가 없다면, 프로젝트가 무엇을 하는지 알기 어렵습니다.
- 개발 초기에는 없어도 되지만, 프로젝트를 공유하려면 반드시 추가하는 것이 좋습니다.
📌 예제: README를 추가하지 않은 프로젝트
📁 my-project
┣ 📂 src
┣ 📂 assets
┣ 📂 components
┣ 📜 index.js
┗ 📜 package.json
✅ 파일 구조만으로 프로젝트의 목적을 파악하기 어려움
✅ 다른 사람이 프로젝트를 이해하기 힘듦
📌 예제: README를 추가한 프로젝트
📁 my-project
┣ 📂 src
┣ 📂 assets
┣ 📂 components
┣ 📜 index.js
┣ 📜 package.json
┗ 📜 README.md
✅ README를 통해 프로젝트 설명 제공
✅ 신규 사용자 및 기여자가 쉽게 이해 가능
2. README 파일 만들기
📌 1단계: README 파일 생성
터미널에서 프로젝트의 루트 디렉토리로 이동한 후, 다음 명령어를 입력합니다.
touch README.md
또는 VS Code에서 새 파일 생성 → "README.md" 파일명을 입력해 만들 수도 있습니다.
📌 2단계: README 내용 추가
이제 README 파일을 편집하여 프로젝트 설명을 추가합니다.
📌 예제: 기본 README.md
# Bookish Disco 🎵
이 프로젝트는 GitHub 협업을 연습하기 위한 데모 저장소입니다.
## 📌 프로젝트 소개
Bookish Disco는 GitHub의 기능을 배우기 위한 실습 프로젝트입니다.
실제로 음악 관련 기능이 포함된 프로젝트는 아닙니다.
## 🚀 시작하기
1. 저장소 클론:
```sh
git clone https://github.com/Colt/bookish-disco.git
- 프로젝트 실행:
npm start
🤝 기여 방법
- 이슈 확인 후 Fork하기
- 브랜치 생성:
git checkout -b feature-branch
- 변경 사항 반영 후 PR 생성
✅ 프로젝트의 개요, 실행 방법, 기여 방법 등을 포함하면 **가독성이 향상**됩니다.
📌 3단계: README 파일 GitHub에 올리기
README 파일을 추가했으니 GitHub에 반영해야 합니다.
git add README.md
git commit -m "README 파일 추가"
git push origin main
✅ 결과:
GitHub 저장소를 새로고침하면 README 파일이 자동으로 렌더링되어 표시됩니다.
3. 공동 작업자가 README를 가져오는 방법
GitHub 저장소에서 README 파일을 추가한 후, 다른 공동 작업자는 최신 변경 사항을 가져와야 합니다.
git pull origin main
✅ 결과:
다른 개발자는 git pull
명령어를 실행하여 README 파일을 자신의 로컬 저장소로 가져올 수 있습니다.
🚀 마무리
README 파일은 프로젝트를 설명하는 중요한 문서입니다.
처음에는 간단한 내용만 포함해도 되지만, 프로젝트가 발전할수록 더 많은 정보를 추가하는 것이 좋습니다.
✔ README를 추가하는 과정 정리
1️⃣ README.md
파일 생성
2️⃣ 프로젝트 설명 및 사용 방법 추가
3️⃣ GitHub에 푸시하여 저장소에 반영
4️⃣ 공동 작업자는 git pull
을 통해 최신 파일 가져오기
GitHub Gist 생성하기: 간단한 코드 공유 방법
GitHub Gist는 코드 조각(Snippet)을 저장하고 공유할 수 있는 기능입니다.
전체 프로젝트를 저장소(Repository)로 관리하기에는 부담스러울 때,
간단한 스크립트, 메모, 문서 등을 공유하는 데 유용하게 사용할 수 있습니다.
1. GitHub Gist란?
GitHub Gist는 GitHub의 작은 저장소와 같은 개념입니다.
하지만 일반적인 GitHub 저장소보다 간단하게 코드나 문서를 공유할 수 있습니다.
✅ Gist의 특징
- 간단한 코드 조각을 저장하고 공유 가능
- 공개(Public) 또는 비밀(Secret) 설정 가능
- 다양한 프로그래밍 언어와 확장자를 지원
- 댓글 및 포크(Fork) 기능 제공
📌 Gist는 어디에 사용할까?
- 짧은 코드 예제 저장
- 개발 관련 메모, 문서 작성
- 오류 메시지 및 디버깅 코드 공유
- GitHub 저장소를 만들기에는 부담스러운 작은 프로젝트 기록
2. GitHub Gist 생성하는 방법
Gist는 GitHub의 별도 페이지에서 관리됩니다.
👉 GitHub Gist 바로가기
📌 1단계: Gist 페이지 이동
- GitHub에 로그인
- 웹 브라우저에서 gist.github.com로 이동
- 프로필 메뉴에서 "Your gists" 클릭 (또는 직접 URL 입력)
✅ Gist 홈페이지에서 기존 Gist 목록을 확인할 수 있음
📌 2단계: 새로운 Gist 만들기
- "+" 버튼 클릭하여 새 Gist 생성
- 파일 이름 입력 (예:
example.js
) - 코드 입력 (아래 예제 참고)
- 공개 여부 선택
- Public (공개): 누구나 볼 수 있음
- Secret (비공개): URL을 아는 사람만 접근 가능
📌 Gist 예제 코드 (example.js
)
// 간단한 JavaScript 코드
console.log("Hello, Gist!");
- "Create secret gist" 또는 "Create public gist" 클릭하여 생성
✅ 결과:
Gist가 생성되며, 고유한 URL을 통해 공유 가능! 🎉
📌 3단계: Gist 활용하기
Gist를 생성한 후, 다음과 같은 작업이 가능합니다.
✅ Gist 공유
- URL을 복사하여 다른 사람과 공유 가능
- Gist의 코드 블록은 Markdown에서 직접 삽입 가능
✅ Gist 편집 및 업데이트
- 기존 Gist를 수정하거나 파일 추가 가능
- Gist의 모든 변경 이력이 저장됨
✅ Gist 포크 및 별표(⭐)
- 다른 사용자의 Gist를 포크(Fork)하여 복사 가능
- 유용한 Gist를 "Star(⭐)" 기능으로 즐겨찾기 가능
3. GitHub Gist 예제 활용
📌 예제 1: Markdown을 활용한 메모 작성
# 개발 메모 ✍
- **Git 명령어 정리**
- `git init` → 새 저장소 생성
- `git clone URL` → 원격 저장소 복제
- `git commit -m "메시지"` → 변경 사항 저장
📌 예제 2: Python 코드 공유
# 간단한 Python 코드
def greet():
print("Hello, Gist!")
greet()
📌 예제 3: SSH 설정 가이드
# 여러 GitHub 계정 사용 시 SSH 설정
touch ~/.ssh/config
echo "
Host github-personal
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
" >> ~/.ssh/config
✅ GitHub 저장소 대신 간단한 문서나 코드 조각을 공유하는 용도로 적합!
4. Gist vs GitHub 저장소 차이점
기능 | GitHub Gist | GitHub Repository |
---|---|---|
목적 | 코드 조각 공유 | 전체 프로젝트 관리 |
파일 수 | 1개 또는 여러 개 가능 | 폴더 구조 지원 |
공개 범위 | 공개 / 비밀 선택 가능 | 공개 / 비공개 저장소 선택 가능 |
Fork 및 댓글 | 가능 | 가능 |
Git 기능 | 일부 지원 (변경 이력 존재) | 전체 지원 (브랜치, 이슈 등) |
📌 Gist는 Git 저장소의 축소판
GitHub 저장소를 만들기는 부담스럽지만, 코드나 문서를 공유하고 싶을 때 적합합니다.
🚀 마무리
GitHub Gist는 작은 코드 조각을 빠르게 저장하고 공유할 수 있는 유용한 도구입니다.
간단한 코드 예제, 개발 메모, 가이드 문서 등을 공유하는 데 적극 활용해보세요!
✔ GitHub Gist 사용법 정리
1️⃣ gist.github.com 접속
2️⃣ 새 Gist 생성 후 코드 작성
3️⃣ 공개(Public) 또는 비밀(Secret) 선택
4️⃣ URL 공유하여 다른 사람과 코드 교류 가능
GitHub Pages 소개: 무료로 웹사이트를 호스팅하는 방법
GitHub Pages는 GitHub에서 제공하는 무료 정적 웹사이트 호스팅 서비스입니다.
HTML, CSS, JavaScript로 만든 웹사이트를 GitHub 저장소에 올려두면,
몇 번의 클릭만으로 웹사이트를 배포할 수 있습니다.
1. GitHub Pages란?
GitHub Pages는 GitHub 저장소의 코드를 웹사이트로 변환하여 제공하는 기능입니다.
간단한 설정만으로 프로젝트 문서, 포트폴리오, 블로그, 정적 웹사이트 등을 무료로 호스팅할 수 있습니다.
✅ GitHub Pages의 특징
- 무료로 사용 가능
- 정적 웹사이트(HTML, CSS, JS)만 지원 (서버사이드 언어 X)
- GitHub 저장소를 기반으로 자동 배포 가능
- 기본 도메인 제공 (
github.io
), 사용자 지정 도메인 설정 가능
2. GitHub Pages로 만든 웹사이트 예제
GitHub Pages를 이용하면 다양한 웹사이트를 만들 수 있습니다.
📌 1️⃣ 프로젝트 문서 사이트
- 예: Faker.js 문서 사이트
- 깃허브 저장소에서 관리되는 오픈소스 프로젝트 문서를 웹사이트 형태로 제공
📌 2️⃣ 웹 애플리케이션 배포
- 예: 2048 게임 AI
- 저장소에 있는 코드를 그대로 웹사이트로 배포하여, 사용자가 직접 체험 가능
📌 3️⃣ 개인 포트폴리오
- 예:
username.github.io
- 자신의 프로젝트, 블로그, 경력 소개 등을 담은 개인 웹사이트 생성
3. GitHub Pages의 두 가지 유형
GitHub Pages는 프로젝트 사이트와 사용자(조직) 사이트 두 가지 방식으로 운영됩니다.
유형 | 기본 URL | 특징 |
---|---|---|
프로젝트 사이트 | username.github.io/repository-name |
특정 프로젝트의 웹사이트 |
사용자(조직) 사이트 | username.github.io |
개인 포트폴리오 및 소개 페이지 |
📌 차이점 정리
- 프로젝트 사이트: 저장소마다 개별 웹사이트를 만들 수 있음 (
username.github.io/project-name
) - 사용자(조직) 사이트: 한 계정당 하나만 생성 가능 (
username.github.io
)
✅ 예제
- 사용자 사이트:
https://colt.github.io/
(포트폴리오 사이트) - 프로젝트 사이트:
https://colt.github.io/portfolio
(개별 프로젝트)
4. GitHub Pages의 제한 사항
GitHub Pages는 정적 웹사이트만 호스팅할 수 있습니다.
서버 측 기능(Python, Node.js, PHP 등)은 사용할 수 없습니다.
📌 사용 가능한 기술
✔ HTML, CSS, JavaScript
✔ React.js, Vue.js, Svelte 등의 정적 프레임워크
✔ Jekyll 기반 블로그
📌 사용 불가능한 기술
❌ PHP, Python, Node.js 등의 서버사이드 기능
❌ 데이터베이스 연결 (MySQL, PostgreSQL 등)
🚀 하지만 GitHub Pages는 프론트엔드 프로젝트를 배포하기엔 매우 유용합니다!
5. GitHub Pages 기본 URL 구조
GitHub Pages에서 제공하는 기본 도메인은 다음과 같습니다.
✅ 프로젝트 사이트
https://username.github.io/repository-name
✅ 사용자(조직) 사이트
https://username.github.io
💡 사용자 지정 도메인 연결 가능!
- 기본 제공되는
github.io
도메인 외에,mywebsite.com
과 같은 사용자 도메인을 설정할 수도 있습니다.
🚀 마무리
GitHub Pages는 손쉽게 정적 웹사이트를 배포할 수 있는 강력한 도구입니다.
특히 포트폴리오, 프로젝트 문서, 오픈소스 프로젝트 배포 등에 유용합니다.
✔ GitHub Pages의 핵심 정리
1️⃣ GitHub 저장소의 정적 파일을 무료로 배포 가능
2️⃣ HTML, CSS, JS 기반의 웹사이트를 손쉽게 운영
3️⃣ 프로젝트 사이트(여러 개)와 사용자 사이트(1개) 지원
4️⃣ github.io
기본 도메인 제공, 사용자 지정 도메인 가능
GitHub Pages Demo: 깃허브에서 무료 웹사이트 배포하기
이번에는 실제로 GitHub Pages를 활용하여 웹사이트를 만들어 배포하는 과정을 살펴보겠습니다.
1. GitHub Pages 설정을 위한 준비
GitHub Pages를 사용하려면 먼저 웹사이트를 배포할 GitHub 저장소가 필요합니다.
📌 1️⃣ 새로운 저장소 생성
- GitHub 에 로그인
- 새 저장소(
New repository
) 생성 - 저장소 이름 예시: chickens
- 공개(Public) 저장소로 설정
README.md
,.gitignore
는 추가하지 않고 생성
2. 로컬 저장소 설정 및 초기화
이제 로컬 컴퓨터에서 해당 저장소를 초기화하고, 기본적인 파일을 추가합니다.
📌 1️⃣ Git 저장소 초기화
터미널을 열고, 프로젝트 폴더를 만들고 Git을 초기화합니다.
mkdir chickens
cd chickens
git init
📌 2️⃣ 기본 파일 추가
간단한 파일을 만들고 첫 번째 커밋을 수행합니다.
echo "Australorp\nBarnvelder\nSilkie" > chickens.txt
git add chickens.txt
git commit -m "첫 번째 커밋: 닭 품종 목록 추가"
✅ 이 시점에서는 단순한 Git 저장소이며, 아직 웹사이트와는 관련이 없습니다.
3. GitHub Pages를 위한 브랜치 생성
GitHub Pages는 HTML, CSS, JS 기반의 정적 웹사이트를 제공하므로,
웹사이트 파일을 위한 별도의 브랜치를 만들고 관리하는 것이 좋습니다.
📌 1️⃣ GitHub 원격 저장소 추가 및 푸시
GitHub 저장소와 연결하고 변경 사항을 푸시합니다.
git branch -M main
git remote add origin https://github.com/your-username/chickens.git
git push -u origin main
📌 2️⃣ 웹사이트를 위한 gh-pages
브랜치 생성
GitHub Pages를 설정할 때 사용할 브랜치를 새로 생성하고 전환합니다.
git switch -c gh-pages
📌 3️⃣ 웹사이트의 기본 HTML 파일 추가
간단한 index.html
파일을 만들어 웹사이트를 설정합니다.
<!-- index.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chickens</title>
<style>
body { font-family: Arial, sans-serif; text-align: center; padding: 20px; }
h1 { color: #ff6600; }
</style>
</head>
<body>
<h1>🐔 Chickens 🐔</h1>
<p>이 웹사이트는 닭 품종을 정리한 페이지입니다.</p>
</body>
</html>
파일을 저장한 후, 변경 사항을 추가하고 커밋합니다.
git add index.html
git commit -m "기본 HTML 페이지 추가"
4. GitHub Pages 활성화 및 배포
이제 GitHub Pages를 활성화하여 웹사이트를 배포할 차례입니다.
📌 1️⃣ gh-pages 브랜치를 GitHub에 푸시
git push origin gh-pages
📌 2️⃣ GitHub에서 GitHub Pages 설정 변경
- GitHub 저장소로 이동 (
https://github.com/your-username/chickens
) - Settings(설정) → Pages 섹션으로 이동
- Source(소스)에서 gh-pages 브랜치 선택
- 저장(Save) 버튼 클릭
✅ GitHub이 자동으로 웹사이트를 배포합니다.
일반적으로 몇 분 정도 걸릴 수 있으며, 배포 완료 후 웹사이트 URL이 제공됩니다.
5. 배포된 GitHub Pages 확인
설정이 완료되면, 웹사이트가 다음 URL에서 확인할 수 있습니다.
https://your-username.github.io/chickens
✅ 결과:
위 URL로 이동하면, index.html이 랜더링된 웹사이트를 확인할 수 있습니다.
6. 웹사이트 업데이트 방법
웹사이트의 내용을 변경하고 다시 배포하려면, gh-pages
브랜치에서 파일을 수정한 후 다시 푸시하면 됩니다.
📌 1️⃣ HTML 파일 수정
예를 들어, 웹사이트에 애니메이션 효과를 추가하고 싶다면 다음과 같이 수정합니다.
<h1>🐔 Chickens 🐔</h1>
<p>이 웹사이트는 <b>닭 품종</b>을 정리한 페이지입니다.</p>
<p style="color:blue;">닭 품종 리스트를 업데이트 중입니다!</p>
📌 2️⃣ GitHub Pages 업데이트
git add index.html
git commit -m "웹사이트 내용 업데이트"
git push origin gh-pages
GitHub Pages는 자동으로 최신 변경 사항을 반영하므로,
몇 분 후에 새로고침하면 변경된 웹사이트를 볼 수 있습니다! 🚀
🚀 마무리
GitHub Pages는 손쉽게 웹사이트를 배포할 수 있는 강력한 도구입니다.
특히 포트폴리오, 프로젝트 문서, 간단한 데모 웹사이트를 배포하는 데 매우 유용합니다.
✔ GitHub Pages 활용법 정리
1️⃣ GitHub 저장소 생성 및 로컬 저장소 초기화
2️⃣ 웹사이트 파일을 위한 gh-pages 브랜치 생성
3️⃣ index.html 파일 추가 및 GitHub에 푸시
4️⃣ GitHub Pages 활성화 (Settings → Pages → Source 설정)
5️⃣ 웹사이트 URL을 통해 배포된 페이지 확인
📌 정적 웹사이트 배포가 필요할 때 GitHub Pages를 적극 활용해보세요! 🎉
'강의 > Git & Github 실무 활용 완벽 가이드' 카테고리의 다른 글
Git Rebase: 언제 어떻게 사용해야 할까? (0) | 2025.03.12 |
---|---|
Git 협업 워크플로우: 중앙 집중형 워크플로우와 Feature Branch Workflow (0) | 2025.03.12 |
Git Fetch와 Pull 정리: 원격 추적 브랜치 (1) | 2025.03.12 |
GitHub 기본 개념과 실전 사용법 정리 (0) | 2025.02.12 |
Git 변경 사항 복구 완벽 정리: Checkout, Reset, Revert, Restore (0) | 2025.02.11 |