Claude Code에서 원하는 코드를 얻는 프롬프트 작성법

2026. 4. 12. 01:40Claude Code 입문자 기초 개념

프롬프트가 결과를 바꾸는 이유

Claude Code는 사용자가 입력한 프롬프트(prompt)를 기반으로 코드를 생성합니다. 같은 기능을 요청하더라도, 어떻게 말하느냐에 따라 결과물의 품질이 완전히 달라집니다. 마치 식당에서 "맛있는 거 주세요"라고 하는 것과 "매운 닭볶음탕 2인분, 덜 짜게 해주세요"라고 하는 것의 차이와 비슷합니다.

바이브 코딩(vibe coding)이란 AI에게 자연어로 지시해서 코드를 만드는 방식을 말합니다. 이 방식에서 프롬프트는 유일한 소통 수단입니다. 코드를 직접 짜지 않는 만큼, 내가 원하는 것을 정확히 전달하는 능력이 핵심이 됩니다. 프롬프트를 잘 쓴다는 건 결국 "내가 뭘 원하는지 명확하게 설명하는 것"입니다.

제가 직접 써보니, 처음에는 짧고 모호하게 요청해서 원하지 않는 코드를 자주 받았습니다. 프롬프트에 한 줄만 더 추가해도 결과가 눈에 띄게 좋아지더군요. 프롬프트 작성은 기술이 아니라 습관에 가깝다고 느꼈습니다.

 

구체적으로 요청하는 프롬프트 작성 원칙

가장 흔한 실수는 너무 넓게 요청하는 것입니다. "로그인 기능 만들어줘"처럼 큰 범위를 한 번에 던지면, Claude Code는 나름대로 판단해서 코드를 생성합니다. 그 판단이 내 의도와 맞을 확률은 높지 않습니다.

좋은 프롬프트는 한 번에 하나의 작업만 요청합니다. 범위를 좁히고, 구체적인 조건을 명시하는 것이 핵심입니다. 아래 비교를 보면 차이가 명확합니다.

나쁜 프롬프트:


로그인 기능 만들어줘

좋은 프롬프트:


이메일과 비밀번호로 로그인하는 API 엔드포인트를 만들어줘.
POST /api/login 경로로, 비밀번호가 틀리면 401 에러를 반환해야 해.
Express.js 기반이야.

 

Claude Code에서 원하는 코드를 얻는 프롬프트 작성법

 

차이가 보이시나요. 좋은 프롬프트에는 기술 스택(Express.js), HTTP 메서드(POST), 경로(/api/login), 에러 처리 조건(401)이 모두 들어 있습니다. Claude Code가 추측할 여지를 줄이는 겁니다. 여러 기능이 필요하면, 하나를 완성한 뒤 다음 요청을 보내는 방식이 훨씬 안정적입니다.

제가 직접 써보니, 한 프롬프트에 3가지 이상 요청하면 앞의 것은 잘 되는데 뒤의 것은 빠지는 경우가 많았습니다. 하나씩 요청하는 게 느려 보이지만, 수정 횟수를 줄여서 오히려 더 빠릅니다.

 

맥락을 전달하는 방법 — 파일 멘션과 상황 설명

Claude Code는 프로젝트 전체를 항상 파악하고 있지 않습니다. 내가 지금 어떤 파일을 수정하려는지, 어떤 구조로 되어 있는지 알려줘야 정확한 결과를 받을 수 있습니다.

가장 쉬운 방법은 파일을 직접 언급하는 것입니다. Claude Code에서는 @파일명 형식으로 특정 파일을 멘션할 수 있습니다. 이렇게 하면 해당 파일의 내용을 Claude Code가 참고해서 코드를 작성합니다.

나쁜 프롬프트:


사용자 모델에 전화번호 필드 추가해줘

좋은 프롬프트:


@models/user.js 파일에 phoneNumber 필드를 추가해줘.
타입은 String이고, 필수값은 아니야.
기존 email 필드 아래에 넣어줘.

 

Claude Code에서 원하는 코드를 얻는 프롬프트 작성법

 

파일 멘션 외에도, 현재 상황을 설명하는 것이 효과적입니다. "이 프로젝트는 React와 TypeScript를 쓰고 있어"처럼 기술 스택을 밝히거나, "이 함수는 결제 처리용이야"처럼 목적을 설명하면 됩니다. Claude Code가 맥락(context)을 많이 알수록 더 적절한 코드를 생성합니다.

제가 직접 써보니, 파일 멘션 하나만 추가해도 "다른 파일을 수정해버리는" 실수가 크게 줄었습니다. 특히 비슷한 이름의 파일이 여러 개 있을 때 효과가 확실하구요. 맥락 전달은 귀찮아 보여도 결과적으로 시간을 절약해 줍니다.

 

결과가 마음에 안 들 때 수정 요청하는 법

Claude Code가 한 번에 완벽한 코드를 주는 경우는 드뭅니다. 중요한 건 결과를 받은 뒤 어떻게 수정을 요청하느냐입니다. 여기서도 프롬프트의 구체성이 핵심입니다.

나쁜 수정 요청:


이거 좀 고쳐줘

좋은 수정 요청:


방금 만든 loginUser 함수에서 비밀번호 검증 부분이 빠져 있어.
bcrypt.compare로 비밀번호를 비교하는 로직을 추가해줘.

"이거 좀 고쳐줘"는 Claude Code 입장에서 무엇을 어떻게 고쳐야 하는지 알 수 없습니다. 반면 좋은 수정 요청은 어떤 함수의 어떤 부분이 문제인지, 그리고 어떻게 바꿔야 하는지를 명시합니다.

 

 

수정 요청 시 유용한 패턴이 몇 가지 있습니다. "~부분을 ~로 바꿔줘"처럼 위치와 변경 내용을 함께 말하는 것이 가장 확실합니다. "에러 메시지를 한국어로 바꿔줘"처럼 변경 범위를 특정하는 것도 좋습니다. 만약 결과가 완전히 방향이 다르다면, 수정보다는 새 프롬프트로 처음부터 다시 요청하는 편이 나을 수 있습니다.

제가 직접 써보니, 수정 요청은 보통 2~3회면 원하는 결과에 도달합니다. 다만 매번 수정할 때마다 구체적으로 지적해야 합니다. "아까랑 비슷하게 해줘" 같은 모호한 표현은 오히려 결과를 더 엉뚱하게 만들 수 있으니 주의가 필요합니다.