AI 챗봇을 만들려면 프롬프트 엔지니어링을 알아야 합니다

바이브코딩으로 챗봇 화면과 AI 연결은 금방 만들 수 있습니다. 하지만 원하는 답변을 만들려면 시스템 프롬프트를 찾아 역할, 규칙과 좋은 답변 예시를 직접 다듬어야 해요.

핵심 요약

바이브코딩으로 AI 챗봇을 만드는 일은 생각보다 금방 끝납니다.

채팅창을 만들고 AI API를 연결한 다음 메시지를 보내면 답변이 돌아옵니다. 처음 화면에 답변이 나타나는 순간에는 챗봇이 거의 완성된 것처럼 보여요.

하지만 직접 질문을 몇 개 해보면 느낌이 달라집니다.

답변이 너무 길어요.
우리 서비스와 맞지 않는 말을 해요.
모르는 내용도 자신 있게 답해요.
질문할 때마다 말투가 달라져요.
자꾸 뻔한 이야기만 해요.

챗봇은 만들어졌지만 답변이 마음에 들지 않습니다.

여기서부터 필요한 것이 프롬프트 엔지니어링입니다.

챗봇을 만드는 것과 답변을 설계하는 것은 달라요

AI API를 연결하면 기본적인 대화는 바로 할 수 있습니다. 그렇다고 AI가 이 챗봇의 목적까지 알아서 이해하는 것은 아니에요.

예를 들어 고객 상담 챗봇이라면 다음 내용을 누군가는 정해야 합니다.

이 기준이 없으면 AI는 매번 그럴듯해 보이는 답을 만들 뿐입니다. 틀린 답은 아닐 수 있어도 내가 만들려던 챗봇의 답은 아닐 수 있어요.

챗봇의 화면과 기능을 만드는 일은 클로드코드가 많이 도와줄 수 있습니다. 하지만 어떤 답변이 좋은지는 챗봇을 만드는 사람이 정해야 합니다.

먼저 시스템 프롬프트를 찾아보세요

챗봇의 답변 방식을 고치고 싶다면 코드 전체를 읽을 필요는 없습니다. 클로드코드에 이렇게 요청해보세요.

이 프로젝트에서 AI 챗봇의 시스템 프롬프트가 어디에 있는지 찾아줘.
파일과 위치를 알려주고, 지금 어떤 지시를 하고 있는지 쉽게 설명해줘.
아직 코드는 수정하지 마.

클로드코드는 AI API를 호출하는 코드를 따라가 시스템 프롬프트가 들어 있는 파일을 찾아줄 수 있습니다.

파일을 열어보면 시스템 프롬프트가 예상보다 짧은 경우가 많아요.

너는 친절한 고객 상담 챗봇이야.
사용자의 질문에 도움이 되도록 답해줘.

이 정도 지시로도 AI는 답을 합니다. 하지만 무엇을 친절하다고 볼지, 어디까지 답할지, 어떤 자료를 믿을지는 정해져 있지 않아요.

“친절하게 답해줘”만으로는 원하는 답변이 꾸준히 나오기 어렵습니다.

시스템 프롬프트는 챗봇의 업무 지침이에요

시스템 프롬프트는 AI가 대화를 시작하기 전에 받는 기본 지시입니다. 챗봇의 역할과 답변 원칙을 정하는 업무 지침에 가까워요.

좋은 시스템 프롬프트를 만들려면 어려운 표현보다 구체적인 기준이 필요합니다.

[역할]
너는 우리 서비스의 고객 문의를 돕는 상담 챗봇이다.

[답변 범위]
제공된 상품 정보와 이용 규정에 관한 질문에만 답한다.

[근거]
제공된 자료에서 확인한 내용만 안내한다.
자료에 없는 내용은 추측하지 않고 확인이 필요하다고 말한다.

[답변 방식]
결론을 먼저 말한다.
답변은 짧은 문단이나 목록으로 정리한다.
전문 용어보다 처음 사용하는 사람도 이해할 수 있는 표현을 쓴다.

[추가 질문]
답변에 필요한 정보가 부족하면 한 번에 한 가지만 물어본다.

위 문장을 그대로 복사할 필요는 없습니다. 내 챗봇에서 좋은 답변이 무엇인지 항목별로 적어보는 것이 중요해요.

상담 챗봇은 확인되지 않은 내용을 말하지 않는 것이 중요할 수 있습니다. 제품 추천 챗봇은 사용 목적과 예산부터 물어봐야 할 수 있어요. 글쓰기 챗봇이라면 말투와 결과물의 형식이 더 중요합니다.

챗봇마다 맡은 일이 다르니 시스템 프롬프트도 달라야 합니다.

“답변을 좋게 만들어줘”보다 원하는 답을 보여주세요

시스템 프롬프트를 찾은 뒤 클로드코드에 막연히 “더 좋게 고쳐줘”라고 하면 지시만 길어질 수 있습니다.

먼저 현재 답변에서 무엇이 마음에 들지 않는지 적어보세요.

현재 문제
- 첫 문단이 너무 길다.
- 상품 정보에 없는 내용을 추측한다.
- 사용자의 상황을 묻지 않고 바로 추천한다.

원하는 답변
- 결론을 첫 문장에 말한다.
- 확인할 수 없는 내용은 모른다고 말한다.
- 추천 전에 사용 목적을 한 가지 물어본다.

그다음 클로드코드에 개선을 요청합니다.

방금 찾은 시스템 프롬프트를 개선해줘.

현재 답변의 문제는 다음과 같아.
- 첫 문단이 너무 길어.
- 제공한 자료에 없는 내용도 추측해서 말해.
- 사용자의 목적을 묻지 않고 바로 추천해.

앞으로는 결론부터 짧게 답하고,
확인할 수 없는 내용은 추측하지 않게 해줘.
추천에 정보가 더 필요하면 질문을 하나만 먼저 하게 해줘.

다른 기능은 수정하지 마.

이렇게 요청하면 클로드코드가 손댈 범위와 원하는 결과가 분명해집니다.

프롬프트 엔지니어링은 특별한 주문을 찾아내는 일이 아닙니다. 마음에 들지 않는 답변을 보고 기준을 하나씩 구체적으로 만드는 과정에 가까워요.

좋은 답변 예시를 충분히 넣어주세요

규칙만으로 원하는 답변을 설명하기 어려울 때는 좋은 답변 예시를 시스템 프롬프트에 함께 넣어보세요.

“짧고 친절하게 답해줘”라는 지시는 사람마다 다르게 해석할 수 있습니다. 반면 실제 질문과 원하는 답변을 짝으로 보여주면 문장의 길이, 말투와 정보의 순서를 AI가 훨씬 구체적으로 파악할 수 있어요.

[좋은 답변 예시 1: 바로 답할 수 있는 질문]
사용자: 이 기능은 무료 플랜에서도 쓸 수 있나요?
챗봇: 네, 무료 플랜에서도 사용할 수 있어요. 다만 한 달에 3번까지만 제공됩니다.

[좋은 답변 예시 2: 정보가 더 필요한 질문]
사용자: 저한테 어떤 플랜이 좋아요?
챗봇: 주로 혼자 사용하시나요, 아니면 팀원과 함께 사용하시나요?

[좋은 답변 예시 3: 자료에 답이 없는 질문]
사용자: 다음 달에도 지금 가격과 같나요?
챗봇: 제공된 자료에는 다음 달 가격이 나와 있지 않아 확인하기 어려워요. 현재 공개된 가격은 안내해드릴 수 있습니다.

[좋은 답변 예시 4: 범위를 벗어난 질문]
사용자: 경쟁사보다 여기가 무조건 더 좋은가요?
챗봇: 어느 서비스가 더 좋다고 단정하기는 어려워요. 중요하게 보는 기능을 알려주시면 제공된 정보를 기준으로 비교해드릴게요.

좋은 예시는 한두 개보다 여러 상황에 맞춰 충분히 제공하는 편이 좋습니다. 평범한 질문만 반복하지 말고 바로 답할 질문, 추가 정보가 필요한 질문, 자료에 답이 없는 질문과 챗봇의 범위를 벗어난 질문을 골고루 넣어보세요.

예시가 많아도 모두 비슷한 답변이라면 도움이 크지 않습니다. 실제로 자주 들어올 질문과 실수하기 쉬운 상황을 중심으로 고르세요. 새 예시가 기존 규칙과 충돌하지 않는지도 함께 확인해야 합니다.

클로드코드에는 다음처럼 요청할 수 있습니다.

지금까지 테스트한 질문과 내가 좋다고 선택한 답변을 바탕으로
시스템 프롬프트에 좋은 답변 예시를 추가해줘.

일반적인 질문뿐 아니라 다음 상황의 예시도 포함해줘.
- 답변에 정보가 더 필요한 경우
- 제공된 자료에서 답을 찾을 수 없는 경우
- 챗봇이 답할 범위를 벗어난 경우

예시끼리 규칙이나 말투가 충돌하지 않는지도 확인해줘.

원하는 결과물을 여러 개 보여주는 것은 프롬프트를 개선할 때 가장 실용적인 방법 중 하나입니다. 말로 규칙을 길게 설명하는 대신 완성된 답변으로 기준을 보여줄 수 있기 때문이에요.

한 번에 완성하려고 하지 마세요

시스템 프롬프트를 길게 쓴다고 바로 좋은 챗봇이 되지는 않습니다. 규칙이 너무 많거나 서로 충돌하면 오히려 답변이 어색해질 수 있어요.

한 번에 모든 문장을 고치기보다 다음 순서로 반복해보세요.

  1. 실제 사용자가 할 법한 질문을 넣습니다.
  2. 마음에 들지 않는 부분을 한 가지 고릅니다.
  3. 원하는 행동을 시스템 프롬프트에 구체적으로 추가합니다.
  4. 같은 질문과 다른 질문으로 다시 확인합니다.
  5. 새 규칙 때문에 다른 답변이 나빠지지 않았는지 봅니다.

정상적인 질문만 시험해서도 안 됩니다.

답을 알 수 있는 질문
정보가 부족한 질문
챗봇의 범위를 벗어난 질문
서로 모순되는 조건이 들어간 질문

이런 질문을 함께 넣어봐야 챗봇이 실제 상황에서도 정해둔 원칙대로 답하는지 알 수 있어요.

시스템 프롬프트도 코드와 같습니다. 바꾼 뒤에는 반드시 테스트해야 합니다.

프롬프트를 고쳐도 해결되지 않는 문제가 있어요

챗봇의 답변이 마음에 들지 않을 때 무조건 시스템 프롬프트만 길게 만들지는 마세요.

AI가 지켜야 할 규칙이 불분명한 것과, 답변에 필요한 정보가 없는 것은 서로 다른 문제입니다.

문제가 생기는 이유 고쳐야 할 곳
답변이 너무 길거나 말투가 맞지 않음 시스템 프롬프트
모르는 내용을 추측해서 답함 시스템 프롬프트의 답변 원칙
최신 가격이나 운영 시간을 알지 못함 챗봇에 제공하는 정보
사용자 상황과 맞지 않는 답을 함 사용자 정보와 대화 내용
사내 문서를 찾지 못함 문서 검색이나 데이터 연결

시스템 프롬프트가 AI에게 어떻게 답할지 알려준다면, 컨텍스트는 AI가 답할 때 참고할 자료와 현재 상황입니다.

이 자료와 상황을 알맞게 제공하는 일을 컨텍스트 엔지니어링이라고 부르기도 해요.

예를 들어 시스템 프롬프트에 “정확한 가격을 알려줘”라고 열 번 적어도 AI에게 최신 가격표를 주지 않으면 정확히 답할 수 없습니다. 가격표나 데이터베이스에서 현재 정보를 가져와 질문과 함께 전달해야 해요.

반대로 필요한 자료는 충분한데 답변이 지나치게 길다면 자료를 더 넣을 문제가 아닙니다. 시스템 프롬프트에서 답변 길이와 형식을 정해야 합니다.

어떻게 답해야 할지 문제다
→ 프롬프트를 고칩니다.

답할 정보가 부족한 문제다
→ 컨텍스트를 보강합니다.

둘을 구분하면 시스템 프롬프트에 모든 문제를 억지로 해결하려다 지시만 길어지는 일을 피할 수 있습니다. 컨텍스트가 왜 제한되는지 궁금하다면 AI의 작업대, 컨텍스트 윈도우 이해하기도 함께 읽어보세요.

회사 문서가 수천 개라 질문마다 필요한 부분을 찾아야 한다면 Supabase로 벡터 RAG를 만드는 방법으로 이어가세요. 문서를 작은 부분으로 나누고, 질문과 의미가 가까운 부분만 찾아 답변 근거로 전달하는 과정을 설명했습니다.

좋은 챗봇은 답변 기준이 분명해요

바이브코딩으로 챗봇 화면을 만들고 AI를 연결하는 것은 시작입니다. 그다음에는 시스템 프롬프트를 찾아 내가 원하는 답변의 기준을 직접 넣어야 해요.

처음부터 완벽한 프롬프트를 쓸 필요는 없습니다.

현재 답변에서 마음에 들지 않는 점을 찾습니다.
원하는 답변을 구체적으로 적습니다.
시스템 프롬프트를 한 번에 조금씩 고칩니다.
여러 질문으로 다시 확인합니다.
정보가 부족한 문제라면 컨텍스트를 보강합니다.

AI가 알아서 좋은 답변을 찾아주기를 기다리기보다, 무엇이 좋은 답변인지 먼저 정해보세요. 같은 모델을 사용해도 이 기준에 따라 챗봇의 답변은 크게 달라질 수 있습니다.

실제 수강생들이 만드는 챗봇과 프로젝트가 궁금하다면 회사 지침 챗봇을 포함한 바이브코딩 프로젝트 사례에서도 확인할 수 있어요.

#기초#AI 도구#클로드코드#프롬프트#AI 챗봇

인스타그램 @ddukddak.build · 페이스북 뚝딱