
코딩을 위한 프롬프트 엔지니어링: Claude Code와 Cursor에서 매일 사용하는 7가지 패턴 (2026)
코딩을 위한 프롬프트 엔지니어링은 작동하는 풀 리퀘스트(PR)를 배포하는 에이전트와 프로덕션 환경에서 무언가를 조용히 망가뜨리는 에이전트를 가르는 결정적 차이입니다. 우리는 이를 비싼 수업료로 배웠습니다. 우리 파이프라인의 모호한 지시 한 번이 누군가 알아차리기 전에 중복된 라이브 페이지 54개를 생성해냈기 때문입니다. 요즘에는 16개 에이전트로 구성된 Claude Code 설정이 우리의 콘텐츠를 작성, 번역, 게시하며, 이를 구동하는 프롬프트는 Google 검색 첫 페이지에 나오는 50개 템플릿 목록과는 완전히 다릅니다. 다음은 우리가 매일 입력하는 7가지 패턴과 각각의 실제 Before/After 예시입니다.
핵심 요약: 좋은 코딩 프롬프트는 하나의 공통된 형태를 공유합니다. 목표와 '완료'의 정의를 명시하고, 범위에 포함될 정확한 파일 이름을 지정하며, 편집 전에 계획을 수립하도록 강제하고, 테스트를 제공하며, "좋아 보인다"는 식의 답변 대신 증거를 요구합니다. 이렇게 하면 현대적인 에이전트(Claude Code, Cursor, GitHub Copilot)가 검토를 한 번에 통과하는 코드를 작성할 확률이 훨씬 높아집니다. 이를 무시하면 자신감 넘치지만 그럴듯한 쓰레기 코드를 얻게 됩니다.
우리가 자주 사용하는 7가지 패턴은 다음과 같습니다(사용 빈도 순):
- 작업 프레임 설정: 목표, 제약 조건, 그리고 upfront한 '완료' 정의
- 컨텍스트 선택: 파일 이름 지정, 나머지는 차단
- 계획 우선: 편집 전에 제안하도록 만들기
- 테스트 우선: 수용 테스트를 프롬프트에 포함하기
- 디버깅: 오류, 재현 단계, 기대 결과, 수정 전 근본 원인 분석
- 리팩토링: 구조 변경, 행동 유지, diff 표시
- 검토: grep으로 확인할 체크리스트 및 증거 요구
코딩용 프롬프트 엔지니어링 vs 구성 파일: 어디에 무엇을 넣어야 할까
구성 파일과 작업별 프롬프트는 서로 다른 역할을 하며, 이 둘을 혼동하는 것이 이 분야에서 가장 흔한 실수입니다. CLAUDE.md나 .cursor/rules 파일은 에이전트가 매 세션마다 읽는 상설 정책입니다(스택, 명명 규칙, 테스트 명령어 등). 반면 프롬프트는 지금 당장 부여하는 구체적인 작업입니다. 영구적인 규칙은 구성 파일에 넣고, 작업 내용은 프롬프트에 넣으세요.
대부분의 "코딩 프롬프트" 모음집은 이 경계를 흐리며 거대한 페르소나 프롬프트를 .cursorrules에 붙여넣으라고 조언합니다. 이는 에이전트가 모든 단일 작업마다 로드하는 구성 파일을 비대하게 만들면서도, 직면한 특정 작업을 제대로 프레임 설정하지 못하게 합니다. 두 가지를 분리하세요:
| 구성 파일 (CLAUDE.md, .cursor/rules) | 작업별 프롬프트 | |
|---|---|---|
| 포함 내용 | 상설 규칙: 스택, 스타일, 테스트 명령어, 가드레일 | 특정 작업: 지금 구축하거나 수정해야 할 사항 |
| 로드 방식 | 모든 세션에서 자동으로 로드 | 입력할 때 한 번 로드 |
| 변경 빈도 | 드물게, 코드처럼 검토됨 | 모든 작업마다 변경 |
| 예시 | "완료라고 주장하기 전에 pnpm test 실행" | "1,000달러 이상 주문에 대한 cart.ts의 세금 반올림 수정" |
구성 파일 측면을 잘 처리하고 싶다면 CLAUDE.md 모범 사례와 Cursor 규칙 가이드에서 자세히 다루고 있습니다. 이 글은 나머지 절반, 즉 매번 새로 입력하는 프롬프트에 관한 것입니다. 기본기가 먼저 필요하다면 더 넓은 범위의 프롬프트 엔지니어링 가이드를 참조하세요.
코딩용 프롬프트 엔지니어링: 우리가 매일 사용하는 7가지 패턴
아래 각 패턴에는 사람들이 실제로 입력하는 약한 버전과 작동하는 코드를 만들어내는 강한 버전이 있습니다. 약한 버전에서 강한 버전으로의 격차는 거의 항상 동일한 움직임에서 비롯됩니다. 소망을 명세(spec)로 대체하는 것입니다.
1. 작업 프레임 설정: 목표, 제약 조건 및 '완료' 상태 명시
작업 프레임 설정이란 에이전트가 한 줄이라도 건드리기 전에 목표, 제약 조건, 그리고 '완료'가 어떤 모습인지 작성하는 것을 의미합니다. 에이전트는 당신이 문자 그대로 요청한 것을 최적화하므로, 모호한 요청은 모호한 패치를 낳습니다. 파일 이름, 원하는 동작, 수용 검사(check), 그리고 변경해서는 안 되는 사항을 명시하세요.
이것이 우리에게 54개의 페이지 손실을 안겨준 패턴입니다. 우리의 이전 번역 지시는 기본적으로 소망 수준이었습니다:
Weak: Re-translate this post into German and keep the brand names.여기에는 슬러그가 무엇을 허용하는지에 대한 내용이 전혀 없습니다. 따라서 재실행 시 에이전트는 URL 슬러그를 "개선"했고, 새로운 슬러그는 새로운 문서를 의미하므로 같은 게시물에 대해 두 개의 독일어 라이브 페이지가 생기는 결과가 초래되었습니다. 이를 언어와 과거 게시물 전체로 확장하면 54개의 중복 문서와 수많은 중복 콘텐츠 제외 조치가 발생했습니다. 해결책은 더 나은 소망이 아니라 명세였습니다:
Strong: Re-translate this post into German.
- If a German file already exists, copy its existing slug verbatim. Never
re-derive or "improve" it.
- Before creating any document, look up the existing one by its canonical
reference and reuse that record.
- If the slug you would generate differs from the live one, STOP and tell me.
A changed slug creates a second live URL for the same page.강한 프롬프트는 실패 모드를 명시적으로 지적합니다. 반드시 일어나서는 안 되는 일과 그 이유를 말하는 이 단일 습관은 대부분의 팀이 만들 수 있는 가장 가치 있는 변화입니다. 또한 우리는 모든 작업 프롬프트 끝에 명시적인 출력 계약("최종 메시지는 단어 수, 유효성 점수, 영향을 받은 파일을 보고해야 함")을 추가하여 에이전트가 수행할 작업뿐만 아니라 '완료'가 무엇을 산출하는지 알도록 합니다.
2. 컨텍스트 선택: 파일 이름 지정, 나머지는 차단
컨텍스트 선택이란 에이전트가 주변을 검색하며 창을 노이즈로 채우지 않도록, 정확히 어떤 파일을 읽고 어떤 파일을 건드리지 말아야 하는지 지시하는 것을 의미합니다. Anthropic의 자체 가이드라인은 그 이유에 대해 단호합니다. 컨텍스트 창은 빠르게 채워지고 채워질수록 품질이 떨어지므로, 대부분의 모범 사례는 이를 보호하기 위해 존재합니다(Claude Code 모범 사례).
Weak: Fix the bug in the checkout flow.
Strong: Read only src/checkout/cart.ts and src/checkout/tax.ts. The tax
rounding is wrong for orders over $1,000 (it rounds each line item instead
of the order total). Fix the rounding. Do not touch anything outside
src/checkout/.우리는 강력하게 차단합니다. 우리 에이전트 프롬프트의 실제 문장은 다음과 같습니다: "url-mapping.json, pipeline.md 또는 config.json에 기록하지 말고, 스크래치패드 디렉토리 외부의 파일은 절대 건드리지 마십시오." 이 한 문장은 사후 정리보다 더 많은 우발적 손상을 방지했습니다. 작업이 정말로 라이브 문서나 추가 도구를 필요로 할 경우, 에이전트가 올바른 파일을 우연히 발견하기를 희망하기보다는 MCP 서버를 통해 의도적으로 추가합니다. 그리고 해당 컨텍스트 중 일부가 저장소 외부에서 오는 경우 신뢰할 수 없는 것으로 취급하세요. 스크랩한 페이지를 코딩 에이전트에 붙여넣기 전에 프롬프트 인젝션 방지에 대한 노트를 확인하세요.
3. 계획 우선: 편집 전에 제안하도록 만들기
계획 우선 프롬프팅은 에이전트가 아무것도 편집하기 전에 접근 방식을 제시하도록 만듭니다. Claude Code에서 Plan Mode는 모델이 지나칠 수 있는 공손한 "먼저 생각하기"가 아니라, 엄격하게 강제된 읽기 전용 상태이므로 사용자가 계획을 승인할 때까지 literally 글을 쓸 수 없습니다. 연구 및 계획 수립과 실행을 분리하는 것은 Anthropic이 잘못된 문제를 해결하는 것을 피하기 위해 가장 크게 의존하는 단일 관행입니다.
Weak: Add rate limiting to the API.
Strong: Before writing any code, give me a numbered plan: which middleware,
where the counters live, how you handle the 429 response and headers, and
which tests you'll add. Wait for my approval before editing.왜 효과가 있을까요? 계획은 읽기도 쉽고 수정하기도 쉽기 때문입니다. 잘못된 계획을 수정하는 데는 한 문장이 들지만, 잘못된 코드를 수정하는 데는 검토 사이클이 필요합니다. 이는 먼저 단계별로 추론하도록 모델에 요청하는 것(연쇄 사고 프롬프팅 참조)과 자연스럽게 결합되며, 사소한 일이 아닌 모든 것에 대해 우리가 실행하는 다단계 Claude Code 워크플로우의 핵심입니다.
4. 테스트 우선: 수용 테스트를 프롬프트에 포함하기
테스트 우선 프롬프팅은 수용 기준을 구체적인 입력과 출력으로 프롬프트에 포함시켜, 에이전트가 추측한 대상이 아니라 사용자가 정의한 대상을 향해 코드를 작성하도록 합니다. 실패한 테스트나 예상 결과의 작은 테이블을 붙여넣고 "테스트를 편집하지 않고 이를 통과시키세요"라고 말하세요.
Weak: Write a function to parse ISO 8601 dates.
Strong: Make this failing test pass without changing the test:
parseIso("2026-07-20T15:00:00Z") -> Date at that exact UTC instant
parseIso("2026-07-20") -> Date at 2026-07-20T00:00:00Z
parseIso("not-a-date") -> throws RangeError
parseIso("") -> throws RangeError
Return only the function and its imports.구체적인 예시는 형용사를 항상 이깁니다. "엣지 케이스를 처리하세요"는 희망사항이지만, 입력부터 출력까지의 4개 행은 모델이 실제로 충족할 수 있는 명세이며, 코드가 도착하는 즉시 실행할 수 있습니다.
5. 디버깅: 오류, 재현, 기대 결과, 수정 전 근본 원인 분석
디버깅 프롬프트는 에이전트에 오류 텍스트, 이를 트리거하는 입력, 그리고 기대했던 결과를 제공하고, 수정 전에 원인을 묻습니다. 이를 건너뛰면 에이전트는 증상만 패치하므로 버그는 단순히 더 조용한 곳으로 이동할 뿐입니다.
Weak: This is throwing an error, fix it.
Strong: This throws on checkout. Here's the stack trace: [paste]. It happens
only when the cart has a discount code AND a gift card (repro: add both, then
check out). Expected: both apply, gift card last. Find the root cause and
explain it in one sentence before you change anything. Do not wrap it in a
try/catch that hides the error."먼저 한 문장으로 원인을 설명하세요"라는 줄은 실제 작업을 수행합니다. 이는 모델이 로직을 볼 수 없는 수정본을 배송하는 대신, 사용자가 정상성 검사를 할 수 있는 진단에commit하도록 강제합니다. "try/catch로 숨기지 마세요"라는 줄은 가장 일반적인 탈출구를 차단합니다.
6. 리팩토링: 구조 변경, 행동 유지, diff 표시
리팩토링 프롬프트는 범위를 강력하게 제한합니다. 구조를 변경하되 행동은 동일하게 유지하고 diff를 보여주세요. 차단 장치가 없으면 에이전트는 요청하지 않은 것들을 "정리"하려 하고, 당신은 중요한 변경 사항을 검토하는 능력을 잃게 됩니다.
Weak: Clean up this file.
Strong: Extract the validation logic from submitOrder() into a pure function
validateOrder(). Keep every public signature and all behavior identical.
Change nothing else in this file. Show me a before/after diff and one line
on why each change is behavior-preserving.이는 앞서 언급한 구성 대 프롬프트 분리의 반대 측면입니다. 상설 스타일 규칙은 Cursor 규칙에 있지만, 이 리팩토링의 범위는 프롬프트에 속합니다. "다른 것은 변경하지 마세요"라는 문구가 리팩토링을 검토 가능하게 유지합니다.
7. 검토: grep으로 확인할 체크리스트 및 증거 요구
검토 프롬프트는 에이전트에 grep으로 확인할 체크리스트를 제공하고 판정이 아닌 증거를 요구합니다. "좋아 보입니다"는 무가치하지만, 실행한 명령과 얻은 출력은 그렇지 않습니다. Anthropic은 이를 명확히 밝힙니다. 성공을 주장하기보다 에이전트가 증거(테스트 출력, 명령 및 그 결과)를 보여주도록 하세요. 직접 재검증하는 것보다 증거를 읽는 것이 더 빠르기 때문입니다.
Weak: Review my PR.
Strong: Check this diff against exactly these five items:
1. No secrets or API keys added
2. Every new function has a test
3. No behavior change outside src/checkout/
4. Error paths return typed errors, not strings
5. No console.log left behind
For each item, quote the line that satisfies or violates it. Then run the
test suite and paste the output. Do not say "done"; show me.우리의 자체 검토 게이트는 정확히 이 방식으로 구축되었습니다. 에이전트가 게시물을 게시되었다고 보고하기 전에, 금지 단어 목록(하드 블로커, 제로 톨러런스)에 대해 초안을 grep하고 문서 본문이 비어 있지 않은지 확인하는 쿼리를 실행합니다. 에이전트는 성공을 주장할 수 없습니다. 체크 출력을 생산해야 합니다. 자주 재사용하는 검토자 역할의 경우, 체크리스트를 저장된 페르소나로 승격시키는데, 이때 시스템 프롬프트 예시가 유용합니다.
Claude Code vs. Cursor vs. Copilot: 각 패턴이 위치한 곳
2026년의 주요 에이전트 3개 모두 위의 모든 패턴을 지원하지만, 표면(interface)은 다릅니다. Claude Code는 Plan Mode와 서브에이전트에 의존하고, Cursor는 Agent 모드와 Agents 창에, GitHub Copilot은 에이전트 모드와 지시 파일에 의존합니다. 팀이 사용하는 도구를 선택하세요. 패턴은 깔끔하게 이전됩니다.
| 패턴 | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|
| 상설 규칙 | CLAUDE.md | .cursor/rules | .github/copilot-instructions.md, AGENTS.md |
| 계획 우선 | Plan Mode (강제 읽기 전용) | Agent 모드의 Plan 단계 | 적용 전 계획 미리보기 |
| 범위 지정/병렬 작업 | 서브에이전트, 각각 고유 컨텍스트 | Agents 창, 에이전트별 worktree | 클라우드 에이전트 작업 |
| 경로 범위 규칙 | 디렉토리별 중첩 CLAUDE.md | Rule globs | applyTo 필드가 있는 .instructions.md |
알아둘 만한 몇 가지 현재 세부 사항입니다. Claude Code의 Plan Mode는 진정한 읽기 전용 잠금이며, 서브에이전트는 각각 고유한 도구를 가진 격리된 컨텍스트에서 실행됩니다(서브에이전트 문서). Cursor의 2026 라인은 병렬 에이전트를 회전시키는 Agents 창을 추가했으며, 각 에이전트는 고유한 git worktree에서 실행됩니다(Cursor 2.0). GitHub Copilot의 에이전트 모드는 .github/copilot-instructions.md의 사용자 정의 지시와 applyTo 필드가 있는 경로 범위 .instructions.md 파일을 읽습니다(Copilot 사용자 정의 지시). Cursor를 일상적으로 사용한다면, Cursor를 더 효율적으로 사용하는 방법에 대한 게시물을 참조하세요.
Techsy에서 코딩 에이전트에 프롬프트를 적용하는 방법
우리는 16개의 Claude Code 에이전트 팀(연구원, 브리프 작성자, 콘텐츠 작성자, 9명의 번역가, 검증자, 게시자)으로 콘텐츠 파이프라인을 운영하며, 작업 메시지를 통해 조정합니다. 해당 시스템의 두 가지 관례는 모든 코딩 팀으로 이어집니다.
첫째, 모든 작업 프롬프트는 출력 계약으로 끝납니다. 마지막 줄은 항상 "최종 메시지는 X, Y, Z를 보고해야 한다"는 식의 버전입니다. '완료'의 정확한 형태를 아는 에이전트는 시작할 것만 지시받은 에이전트보다 훨씬 덜 방황합니다.
둘째, 에이전트가 산문으로 자신의 숙제를 채점하도록 내버려 두지 않습니다. 생성과 검증은 별도의 단계이며, 검증은 의견이 아닌 출력을伴하는 명령입니다. 이러한 빌드와 체크의 분리는 Anthropic이 신뢰할 수 있는 에이전트 구축을 프레임하는 방식의 핵심이며, 이것이 우리의 검토 게이트가 "좋아 보인다"는 말을 신뢰하지 않고 grep과 쿼리를 사용하는 이유입니다.
이것은 또한 우리의 본업입니다. Techsy에서는 B2B 팀을 위한 AI 에이전트와 자동화를 구축하며, 이와 같은 프롬프트 규율은 데모와 고객 앞에 내놓을 수 있는 것을 가르는 대부분을 차지합니다. 코딩이나 에이전트 워크플로우를 적절하게 설정하려면, 우리가 정확히 그것을 수행하는 AI 통합 서비스를 이용하거나, 스택에 대해 논의하기 위해 무료 상담을 예약할 수 있습니다.
적응 가능한 복사-붙여넣기 프롬프트 템플릿
다음은 사소한 일이 아닌 모든 코딩 작업에서 시작하는 골격입니다. 필요 없는 섹션은 삭제하되, 순서는 유지하세요. 이는 7가지 패턴을 반영하기 때문입니다.
GOAL
One sentence: what should be true when you're done.
CONTEXT
Read only: <exact files>. Ignore everything else.
Relevant facts: <constraints, versions, the bug's trigger>.
PLAN FIRST
Before editing, give me a numbered plan and wait for approval.
TESTS / DONE
Done means: <paste failing test or input->output rows>.
Don't change the tests.
CONSTRAINTS
Keep all public signatures and behavior identical unless stated.
Do not touch <files/areas>. Name any assumption you make.
OUTPUT
Show a before/after diff, run the tests, and paste the output.
Don't say "done"; show the evidence.스니펫으로 저장하거나, 더 좋게는 분할하세요. 상설 제약 조건은 구성 파일에 넣고, 목표, 컨텍스트, 테스트는 프롬프트에 넣습니다. 그 분할이 바로 핵심입니다.
저자 소개
Mert Batur Gurbuz는 Techsy.io의 공동 창업자로, 팀은 B2B 고객을 위해 AI 에이전트, 자동화 시스템, 음성/SDR 파이프라인을 제공합니다. 그는 버밍엄 대학교에서 공부하며 Techsy 팀이 프로덕션에서 실제로 사용하는 LLM 도구 스택에 대해 글을 씁니다.
자격: Techsy.io 공동 창업자, 버밍엄 대학교. LinkedIn에서 연결하세요.
자주 묻는 질문
코딩을 위한 프롬프트 엔지니어링이란 무엇인가요?
코딩을 위한 프롬프트 엔지니어링은 AI 에이전트가 정확하고 검토 가능한 코드를 생성하도록 지시문을 작성하는 관행입니다. 실제로는 목표와 '완료'의 정의를 명시하고, 범위에 있는 파일 이름을 지정하며, 편집 전에 계획을 강제하고, 테스트를 제공하며, 증거를 요구하는 것을 의미합니다. 이는 영리한 문장을 쓰는 것보다 명세를 작성하는 것에 더 가깝습니다.
CLAUDE.md나 .cursor/rules 파일 작성과 어떻게 다른가요?
구성 파일은 에이전트가 매 세션마다 읽는 상설 정책(스택, 규칙, 테스트 명령어)을 보유합니다. 작업별 프롬프트는 지금 당장 부여하는 특정 작업입니다. 영구적인 규칙은 구성 파일에, 작업은 프롬프트에 넣으세요. 전체 작업 프롬프트를 구성 파일에 붙여넣으면 모든 세션이 비대해지고 개별 작업을 여전히 제대로 프레임 설정하지 못합니다.
AI 코딩 에이전트를 위한 최고의 프롬프트 구조는 무엇인가요?
한 단락 대신 레이블이 붙은 섹션을 사용하세요: GOAL(목표), CONTEXT(컨텍스트), PLAN(계획), TESTS(테스트), CONSTRAINTS(제약 조건), OUTPUT(출력). 에이전트는 텍스트 벽보다 구조화된 프롬프트를 더 안정적으로 파싱합니다. 성공 기준을 upfront하게 명시하고, 형용사 대신 1~3개의 구체적인 예시를 제공하며, 원하는 정확한 출력 형식을 지정하세요.
좋은 디버깅 프롬프트는 어떻게 작성하나요?
에이전트에 네 가지를 제공하세요: 정확한 오류 또는 스택 트레이스, 이를 재현하는 입력, 기대했던 결과, 그리고 수정 전 근본 원인 요청. 진단을 확인할 수 있도록 "무엇인가 변경하기 전에 한 문장으로 원인을 설명하세요"를 추가하고, 버그를 마스크하지 않고 수정하도록 "try/catch로 숨기지 마세요"를 추가하세요.
코딩 프롬프트에 테스트를 포함해야 하나요?
가능하다면 yes입니다. 실패한 테스트나 입력-출력 행의 작은 테이블을 붙여넣으면 모호한 요청을 모델이 실제로 타격할 수 있는 대상으로 전환하며, 결과를 즉시 실행할 수 있습니다. 에이전트가 자신의 코드를 올바르게 보이게 하기 위해 목표대를 움직이지 못하도록 "테스트를 편집하지 않고 통과시키세요"라고 지시하세요.
이 프롬프트들은 Cursor와 GitHub Copilot에서도 작동하나요?
Yes. 패턴은 도구 중립적입니다. Claude Code는 Plan Mode와 서브에이전트를 통해, Cursor는 Agent 모드와 에이전트별 worktree가 있는 Agents 창을 통해, GitHub Copilot은 에이전트 모드와 .github/copilot-instructions.md를 통해 이를 노출합니다. 표면은 변하지만, 작업 프레임 설정, 컨텍스트 선택, 계획 우선, 증거 기반 검토는 변하지 않습니다.
코딩 프롬프트는 얼마나 길어야 하나요?
명세가 될 만큼 충분히 길고, 집중될 만큼 충분히 짧아야 합니다. 컨텍스트가 채워짐에 따라 추론 품질이 저하되므로, 양보다 구조를 선호하세요. 적절한 파일과 테스트가 포함된 레이블이 붙은 150~300단어 프롬프트는 장황한 프롬프트보다 낫습니다. 모든 작업에 적용되는 사항은 반복하는 대신 구성 파일로 이동하세요.
AI 에이전트가 요청하지 않은 코드를 변경하지 않도록 하려면 어떻게 해야 하나요?
프롬프트에서 범위를 차단하세요. 편집할 수 있는 파일을 정확히 명시하고, "다른 것은 변경하지 마세요"를 추가하며, "내가 달리 말하지 않는 한 모든 공개 서명과 행동을 동일하게 유지하세요"를 요구하세요. 리팩토링의 경우, 각 변경 사항이 행동을 보존하는 이유에 대한 한 줄 설명과 함께 before/after diff를 요청하여, 요청되지 않은 편집이 검토에서 분명하게 드러나도록 하세요.
복사-붙여넣기 프롬프트 라이브러리는 가치가 있나요?
시작점으로서는 가끔. 완성된 도구로서는 거의 없습니다. 50개 프롬프트 라이브러리는 표현법을 제공하지만, 정확성이 실제로 존재하는 곳인 당신의 파일, 테스트 또는 제약 조건을 알 수 없습니다. 패턴을 학습하고, 적응 가능한 템플릿 하나를 유지하며, 직면한 작업의 구체적 사항을 채워 넣으세요.