코드 편집기가 다음 줄을 속삭여주면 얼마나 좋을까요?
몇 주 전, 저는 한 주니어 개발자가 마치 그녀의 강아지를 모욕한 것처럼 완고한 API 호출을 노려보는 것을 봤습니다. 그녀는 탭을 옮기고, 맹렬히 구글링하고, 스니펫을 복사하고, 붙여넣고, 얼굴을 찌푸리고, 되돌리고, 한숨을 쉬었습니다. Stack Overflow와의 표준적인 소프트웨어 개발자 구애 춤이었죠. 그러다가 그녀는 다른 것을 시도했습니다. AI 코딩 도구에 함수를 완성해달라고 요청한 것입니다. AI는 함수를 완성했고, 첫 시도에 컴파일되었습니다. 그녀는 안도감과 함께 약간 섬뜩한 웃음을 지었습니다. 마치 미래가 그녀의 뒤로 몰래 다가온 것을 본 사람의 웃음이었죠.
코드를 작성하신다면 GitHub Copilot에 대해 들어보셨을 겁니다. AI 코드 완성의 대명사로, 스파게티 코드 위에 파마산 치즈를 뿌리듯이 제안을 흩뿌립니다. 하지만 이 버디 코미디에는 새로운 캐릭터가 등장했습니다. 바로 터미널에 살면서 명령어를 작성하고, 셸 스크립트를 수정하고, 이해하기 힘든 오류를 (눈물 없이) 평범한 영어로 바꿔준다고 주장하는 Warp Code입니다.
오늘의 대결: Warp Code vs GitHub Copilot. 같은 링, 다른 싸움 스타일. 하나는 열성적인 래브라도처럼 IDE에 기대고, 다른 하나는 bash-fu를 속삭이는 스파링 코치처럼 터미널에 서 있습니다. 어떤 AI 코딩 도구가 승리할까요? 물론 정답은 '경우에 따라 다르다'입니다. 하지만 이 글을 다 읽을 때쯤이면 프로젝트, 팀, 그리고 정신 건강을 위해 어떤 도구를 선택해야 할지 정확히 알게 될 것입니다.
실제 시나리오, 함정, 지름길, 그리고 실제로 기능을 제공하는 '오, 굉장한데' 순간들을 안내해 드리겠습니다. 과장 광고도, 마케팅 안개도 없습니다. 수많은 빌드를 망치고 사후 분석 보고서를 작성하며 살아남은 사람의 진실만을 담았습니다.
빠르게 분위기를 확인해 보겠습니다. 각 도구가 실제로 무엇을 하는지 말이죠.
- GitHub Copilot: 로켓 연료를 사용한 자동 완성이라고 생각하세요. 주로 편집기(VS Code, JetBrains, Neovim 등)에 살면서 현재 파일과 주변 파일을 읽고 전체 함수, 테스트, 주석 또는 리팩토링을 제안합니다. 수많은 공개 코드로 훈련되었기 때문에 그렇지 않으면 찾아봐야 할 패턴에 대해 엄청나게 능숙합니다.
- Warp Code: Warp 터미널 내부에 있습니다. AI 어시스턴트이자 명령어 장인입니다. “내 저장소에서 모든 TODO를 grep해줘” 또는 “이 Docker 오류를 수정해줘”라고 요청하면 명령어를 생성하고, 오류 메시지를 설명하고, 셸 세션의 컨텍스트를 기억합니다. 마치 bash에 능통하고 커피를 마시기 전에도 심술궂지 않은 시니어 개발자가 있는 것과 같습니다.
요약하자면, Copilot은 여러분과 함께 코드를 작성하고, Warp Code는 여러분과 함께 세상을 운영합니다. Copilot은 IDE를 사용하고, Warp Code는 CLI를 사용합니다.
정면 대결: 일상적인 개발자의 삶에서 Warp Code vs GitHub Copilot
1) 새로운 기능 시작하기
- Copilot 방식: “// 캐싱 및 지수 백오프를 사용하여 사용자 프로필 가져오기”라는 주석을 작성하면 Copilot이 함수를 추측합니다. 매개변수, 가져오기 호출, try/catch, 심지어 재시도 로직까지요. 몇 줄을 수정하면 첫 번째 초안이 완성됩니다.
- Warp Code 방식: 백엔드를 새로운 마이크로서비스에 연결하고 빠른 셸 스캐폴딩이 필요합니다. “Node 서비스 생성, pnpm 설정, env 변수 생성, Dockerfile 작성, 상태 검사 실행.” Warp Code는 터미널을 벗어나지 않고도 명령어를 내뱉고, Dockerfile을 작성하고, 서비스를 실행할 수 있습니다.
평결: 앱 코드 작업이 많으면 Copilot이 빛을 발합니다. 설정 및 인프라 마찰이 많으면 Warp Code가 점수를 얻습니다.
2) '이 빌어먹을 오류는 뭐지?' 순간 디버깅
- Copilot: 오류가 코드에 나타나면 때때로 수정 사항을 제안할 수 있습니다. 하지만 이해하기 힘든 스택 추적이나 환경 이상에 대해서는 Copilot은 어깨를 으쓱합니다. 터미널을 보지 못합니다.
- Warp Code: 여기가 주 무대입니다. 오류를 붙여넣거나 “npm install 실패를 설명해줘”라고 말하면 Warp Code는 화난 로봇을 여러분이 시도할 수 있는 단계로 번역해줍니다. “Python 버전이 node-gyp와 충돌하는 것 같습니다. xcode-select를 시도한 다음 brew upgrade를 하고 플래그를 사용하여 다시 실행하세요.” 항상 옳지는 않지만 2017년부터 검색 결과를 통해 스레드를 건너뛰는 것보다 훨씬 나은 출발점이 될 수 있습니다.
평결: Warp Code가 오류 부검에서 승리합니다.
3) 의지력이 3%일 때 테스트 작성
- Copilot: 테스트 머신입니다. 테스트 파일과 몇 가지 힌트를 추가하면 Copilot이 설정, 모의 및 어설션을 초안합니다. 반복적인 테스트 패턴에 특히 좋습니다.
- Warp Code: 패키지 전체에서 테스트를 실행하고 출력을 구문 분석하는 명령어를 스캐폴딩할 수 있지만 앱 코드에서 어설션을 작성하지는 않습니다.
평결: Copilot의 압승입니다.
4) 새로운 코드베이스 온보딩
- Copilot: 몰입을 통해 새로운 방언을 배우는 것과 같습니다. 주변 코드에서 관용구, 가져오기 및 스타일을 추측합니다. 여전히 아키텍처를 이해해야 하지만 상용구 검색에 소요되는 시간을 줄일 수 있습니다.
- Warp Code: “이 저장소를 어떻게 실행하나요?”라고 물어보면 일반적으로 설치, 시드, 빌드, 마이그레이션, 실행 순서를 조합할 수 있습니다. 여러분이 시도한 것을 기억하고 다음 단계를 제안합니다. 터미널 투어의 친절한 투어 가이드입니다.
평결: 다른 차원에서 무승부입니다. Copilot은 새로운 코드베이스에서 작성하는 비용을 낮추고, Warp Code는 실행하는 비용을 낮춥니다.
5) 규정 준수 및 개인 정보 보호가 중요할 때
- Copilot: 엔터프라이즈 플랜은 정책 제어, 제안 필터링 및 감사 기능을 제공합니다. 하지만 여전히 코드 편집기와 클라우드 모델에서 작동하므로 민감한 IP로 작업하는 경우 우려를 제기할 수 있습니다. 코드 학습을 제한하는 옵션이 있지만 세부 사항을 읽어보세요.
- Warp Code: 터미널 중심 어시스턴트를 사용하면 종종 컨텍스트를 세션 및 로컬 파일로 제한할 수 있습니다. 하지만 여전히 명령어, 오류 등의 프롬프트를 보내고 있으므로 여러분의 장비를 떠나는 내용, 저장 방법, 엔터프라이즈 기능이 여러분의 기준을 충족하는지 평가하세요.
평결: 둘 다 엔터프라이즈 친화적일 수 있지만 보안 팀은 경쟁을 원할 것입니다. 어색한 질문을 하세요.
손에 쥐었을 때 이러한 도구가 느껴지는 방식: 스토리 기반 연습
작은 SaaS 위젯을 구축한다고 가정해 보겠습니다. 사용자가 CSV를 업로드하고, 여러분은 행의 유효성을 검사하고, 저장하고, 대시보드를 렌더링합니다. 전형적인 화요일이죠.
- GitHub Copilot 사용: 백엔드에서 시작합니다. app/controllers/upload.js에서 스트리밍을 사용하여 CSV를 구문 분석하고, 잘못된 행을 처리하고, 보고서를 생성하는 함수를 간략하게 설명합니다. Copilot은 스트리밍 파서를 채우고 이 저장소에서 PapaParse보다 fast-csv를 선호한다는 사실까지 기억합니다. “이메일 + 날짜 필드에 대한 유효성 검사”를 추가하는 주석을 작성하면 Copilot이 정규식 검사, 결과 객체 및 오류 수를 추가합니다. 그런 다음 테스트로 이동하면 Copilot이 고정 장치 및 에지 케이스를 스텁합니다. 수정하고, 실행하고, 초록색이 됩니다. 여러분은 “좋아, 으스스한데.”라고 중얼거립니다.
- Warp Code 사용: 이제 배포 날입니다. “Node 20용 Dockerfile을 pnpm으로 생성하고, 종속성을 캐시하고, 3000을 노출하고, /status에서 상태 검사를 수행합니다.”라고 요청합니다. Warp Code가 작성합니다. “Postgres, env 변수 및 영구 볼륨으로 docker-compose를 생성합니다.” 완료되었습니다. “Postgres에서 ECONNREFUSED가 발생합니다. 이제 어떻게 해야 하나요?” Warp는 로그를 읽고 누락된 depends_on 및 wait-for-it 스크립트를 제안합니다. 붙여넣고 다시 시도하면 초록색이 됩니다. 여러분은 “좋아, 으스스한데.”라고 중얼거립니다.
둘 다 여러분을 으스스하게 만들지만 스택의 다른 레이어에서 만듭니다.
피할 수 없는 문제: 헛소리와 절반만 맞는 답변
AI 코드 도구는 의도는 좋지만 현혹될 정도로 빠르고 때로는 자신감 넘치지만 틀릴 때도 있는 인턴과 같습니다. API를 발명하고, 존재하지 않는 메서드를 호출하고, 미묘한 버그로 코드를 망칠 수 있습니다.
자신을 안전하게 지키는 요령:
- 주석 우선 프롬프트: Copilot에서 명확한 함수 수준 주석과 제약 조건을 작성하세요. “외부 종속성 없음. O(n log n). 잘못된 입력 시 조기에 반환.” 더 나은 안전한 제안을 받을 수 있습니다.
- 복사-붙여넣기 방지: Warp Code가 rm -rf something을 수행하는 한 줄 명령어를 제안하는 경우 잠시 멈추세요. 명령어 설명을 요청한 다음 드라이 런 버전을 요청하세요. 안전 벨트는 데이터 복구보다 저렴합니다.
- 신뢰하되 확인하세요. 테스트를 거짓말 탐지기로 사용하세요. Copilot은 테스트를 생성할 수 있고, 여러분은 테스트가 의미를 갖도록 만들 수 있습니다.
- 종속성을 주시하세요. Copilot이 가져오기를 제안하는 경우 패키지의 신뢰성과 라이선스를 확인하세요. 편리해 보이더라도 말이죠.
가격, 플랫폼 및 마찰 세금
- GitHub Copilot: 가장 인기 있는 IDE(VS Code, JetBrains, Neovim)에서 사용할 수 있습니다. 개인용 좌석당 구독 및 팀용 엔터프라이즈 티어(정책 제어 포함)가 있습니다. 하루의 대부분을 IDE에서 보내는 경우 가장 빠르게 가치를 느낄 수 있습니다.
- Warp Code: Warp 터미널(macOS, 릴리스 타임라인에 따라 다양한 상태의 Linux 포함) 내에서 실행됩니다. 마법은 셸 네이티브 컨텍스트, 즉 기록, 오류, 파일입니다. 가격은 프리미엄 플러스 프로 모델을 따르는 경향이 있습니다. 팀은 협업 및 정책 기능을 얻습니다.
실용적인 팁: 올바른 도구는 실제로 사용할 도구입니다. 근육 기억이 계속 터미널을 팝업하는 경우 Warp Code는 순간 이동처럼 느껴집니다. 편집기에 살고 강제로 터미널로 탭하는 경우 Copilot이 본거지입니다.
각 도구의 혜택을 가장 많이 받는 팀은?
- 솔로 개발자 및 소규모 스타트업: Copilot의 즉석 파일 완성은 생산성 승수입니다. MVP 기능을 더 빨리 제공할 수 있습니다. Warp Code는 여러분이 DevOps 부서이기도 할 때 도움이 됩니다. 스타트업에서는 아마도 그럴 것입니다.
- 다국어 저장소 및 마이크로서비스: Copilot은 세 번째 줄마다 Google에서 검색하지 않고도 아침에는 Go를 사용하고 점심에는 TypeScript를 사용할 수 있도록 도와줍니다. Warp Code는 “기능 플래그 Q를 사용하여 서비스 D를 어떻게 실행하나요?” 혼란을 해결합니다.
- 데이터 및 ML 팀: Copilot은 데이터 변환 및 노트북 함수를 초안합니다. Warp Code는 환경 설정, GPU 드라이버 및 재채기를 하면 깨지는 취약한 종속성 체인을 처리합니다.
- 엄격한 보호 장치가 있는 엔터프라이즈: 둘 다 엔터프라이즈 옵션이 있습니다. 먼저 민감하지 않은 코드로 파일럿하고 보안 및 법률을 조기에 가져오세요. 도구가 보고 기록할 수 있는 내용을 정의하세요.
속도 테스트: 각 도구가 극적으로 더 빠르게 느껴지는 곳
- CRUD 엔드포인트, 유효성 검사 및 DTO 스텁
- 다음 단계와 함께 무서운 오류를 평범한 영어로 설명
- 복잡한 CLI 호출 생성(ffmpeg, find/grep/xargs, kubectl)
- Docker, Compose 및 기본 CI 명령어 빠르게 시작
- 반복적인 셸 작업 스크립팅 및 재사용 가능한 스니펫으로 변환
시스템 간에 권한을 보존하기 위한 정확한 tar 플래그 시퀀스를 기억하려고 시도한 적이 있다면 Warp Code는 여러분의 새로운 절친입니다. 왁싱 달 아래 중첩된 속성을 변경하지 않고 객체 배열을 깊이 복제하기 위한 올바른 lodash 메서드를 기억하려고 시도한 적이 있다면 Copilot이 여러분을 지원합니다.
실제 함정(어려운 방법으로 배우지 않도록)
- 컨텍스트 드리프트: 파일이 너무 크거나 의도가 함수 중간에 바뀌면 Copilot의 제안이 저하될 수 있습니다. 명확한 주석을 추가하거나 더 작은 함수를 추출하여 재설정하세요.
- 터미널 상태 트랩: Warp Code는 특정 작업 디렉터리 또는 환경 변수를 가정하는 명령어를 제안할 수 있습니다. cd를 포함하고 set -e를 요청하세요. 더 나은 방법은 주석과 함께 스크립트를 요청하는 것입니다.
- 모델 제한: 어떤 도구도 조직 전체의 부족 지식을 보지 못합니다. 팀이 특이한 아키텍처를 주장하는 경우 여전히 문서와 Slack DM에 응답하는 베테랑이 필요합니다.
- 라이선스 및 속성: 이해하지 못하는 코드를 제공하지 마세요. Copilot이 의심스러울 정도로 세련된 덩어리를 생성하는 경우 라이선스 및 출처를 검토하세요.
실용적인 콤보 이동: 둘 다 사용
이것은 하이랜더가 아닙니다. 두 명이 있을 수 있습니다. 제가 본 가장 강력한 워크플로는 다음과 같습니다.
- 편집기에서 GitHub Copilot으로 작성하고 리팩터링합니다. 테스트와 지루한 접착 코드에 기대세요.
- 그런 다음 Warp Code를 사용하여 실행, 디버깅 및 배포를 위해 터미널로 드롭하세요. 이해하기 힘든 로그를 번역하고, 까다로운 명령어를 구성하고, 야크 털 깎기를 자동화하세요.
개발자에게는 땅콩 버터와 젤리입니다. 또는 케토를 하는 경우 스테이크와 버터입니다.
빠르고 솔직한 언급: 코딩 AI와 함께 Sider.AI 사용
놀라운 사실이 있습니다. Sider.AI는 연구 및 문서화 부조종사로 이 스택에 슬롯할 수 있습니다. PR을 작성해야 하거나, 실행서를 요약해야 하거나, 금요일 오후에 “이 두 버전 간에 무엇이 변경되었나요?”라는 질문이 제기될 때 좋습니다. 코드 또는 로그를 붙여넣고 깔끔한 요약을 요청하면 스택 추적에서 꿈을 꾸지 않는 사람들에게도 읽을 수 있을 만큼 충분히 읽을 수 있는 내용을 얻을 수 있습니다. Copilot 또는 Warp Code를 대체하지는 않지만 둘 다 잘 작동합니다. 특히 엔지니어링의 “이 엉망진창을 미래의 나에게 설명해줘” 부분에 적합합니다. 실습 미니 튜토리얼
Copilot에게 여러분이 의도한 함수를 작성하도록 가르치세요.
- 함수의 계약 및 제약 조건을 설명하는 문서 주석을 추가하세요.
- 키보드를 사용하여 줄 단위로 제안을 수락하거나 거부하세요. 맹목적으로 탭 완성하지 마세요.
- 즉시 테스트를 작성하거나 생성하세요. Copilot이 테스트를 작성한 경우 이상한 에지 케이스를 추가하여 정직하게 유지하세요.
예제 프롬프트 주석:
"""
사용자 행의 CSV 스트림을 사용자 객체 목록으로 구문 분석합니다.
- errors가 줄 번호 배열인 {users, errors} 반환
- 파일이 > 10MB이면 중지
예: 입력: 'id,email,created_at\n1,,2025-01-01' -> users.length === 1
"""
Copilot에 꽉 조이는 범퍼를 제공하면 제안이 얼마나 더 나아지는지 놀라실 것입니다.
Warp Code를 셸 번역기로 바꾸세요.
- 원하는 명령어를 평범한 영어로 요청하세요. “지난 2일 동안 수정된 1MB가 넘는 모든 PNG를 찾아서 ./large/로 이동합니다.” 그런 다음 먼저 드라이 런 버전을 요청하세요. Warp는 일반적으로 미리 보기를 위해 echo와 함께 find -type f -name "*.png" -size +1M -mtime -2 -exec ... 패턴을 제안합니다.
- 오류가 발생하면 메시지를 붙여넣지 말고 시도한 내용을 추가하세요. “sudo npm link 후 EACCES가 발생했습니다. 이미 chmod 755와 chown -R을 시도했습니다.” 더 나은 조언을 얻을 수 있습니다.
- 성공적인 명령어를 스크립트로 변환하세요. “set -euo pipefail, 주석 및 사용법 도움말과 함께 Bash 스크립트로 래핑합니다.” 버전을 지정하세요. 미래의 여러분이 과일 바구니를 보내줄 것입니다.
성능 및 정확도: 기대치를 관리하세요.
- Copilot은 일반적인 패턴(REST 컨트롤러, React 후크, 작은 유틸리티)에서 가장 빠르게 느껴집니다. 소설 알고리즘이나 문제가 지구상의 누구도 오픈 소스로 만들지 않은 비즈니스 로직의 이상함일 때는 흔들립니다.
- Warp Code는 인간의 의도를 셸 동작으로 변환하고 엉망인 환경 문제를 해결할 때 가장 똑똑하게 느껴집니다. 환경 싸움보다는 심층적인 도메인 로직이 필요할 때는 덜 강력합니다.
둘 다 주석, 예제, 오류 로그, 제약 조건과 같은 빵 조각을 제공할 때 개선됩니다. 모호한 프롬프트는 모호한 결과를 낳습니다.
AI 코딩 도구를 사용한 보안 위생
- 프롬프트에 비밀을 붙여넣지 마세요. 절대. 토큰을 마스킹하고 미끄러지면 키를 회전하세요.
- AI 생성 코드를 코드 검토 뒤에 보관하세요. “이것이 무엇을 하는지 설명하세요”를 필수 항목으로 만드세요.
- 회사에 있는 경우 엔터프라이즈 정책을 구성하세요. 클라우드 모델로 전송되는 내용을 제한하세요. 로그와 액세스를 비밀로 유지하세요.
AI는 여러분을 가속화해야 하며, 다음 5분기 동안 설명할 침해를 일으키지 않아야 합니다.
접근성 및 학습 곡선
- Copilot은 설정되면 거의 보이지 않습니다. 여러분은 코드를 작성하고, Copilot은 속삭입니다. 학습 곡선은 주로 더 명확한 주석을 작성하고 수락할 시기와 거부할 시기를 배우는 것입니다.
- Warp Code는 터미널 의도를 영어로 설명하도록 요청합니다. 주니어 개발자에게는 과소 평가된 초능력입니다. 명령어가 스스로 설명하도록 요청하여 명령어가 수행하는 작업을 배웁니다.
주니어를 멘토링하는 경우 두 도구 모두 교육 보조 도구가 될 수 있습니다. Copilot은 패턴을 보여주고, Warp는 프로세스를 보여줍니다.
평결: 누가 승리하나요?
더 많은 앱 코드를 더 빨리 작성하는 도구가 하나 필요하면 GitHub Copilot이 승리합니다. 터미널을 길들이고, 설정을 자동화하고, 오류를 해독하는 도구가 하나 필요하면 Warp Code가 승리합니다. 둘 다 사용할 수 있다면 콤보가 부분의 합보다 큽니다. Copilot을 사용하여 함수와 테스트를 초안하고 Warp Code를 사용하여 주변 세계를 실행하세요.
저의 따뜻하고 약간 회의적인 생각: 이러한 도구는 개발자를 대체하는 것이 아니라 개발자가 되는 것의 지루한 부분을 대체합니다. 의견이 있는 가속기입니다. 바퀴를 잡고, 테스트를 꽉 조이고, 호기심을 켜두세요. 미래는 푸시 버튼 코딩이 아니라 여러분과 스마트 어시스턴트가 주말을 희생하지 않고 더 나은 소프트웨어를 제공하는 것입니다.
마지막으로 한 가지 더…
일주일 동안 실험해 보세요. Copilot을 켜고 댓글로 의도를 설명하세요. Warp Code를 켜고 명령어를 붙여넣기 전에 설명을 요청하세요. Google을 얼마나 많이 사용하는지 추적하세요. 그 횟수가 절반으로 줄고 코드 검토가 끔찍한 광경으로 변하지 않는다면 축하합니다. 새로운 표준을 찾으신 겁니다.
그리고 팀을 위해 런북을 작성하거나 로그 기록을 요약해야 한다면 Sider.AI에 맡겨 깔끔한 설명을 얻으세요. 미래의 당신은 몸값 요구서처럼 읽히지 않는 문서화를 받을 자격이 있으니까요. FAQ
Q1: 일상적인 코딩에는 Warp Code와 GitHub Copilot 중 어느 것이 더 나은가요?
일상적인 앱 코드 및 테스트의 경우 일반적으로 GitHub Copilot이 더 좋습니다. 터미널(명령, Docker, 오류)에서 문제가 발생한다면 Warp Code가 더 나은 도우미입니다. 많은 개발자가 둘 다 사용하여 전체 워크플로우를 커버합니다.
Q2: Warp Code가 함수 작성을 위해 GitHub Copilot을 대체할 수 있나요?
그렇지는 않습니다. Warp Code는 셸 명령어, 환경 설정 및 오류 분류에 뛰어나지만 GitHub Copilot은 편집기에서 함수를 작성하고 리팩터링하도록 구축되었습니다. 둘은 동일한 문제의 다른 부분을 해결합니다.
Q3: GitHub Copilot은 독점 코드에 안전한가요?
특히 로깅 및 학습을 제어하는 엔터프라이즈 설정에서는 안전할 수 있습니다. 하지만 여전히 프롬프트에서 민감한 정보를 제외하고 코드 검토를 시행하며 제안된 종속성에 대한 라이선스를 확인하세요.
Q4: GitHub Copilot에서 최상의 결과를 얻으려면 어떻게 해야 하나요?
함수의 목표, 제약 조건 및 예제를 설명하는 명확한 주석을 작성한 다음 제안을 한 줄씩 수락하세요. 테스트로 팔로우업하세요. Copilot이 초안을 작성할 수 있지만 엣지 케이스를 추가하여 정확성을 유지하세요.
Q5: Warp Code를 위한 좋은 첫 번째 작업은 무엇인가요?
마지막 빌드에서 발생한 이해하기 어려운 오류에 대한 설명을 요청한 다음 안전하고 단계별 수정 사항을 요청하세요. 다음으로 길고 까다로운 명령을 드라이 런 옵션이 있는 재사용 가능한 Bash 스크립트로 변환해 보세요.