728x90
Backlog.md란 무엇인가?
Backlog.md는 "모든 것을 Markdown으로"라는 철학 아래 만들어진 프로젝트 관리 도구입니다. 복잡한 프로젝트 관리 도구들과 달리, 단순한 텍스트 파일로 모든 작업을 관리하면서도 강력한 CLI와 웹 UI를 제공합니다.
주요 특징
- 100% 오프라인: 외부 서버 의존성 없이 Git 저장소 내에서만 작동
- 텍스트 기반: 모든 데이터가 평문으로 저장되어 검색, 편집, 버전 관리가 용이
- Git 친화적: 변경사항 추적, 협업, 백업이 Git을 통해 자연스럽게 해결
- 확장 가능: CLI 명령어 기반으로 자동화 스크립트 작성 용이
프로젝트 구조와 작동 원리
기본 디렉토리 구조
프로젝트/
├── backlog/ # 태스크 파일들이 저장되는 폴더
│ ├── task-1-로그인구현.md
│ ├── task-2-DB설계.md
│ ├── doc-1-API문서.md
│ └── decision-1-기술스택.md
├── Backlog.md # 전체 보드 요약 (자동 생성)
└── .backlog/ # 설정 및 메타데이터
└── config.toml
작동 원리
- 개별 태스크 = 개별 Markdown 파일: 각 작업이 독립적인 파일로 관리
- 메타데이터는 YAML Front Matter: 파일 상단에 상태, 담당자, 우선순위 등 저장
- 보드는 실시간 생성: CLI/웹이 파일들을 읽어 동적으로 칸반 보드 구성
설치와 초기 설정
빠른 시작 (권장)
# npm/bun 글로벌 설치
npm install -g backlog.md
# 프로젝트 초기화
backlog init my-project
cd my-project
# 첫 태스크 생성
backlog task create "프로젝트 킥오프 미팅"
설정 구성
backlog config
명령으로 프로젝트별 설정 관리
# 기본 담당자 설정
backlog config set defaultAssignee "@john @jane"
# 자동 커밋 활성화
backlog config set autoCommit true
# 커스텀 상태 정의
backlog config set statuses "백로그,진행중,검토중,완료"
일상적인 사용 워크플로우
태스크 생성과 관리
기본 생성
backlog task create "사용자 인증 API 구현"
상세 옵션과 함께 생성
backlog task create "OAuth 2.0 구현" \
--assignees @backend-team \
--labels security,auth \
--priority high \
--plan "1. 라이브러리 조사\n2. 프로토타입 개발\n3. 테스트 작성"
태스크 상태 변경
# 목록 확인
backlog task list --status "To Do"
# 작업 시작 (To Do → In Progress)
backlog task start 12
# 완료 처리
backlog task done 12
# 아카이브 (정리)
backlog task archive 12
칸반 보드 활용
CLI 인터랙티브 보드
backlog board
- 키보드로 네비게이션 (←→↑↓)
- Enter로 태스크 상세 보기
- Space로 상태 변경
300x250
웹 UI 실행
backlog browser
- 드래그 앤 드롭으로 상태 변경
- 실시간 Markdown 동기화
- 필터링과 검색 기능
고급 기능과 자동화
AI 에이전트 연동
Claude나 Gemini와 연동하여 자연어로 태스크 생성
# AI 설정
backlog config set aiProvider claude
backlog config set claudeApiKey "your-api-key"
# 자연어 요청
backlog ai "이번 스프린트에 로그인 기능 구현을 위한 태스크들을 만들어줘"
쿼리와 필터링
복잡한 검색 조건으로 태스크 찾기
# 특정 담당자의 높은 우선순위 작업
backlog task list --assignee @john --priority high
# 기한이 임박한 작업
backlog task list --due-before "2025-07-25"
# 라벨 조합 검색
backlog task list --labels "backend,urgent" --status "In Progress"
보고서 생성
# Markdown 형식 보드 내보내기
backlog board export weekly-report.md
# 통계 보기
backlog stats --period "last-week"
팀 협업 전략
Git 워크플로우 통합
브랜치 전략
# 기능 개발 시작
git checkout -b feature/task-12-login
backlog task start 12
# 작업 완료 후
backlog task done 12
git add .
git commit -m "feat: 로그인 기능 구현 완료 #12"
코드 리뷰와 연동
PR 템플릿에 백로그 참조
## 관련 태스크
- Closes #12 - 로그인 API 구현
- Related to #13 - OAuth 통합
## 체크리스트
- [ ] 단위 테스트 작성
- [ ] API 문서 업데이트
팀 규칙 예시
- 일일 스탠드업:
backlog board
화면 공유하며 진행 - 주간 회고:
backlog stats
결과로 벨로시티 측정 - 태스크 네이밍:
[카테고리] 구체적인 작업 내용
형식 준수
자동화 레시피
GitHub Actions 연동
PR 병합 시 자동 완료 처리
name: Backlog Automation
on:
pull_request:
types: [closed]
jobs:
update-backlog:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Extract task ID and update
run: |
TASK_ID=$(echo "${{ github.event.pull_request.title }}" | grep -oE '#[0-9]+' | tr -d '#')
npx backlog task done $TASK_ID
git add . && git commit -m "chore: 태스크 #$TASK_ID 완료" && git push
Slack 연동
일일 보고 자동화
#!/bin/bash
# daily-report.sh
REPORT=$(backlog board export --format slack)
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"📋 Daily Standup\n\`\`\`$REPORT\`\`\`\"}" \
$SLACK_WEBHOOK_URL
커스텀 훅
.backlog/hooks/
디렉토리에 스크립트 추가
# post-task-create.sh
#!/bin/bash
echo "🎉 새 태스크가 생성되었습니다: $TASK_TITLE"
# Slack, 이메일 등 알림 발송 로직
문서와 결정 관리
프로젝트 문서
# 기술 문서 생성
backlog doc create "API 설계 가이드"
# 문서 목록
backlog doc list
# 문서 편집
backlog doc edit doc-1
결정 기록 (ADR)
# 아키텍처 결정 기록
backlog decision create "PostgreSQL을 메인 DB로 선택" \
--status accepted \
--context "높은 동시성과 복잡한 쿼리 요구사항" \
--decision "PostgreSQL 14 사용" \
--consequences "운영 복잡도 증가, 성능 향상 기대"
모범 사례와 팁
태스크 작성 가이드
좋은 예
---
title: 사용자 프로필 이미지 업로드 기능
assignees: [@backend, @frontend]
labels: [feature, user-experience]
priority: high
status: To Do
---
## 개요
사용자가 프로필 이미지를 업로드하고 관리할 수 있는 기능 구현
## 승인 기준
- [ ] 이미지 업로드 API 엔드포인트
- [ ] 파일 크기 제한 (5MB)
- [ ] 이미지 포맷 검증 (JPG, PNG)
- [ ] 썸네일 자동 생성
보드 구성 전략
개발팀용
백로그 → 분석 중 → 개발 중 → 코드 리뷰 → QA → 완료
운영팀용
요청 → 검토 중 → 작업 중 → 확인 필요 → 완료
성능 최적화
- 완료된 태스크 정기적 아카이브:
backlog cleanup --older-than 30d
- 대용량 첨부 파일은 외부 링크로 관리
- 태스크당 하나의 명확한 목표 설정
문제 해결
자주 발생하는 이슈
동기화 충돌
# 원격 변경사항 먼저 가져오기
git pull --rebase
backlog sync
성능 저하
# 오래된 태스크 정리
backlog archive --completed --older-than 60d
# 인덱스 재구성
backlog reindex
확장과 커스터마이징
플러그인 시스템
// .backlog/plugins/custom-report.js
module.exports = {
name: 'custom-report',
command: 'report:burndown',
action: async (context) => {
// 번다운 차트 생성 로직
}
};
테마 커스터마이징
/* .backlog/themes/dark-mode.css */
:root {
--board-bg: #1a1a1a;
--card-bg: #2d2d2d;
--text-primary: #ffffff;
}
마이그레이션 가이드
다른 도구에서 이전
Trello에서 이전
backlog import trello --api-key YOUR_KEY --board-id BOARD_ID
Jira에서 이전
backlog import jira --url https://your.jira.com --project KEY
Backlog.md는 단순함과 강력함을 동시에 추구하는 현대적인 프로젝트 관리 도구입니다. Markdown의 범용성, Git의 협업 기능, 그리고 현대적인 UI/UX가 결합되어 개발팀에게 이상적인 워크플로우를 제공합니다.
핵심 장점
- 🔒 데이터 주권: 모든 데이터가 로컬에 저장
- 🚀 빠른 속도: 서버 지연 없이 즉각적인 반응
- 🔧 무한한 확장성: CLI 기반으로 어떤 자동화도 가능
- 💰 비용 절감: 무료 오픈소스로 라이선스 비용 없음
팀의 규모와 성격에 맞게 Backlog.md를 조정하여 사용하면, 복잡한 엔터프라이즈 도구 못지않은 생산성을 얻을 수 있습니다.
728x90
그리드형(광고전용)
댓글