{"meta":{"title":"흐름을 중단하지 않고 문제 제기","intro":"작업 중간에 눈에 띄는 것이 있으면 Copilot CLI를 사용해 코드 컨텍스트, 연결된 PR, 레이블을 포함한 GitHub 이슈를 등록한 다음, 하던 작업으로 돌아가세요.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ko/copilot","title":"GitHub Copilot"},{"href":"/ko/copilot/tutorials","title":"자습서"},{"href":"/ko/copilot/tutorials/copilot-cookbook","title":"GitHub Copilot 활용 안내서"},{"href":"/ko/copilot/tutorials/copilot-cookbook/document-code","title":"문서 코드"},{"href":"/ko/copilot/tutorials/copilot-cookbook/document-code/filing-issues-without-breaking-your-flow","title":"흐름 중단 없이 파일 문제"}],"documentType":"article"},"body":"# 흐름을 중단하지 않고 문제 제기\n\n작업 중간에 눈에 띄는 것이 있으면 Copilot CLI를 사용해 코드 컨텍스트, 연결된 PR, 레이블을 포함한 GitHub 이슈를 등록한 다음, 하던 작업으로 돌아가세요.\n\nCopilot CLI 터미널에서 GitHub 문제를 열 수 있습니다. 브라우저로 전환해 이슈를 직접 작성하는 대신, 원하는 내용을 설명하면 Copilot이 리포지토리와 GitHub에서 관련 컨텍스트를 수집한 다음 이슈를 생성하므로 계속 작업할 수 있습니다.\n\n## 예제 시나리오 1: CI 오류로 인한 문제 제출\n\nCI가 실패하거나 프로덕션 로그에서 오류를 발견했습니다. 스택 추적을 따라 커밋까지 수동으로 거슬러 올라가는 대신, Copilot CLI에게 조사를 진행하고 이슈를 등록해 달라고 요청합니다.\n\n### 예제 프롬프트\n\n```text copy\nThe CI workflow on main has been failing since yesterday. Look at the failing \nrun, figure out what's breaking and which commit likely introduced it, then \ncreate an issue with the stack trace, a link to the failing run, and the \nsuspected PR that caused it. Label it \"bug\" and \"regression\".\n```\n\n### 응답 예제\n\n> \\[!NOTE] 다음 응답이 예제입니다. Copilot Chat 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n\nCopilot CLI GitHub MCP 도구를 사용하여 다음을 수행합니다.\n\n1. **실패한 워크플로 실행을 가져오** 고 로그에서 스택 추적을 추출합니다.\n2. **책임 있는 코드를 식별** 합니다(예: .) `src/services/payment.ts:94`.\n3. 해당 파일을 터치**하는 최근 커밋을 검색**하고 변경 내용을 도입한 PR을 찾습니다.\n4. **이슈를 생성합니다**: 모든 관련 정보를 수집하여\n\n   ```text\n   Created issue #421: Regression: PaymentService throws TypeError after #398\n\n   What's failing:\n   The `build` job on main has failed since commit `a3f7c21`. Stack trace:\n\n   TypeError: Cannot read properties of undefined (reading 'amount') at processRefund (src/services/payment.ts:94:22)\n\n   Introduced by: PR #398 (merged 2 days ago) refactored the payment types but missed updating `processRefund` to handle the new nullable `transaction` field.\n\n   Failing run: Actions run #2847\n\n   Suggested fix: Add a null check for `transaction` before accessing `transaction.amount` on line 94.\n\n   Labels: `bug`, `regression`\n   ```\n\n## 예제 시나리오 2: TODO를 추적된 작업으로 전환\n\n시간이 지남에 따라 TODO 및 FIXME 주석은 표시 유형 없이 코드베이스에 누적됩니다. 이러한 주석을 검색하고, 우선 순위를 평가하고, 작업을 추적할 수 있도록 문제를 만들도록 요청할 Copilot CLI 수 있습니다.\n\n### 예제 프롬프트\n\n```text copy\nScan this repo for TODO and FIXME comments. Group them by area, pick the 5 \nmost important ones based on the surrounding code context, and create an issue \nfor each. Include the code snippet, file location, and suggest a label.\n```\n\n### 응답 예제\n\n> \\[!NOTE] 다음 응답이 예제입니다. Copilot Chat 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n\nCopilot CLI 는 코드베이스를 검색하고, 각 주석에 대한 컨텍스트를 읽고, 심각도에 따라 우선 순위를 지정합니다.\n\n```text\nFound 23 TODO/FIXME comments across the repo. Here are the 5 I'd prioritize:\n\nCreated issue #422: FIXME: SQL injection risk in search query builder\n- src/db/search.ts:34 — user input concatenated directly into query string\n- Label: security, priority:high\n\nCreated issue #423: TODO: Rate limiter bypassed for internal routes\n- src/middleware/rate_limit.ts:12 — comment says \"temporary bypass, remove before launch\"\n- Label: security, technical-debt\n\nCreated issue #424: FIXME: Memory leak in WebSocket handler\n- src/ws/handler.ts:87 — listeners are added on each connection but never cleaned up\n- Label: bug, performance\n\nCreated issue #425: TODO: Retry logic missing for payment webhook\n- src/webhooks/payment.ts:56 — failures silently dropped, no retry queue\n- Label: reliability, priority:medium\n\nCreated issue #426: TODO: Migrate to new auth token format\n- src/auth/token.ts:3 — comment references a closing down API version\n- Label: technical-debt\n```\n\n## 추가 읽기\n\n* [GitHub Copilot CLI](/ko/copilot/how-tos/copilot-cli)"}