모든 프로젝트가 pipeline 필요한 건 아냐
CI/CD 는 의무 문화가 있어 — 모든 README 에 green badge, 모든 tutorial 이 Actions 가정. 진실은 더 미묘해. 어떤 프로젝트는 객관적으로 CI 없는 게 나아.
CI 가 진짜 overhead 인 경우
- 일회성 script. 한 번 돌려서 CSV 뽑는 50줄 bash. CI 세팅이 script 보다 오래 살아.
- 개인 dotfiles. '테스트' 가 그냥 'zsh 에서 아직 로드됨' 인데, shell 이 그걸 즉시 말해줘.
- 작업 노트 / scratch repo. 청중이 한 명이면 feedback loop 가 이미 저장 후 재실행 이야.
- 버려질 prototype. 수명이 1주일이면 CI 짜는 게 yak shaving.
- Test 불가능한 codebase (test 가능하게 만들기 전). Test 없는 CI 는 연극. 돌아가는 test 하나 먼저 만들고 그 다음 CI.
프로젝트가 졸업해서 이제 CI 필요한 신호
- 한 명 이상이 commit.
- main 이미 한 번 깨뜨렸고 찾는 데 실제 시간 들었음.
- code 가 노트북 외 어딘가에서 돔 (서버, 동료 머신, 고객 환경).
- 'push 전 test 돌리는 거 기억할게' 라고 적었는데 까먹음.
원칙: 잊어버리는 비용이 YAML 비용을 초과하는 순간 CI 추가, 그 전엔 안 함. 피파는 자기 codebase 에 CI 돌려. 한 줄 bash alias 에는 CI 안 돌려.