드라이런(dry-run) 옵션의 장점에 대하여

21 hours ago 3

  • 보고서 생성 애플리케이션 개발 과정에서 –dry-run 옵션을 추가해 실행 결과를 시뮬레이션할 수 있도록 한 사례
  • 이 옵션은 실제 변경 없이 어떤 작업이 수행될지를 출력해, 안전한 테스트와 빠른 피드백을 가능하게 함
  • 개발자는 이를 통해 설정과 접근성, 시스템 상태를 즉시 확인하며 일상적인 검증 도구로 활용
  • 코드 내에서 dryRun 플래그를 확인해야 하는 약간의 복잡성 증가가 단점으로 언급됨
  • 명령형 애플리케이션에서는 –dry-run 기능이 매우 유용하며, 프로젝트 초기에 도입할수록 개발 효율이 높아짐

배경

  • 새로 개발 중인 보고서 생성 애플리케이션은 매일 평일마다 보고서를 생성하고, 이를 압축 후 sftp 서버에 업로드하며 오류 응답을 확인하고 알림 메일을 발송하는 구조
    • 각 단계에서 생성된 파일과 피드백 파일은 단계별로 다른 디렉터리로 이동
  • 개발 초기, Subversion과 여러 리눅스 명령어의 –dry-run 옵션을 떠올려 동일한 기능을 추가
    • 이 옵션은 실제 변경 없이 실행 시 어떤 일이 일어날지를 출력
  • –dry-run 실행 시, 생성될 보고서와 제외될 보고서, 압축 및 이동될 파일, sftp 업로드 및 다운로드 대상 파일을 단계별로 출력

활용과 이점

  • 개발 및 테스트 과정에서 매일 사용될 만큼 유용한 기능
  • 실행 전 상태 점검용으로 사용 시, 설정과 접근성, 시스템 상태를 즉시 확인 가능
    • 실제 변경이 없으므로 안전하게 실행 가능
  • 보고서 상태 파일의 날짜를 변경한 뒤, 해당 보고서가 생성될지 여부를 즉시 확인할 수 있음
    • 실제 보고서 생성에는 시간이 걸리지만, dry-run은 빠른 피드백 제공
  • 전체 시스템 테스트 시에도 빠른 검증 루프를 제공

단점

  • 코드 내에서 dryRun 플래그를 반복적으로 확인해야 하므로 약간의 코드 오염 발생
    • 주요 단계마다 플래그를 검사해 실제 실행 대신 로그만 출력
  • 그러나 이 검사는 깊지 않으며, 보고서 생성 로직 내부에서는 별도 처리가 필요 없음
    • 실행 여부를 결정하는 상위 단계에서만 확인

결론

  • 명령형으로 실행되고 결과를 생성하는 애플리케이션은 –dry-run 옵션과 잘 맞음
    • 반면, 메시지를 기다리는 반응형 애플리케이션에는 적합하지 않음
  • 프로젝트 초기에 추가한 것이 개발 효율 향상에 큰 도움이 되었음
  • 모든 상황에 필요한 기능은 아니지만, 적절한 경우 매우 유용한 도구로 평가됨

Read Entire Article