[GitHub 100일 챌린지] Day 93 - 핵심 기능 개발 1
100일 챌린지 Day 93 - 최종 프로젝트의 첫 번째 핵심 기능을 이슈 기반으로 설계하고 구현합니다.
배울 내용
- 최종 프로젝트 기능을 GitHub Issue로 쪼개기
- 작업 브랜치를 만들고 작은 단위로 커밋하기
- README에 기능 사용법 초안 남기기
1. 오늘의 목표: 작게 완성하기
최종 프로젝트 단계에서 가장 위험한 습관은 “완성된 앱”을 한 번에 만들려고 하는 것입니다. 오늘은 하나의 핵심 기능만 선택해 Issue → Branch → Commit → Push 흐름으로 끝까지 가져갑니다.
예시 프로젝트가 “개발 포트폴리오 사이트”라면 Day 93의 기능은 이렇게 잡을 수 있습니다.
1
2
3
기능: 프로젝트 목록 표시
사용자는 포트폴리오 페이지에서 프로젝트 이름, 설명, 기술 스택, GitHub 링크를 볼 수 있다.
기능은 작을수록 좋습니다. 인증, 검색, 필터, 배포까지 한 이슈에 넣으면 리뷰도 테스트도 어려워집니다.
2. GitHub Issue로 작업 정의하기
먼저 GitHub Issue를 만듭니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
## 목표
포트폴리오 페이지에 프로젝트 목록을 표시한다.
## 작업 범위
- [ ] 프로젝트 데이터 구조 정의
- [ ] 프로젝트 카드 UI 작성
- [ ] GitHub 저장소 링크 연결
- [ ] README에 사용법 초안 추가
## 완료 조건
- 프로젝트 3개 이상이 화면에 표시된다.
- 각 프로젝트에는 이름, 설명, 기술 스택, 링크가 있다.
- 모바일 화면에서도 카드가 깨지지 않는다.
Issue는 “무엇을 만들지”를 팀과 미래의 나에게 설명하는 계약서입니다. 코드부터 작성하기 전에 완료 조건을 먼저 적으면 범위가 흔들리지 않습니다.
3. 브랜치 만들기
Issue 번호가 #93이라면 브랜치 이름에 작업 성격을 넣습니다.
1
2
3
git switch main
git pull
git switch -c feature/93-project-list
브랜치 이름은 길어도 괜찮습니다. 나중에 git branch를 봤을 때 무엇을 하던 브랜치인지 바로 알 수 있어야 합니다.
4. 작은 커밋으로 구현하기
구현은 한 번에 몰아서 커밋하지 말고, 의미 있는 단위로 나눕니다.
1
2
3
4
5
6
7
8
9
10
11
# 1단계: 데이터 구조 추가
git add src/data/projects.json
git commit -m "Add project portfolio data"
# 2단계: 프로젝트 카드 UI 추가
git add src/components/ProjectCard.js src/styles/project-card.css
git commit -m "Add project card component"
# 3단계: 페이지에 목록 연결
git add src/pages/portfolio.js
git commit -m "Render project list on portfolio page"
좋은 커밋은 되돌리기 쉽고 리뷰하기 쉽습니다. “여러 파일이 바뀌었으니 한 번에 커밋”이 아니라 “하나의 의도가 끝났으니 커밋”이라고 생각하세요.
5. README에 사용법 초안 남기기
최종 프로젝트는 코드만 있으면 부족합니다. 기능을 추가했다면 README에도 짧게 남깁니다.
1
2
3
4
5
6
7
8
9
## 프로젝트 목록 관리
프로젝트 목록은 `src/data/projects.json`에서 관리합니다.
필수 필드:
- `title`: 프로젝트 이름
- `description`: 한 줄 설명
- `stack`: 사용 기술 목록
- `repositoryUrl`: GitHub 저장소 링크
나중에 포트폴리오를 보는 사람은 README를 먼저 봅니다. 기능을 만들 때마다 문서를 조금씩 같이 업데이트하면 마지막에 몰아서 쓰는 고통이 줄어듭니다.
정리
완료 체크:
- 핵심 기능 하나를 GitHub Issue로 정의했다
- 작업 브랜치를 만들고 기능을 구현했다
- 의미 있는 단위로 2개 이상 커밋했다
- README에 기능 사용법 초안을 남겼다
핵심 요약:
1
Issue로 범위를 정하고, 브랜치에서 작게 구현하고, 커밋 단위로 진행 상황을 남긴다.
다음: Day 94 - 핵심 기능 개발 2 →
