피드로 돌아가기
Generate Terminal Recordings for Your CLI Docs Without Touching asciinema
Dev.toDev.to
DevOps

Go 기반 asciicast v2 자동 생성으로 CLI 문서의 결정론적 동기화 달성

Generate Terminal Recordings for Your CLI Docs Without Touching asciinema

Bala Paranj2026년 4월 14일5intermediate

Context

수동 asciinema 녹화 방식에 따른 개발자 공수 증가와 환경별 출력 불일치 문제 발생. CLI 플래그 및 출력 포맷의 빈번한 변경으로 인한 문서 최신화 유지 비용의 기하급수적 증가가 병목 지점으로 작용.

Technical Solution

  • 실제 CLI binary를 Go 프로그램으로 실행하여 stdout/stderr를 캡처하는 Programmatic Recording 구조 설계
  • NDJSON 기반의 asciicast v2 포맷을 직접 구현하여 별도의 녹화 도구 없이 .cast 파일 생성
  • Fixed Random Seed(42)와 특정 타임스탬프 고정 플래그를 통한 Byte-identical한 결정론적 출력 보장
  • SHA-256 해시 기반의 Checksum 검증 로직을 도입하여 변경 사항이 없는 경우 재생성 단계를 건너뛰는 최적화 적용
  • React Wrapper 컴포넌트를 통한 Docusaurus 정적 자산 서빙 및 브라우저 내 터미널 리플레이 구현

- CLI 문서화 시 정적 스크린샷 대신 결정론적 녹화 파일 생성 자동화 검토 - CI 파이프라인 내에서 생성된 녹화 파일의 git diff를 통해 문서 최신성 검증 프로세스 구축 - 잦은 변경이 발생하는 데이터의 경우 SHA-256 기반의 캐싱 전략을 도입하여 빌드 시간 단축

원문 읽기