AI 도서관 · Claude · 상황별 프롬프트 · 코딩

남이 짠 코드 구조부터 파악하기

인수인계받은 코드를 고치기 전에 지도를 먼저 그릴 때

내용

[코드: {{INPUT}}]

고치지 말고 파악만 해줘.

① 이 코드가 하는 일 한 문장
② 진입점에서 시작하는 실행 흐름 (단계별)
③ 핵심 데이터가 어디서 만들어지고 어디서 바뀌는지
④ 건드리면 위험해 보이는 부분과 그 이유
⑤ 이해가 안 되는 부분이 있으면 솔직히 표시

추측한 내용에는 '추측'이라고 붙여줘.

{{INPUT}} 자리에 내 내용을 넣어 쓰는 프롬프트입니다. 아래 버튼으로 열면 넣는 칸이 나옵니다.

언제 쓰나 · 인수인계받은 코드를 처음 열었을 때, 한 줄도 고치기 전에

샘플 입력

// order-service.js — 인수인계받은 파일 일부 (가상의 예시입니다)
const cache = new Map();

async function handleOrder(req, res) {
  const body = await parse(req);
  const user = cache.get(body.userId) || await db.users.find(body.userId);
  cache.set(body.userId, user);

  if (!user.active) return res.status(403).end();

  const total = body.items.reduce((s, i) => s + i.price * i.qty, 0);
  const discount = getDiscount(user.grade, total);
  const order = await db.orders.insert({ ...body, total: total - discount });

  notify(user.email, order.id);
  return res.json(order);
}

function getDiscount(grade, total) {
  if (grade === 'vip') return total * 0.1;
  if (total > 100000) return 5000;
  return 0;
}

이런 모양이면 잘 나온 것

우리가 쓴 예시입니다. 실제 실행 결과가 아니고, 답변은 매번 조금씩 다릅니다.

① 하는 일 한 문장
   주문 요청을 받아 사용자 확인 → 금액 계산 → 저장 → 알림 순으로 처리한다.

② 실행 흐름
   1. handleOrder 진입, 요청 본문 파싱
   2. 캐시 또는 DB 에서 사용자 조회 후 캐시에 저장
   3. user.active 가 아니면 403 으로 종료
   4. items 합계 → getDiscount 로 할인 계산 → orders 에 저장
   5. notify 호출 후 주문 정보를 응답

③ 핵심 데이터가 만들어지고 바뀌는 곳
   user  — 2단계에서 캐시 또는 DB 로부터. 이후 변경 없음
   total — 4단계에서 계산되어 할인만큼 줄어든 값으로 저장됨

④ 건드리면 위험해 보이는 곳
   • cache 에 만료가 없다 — 사용자 정보가 바뀌어도 옛 값이 계속 쓰인다
   • notify 에 await 이 없다 — 실패해도 아무도 모른다 (추측: 일부러 비동기로 뒀을 수 있음)
   • 할인 규칙(0.1 · 5000 · 100000)이 함수 안에 숫자로 박혀 있다

⑤ 이해하지 못한 곳
   parse · db · notify 의 구현이 이 파일에 없어 동작을 확인할 수 없음

받은 답 확인하기

잘못 나왔을 때 이어서 보낼 말

코드를 고치지 말고 파악만 해줘. 수정안은 지금 필요 없어.
이 파일에 없는 함수(parse · db · notify)의 동작을 단정하지 말고 확인이 안 된다고 표시해줘.
추측한 문장에는 「추측」을 붙여줘.
도서관에서 열기 — 내 내용 넣고 복사하기