처음 GitHub를 쓰는 DevPick 팀을 위한 최소 규칙입니다.
목표는 간단합니다: 실수 줄이고(직접 push/PR 누락), 충돌 줄이고, 누구나 같은 방식으로 작업하기.
- main / developV2 직접 push 금지 → 모든 변경은 PR로만 이동
- 작업은 Jira 티켓 단위로 진행(브랜치/PR/커밋에 티켓 번호 남기기)
- 작게 나눠서 올리기(작은 PR, 작은 커밋)
.env, 토큰, 키 등 시크릿은 절대 커밋 금지- 30분 이상 막히면 바로 공유(같은 문제로 시간 낭비하지 않기)
main: 배포 기준(안정) 브랜치 — 직접 작업/직접 push 금지developV2: 개발 통합 브랜치 — feature PR이 모이는 곳feature/*: 기능 개발 브랜치 — 새 기능/개선fix/*: 버그 수정 브랜치 — 개발/테스트 중 발견된 버그hotfix/*: 운영 긴급 수정 — 배포 장애/치명 이슈
feature/DP-###-short-desc- 예시(DevPick AI 맥락):
feature/DP-265-quiz-generationfeature/DP-385-trend-apifix/DP-233-json-parse-errorhotfix/DP-300-prod-timeout
아래 순서만 지켜도 사고가 거의 안 납니다.
developV2최신화- 새 브랜치 생성
- 기능 개발
- 로컬 테스트/실행 확인 (
ruff check .+black --check .+pytest -q) - 커밋(작게)
- 원격 push
- PR 생성(
feature/*→developV2) - 리뷰 1명 이상 승인
- CI 통과 확인 (AI PR Checks — ruff, black, pytest 자동 실행)
- 머지(권장: Squash)
- 브랜치 정리(삭제)
- 가능한 작게: 한 번에 이해되는 정도가 목표
- 가이드: 변경이 너무 크면(대략 수백 줄 이상) PR을 쪼개기를 먼저 고민
- 형식:
[DP-{티켓번호}] {설명} - 예시:
[DP-265] 4레벨 퀴즈 생성 파이프라인 추가[DP-385] 트렌드 Internal API 구현[DP-233] LLM JSON 파싱 실패 처리 추가
PR 생성 시 아래 항목이 자동으로 채워집니다(.github/pull_request_template.md).
## 연결된 지라 Jira 티켓
- DP-### (링크)
## 작업내용
- 이 PR이 해결하는 문제/목표
## 변경점
- 핵심 변경 3줄 요약
## 테스트
- 실행 명령 / 요청 예시 / 결과
## 리스크/주의사항
- 배포/호환/마이그레이션 등
## AI 사용 여부
- Copilot/ChatGPT 사용 여부 + 어디에 사용했는지
- 승인 1개 이상 필수
- 승인 받기 전 혼자 머지하지 않기(급한 경우도 팀에 먼저 공유)
type: 내용 (DP-###)
예시:
feat: add quiz generation pipeline (DP-265)fix: handle invalid llm json output (DP-233)docs: update contributing guidestyle: apply black format
feat기능fix버그docs문서chore설정/초기화refactor리팩토링test테스트style포맷/린트
main, developV2 브랜치에 대해 아래 설정이 적용됩니다.
- Pull Request 필수
- 최소 승인 1개
- CI 통과 필수 —
AI PR Checks(ruff + black + pytest) 자동 실행 - Force push 금지
- Squash and merge 권장
- 이유: 커밋 히스토리가 깔끔하고, 되돌리기(rollback)가 쉽습니다.
git checkout developV2
git pull origin developV2git checkout -b feature/DP-265-quiz-generationpip install -r requirements.txt -r requirements-dev.txt
ruff check . && black --check . && pytest -qgit status
git diff --cached --name-only
git add .
git commit -m "feat: add quiz generation pipeline (DP-265)"git push -u origin feature/DP-265-quiz-generationgit checkout developV2
git pull origin developV2
git branch -d feature/DP-265-quiz-generation
git push origin --delete feature/DP-265-quiz-generation