90-90 Rule and DevOps: Why the Last 10% of Sprints Matter
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

90-90 규칙과 DevOps: 스프린트의 마지막 10%가 모든 것을 좌우하는 이유

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

  • DevOps 엔지니어, 소프트웨어 개발자, 프로젝트 매니저
  • 난이도: 중간 (복잡한 시스템 설계와 DevOps 파이프라인 이해 필요)

핵심 요약

  • 90–90 규칙"첫 90%의 코드는 90%의 개발 시간을 소모하고, 나머지 10%의 코드는 나머지 90%의 시간을 차지한다"는 관찰로, DevOps 파이프라인에서의 복잡성과 예상치 못한 문제를 설명
  • "최종 10%"보안 검토, IAM 감사, 환경 간 YAML 드리프트, 상태 비가역성, 파이프라인의 관찰성 부족비코드 요소로 인해 발생
  • DevOps 성공을 위해서는
  • 관찰성 및 테스트 가능성으로부터 설계
  • 인프라 코드화 및 버전 관리
  • "완료"의 정의 확장 (문서, 모니터링, 가용성 테스트 포함)
  • 서로 다른 팀 간 커뮤니케이션 강화

섹션별 세부 요약

1. 90-90 규칙의 기원 및 의미

  • 90-90 규칙파레토 원칙호프스타터의 법칙과 연관됨
  • 호프스타터의 법칙: "예상보다 항상 더 오래 걸린다"
  • 실제 프로젝트에서의 경험을 기반으로 한 규칙으로, 복잡한 시스템의 예측 불가능성을 강조

2. DevOps에서의 "최종 10%"의 영향

  • CI/CD 파이프라인 완료 후 추가 필요한 작업
  • 보안 검토, 규제 준수 체크리스트, IAM 감사, 운영 팀 피드백, 비용 추정 검토, 비밀 관리 문제
  • 자동화 파이프라인의 유지보수
  • 환경 간 YAML 드리프트, 매개변수 불일치, 상태 비가역성, Terraform destroy 명령의 예기치 못한 동작
  • 관찰성 시스템의 복잡성
  • 로깅, 분산 트레이싱, 대시보드, 알림 임계값 설정

3. 생산성에서의 예상치 못한 문제

  • 로컬에서 통과한 함수가 프로덕션에서 실패할 수 있는 사례
  • 메모리 누수, 하중 시 확장성 문제, 에지 케이스의 정적 실패, 주간 비즈니스 로직 변경
  • DevOps의 핵심은 단순히 코드 실행이 아닌
  • 모니터링, 업데이트, 패치, 문서화, 검증, 퇴출 전략

4. 실무에서의 핵심 진실

  • "알지 못하는 알지 못한 것"(unknown unknowns)이 주로 후반에 발생
  • 통합 과정의 복잡도는 지수적 성장
  • 코드 작성은 쉬우나, 유지보수는 어렵다
  • "완벽함"은 규제 산업에서는 "충분히 좋다"의 적대자

5. 실무 적용을 위한 5가지 전략

  1. 관찰성 및 테스트 가능성으로부터 설계
  • 모니터링, 로깅, 분산 트레이싱을 초기 설계에 포함
  1. 인프라 코드화 및 버전 관리 강화
  • CI/CD 파이프라인 코드와 동일한 테스트 수준 유지
  1. "완료"의 정의 확장
  • 문서, 알림, 메트릭, failover 테스트 포함
  1. 혼돈 공학(Chaos Engineering) 적용
  • 제어된 환경에서 프로덕션 문제를 조사하여 의존성 파악
  1. 크로스펑셔널 팀 간 커뮤니케이션 강화
  • 개발자(기능), 운영자(가용성), 보안팀(위험) 간 협업 필수

결론

  • 90-90 규칙을 극복하려면
  • 관찰성과 테스트 가능성으로부터 설계
  • 인프라를 코드로 관리하고 버전화
  • 혼돈 공학과 실시간 모니터링 도구 활용
  • "완료"는 단순한 코드 배포가 아닌, 지속 가능한 시스템 설계로 확장되어야 한다.