📕 428커밋의 기록이 상품이 됐습니다 →
agenwiki

프롬프트

프롬프트 엔지니어링

프롬프트 설계 원칙과 기법. 아래 2개를 한 화면에 모았습니다. 변수 자리({like_this})만 채우면 바로 쓸 수 있고, 각각 언제 쓰는지와 주의점을 함께 적었습니다.

general

코드 디버깅·리팩터링 프롬프트 템플릿

에러 메시지와 증상을 근거로 원인을 추정하고, 근거와 함께 실제 수정안·리팩터링 방향까지 받아보는 코드 디버깅·리팩터링 프롬프트입니다.

복사 대상 프롬프트

당신은 코드를 디버깅하거나 리팩터링하는 시니어 소프트웨어 엔지니어입니다. 아래 코드를 목표에 따라 처리하세요. 목표가 디버깅이면 증상과 에러 메시지를 근거로 원인을 규명하고 최소한의 수정으로 문제를 해결하는 데 집중하고, 목표가 리팩터링이면 겉으로 드러나는 동작은 그대로 유지한 채 가독성·구조·중복을 개선하는 데 집중하세요. 순서: (1) 원인 추정 — 증상·에러 메시지·제약을 근거로 문제의 원인이나 개선이 필요한 지점을 추정하세요. (2) 근거 제시 — 추정한 내용을 코드의 구체적인 라인이나 구조를 인용해 뒷받침하세요. 코드에 나타나지 않은 동작이나 실행 결과를 임의로 지어내지 마세요. (3) 수정안 제시 — 실제로 적용할 수 있는 수정 코드를 제시하고, 왜 그렇게 바꾸는지 이유를 함께 설명하세요. 규칙: 확신이 낮은 부분은 추측 대신 [확인 필요]로 표시하고, 코드만으로 알 수 없는 동작은 단정하지 마세요. 출력 형식: 먼저 원인 추정 요약(2~3문장), 그다음 근거, 그다음 수정 코드(변경된 부분 중심), 마지막으로 변경 이유 정리 순서로 답하세요. 언어/프레임워크: {language}. 목표(디버깅 또는 리팩터링): {goal}. 증상·에러 메시지·제약: {context}. 대상 코드: {code}

언제 쓰나

에러 메시지만 보고 원인을 못 찾겠을 때, 또는 동작은 그대로 두고 구조만 정리하고 싶을 때 씁니다. 코드 품질을 버그·가독성·보안·성능 네 관점에서 두루 점검하는 코드 리뷰 프롬프트와 달리, 이 프롬프트는 문제 원인을 규명하고 실제로 코드를 고치는 실행 단계에 초점을 맞춥니다. 리뷰에서 지적된 항목을 실제 수정으로 옮길 때, 또는 에러 로그를 붙여넣고 원인부터 수정안까지 한 번에 받고 싶을 때 적합합니다.

사용법

  1. {language} 에 언어·프레임워크를 적습니다(예: Python / FastAPI).
  2. {goal} 에 디버깅과 리팩터링 중 무엇을 원하는지 적습니다.
  3. {context} 에 증상, 에러 메시지, 재현 조건, 지켜야 할 제약을 적습니다. 정보가 없으면 비워 둘 수 있지만, 채울수록 원인 추정의 정확도가 올라갑니다.
  4. {code} 자리에 대상 코드를 붙여 넣습니다.

사용 예시

입력 — 변수 4개를 채운 실제 입력입니다.

언어/프레임워크: Python / FastAPI
목표(디버깅 또는 리팩터링): 디버깅
증상·에러 메시지·제약: 사용자 100명 이상이 동시에 접속하면 간헐적으로 500이 납니다.
로그에는 `sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached`.
평소에는 정상이고, 재현은 부하 테스트에서만 됩니다. DB 스키마는 변경할 수 없습니다.
대상 코드: (get_user_orders 핸들러와 세션 생성부 30줄)

출력 (요약) — 원인 추정 → 근거 → 수정 코드 → 변경 이유 순으로 돌아옵니다.

원인 추정 (2~3문장)
커넥션 풀 고갈로 보입니다. 요청마다 세션을 열지만 예외 경로에서 반환되지 않아,
동시 요청이 풀 상한(5+10)을 넘는 시점에 대기 타임아웃이 발생합니다.

근거
- 24행: `session = SessionLocal()` 이후 `close()`가 try/finally 밖에 있습니다.
- 31행: 조회 실패 시 early return — 이 경로에서 세션이 반환되지 않습니다.
- 에러 메시지의 "QueuePool limit ... reached"는 풀 반환 누락의 전형적 신호입니다.
- [확인 필요] 미들웨어에서 별도로 세션을 여는지는 제공된 코드만으로 알 수 없습니다.

수정 코드 (변경된 부분 중심)
  # before: session = SessionLocal() ... session.close()
  # after:  with SessionLocal() as session:
  #             ...

변경 이유
컨텍스트 매니저로 감싸면 예외·early return 어느 경로로 빠져나가도 세션이 반환됩니다.
풀 크기를 늘리는 것은 누수 속도만 늦추므로 근본 해결이 아닙니다.

[확인 필요] 표시가 붙은 항목은 그대로 믿지 말고, 실제 코드나 로그로 직접 확인한 뒤 다음 단계로 넘어가세요.

  • 에러 메시지나 스택 트레이스가 있다면 {context}에 그대로 붙여넣으세요. 원문 그대로가 원인 추정의 가장 강력한 근거가 됩니다.
  • 리팩터링을 요청할 때는 기대 동작이나 테스트 코드를 {context}에 함께 적어두면, 리팩터링 이후 동작이 바뀌지 않았는지 확인하기 쉬워집니다.
  • 원인 추정 결과에 [확인 필요] 표시가 붙은 부분은 실제로 실행하거나 로그를 추가로 확보해 직접 검증한 뒤 다음 단계로 넘어가세요.
  • 프롬프트를 과제별로 어떻게 응용하는지 더 보고 싶다면 프롬프트 엔지니어링 실전 예제 10가지 글을, 관련 프롬프트를 모아보고 싶다면 프롬프트 엔지니어링 토픽 페이지를 참고하세요.

gpt

에이전트 워크플로우 초안 프롬프트

작업 목표를 계획-도구 호출-검증 단계로 갖춘 에이전트 실행 워크플로우로 분해하는 기본 프롬프트입니다.

복사 대상 프롬프트

다음 목표를 AI 에이전트 워크플로우로 분해해 주세요. 목표: {goal}. 각 단계마다 다음을 명시하세요. (1) 이 단계에서 하려는 일, (2) 필요한 도구(있다면), (3) 성공 여부를 판단할 검증 기준, (4) 검증에 실패했을 때의 대응(재시도, 계획 수정, 사람에게 넘기기 중 선택). 단계 수는 최소한으로 유지하고, 검증 기준이 모호한 단계는 만들지 마세요. 출력 형식: 표 또는 번호 목록으로 단계 / 도구 / 검증 기준 / 실패 시 대응을 정리하세요.

사용법

목표 하나를 에이전트가 실행할 수 있는 단계별 워크플로우로 쪼갤 때 씁니다. 단계를 나열하는 데서 그치지 않고, 단계마다 검증 기준과 실패 시 대응까지 함께 뽑아내도록 설계했습니다.

  1. {goal} 자리에 달성하려는 목표를 구체적으로 적습니다. (예: "매주 발행되는 경쟁사 블로그 글을 요약해 슬랙으로 보고한다")
  2. 결과로 나온 단계 목록에서 검증 기준이 애매한 단계가 있으면, 목표 자체를 더 좁혀 다시 실행합니다.
  3. 목표가 넓을수록 검증 기준을 먼저 고정한 뒤 단계 수를 줄여서 시작하는 편이 안전합니다. 처음부터 모든 단계를 자동화하지 말고, 검증에 반복적으로 실패하는 단계는 사람이 확인하는 단계로 남겨두세요.

사용 예시

입력{goal} 하나만 채운 실제 입력입니다.

다음 목표를 AI 에이전트 워크플로우로 분해해 주세요.
목표: 매주 월요일 아침, 지난주에 올라온 경쟁사 블로그 글을 수집해 요약하고 팀 슬랙 채널에 보고한다.

각 단계마다 다음을 명시하세요. (1) 이 단계에서 하려는 일, (2) 필요한 도구(있다면),
(3) 성공 여부를 판단할 검증 기준, (4) 검증에 실패했을 때의 대응(재시도, 계획 수정,
사람에게 넘기기 중 선택). 단계 수는 최소한으로 유지하고, 검증 기준이 모호한 단계는
만들지 마세요. 출력 형식: 표 또는 번호 목록으로 단계 / 도구 / 검증 기준 / 실패 시 대응을
정리하세요.

출력 (요약) — 표 형태로 단계별 도구와 검증 기준이 돌아옵니다.

단계도구검증 기준실패 시 대응
1. 대상 블로그 RSS 수집HTTP 요청등록된 피드 수만큼 응답 200재시도 2회 후 사람에게 넘김
2. 지난주 발행분만 선별없음모든 항목의 발행일이 조회 기간 내계획 수정 — 날짜 파싱 규칙 재확인
3. 글별 요약 생성LLM 호출글 1건당 요약 3문장 이내, 원문 링크 포함재시도 1회
4. 슬랙 메시지 조립없음요약 건수 = 선별 건수계획 수정
5. 채널 전송슬랙 API전송 응답 성공사람에게 넘김 (재시도 시 중복 발송 위험)

마지막 단계처럼 재시도가 부작용을 만드는 지점은 자동 재시도 대신 사람 확인으로 빠지는 것이 정상적인 결과입니다.

같은 주제의 가이드

프롬프트만으로 부족할 때 읽을 것들입니다.

다른 묶음

관련 글

용어

제로샷 러닝

모델이 특정 작업에 대한 예시 없이, 지시문만으로 바로 그 작업을 수행하는 방식이다. 모델이 학습 과정에서 습득한 일반화 능력에 의존해 새로운 작업에도 곧바로 대응한다.

뉴스레터 구독

AI 에이전트, 도구, 프롬프트 업데이트를 정리해 보냅니다. 지난 호 보기 →