이제 내 Claude 프롬프트가 민망할 정도로 짧아졌다
my claude prompts are embarrassingly short now
핵심 요약
4,000단어에 달하던 방대한 시스템 프롬프트를 짧고 구체적인 지시사항으로 바꿨더니 Claude의 성능이 훨씬 좋아졌다는 경험담.
- 프롬프트 최적화 — 방대한 시스템 프롬프트 대신 짧고 집중된 지시사항을 사용해 Claude의 성능을 개선함.
- 맥락 유지 — 프롬프트가 짧아지니 Claude가 딴길로 새지 않고 지시사항을 일관되게 수행함.
- 토큰 효율성 — 불필요한 정보가 줄어들어 토큰 사용량이 감소하고 처리 속도가 향상됨.
- 사고의 여백 — 모델에게 모든 상황을 미리 강요하기보다 스스로 생각할 여유를 주는 것이 더 효과적임.
8개월 동안 완전히 거꾸로 하고 있었다는 걸 깨달았다. 모든 걸 다 담았다고 생각했던 3,847단어짜리 시스템 프롬프트를 썼는데도 왜 Claude와의 대화가 자꾸 산으로 가는지 디버깅하다가 알게 된 사실이다.
문제는 시스템 프롬프트였다.
다른 사람들처럼 나도 요구사항, 코딩 표준, 프로젝트 맥락, 성격 설정, 에러 처리 등 모든 워크플로우를 하나의 거대한 지시 블록에 쑤셔 넣고 있었다. Claude는 처음엔 잘하다가도 절반쯤 지나면 내용을 잊어버리거나, 맞지 않는 부분은 그냥 무시해 버리곤 했다.
지난 화요일 새벽 2시 30분쯤(왜 그랬는지 모르겠지만 라디오헤드 음악을 듣고 있었다) Claude한테 이 문제를 하소연했다. 왜 코딩 세션 중간에 자꾸 내 지시사항을 까먹냐고 물어봤다.
Claude가 내 프롬프트가 너무 길다고 답했다.
그래서 아주 멍청할 정도로 단순한 방법을 시도해 봤다. 거대한 프롬프트 하나 대신, 작고 집중된 프롬프트들을 만들었다.
"테스트를 먼저 작성해. Jest를 사용하고, 엣지 케이스를 다뤄."
"코드 변경 사항을 불릿 포인트로 설명해."
"새로운 의존성을 설치하기 전에 먼저 물어봐."
그게 다다. 4,000단어 대신 200단어 정도 쓴 셈이다.
차이가 정말 이상할 정도로 크다. Claude가 이제는 이 지시사항들을 일관되게 따른다. 내가 요청하지도 않은 베스트 프랙티스에 대해 딴소리를 늘어놓으며 대화가 옆길로 새는 일도 없다. 게다가 매 메시지마다 처리할 군더더기가 줄어들어서 토큰도 훨씬 적게 쓴다.
3주째 이렇게 쓰고 있는데, Claude가 지 맘대로 행동하는 대화는 단 한 번도 없었다(무슨 말인지 알 거다. 지가 더 잘 안다고 생각해서 코드베이스 전체를 리팩토링하려고 드는 그 상황 말이다).
짧은 프롬프트 덕분에 모든 시나리오를 미리 예측하려고 애쓰는 대신, 내가 실제로 원하는 게 뭔지 구체적으로 말하게 되었다. Claude는 소설책 분량의 제약 사항을 주는 것보다 생각할 여유를 줄 때 더 잘 작동한다는 걸 알게 됐다.
해결책이 그냥 '덜 쓰는 것'이었다는 게 아직도 믿기지 않는다.


