결과 예시
코드는 그대로 두고 docstring 하나와 주석 두 줄만 붙었다. 쓰이지 않는 member_grade 인자와 round의 반올림 규칙은 주석 대신 "확인이 필요한 곳"으로 내려갔다.
쿠폰 할인은 결제 금액의 30%를 넘지 못한다(정책상 상한)
Args — coupon: amount와 min_amount를 갖는 객체. None이면 할인 없이 합계만 반올림해 돌려준다. 확인이 필요한 곳: member_grade가 인자에만 있고 쓰이지 않음
"확인이 필요한 곳마다 무엇을 보면 되는지 한 줄씩"을 덧붙이면 좋다.
Claude에서 실제로 실행해 확인 · 2026-09
왜 이렇게 쓰는가
코드 주석 다는 법을 AI에게 맡기면 대개 줄마다 주석이 붙습니다. total = sum(...) 위에 "합계를 구한다"가 달리는 식입니다. 틀린 말은 아니지만 코드를 한 번 더 읽은 것에 불과해서, 파일만 길어지고 정작 왜 30%인지 같은 정보는 여전히 어디에도 없습니다. 이 프롬프트는 주석의 내용이 아니라 주석을 다는 자리를 정합니다.
예시를 프롬프트 안에 직접 넣은 것이 그 장치입니다. "의미 있는 주석을 달아 주세요"는 아무것도 지정하지 않은 문장이라 결과가 바뀌지 않습니다. 나쁜 주석 한 줄과 좋은 주석 한 줄을 나란히 보여 주면 AI가 기준을 잡고, 그 뒤로는 다른 줄에도 같은 밀도로 적용합니다.
제약은 두 방향으로 걸어 두었습니다. "코드는 한 글자도 바꾸지 마세요"가 없으면 AI는 주석을 달면서 변수 이름을 바꾸거나 조건문을 정리해 버립니다. 주석만 확인하려던 차이가 코드 변경과 섞이면 검토가 어려워집니다. "줄마다 달지 마세요"는 반대쪽 과잉을 막고, "확인이 필요한 곳" 목록은 AI가 모르는 것을 아는 척 주석으로 쓰는 대신 꺼내 놓을 자리를 줍니다.
주석 형식을 문장이 아니라 이름으로 지정하는 것도 중요합니다. docstring 자동 생성을 여러 번 돌리면 어떤 함수는 파라미터 표가 붙고 어떤 함수는 한 줄 설명만 붙는 일이 흔한데, 형식 이름을 매번 같이 적으면 파일 전체가 같은 모양으로 유지됩니다. 코드를 """ 로 감싼 것은 코드 안의 기존 주석이 지시로 읽히지 않게 하기 위해서입니다.
용어가 낯설면 아하AI에서: few-shot, output-format
나쁜 예와 비교
이 코드에 주석 좀 달아줘
(코드 붙여넣기)
거의 모든 줄에 주석이 붙어 돌아옵니다. 대부분은 코드를 우리말로 옮겨 적은 것이라 읽을수록 코드가 안 보입니다. 게다가 주석을 달면서 변수 이름이나 들여쓰기가 조용히 바뀌어 있는 경우가 있어, 그대로 붙여 넣으면 무엇이 달라졌는지 모른 채 커밋하게 됩니다.
변형
주석이 이미 있는데 코드와 어긋날 때
아래 {{언어}} 코드에는 이미 주석이 있습니다. 코드와 주석을 대조해서 지금 코드와 맞지 않는 주석만 찾아 주세요. "위치 · 주석이 말하는 것 · 코드가 실제로 하는 것 · 고친 주석" 표로 정리하고, 맞는 주석은 표에 넣지 마세요.
""" {{코드}} """
오래된 주석은 없는 주석보다 위험합니다. 새로 달게 하지 않고 대조만 시켜야 멀쩡한 주석까지 갈아엎지 않습니다.
인수인계용 설명을 붙일 때
아래 {{언어}} 코드를 넘겨받을 사람을 위해 파일 맨 위에 붙일 설명을 {{주석 형식}}으로 써 주세요. 이 파일이 무엇을 담당하는지, 어떤 값을 전제하는지, 고칠 때 함께 봐야 할 곳이 어디인지 순서로 적고, 열 줄을 넘기지 마세요.
""" {{코드}} """
함수 단위 주석 대신 파일 단위 안내가 필요할 때 씁니다. 길이를 제한해야 코드 내용을 그대로 요약하는 긴 글이 되지 않습니다.
모델별 주의
파일 전체를 한 번에 넣으면 뒤쪽 함수의 주석이 짧아집니다. 함수 대여섯 개씩 나눠 넣고 형식을 매번 같이 적어 주세요
코드를 통째로 다시 출력하게 하면 긴 파일에서는 뒷부분이 잘리거나 중간이 "…생략"으로 대체되기도 합니다. 그럴 때는 함수 대여섯 개씩 나눠 넣거나, 전체 코드 대신 "주석 내용과 그 주석이 붙을 위치"만 표로 받아 직접 옮겨 붙이는 편이 안전합니다.
관련 프롬프트
마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요