포스트

[GitHub 100일 챌린지] Day 91 - 최종 프로젝트 기획

[GitHub 100일 챌린지] Day 91 - 최종 프로젝트 기획

100일 챌린지 Day 91 - 지금까지 배운 것을 활용한 최종 프로젝트를 기획합니다.

배울 내용

  1. 프로젝트 주제 선정
  2. 기능 명세 작성
  3. 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 - 저장소 셋업 →


← Day 91 | 전체 커리큘럼 | Day 92 →

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