[GitHub 100일 챌린지] Day 91 - 최종 프로젝트 기획
[GitHub 100일 챌린지] Day 91 - 최종 프로젝트 기획
100일 챌린지 Day 91 - 지금까지 배운 것을 활용한 최종 프로젝트를 기획합니다.
배울 내용
- 프로젝트 주제 선정
- 기능 명세 작성
- GitHub 활용 계획
프로젝트 목표
100일 동안 배운 것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
✅ GitHub 기초:
- Git 명령어
- 브랜치 전략
- 협업 워크플로우
✅ 고급 기능:
- GitHub Actions
- Issues/Projects
- Wiki/Discussions
✅ 협업:
- Fork & PR
- Code Review
- 팀 워크플로우
프로젝트 요구사항
1
2
3
4
5
6
7
8
9
10
11
12
필수:
- Git 버전 관리
- 브랜치 전략 (Git Flow 또는 GitHub Flow)
- GitHub Actions CI/CD
- README 문서화
- Issue 관리
선택:
- GitHub Pages 배포
- GitHub Projects 활용
- Wiki 문서
- Discussions 커뮤니티
프로젝트 아이디어
1. 개인 포트폴리오 웹사이트
1
2
3
4
5
6
7
8
9
10
기술 스택:
- HTML/CSS/JavaScript
- React/Vue/Next.js
- GitHub Pages 배포
GitHub 활용:
- Actions로 자동 배포
- Issues로 기능 관리
- Projects로 진행 상황
- Wiki로 개발 문서
2. 오픈소스 라이브러리
1
2
3
4
5
6
7
8
9
10
11
예시:
- React 컴포넌트 라이브러리
- JavaScript 유틸리티 라이브러리
- Python 패키지
- VS Code 확장
GitHub 활용:
- Actions로 테스트/배포
- Issues로 버그/기능 요청
- Discussions로 커뮤니티
- Wiki로 API 문서
3. 풀스택 웹 애플리케이션
1
2
3
4
5
6
7
8
9
10
11
예시:
- TODO 앱
- 블로그 플랫폼
- 간단한 SNS
- 프로젝트 관리 도구
GitHub 활용:
- Monorepo 구조
- Actions로 CI/CD
- Projects로 스프린트
- Security 기능
프로젝트 기획서 작성
README 구조
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 프로젝트명
## 📌 프로젝트 소개
- 무엇을 만들었나요?
- 왜 만들었나요?
- 어떤 문제를 해결하나요?
## ✨ 주요 기능
1. 기능 1
2. 기능 2
3. 기능 3
## 🛠️ 기술 스택
- Frontend: React, TypeScript
- Backend: Node.js, Express
- Database: PostgreSQL
- DevOps: GitHub Actions, Docker
## 🚀 시작하기
### 설치
\`\`\`bash
git clone https://github.com/username/project.git
cd project
npm install
\`\`\`
### 실행
\`\`\`bash
npm start
\`\`\`
## 📖 문서
- [API 문서](wiki/API)
- [개발 가이드](wiki/Development)
## 🤝 기여하기
[CONTRIBUTING.md](CONTRIBUTING.md) 참고
## 📝 라이선스
MIT License
저장소 구조 계획
기본 구조
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my-project/
├── .github/
│ ├── workflows/ # GitHub Actions
│ │ ├── ci.yml
│ │ ├── deploy.yml
│ │ └── release.yml
│ ├── ISSUE_TEMPLATE/ # Issue 템플릿
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ └── PULL_REQUEST_TEMPLATE.md
├── src/ # 소스 코드
├── tests/ # 테스트
├── docs/ # 문서
├── README.md
├── CONTRIBUTING.md
├── LICENSE
└── package.json
Monorepo 구조 (풀스택)
1
2
3
4
5
6
7
8
9
10
11
12
13
my-fullstack-app/
├── .github/
├── packages/
│ ├── frontend/
│ │ ├── src/
│ │ └── package.json
│ ├── backend/
│ │ ├── src/
│ │ └── package.json
│ └── shared/
│ └── types/
├── README.md
└── package.json
개발 계획 수립
마일스톤 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Milestone 1: 프로젝트 셋업 (Day 91-92)
- 저장소 생성
- 기본 구조 설정
- CI/CD 구축
Milestone 2: 핵심 기능 개발 (Day 93-96)
- 기능 1 개발
- 기능 2 개발
- 테스트 작성
Milestone 3: 문서화 (Day 97-98)
- README 작성
- Wiki 문서
- API 문서
Milestone 4: 배포 & 마무리 (Day 99-100)
- 운영 배포
- 최종 테스트
- 포트폴리오 정리
Issue 작성 계획
1
2
3
4
5
6
7
8
9
10
11
12
13
Epic (큰 기능):
#1 사용자 인증 시스템 구축
Story (세부 기능):
#2 로그인 페이지 UI
#3 회원가입 API
#4 JWT 토큰 구현
#5 소셜 로그인 연동
Task (작업):
#6 로그인 폼 컴포넌트
#7 유효성 검증
#8 에러 처리
GitHub 기능 활용 계획
1. Projects (칸반 보드)
1
2
3
4
5
6
7
8
9
10
11
12
Todo:
- [ ] #2 로그인 페이지 UI
- [ ] #3 회원가입 API
In Progress:
- [ ] #4 JWT 토큰 구현
Review:
- [ ] #5 소셜 로그인 연동
Done:
- [x] #1 프로젝트 셋업
2. Actions (CI/CD)
1
2
3
4
5
6
# 계획
workflows:
- ci.yml: 테스트, Lint
- deploy-staging.yml: 스테이징 배포
- deploy-production.yml: 운영 배포
- release.yml: 자동 릴리스
3. Wiki (문서)
1
2
3
4
5
6
7
페이지 계획:
- Home: 프로젝트 개요
- Getting Started: 시작 가이드
- API Reference: API 문서
- Development Guide: 개발 가이드
- Deployment: 배포 가이드
- Troubleshooting: 문제 해결
브랜치 전략
GitHub Flow (간단한 프로젝트)
1
2
3
4
5
main (운영)
↑
feature/login
feature/signup
feature/profile
Git Flow (복잡한 프로젝트)
1
2
3
4
5
6
7
8
main (운영)
↑
develop (개발)
↑
feature/user-auth
feature/admin-panel
release/v1.0.0
hotfix/security-patch
실습: 프로젝트 기획서 작성
1. 주제 선택
1
2
3
4
5
6
7
8
9
10
나의 프로젝트: [프로젝트명]
목적:
- [해결하고 싶은 문제]
대상 사용자:
- [타겟 사용자]
차별점:
- [기존 솔루션과 다른 점]
2. 기능 목록
1
2
3
4
5
6
7
8
핵심 기능 (MVP):
1. [필수 기능 1]
2. [필수 기능 2]
3. [필수 기능 3]
추가 기능 (Nice to have):
1. [부가 기능 1]
2. [부가 기능 2]
3. 기술 스택 결정
1
2
3
4
5
6
7
8
9
10
11
Frontend:
- [선택한 프레임워크/라이브러리]
- [이유]
Backend:
- [선택한 프레임워크]
- [이유]
DevOps:
- GitHub Actions
- [배포 플랫폼]
정리
완료 체크:
- 프로젝트 주제 결정
- 기능 명세 작성
- 개발 계획 수립
- 브랜치 전략 선택
핵심 요약:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
프로젝트 요구사항:
- Git 버전 관리
- GitHub Actions CI/CD
- Issues/Projects 활용
- 문서화 (README, Wiki)
개발 계획:
- Milestone 설정
- Issue 작성
- Projects 칸반 보드
- 브랜치 전략
다음 단계:
Day 92: 저장소 셋업 및 CI/CD 구축
다음: Day 92 - 저장소 셋업 →
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
