개발 기본
드라이 런(Dry Run)
실제 변경을 적용하기 전에 명령이 무엇을 할지 미리 계산하고 보여 주는 시험 실행입니다.
쉬운 설명
AI에게 오래된 파일을 정리해 달라고 했더니 여러 파일을 지우는 명령을 만들어 줄 수 있어요. 이때 바로 실행하지 않고 드라이 런을 지원하는지 확인하면, 실제로 지우기 전에 어떤 파일이 대상인지 먼저 볼 수 있어요. 파일 동기화, 데이터 변경, 배포처럼 한 번에 많은 항목을 바꾸는 작업에서도 사용해요. 다만 드라이 런이 확인하는 범위는 도구마다 다르므로 결과와 공식 설명을 함께 살펴봐야 해요.
이런 상황에서 만나요
AI가 만든 정리 명령에 --dry-run 옵션을 먼저 붙여 보라고 하거나, 도구 화면에서 Preview changes 또는 Plan 같은 실행 전 확인 단계를 안내할 때 만납니다.
예를 들어 파일 동기화 명령을 실행하기 전에 드라이 런을 켜면 복사하거나 삭제할 예정인 파일 목록을 볼 수 있습니다. 목록에 예상하지 못한 폴더가 들어 있다면 실제 실행으로 넘어가지 말고 경로와 제외 조건부터 고칩니다. 결과가 예상과 같을 때만 드라이 런 옵션을 뺀 실제 명령을 다시 확인해 실행합니다.
헷갈리기 쉬운 점
드라이 런이 성공하면 실제 실행도 반드시 성공하나요?
아니요. 드라이 런 뒤에 파일이나 서버 상태가 달라질 수 있고, 실제 저장·전송 단계에서만 생기는 권한, 용량, 네트워크 문제가 있을 수 있습니다. 드라이 런 성공은 해당 도구가 미리 검사한 범위에서 문제가 발견되지 않았다는 뜻으로 이해해야 합니다.
dry run이라는 이름만 보고 아무 변화도 없다고 단정하지 마세요. 어떤 도구는 서버에 검증 요청을 보내거나 외부 시스템을 조회할 수 있고, 플러그인이나 스크립트의 동작까지 모두 막아 주지 않을 수 있습니다. 실행 전 해당 도구의 공식 문서에서 무엇을 생략하고 무엇을 수행하는지 확인합니다.
왜 알아야 할까요?
삭제·이동·배포 대상이 맞는지 먼저 확인하면 잘못된 경로나 옵션 때문에 예상 밖의 항목을 바꾸는 실수를 줄일 수 있습니다. AI에게도 “드라이 런 결과에서 이 파일들이 삭제 대상으로 나오는데 맞는지 봐 줘”처럼 실제 출력에 근거해 질문할 수 있습니다.
조금 더 자세히
Dry run은 원래 본 공연이나 실제 절차에 앞서 진행하는 예행연습을 뜻하며, 개발 도구에서는 변경을 확정하지 않는 시험 실행을 가리킵니다. 보통 --dry-run이나 -n 같은 옵션으로 제공하지만 이름과 사용법은 도구마다 다릅니다. Preview, Plan, Check처럼 비슷한 역할의 이름을 쓰는 도구도 있습니다.
드라이 런의 출력은 “지금 실제로 실행하면 이렇게 처리할 예정”이라는 계산 결과입니다. 예를 들어 rsync는 --dry-run에서 파일을 실제로 전송하지 않고 예정 작업과 비슷한 출력을 보여 줍니다. Kubernetes의 kubectl apply는 클라이언트 드라이 런에서 서버로 보내려는 객체를 출력하고, 서버 드라이 런에서는 요청을 서버에 보내 검증하되 리소스를 저장하지 않습니다.
드라이 런은 백업이나 테스트를 대신하지 않습니다. 중요한 데이터를 바꾸는 작업이라면 복구 가능한 백업이 있는지 별도로 확인하고, 실제 실행 뒤에는 결과가 기대한 상태인지 다시 검증합니다. 출력이 너무 길다면 대상 개수, 경로, 생성·수정·삭제 항목을 나누어 살펴보면 좋습니다.
직접 사용할 때 확인해 보세요
- 현재 도구와 명령이 드라이 런을 지원하는지 공식 문서에서 확인한다
- 출력에서 대상 경로와 생성·수정·삭제 예정 항목을 확인한다
- 예상하지 못한 대상이 보이면 실제 실행 전에 옵션과 조건을 고친다
- 중요한 작업은 백업과 복구 방법을 별도로 준비한다
- 실제 실행 뒤 결과와 오류를 다시 확인한다