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)의 동작을 단정하지 말고 확인이 안 된다고 표시해줘. 추측한 문장에는 「추측」을 붙여줘.