C.W.K.
Stream
Lesson 12 of 12 · published

언제 CI/CD 가 overkill

~10 min · judgment, scope, yagni

Level 0Apprentice
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

모든 프로젝트가 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 안 돌려.

Code

가장 작은 'CI 졸업' workflow·yaml
# Three lines worth of YAML, but it's enough to start.
name: ci
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: ./run-tests.sh

External links

Exercise

CI 없는 소유 repo 하나 봐. 정직하게: 지금 CI 필요해? 어느 쪽이든 한 문단 변호 써. 필요하면 나머지 quest 는 그 repo 를 위한 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.