포스트

[GitHub 100일 챌린지] Day 93 - 핵심 기능 개발 1

[GitHub 100일 챌린지] Day 93 - 핵심 기능 개발 1

100일 챌린지 Day 93 - 최종 프로젝트의 첫 번째 핵심 기능을 이슈 기반으로 설계하고 구현합니다.

배울 내용

  1. 최종 프로젝트 기능을 GitHub Issue로 쪼개기
  2. 작업 브랜치를 만들고 작은 단위로 커밋하기
  3. 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


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

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