도구마다 맡는 것
노션 WBS계획·일정·담당, 기능별 상태일정의 기준
GitHub PR작업 하나 = PR 하나. 코드·리뷰·머지상태를 움직이는 신호
개발 서버배포된 기능을 눌러 보고 확인테스트하는 곳
문서 사이트작업 흐름·커버리지 맵·테스트 커버리지·가이드, 섹션 댓글코드 쪽 현황
SlackPR 스레드 알림, LGTM 머지, 문서 댓글 알림알림과 대화
다섯 곳을 잇는 열쇠는 WBS 번호(노션의 No., 예: 4.1.3) 하나입니다. PR 본문에 WBS: 4.1.3 한 줄을 적으면 나머지는 자동으로 이어집니다.
노션 상태가 바뀌는 시점
| 노션 상태 | 바뀌는 시점 | 누가 | 함께 적히는 것 |
|---|---|---|---|
| 예정 · 진행 예정 | WBS 를 짤 때 | PM | 담당자·시작/종료예정 |
| 진행중 | WBS: 줄이 있는 Draft PR 을 열 때(또는 열린 PR 본문에 그 줄을 넣을 때) | 자동 | PR 열에 PR 링크 |
| PR 리뷰중 | Draft 를 풀 때(gh pr ready) — PR 에서 코드 리뷰를 받는 동안 | 자동 | |
| 코딩완료 | dev 에 머지될 때 | 자동 | dev 반영 커밋 |
| 검토중 | dev 에 들어간 기능을 사람이 확인하는 동안(PR 에서 이미 봤다면 건너뛰어도 된다) | 사람 | |
| 테스트중 | 릴리스 PR(dev → main)이 머지돼 개발 서버 배포가 성공하고, 그 배포에 dev 반영 커밋 이 들어 있을 때(코딩완료·검토중 행) — 이때부터 개발 서버 수동 커버리지가 쌓인다 | 자동 | |
| 테스트 완료 | 개발 서버에서 확인을 마쳤을 때 — 개발 완료 | 사람 | |
| 보류 · 취소 | 결정이 필요하거나 범위에서 빠질 때 | 사람 |
- 상태는 앞으로만 갑니다. 이미 코딩완료인 행에 같은 PR 의 Draft 전환이 와도 되돌리지 않습니다. 사람이 옮긴 검토중도 PR 이벤트로 되돌아가지 않습니다.
- 다시 작업하는 경우 — PR 리뷰중 이상인 행에 새 PR 이 열려 연결되면 진행중(일반 PR 이면 PR 리뷰중)으로 되돌아갑니다. 요건이 바뀌어 고치는 PR 이 그 기능의 일정에 다시 잡히게 하기 위해서입니다.
- 테스트 완료·보류·취소는 자동으로 바뀌지 않습니다. 사람이 정한 상태이기 때문입니다. 테스트 완료된 기능을 다시 고치면 PR 링크만 더해지니, 확인 뒤 상태를 직접 옮깁니다.
- 노션의
PR·dev 반영 커밋·자동 갱신열은 자동으로 채워집니다. 손으로 고치지 않습니다.자동 갱신에는 마지막으로 무엇 때문에 바뀌었는지(시각·PR·변경)가 남습니다.
PR 본문의 WBS 줄
## 할 일 - [ ] 사고조사 목록 청구유형·소속 필터 - [ ] 목록 표 열 정리 WBS: 4.1.1.2, 4.1.3 커버리지 맵: investigation-list
- 번호는 노션 WBS 의
No.그대로 씁니다. 여러 개면 쉼표로 — 화면 행과 그 화면이 쓰는 API 행을 함께 적을 수 있습니다. - 가장 작은 단위(실제로 만드는 행)를 적습니다. 상위 행(메뉴·화면 묶음)은 적은 행만 바뀝니다.
- WBS 에 해당 행이 없는 작업(인프라·문서·리팩터링)은
WBS: 없음. 줄이 비어 있으면 PR 검사에 안내만 남고 아무것도 바뀌지 않습니다. - 번호를 잘못 적었으면 본문만 고치면 됩니다 — 본문을 고칠 때도 다시 읽습니다. 이미 붙은 PR 링크는 떼지 않습니다.
- 쌓아 올린 PR(스택)의 위쪽은 아래 브랜치로 머지될 때가 아니라 dev 로 머지될 때 코딩완료가 됩니다.
개발 서버 배포 — 릴리스 PR
개발 서버(dagent)에는 main 이 올라갑니다. dev 에 머지된 작업은 릴리스 PR 을 머지할 때 한꺼번에 배포됩니다 — 테스트 중인 화면이 하루에도 여러 번 바뀌지 않게, 배포 시점을 사람이 정합니다.
bash scripts/release-dev-server.sh
- 누구나 실행할 수 있습니다. dev → main PR 을 열고, 본문에 이번 배포에 들어가는 PR 목록을 적습니다. 이미 열려 있으면 그 주소만 알려 줍니다.
- 머지: Slack 스레드에
LGTM, 또는 GitHub 에서 Create a merge commit. 스쿼시·리베이스는 쓰지 않습니다 — 노션이 어느 기능이 배포됐는지 커밋 이력으로 판단합니다. - 머지되면 약 20분 뒤 배포가 끝나고, Slack 스레드에 배포 시작이 알려집니다. 성공하면 노션 WBS 에서 그 배포에 들어간 코딩완료·검토중 행이 테스트중 으로 바뀝니다.
main으로는 dev 에서 온 릴리스 PR 만 받습니다. 작업 PR 의 base 를 main 으로 잘못 잡으면 검사가 실패합니다.
역할별로 하는 일
| 역할 | 하는 일 | 하지 않아도 되는 일 |
|---|---|---|
| 리뷰·검토 담당 | PR 리뷰중이면 PR 에서 코드를, dev 머지 뒤 기능을 볼 때는 노션에서 검토중 으로 바꾸고 확인한다. | 머지·배포 여부 추적 — 코딩완료·테스트중은 자동 |
| 개발자 | 작업을 시작할 때 WBS: 줄을 넣어 Draft PR 을 연다. 나머지는 개발 작업 흐름 그대로. | 노션 상태를 진행중·PR 리뷰중·코딩완료·테스트중으로 옮기기 |
| 테스트 담당 | 노션에서 테스트중 인 행을 개발 서버에서 확인하고 테스트 완료 로 바꾼다. 문제가 있으면 PR(머지 전) 또는 새 이슈·PR 로 알린다. | 어느 커밋이 배포됐는지 찾기 — 테스트중이면 이미 개발 서버에 있다 |
| PM·일정 관리 | WBS 를 짜고 담당·예정일을 정한다. 지연·충돌 뷰를 보고 일정을 조정한다. 테스트할 묶음이 모이면 릴리스 PR 을 열어 배포 시점을 정한다. | 진행 상황을 사람에게 물어 상태 갱신하기 |
어디서 보나
| 알고 싶은 것 | 보는 곳 |
|---|---|
| 전체 일정, 남은 일 | 노션 WBS — 타임라인, 남은 작업 뷰 |
| 밀린 것 | 노션 WBS — 담당자별 지연 항목 뷰(종료예정이 지났는데 테스트 완료가 아닌 행) |
| 이번 주에 끝나야 할 것 | 노션 WBS — 담당자별 금주 종료예정 뷰 |
| 화면이 기다리는 API 일정 | 노션 WBS — 프론트↔백엔드 일정 체크 뷰(일정 충돌) |
| 누가 지금 무엇을 하고 있나 | 노션 담당자별 진행중 뷰, 문서 사이트 커버리지 맵 → 진행 중 작업(열린 PR) |
| 테스트할 차례인 것 | 노션 WBS 에서 상태 테스트중 으로 거르기 |
| 이 기능의 코드·리뷰 이력 | 노션 행의 PR 열 링크 → GitHub |
| 코드가 테스트로 얼마나 덮였나, 개발 서버에서 실제로 실행됐나 | 테스트 커버리지 — 단위 테스트와 수동(dev) 열 |
| 무슨 일이 일어났나(알림) | Slack — PR 마다 스레드 하나, 리뷰·머지가 그 스레드에 이어진다. 문서 사이트 댓글도 담당자에게 간다. |
한 기능이 완료되기까지
- 계획WBS 행·담당·예정일진행 예정
- 착수
WBS:줄을 넣어 Draft PR진행중 - 리뷰Draft 해제 → PR 리뷰 → dev 머지 → (사람 검토)PR 리뷰중 → 코딩완료 → 검토중
- 배포릴리스 PR 머지 → 개발 서버 배포테스트중
- 확인개발 서버에서 확인하고 노션에서 체크테스트 완료 = 개발 완료
예외와 자주 묻는 것
- 상태가 안 바뀌었어요. PR 의 Checks 에서
Notion WBS Sync실행 요약을 봅니다 — 어떤 번호를 읽었고 무엇을 바꿨는지(또는 왜 그대로인지) 적혀 있습니다. 노션에 없는 번호면 경고가 남습니다. - 배포했는데 테스트중이 안 돼요. 그 행이 코딩완료 또는 검토중이고
dev 반영 커밋이 적혀 있어야 합니다. dev 가 아닌 브랜치로 머지된 PR 은 커밋이 적히지 않습니다. - PR 하나에 기능 여러 개 — 번호를 모두 적습니다. 모두 같은 단계로 움직입니다.
- 기능 하나에 PR 여러 개 —
PR열에 모두 쌓입니다. 마지막 PR 이 머지·배포될 때 상태가 끝까지 갑니다. - 야간 자동 작업도 같은 규칙입니다. 계획 항목에 WBS 번호가 있으면 PR 본문에 그대로 옮겨 적습니다.
규칙의 원문은 저장소 루트 CLAUDE.md §0 「작업 착수 시」, 결정 근거는 docs/decisions/20261008-notion-wbs-pr-sync.md, 동기화 코드는 scripts/notion_wbs_sync.py 입니다.