Babushka: 테스트 주도 시스템 관리
Babushka는 소프트웨어 개발의 TDD(테스트 주도 개발) 원칙을 시스템 관리(Sysadmin)에 적용한 도구입니다.
-
테스트-태스크 기반 의존성(Dep): 시스템 상태를 검증하는 ‘테스트’와 해당 상태를 달성하는 ‘태스크’를 ‘의존성(Dep)’으로 정의합니다. 실패 테스트 작성 후 태스크 실행, 재테스트로 성공을 확인하는 TDD 사이클을 따릅니다.
-
중첩 구조 및 재사용성: Dep는 다른 Dep에 의존할 수 있어 복잡한 시스템 설정을 계층적으로 관리하고 재사용성을 높입니다. Ruby 버전 확인 Dep가 RVM 설치 Dep에 의존하는 식입니다.
-
자동화 및 멱등성:
babushka install cucumber명령으로 TextMate 및 Cucumber 번들을 자동 설치합니다. 두 번째 실행 시 이미 설치된 상태임을 감지하여 불필요한 작업을 방지합니다. -
공유를 통한 협업: GitHub를 통해 Dep를 공유하고
사용자이름:dep_name형식으로 쉽게 가져와 활용합니다. 이는 시스템 관리 작업을 표준화하고 커뮤니티 노력을 통해 효율적인 환경 구축을 가능하게 합니다.