[GitHub 100일 챌린지] Day 92 - 프로젝트 저장소 셋업
100일 챌린지 Day 92 - 프로젝트 저장소를 전문적으로 셋업합니다.
배울 내용
- 저장소 초기화
- 프로젝트 구조 구성
- CI/CD 파이프라인 구축
저장소 생성
GitHub에서 생성
1
2
3
4
5
6
7
8
1. GitHub → New repository
2. 저장소 설정:
- Name: my-awesome-project
- Description: 프로젝트 설명
- Public/Private 선택
- ✅ Add README
- ✅ Add .gitignore (언어 선택)
- ✅ Choose a license (MIT 권장)
로컬에 클론
1
2
git clone https://github.com/username/my-awesome-project.git
cd my-awesome-project
저장소 기본 설정
저장소를 만든 직후에는 About 영역과 기본 브랜치 설정도 정리합니다.
| 항목 | 권장 설정 |
|---|---|
| Description | 프로젝트를 한 문장으로 설명 |
| Website | 배포 후 실제 URL 입력 |
| Topics | portfolio, github-actions, react처럼 검색 가능한 키워드 |
| Default branch | 보통 main |
| Issues | 작업 관리에 사용할 예정이면 활성화 |
| Discussions/Wiki | 필요할 때만 활성화 |
처음부터 모든 기능을 켤 필요는 없습니다. 프로젝트 관리에 실제로 쓸 기능만 켜두면 저장소가 더 깔끔합니다.
프로젝트 구조 생성
Node.js 프로젝트
1
2
3
4
5
6
7
8
9
# package.json 생성
npm init -y
# 기본 디렉토리 생성
mkdir -p src tests docs .github/workflows
# 기본 파일 생성
touch src/index.js
touch tests/index.test.js
디렉토리 구조:
1
2
3
4
5
6
7
8
9
10
11
12
my-project/
├── .github/
│ └── workflows/
├── src/
│ └── index.js
├── tests/
│ └── index.test.js
├── docs/
├── .gitignore
├── README.md
├── LICENSE
└── package.json
Node.js 프로젝트라면 현재 LTS 계열을 기준으로 맞추는 것이 좋습니다. 로컬과 CI의 Node 버전이 다르면 “내 컴퓨터에서는 되는데 Actions에서는 실패”하는 문제가 생길 수 있습니다.
1
2
node --version
echo "22" > .nvmrc
팀 프로젝트라면 package-lock.json, pnpm-lock.yaml, yarn.lock 중 사용하는 패키지 매니저의 lockfile을 반드시 커밋합니다.
README 작성
프로페셔널한 README
1
2
3
4
5
6
7
# My Awesome Project
프로젝트 소개와 주요 기능을 설명합니다.
## 시작하기
설치 및 실행 방법을 안내합니다.
최종 프로젝트 README에는 최소한 아래 항목을 넣습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## 주요 기능
- 기능 1
- 기능 2
## 실행 방법
```bash
npm install
npm run dev
```
## 테스트
```bash
npm test
```
## 배포
- Production URL:
README는 Day 97에서 더 자세히 다듬지만, Day 92에서 골격을 만들어두면 이후 기능 개발 중 계속 업데이트하기 쉽습니다.
CI/CD 파이프라인 구축
기본 CI Workflow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- run: npm ci
- run: npm test
테스트 스크립트가 아직 없다면 먼저 placeholder라도 명확히 둡니다.
1
2
3
4
5
6
{
"scripts": {
"test": "echo \"테스트를 추가하세요\" && exit 0",
"build": "echo \"빌드 스크립트를 추가하세요\" && exit 0"
}
}
다만 최종 프로젝트가 완성될수록 placeholder는 실제 테스트와 빌드 명령으로 교체해야 합니다.
브랜치 보호 준비
혼자 하는 프로젝트라도 main 브랜치에 바로 push하는 습관은 줄이는 것이 좋습니다. GitHub 저장소 Settings에서 Branch protection rule을 추가할 수 있습니다.
추천 규칙:
- PR을 통해서만 main에 머지
- CI 통과 후 머지
- 최소 1개 이상의 리뷰 승인
- force push 제한
개인 프로젝트에서는 너무 엄격하게 시작하지 않아도 됩니다. 하지만 최종 프로젝트를 포트폴리오로 보여줄 예정이라면 PR 기반 흐름을 적용해보는 것이 좋습니다.
정리
완료 체크:
- GitHub 저장소 생성
- 프로젝트 구조 생성
- README 작성
- CI/CD 파이프라인 구축
- About, Topics, 기본 브랜치 설정 확인
- Node 버전과 lockfile 정리
핵심 요약:
1
2
3
4
5
6
7
8
9
필수 파일:
- README.md
- .gitignore
- LICENSE
- CONTRIBUTING.md
CI/CD:
- .github/workflows/ci.yml
- 테스트 자동화
저장소 셋업은 파일을 만드는 일이 아니라, 이후 8일간의 개발이 흔들리지 않게 작업 규칙을 세우는 일입니다.
다음: Day 93 - 핵심 기능 개발 1 →
