2일차 실습 1: Brownfield와 기준선 이해
오늘 무엇을 배우는가
1일차에서 Todo CLI 앱을 처음부터 만들었습니다. 이것을 Greenfield라고 합니다. 오늘은 그 앱에 새 기능을 추가하고 버그를 수정합니다. 기존 코드가 있는 상태에서 변경하는 것을 Brownfield라고 합니다.
현업에서 대부분의 작업은 Brownfield입니다. 이미 돌아가는 코드를 건드려야 하는데, 잘못 건드리면 원래 잘 되던 것이 망가집니다. 오늘은 기존 코드를 망가뜨리지 않으면서 새 기능을 추가하는 방법을 배웁니다.
오늘의 핵심 원칙
아래 세 가지 원칙을 하루 종일 의식적으로 지킵니다.
- 기준선을 먼저 확인한다.
- 새 기능은 새 spec에서 시작한다.
- 버그 수정은 재현 테스트부터 작성한다.
기준선이란 무엇인가
1일차에서 Todo 앱 MVP를 완성하고 마지막에 git tag baseline-v1.0을 실행했습니다. 이 태그가 붙은 시점의 코드가 기준선입니다. 오늘 모든 작업은 이 기준선을 보호하면서 진행합니다.
기준선을 확인하는 이유는 간단합니다.
- 테스트가 실패한 상태로 시작하면 오늘 추가한 기능 때문인지 원래 문제였는지 구분할 수 없습니다.
- 기존 동작을 실제로 확인하지 않으면 회귀를 발견하기 어렵습니다.
- merge 시점에도 기준선 대비 무엇이 바뀌었는지 설명할 수 있어야 합니다.
오늘 해야 할 일의 큰 종류
새 기능 추가
- 예: Todo에 태그 기능 추가
- 새 spec, 새 브랜치, 새 plan/tasks 흐름이 필요합니다.
버그 수정
- 예: 정렬 오류 수정
- 기존 spec을 기준으로 재현 테스트를 먼저 쓰고 fix/ 브랜치에서 좁게 고칩니다.
먼저 기억할 구분
Greenfield와 Brownfield의 차이
- Greenfield는 아무것도 없는 상태에서 시작합니다.
- Brownfield는 이미 동작하는 기준선 위에서 변경합니다.
기능 추가와 버그 수정의 차이
- 기능 추가는 새로운 사용자 요구사항이 들어온 경우입니다.
- 버그 수정은 기존 spec에 있던 약속을 코드가 지키지 못하는 경우입니다.
다음 단계
기준선 개념을 이해했다면 02_baseline-check-workshop.md에서 실제 브랜치, 태그, 실행 상태를 확인합니다.
'AI Native > GitHub Spec Kit으로 구현하는 SDD v2' 카테고리의 다른 글
| d02/03. feature-spec-workshop.md (0) | 2026.05.03 |
|---|---|
| d02/02. baseline-check-workshop.md (0) | 2026.05.03 |
| d02/00. learning-guide.md (0) | 2026.05.03 |
| d02/README.md (0) | 2026.05.03 |
| d01/10. speckit-folder-structure.md (0) | 2026.05.02 |