[2026/10 최신판] GitHub Copilot Chat 토큰 절약 및 비용 최적화 노하우 정리
요약
GitHub Copilot Chat이 토큰량 기반 종량제(AI Credits)로 전환됨에 따라 비용 최적화가 중요해졌습니다. 저렴한 모델을 선택하고, 불필요한 컨텍스트를 줄이는 것이 핵심입니다. 작업 난이도별로 모델을 분리하여 사용하면 가장 효율적이며, 이는 AI 코딩 에이전트 전반의 업계 동향으로 확장됩니다.
핵심 포인트
- 작업 난이도에 따라 저가/고가 모델을 분리 사용하는 것이 비용 효율적입니다.
- 긴 답변 유도가 아닌 요점 위주의 질문이 토큰 절약에 효과적입니다.
- AI 코딩 에이전트의 TCO(총 소유 비용)는 구독료 외에도 크레딧 관리가 중요합니다.
- PR 처리량 중앙값 향상 등 ROI 분석은 조직별 편차가 매우 큽니다.
GitHub Copilot은 2026년 6월 1일에 Premium Request Units 제도에서 **GitHub AI Credits(토큰량에 따른 종량제)**로 전환했습니다.
- 플랜 기본 요금은 변동이 없지만, 채팅・에이전트・코드 리뷰가 토큰량 기반의 종량제로 변경되었습니다 (코드 자동 완성/Next Edit Suggestions는 유료 아님). 1 AI Credit = $0.01입니다. 모델별로 입력/출력 토큰 단가가 다르기 때문에 소비 크레딧이 변동합니다.
- 따라서 '저렴한 모델을 사용'하는 것과 '불필요한 토큰을 읽히지 않게 하는 것' 두 가지가 직접적으로 비용 절감에 효과적입니다.
이러한 전제를 바탕으로, 이하에서는 모델 선택・도구 설계・컨텍스트 관리・운영 설정 네 가지 관점에서 비용 최적화 포인트를 정리합니다.
| 계층 | 모델 | 입력 | 캐시 입력 | 출력 |
|---|---|---|---|---|
| 경량/저가 | GPT-5.4 nano | $0.20 | $0.02 | $1.25 |
| ... | ||||
| 출력 토큰은 입력의 5배 전후 단가가 기본입니다. 긴 답변을 유도하지 않고・요점만 질문하는 것이 비용 면에서도 효과적입니다. |
실전 팁 (Practical Tips)
- 일상적인 가벼운 코딩 보조나 단순한 질문에는 Haiku 4.5 / GPT-5.4 nano / MAI-Code-Flash 등 저가 모델을 선택합니다.
- 복잡한 설계 판단이나 대규모 리팩토링에만 Sonnet/Opus 클래스로 전환합니다 (매번 최상위 모델 고정은 비권장).
chat.utilityModel<br/>
/chat.utilitySmallModel<br/>
을 사용하면 커밋 메시지 생성 같은 보조 작업 전용으로 메인 모델과 다른 저가 모델을 고정할 수 있습니다. '본격 코딩은 Sonnet 5, 커밋 메시지나 요약은 Haiku 4.5'처럼 작업의 난이도에 따라 모델을 분리하여 사용하는 것이 가장 비용 효율적입니다.
토큰 절약은 단순히 '돈 이야기'만은 아닙니다. 컨텍스트 양과 구성 자체가 에이전트 결과물의 질이나 ROI(투자 대비 수익률)에 직결된다는 논의가 2026년에 들어 여러 소스에서 나오고 있습니다.
Copilot 고유의 이야기가 아닌, AI 코딩 에이전트 전반의 업계 동향입니다.
- AI 코딩 도구의 총 비용(구독료 + 토큰 종량제)은 개발자 1인당 월 $200~$600 수준이라는 추산이 있으나, 토큰 초과 과금・프리미엄 모델 이용・거버넌스 기반 비용을 포함하면 TCO(총 소유 비용)는 더욱 커집니다.
- PR 처리량 중앙값 향상은 약 7.76%이며, 많은 조직에서 5~15% 범위에 머문다는 조사 결과가 있는 반면, Microsoft가 수만 명 규모의 엔지니어를 대상으로 한 조사에서는 병합된(merged) PR 수가 24% 증가했다는 보고도 있습니다.
- ROI 손익분기점(Payback Period)은 엔지니어링 영역에서 중앙값 9.3개월이라는 추산입니다 (Bain Agentic AI Benchmark 2026, 2차 정보 경유).
- 대규모 조직에서는 '실질적인 AI ROI를 달성하고 있는 곳이 전체의 약 5%에 불과하다'는 지적도 있어, 비용 절감 효과와 생산성 향상 효과는 조직 및 작업에 따라 편차가 매우 큽니다.
⚠️검증 필요: 상기 구체적인 백분율・월수는 1차 정보(Bain・Forrester 등의 리포트 본문)가 아닌, 이를 인용한 2차 블로그・컨설팅 기사를 통해 확인한 것입니다. 수치의 재현성 및 조사 방법의 타당성은 미검증입니다.
출처 (2차 정보 포함): getdx.com – AI coding assistant pricing and ROI guide / ctlabs.ai – AI Agent ROI in 2026 / about.gitlab.com – Forrester Consulting study (GitLab Duo)
다단계(Multi-step) AI 에이전트 전반에 적용되는 일반적인 실패 모델 논의.
- 각 단계의 정답률이
p일 때, N단계 연쇄 작업 전체가 성공할 확률은 이론상p^N입니다.
에이전트가 점진적으로 성능이 저하되는, 이라는 단순화된 모델로 설명되곤 한다. 예를 들어, 1단계에서 정확도가 95%라도 10단계 연속 작업에서는 성공률이 약 59.9%까지 떨어지고, 100단계에서는 1% 미만으로 하락하는 시뮬레이션 결과가 있다.
- 추가적인 악화 요인으로 'self-conditioning'이 지적된다: 대화 컨텍스트에 에이전트 자신의 과거 실수가 남아 있을 경우, 모델이 그 실수 패턴을 '정상'으로 간주하고 이를 답습하여 오류를 더욱 쌓기 쉬워지는 현상
- 해결책으로 제시되는 것은 '에이전트에게 맡기는 범위를 작게 시작하여 신뢰도를 측정하며 단계적으로 확대하는' 점진적 접근 방식이다.
출처: Computer Weekly – DeepMind founder warns of compounding AI agent errors / corvair.ai – The Compound Error Problem in Agent Workflows (2차 정보)
긴 컨텍스트를 한 번에 입력할수록 모델의 실효 성능이 떨어지는 현상 전반을 지칭하는 용어이다. 토큰 절약은 '비용' 관점뿐만 아니라 '정확도' 관점에서도 효과가 있다.
Lost in the Middle 현상 (중간 정보 손실 현상)
- Stanford에서 발표한 연구(Liu et al., 2023/arXiv:2307.03172)가 최초로 보고: 긴 컨텍스트의 시작 부분 또는 끝 부분에 있는 정보는 모델이 정확하게 참조할 수 있지만, 중간에 파묻힌 정보는 참조 정확도가 크게 떨어지는 'U자형' 성능 저하를 보인다.
- 한 실험에서는 위치 1이나 20번째(≒시작/끝)에서 70
75%였던 정확도가 중간 위치에서는 5560%까지 하락했다는 보고가 있다. - 원인으로는 RoPE (회전 위치 임베딩, Rotary Position Embedding)의 장거리 감쇠 특성으로 인해 멀리 떨어진 토큰 간의 주의 가중치가 구조적으로 낮아지기 쉽다는 점이 지적된다.
Recency Bias (최신성 편향)
- 인간 기억 연구에서의 '계열 위치 효과'(처음과 마지막 항목을 더 잘 기억하는 현상 = primacy/recency 효과)와 유사한 현상이 LLM에서도 관측된다는 정리이다.
- 실무적 함의:
가장 중요한 지시나 정보는 프롬프트의 시작이나 끝에 배치하고, 대화가 길어지면 주기적으로 요약하여 '중간에 성능이 저하되기 쉬운 영역'에 중요 정보를 묻히게 만들지 않는 운영 방식이 컨텍스트 효율과 정확도 양측면에서 효과적이다.
출처: Liu et al. – Lost in the Middle (Stanford, arXiv) / Redis Blog – Context rot explained / Atlan – Lost-in-the-Middle Problem
MCP 서버나 Agent Mode의 '도구(Tool)'는 대화할 때마다 매번 스키마 전체를 재전송되기 때문에, 유효한 도구 수가 그대로 고정 비용이 된다.
| 설정 키 | 기본값 | 설명 |
|---|---|---|
github.copilot.chat.virtualTools.threshold | 128 | 등록된 도구 수가 이 값을 초과하면, 유사 도구를 activate_*와 같은 '가상 도구(디렉토리적 진입점)'로 묶어 필요할 때만 전개하여 스키마 로딩을 지연시킨다. 128이 실질적인 상한선이며, 그 이상으로 올려도 효과가 없다 |
github.copilot.chat.responsesApi.toolSearchTool.enabled | false (GPT 계열) | OpenAI 모델(Responses API)용 Tool Search Tool 활성화 여부. Anthropic 모델(Sonnet 4.5+/Opus 4.5+)에서는 기본적으로 활성화되어 있다. |
효과 (VS Code 공식 블로그 조사): 도구 세트를 상시 약 30개의 코어 도구 + 지연 로딩된 대규모 집합으로 분할하여, 세션 전체의 토큰 사용량이 중앙값 기준으로 GPT-5.4에서 약 9% 감소, GPT-5.5에서 약 11% 감소했다.
MCP 도구 1개당 정의 비용은 약 100500 토큰이다 (도구명+설명으로 2050, 파라미터 스키마로 30~300). 15개의 서버와 187개의 도구를 상시 활성화할 경우 → 에이전트가 15단계에 걸쳐 약 265,500 토큰이 스키마 재전송만으로 소모된다. 필요한 3개 서버와 50개 도구로 제한하면 최대 75,000 토큰까지 줄일 수 있다는 시뮬레이션 결과가 있다.
워크스페이스 단위 분리: 전역 설정(settings.json)에는 범용 MCP만 두고, 프로젝트 고유의 MCP는 .vscode/mcp.json에 둔다.
불필요한 MCP 서버는 필요할 때마다 비활성화해야 합니다. 'Configure Tools' 버튼을 통해 채팅 뷰 내에서 개별적으로 ON/OFF가 가능합니다. 대규모 플러그인(예: Azure MCP가 단독으로 약 27,000 토큰 소비 보고)의 경우 --namespace 등의 스코프 제한 플래그를 사용하여 필요한 서비스만 활성화해야 합니다. 사용 빈도가 낮은 기능은 'MCP 상시 로드'보다 'Skills(요구 시에만 읽기)' 방식이 더 효율적이라는 지적이 있습니다 (Claude Code의 skills와 유사한 사상).
출처(2차 정보/검증 필요): olivomarco/github-copilot-token-optimization – MCP tool costs
- 채팅 입력란에서
#을 입력하면, MCP/확장 기능/툴셋을 포함한 전체 툴 목록이 표시됩니다. 사용하지 않는 것은 여기서 명시적으로 제외해야 합니다. - 'Configure Tools' 버튼(채팅 뷰 내) → 로컬 에이전트에서 활성화된 MCP 툴을 개별 선택합니다. - Copilot 하네스 전체 설정 → 프로파일의 Tools customization page에서 관리합니다.
'에이전트 능력을 확장하는 세 가지 주요 수단'이 각각 비용 구조상 어떻게 다른지 정리합니다.
| 서브 에이전트(delegate/subagent) | MCP 서버 | Skills | |
|---|---|---|
| 고정 비용 발생원 | 부모 에이전트 → 자식 에이전트로의 '위임' 자체 오버헤드 (핸드오프, 조정, 대기 시간) | 등록 툴의 스키마가 대화할 때마다 매번 재전송됨 (3-1 참조) | 기본적으로는 '휴지 상태(idle)'일 때 매우 가벼움 (이름+개요 정도)하며, 필요할 때만 본문이 로드되는 설계 (progressive disclosure) |
| ... |
'MCP가 CLI/Skills보다 x배 고비용', 'Copilot 공식 MCP 서버가 대화 시작 전에 약 55,000 토큰을 주입한다'와 같은 구체 수치는 외부 블로그의 2차 정보입니다. 3-2의 'MCP 툴 1개당 100~500 토큰'이라는 추산과 방향성은 일치하지만, 공식 벤치마크를 통한 검증은 이루어지지 않았습니다. 표 안의 정성적 경향은 여러 소스에서 일치합니다.
출처(일부 2차 정보): github.blog – How we made GitHub Copilot CLI more selective about delegation (검색 결과 경유) / VS Code Blog – token efficiency / smartscope.blog (2차 정보)
| 설정 키 | 기본값 | 설명 |
|---|---|---|
github.copilot.chat.summarizeAgentConversationHistory.enabled | true | 대화 기록이 길어지면 자동 요약하여 컨텍스트에 전달하는 토큰량을 압축합니다. |
chat.tools.compressOutput.enabled | false | 터미널 출력을 모델에 보내기 전에 압축합니다. 활성화 권장 (테스트 결과 등의 대량 출력이 있는 프로젝트에서 효과가 큽니다). |
github.copilot.chat.codesearch.enabled | false | #codebase 사용 시 자동 파일 탐색 기능입니다. 켜면 탐색용 토큰이 늘어나는 대신 수동 첨부가 줄어드는 트레이드오프가 있습니다. |
github.copilot.chat.additionalReadAccessFolders | [] | 워크스페이스 외부 폴더의 읽기 허용 여부입니다. 너무 많이 추가하면 실수로 대량 컨텍스트를 읽으러 갈 위험이 있습니다. |
chat.useAgentsMdFile | true | AGENTS.md 파일을 컨텍스트로 자동 사용합니다. |
지시 파일은 '상시 컨텍스트에 포함되는 것'과 '조건부로 포함되는 것'으로 나누어 설계하면 낭비를 줄일 수 있습니다.
| 종류 | 위치 | 특징 |
|---|---|---|
| 프로젝트 전체 지시 | .github/copilot-instructions.md | 모든 채팅 요청에 매번 부가됨 (무거우면 비대화 방지에 주의, 간결하게 유지) |
| 범용 에이전트 지시 | AGENTS.md | Copilot 외의 툴과도 공유할 수 있는 중립 포맷 |
| 파일 타입별 지시 (=Scoped instructions) | *.instructions.md (chat.instructionsFilesLocations에서 위치 지정, 기본값 .github/instructions) | applyTo 패턴에 매치했을 때만 적용 → 상시 컨텍스트를 압박하지 않으므로 큰 규칙은 여기에 맡기는 것이 효과적 |
| 재사용 프롬프트 | *.prompt.md (chat.promptFilesLocations, 기본값 .github/prompts) | 호출 시에만 전개됨. 정형 작업의 템플릿화에 사용한다. |
chat.includeApplyingInstructions
(기본값 true): 패턴에 일치하는 instructions 파일을 자동으로 추가할지 여부.
공식 문서에서는 *.instructions.md를 통한 applyTo 제한 메커니즘을 'path-specific custom instructions' (별칭 scoped instructions)라고도 부릅니다. Copilot Code Review 역시 2025-09-03 업데이트로 이 메커니즘에 대응하여, '프론트엔드용', '보안용' 등 영역별로 지시를 분할하여 코드 리뷰에 적용할 수 있게 되었습니다.
실무 팁: '상시 필요한 최소한의 규칙'만 copilot-instructions.md에 두고, 언어별/프레임워크별 상세 규칙은 *.instructions.md의 applyTo로 조건 분기시키면, 무관한 작업 시에도 불필요한 규칙이 로드되는 것을 막을 수 있습니다.
출처: docs.github.com – Your first custom instructions / github.blog changelog – Copilot code review: Path-scoped custom instruction file support (검색 결과 경유)
| 설정 키 | 기본값 | 설명 |
|---|---|---|
chat.agent.maxRequests | 25 | Agent Mode가 하나의 작업으로 사용할 수 있는 최대 요청 수. 너무 낮으면 복잡한 작업이 'Continue' 대기에서 중단되는 반면, 무분별하게 극단적인 값으로 설정하면 폭주 시 제동 장치가 없어져 비용이 급증할 위험도 있음 |
chat.tools.terminal.enableAutoApprove | true | 터미널 명령어의 자동 승인을 활성화할지 여부 |
chat.tools.terminal.autoApprove | 규칙 세트 | 어떤 명령어를 자동 승인할지 패턴 |
chat.tools.edits.autoApprove | {} | 파일 편집의 자동 승인을 glob 패턴으로 설정 |
chat.tools.global.autoApprove | false | 모든 툴 자동 승인 (보안상, 원칙적으로 비활성화 상태를 권장) |
⚠️확인 필요:
maxRequests를 높이는 것 자체가 '1 요청의 토큰량'을 줄이는 설정이 아니라 '에이전트가 자율적으로 작동할 수 있는 횟수의 상한선'입니다. 절약 목적이라기보다는 '폭주 방지 가드레일'로 이해하는 것이 더 정확합니다. 절약을 중시한다면 작은 값을 설정하고 작업을 세분화하여 그때그때 리뷰하는 운영이 안전합니다.
Copilot CLI가 로컬에 축적하는 세션 히스토리 데이터를 분석하여, 리포트 생성/비용 분석/지시 파일 개선 제안 등을 수행하는 기능. ⚠️현재 시점에서는 experimental (실험적) 기능입니다.
| 서브커맨드 | 기능 |
|---|---|
/chronicle standup | 직전 세션 기록(기본 24시간)을 바탕으로 작업한 브랜치, 완료된 작업, 관련 PR/Issue를 정리한 스탠드업(일일 보고) 리포트를 생성 |
/chronicle tips | 프롬프트 작성 방식, 사용 도구, 미사용 기능 등의 이용 패턴을 분석하여 3~5가지의 개인화된 개선 Tips를 제시 |
/chronicle cost-tips | 프롬프트 길이, 도구 호출 빈도 등 토큰 소비 패턴을 분석하여 비용 절감을 위한 제안을 제시 |
/chronicle search <query> | 특정 키워드/토픽으로 세션 기록을 교차 검색 |
/chronicle improve | 반복된 오류, 빌드 실패, 수정 지시 등의 '마찰'을 감지하고, .github/copilot-instructions.md에 구체적으로 추가할 안을 제안 |
/chronicle reindex | 로컬 세션 스토어를 세션 기록으로부터 재구성하여 계정 및 세션 데이터를 동기화 |
Copilot CLI 또는 Copilot app에 내장된 리뷰용 에이전트. 이름은 '러버덕 디버그(Rubber Duck Debug)'에서 따왔다 (The Pragmatic Programmer에서 유래한, 고무 오리에게 설명하여 버그를 발견하는 방식). GitHub 구현에서는 설명을 듣는 상대가 수동적인 오리가 아니라 능동적으로 지적을 되돌려주는 별개의 AI라는 점이 특징이다.
- 계획 직후, 복잡한 구현 도중, 테스트 작성 후 등 메인 에이전트가 작업 내용을 러버덕 에이전트에게 전달하여 누락된 부분, 설계상의 결함, 엣지 케이스의 빠진 부분을 '세컨드 오피니언'을 받는 방식으로 사용한다.
- 호출 방법:
/rubber-duck
를 명시적으로 실행하는 것 외에도,
、通称 "Rust Token Killer")。Copilot CLI 전용이 아니라, Claude Code 등 여러 AI 코딩 툴에 대응하는 범용 프록시 툴입니다.
- 셸과 LLM 사이에 끼어 작동하며,
git
・cargo
・npm
・ls
・cat
등 100가지가 넘는 일반적인 개발 명령어의 출력을, 모델에 보내기 전에 압축합니다 - 공표 값: 대상 명령어에서
토큰 소비를 60~90% 절감 (1차 정보 = 프로젝트 자체 주장, 제3자 벤치마크에서의 검증은 미확인) - 단일 바이너리(Rust 작성)로 의존성 없이 작동합니다
- ⚠️주의: Copilot CLI는 고유의 내장 "read" 툴 구현을 가지고 있어, 셸을 거치지 않기 때문에 rtk 프록시를 우회할 수 있는 경우가 있다는 보고가 있습니다. 이를 회피하기 위해
rtk cat path/to/file
・rtk git diff
처럼 명령어 자체에 rtk를 접두사로 붙여 셸 경유 실행을 강제해야 할 필요가 있다고 합니다.
출처: rtk-ai.app / github.com/rtk-ai/rtk / rtk-ai.app – Supported Agents
개인 개발자(jsturtevant)가 만든 Copilot CLI용 플러그인입니다. Copilot CLI의 플러그인 마켓플레이스를 통해 도입할 수 있습니다.
- 「CodeAct」 패턴 (Microsoft Hyperlight를 이용한 샌드박스 실행)을 구현: 여러 도구 호출을 순차적으로 실행하는 대신,
하나의 Python 프로그램으로 모든 도구 조작을 통합하여 작성하고 샌드박스 내에서 한 번에 실행합니다 - 효과로는, 모델↔도구 간 왕복(대화 루프)이 줄어들고 시스템 프롬프트・도구 정의・과거 메시지 재전송분이 감소하는 것이 있습니다 - 프로젝트의 벤치마크 예시 (1차 정보 = 프로젝트 자체 주장):
- 「테스트 커버리지 + MCP 서버 4대」 구성: 6턴 → 2턴, 335K → 103K 토큰 (약 69% 절감)
- 「프로젝트 전체 함수 인덱스 생성」: 4턴 → 2턴, 130K → 57K 토큰 (약 57% 절감)
- 단순 도구 호출 비교: 8개 도구 호출・12 API 요청・출력 약 1,250 토큰 → 1개 도구 호출・4 API 요청・출력 약 450 토큰
Copilot 고유의 개념이 아니라 일반적인 소프트웨어 아키텍처 패턴입니다. Alistair Cockburn이 2005년에 제창한 「Ports and Adapters (포트와 어댑터)」 아키텍처의 다른 이름입니다.
- 애플리케이션의 핵심 비즈니스 로직을, 데이터베이스・외부 API・UI 등의 "외부 시스템"으로부터 분리하여 느슨하게 결합하는 설계 사상
- 포트: 애플리케이션이 외부에 공개하는 인터페이스 (애플리케이션 내부 일부). 하나의 포트에 대해 기술별로 여러 어댑터가 대응할 수 있습니다 - 어댑터: 포트를 구현하고, 외부 기술(DB・메시지 큐・HTTP API 등)과의 상호작용 세부 사항을 담당합니다. 구현을 교체해도 비즈니스 로직에 영향을 주지 않습니다 - 장점: 기술 요소(DB・프레임워크 등)를 나중에 교체하기 쉽다・테스트 자동화가 용이하다 (어댑터를 모의 객체로 대체할 수 있습니다)
이 가이드의 핵심 목적(토큰 절약)과의 관련성에 대해 실천 예제(.NET・Kotlin・Spring Boot 등)는 여러 개 발견되었으나,
토큰 절약・비용 최적화와 직접적으로 연결되는 고유한 언급은 찾을 수 없었습니다. 유일하게 관련성이 있어 보이는 것은 github/awesome-copilot
리포지토리의 architecture-blueprint-generator
이라는 프롬프트/스킬에서, 분석 대상 아키텍처 패턴 선택지 중 하나로 포함되어 있을 정도이므로 일반적인 배경 지식으로 참고만 하는 것이 좋겠습니다.
출처: Wikipedia – Hexagonal architecture (software) / alistair.cockburn.us – Hexagonal architecture / github/awesome-copilot – architecture-blueprint-generator SKILL.md (Copilot 맥락에서의 언급・2차적 관련에 한함)
간단히 GitHub Copilot Chat의 토큰을 절약하기 위한 목록입니다. 참고용으로.
- 불필요한 MCP 서버 및 확장 기능 도구를 비활성화합니다 (Configure Tools /
.vscode/mcp.json에서 국소화) -
github.copilot.chat.virtualTools.threshold를 활성화하여 도구 스키마의 지연 로딩을 활용하고 -
chat.tools.compressOutput.enabled를 켜서 터미널 출력의 과도한 방출을 막습니다 - 상시 규칙은copilot-instructions.md에, 조건부 규칙은*.instructions.md(스코프드 인스트럭션)에 분리합니다 - 작업의 무게에 따라 모델을 전환합니다 (사소한 잡무는 Haiku/nano 계열, 설계 판단은 Sonnet/Opus 계열) -
chat.agent.maxRequests는 '절약 설정'이 아니라 '폭주 방지 가드레일'로 적정값을 유지합니다 - 긴 대화는 주기적으로 요약하고, 중요한 지시는 시작과 끝에 배치합니다 (Context Rot 대비) -
서브 에이전트/MCP/Skill은 각각 비용 구조가 다르다는 점을 고려하여 사용합니다 (4장 참조)
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기