Blog
LLM (chatgpt) 프롬프트 가이드라인: 6가지 원칙
LLM(대규모 언어 모델)을 더 똑똑하게 활용할 수 있는 6가지 핵심 원칙을 알아보세요.
2025년 03월 24일

LLM 프롬프트 작성, OpenAI 가이드라인으로 완벽 마스터!
대규모 언어 모델(LLM)인 ChatGPT와 같은 AI 시스템을 사용할 때, 원하는 결과를 얻기 위해서는 프롬프트 엔지니어링 기술이 중요합니다. 이는 모델에게 주어지는 지시문인 프롬프트를 효과적으로 작성하여, 모델이 사용자 의도를 정확하게 파악하고 최적의 응답을 생성하도록 돕는 과정입니다.
OpenAI는 이러한 프롬프트 엔지니어링을 위한 가이드라인을 공개하여, 사용자가 모델을 더욱 효율적으로 활용할 수 있도록 지원하고 있습니다. 이 가이드라인은 프롬프트 작성 시 유용한 전략과 기술을 제시하며, 전 세계적으로 빠르게 확산되어 많은 사용자들에게 참고되고 있습니다.
프롬프트 엔지니어링은 LLM의 성능과 출력 품질에 직접적인 영향을 미치는 핵심 요소입니다. 프롬프트는 모델에게 원하는 작업이나 정보를 명확하게 전달하는 역할을 하므로, 효과적인 프롬프트 작성은 모델의 잠재력을 최대한 발휘하게 하며, 사용자가 기대하는 결과를 얻는 데 필수적입니다.
따라서, LLM을 효과적으로 활용하려면 OpenAI의 프롬프트 작성 가이드라인을 따르는 것이 매우 중요합니다. 이는 모델이 사용자 의도를 정확하게 파악하고, 원하는 결과를 제공하도록 돕기 때문입니다.
가이드라인 1: 지시는 명확하고 상세하게 한다
1. 지시를 구체적이고 자세하게 작성하기
대규모 언어 모델(LLM)을 효과적으로 활용하려면, 프롬프트 작성 시 구체적이고 자세한 지시를 제공하는 것이 중요합니다. 이는 모델이 사용자 의도를 정확하게 파악하고, 원하는 결과를 생성하는 데 필수적입니다. 아래에 나쁜 예와 좋은 예를 통해 이를 쉽게 이해할 수 있도록 설명하겠습니다.
- 나쁜 예:
“보고서를 작성해줘”
문제점: 이 프롬프트는 어떤 주제의 보고서를 작성해야 하는지, 어떤 형식을 따라야 하는지 등의 정보가 부족합니다.
- 좋은 예:
“2023년 1분기 판매 데이터를 분석하여, 주요 제품의 판매 추세와 향후 전망을 포함한 보고서를 작성해줘. 보고서에는 표와 그래프를 활용하여 데이터를 시각화해줘.”
장점: 이 프롬프트는 구체적인 주제, 포함해야 할 내용, 그리고 시각화 방법까지 명시하여, 모델이 명확한 방향으로 작업을 수행할 수 있도록 안내합니다.
- 나쁜 예:
“요약해줘”
문제점: 이 프롬프트는 무엇을 요약해야 하는지에 대한 정보가 전혀 없어, 모델이 어떤 내용을 요약해야 하는지 알 수 없습니다.
- 좋은 예:
“다음 텍스트를 세 문장으로 요약해줘: ‘인공지능(AI)은 컴퓨터 시스템이 인간의 지능적인 작업을 수행할 수 있도록 하는 기술입니다. 최근 몇 년간 AI 기술은 비약적으로 발전하여 의료, 금융, 제조 등 다양한 산업 분야에서 활용되고 있습니다. 이러한 발전은 데이터 처리 능력의 향상과 알고리즘의 발전 덕분입니다.'”
장점: 이 프롬프트는 요약할 텍스트와 원하는 요약 분량을 명확하게 제시하여, 모델이 정확한 작업을 수행할 수 있도록 합니다.
이처럼 프롬프트에 구체적이고 자세한 지시를 포함하면, 모델이 사용자 의도를 정확히 이해하고, 원하는 결과를 제공할 가능성이 높아집니다. 이는 LLM을 활용하는 데 있어 프롬프트 작성의 중요한 원칙 중 하나입니다.
2. 배경 정보 제공하기
대규모 언어 모델(LLM)을 효과적으로 활용하려면, 프롬프트에 충분한 배경 정보를 제공하는 것이 중요합니다. 이는 모델이 맥락을 이해하고, 보다 정확하고 관련성 높은 응답을 생성하는 데 도움이 됩니다.
- 나쁜 예:
“챗GPT로 직장인이 사용하는 방법에 대해 알려줘.”
문제점: 이 프롬프트는 ‘챗GPT로 직장인이 사용하는 방법’이라는 주제를 다루고 있지만, 구체적인 상황이나 맥락이 부족하여 모델이 일반적이고 포괄적인 답변을 제공하게 됩니다. 이는 사용자가 원하는 특정 정보를 얻는 데 한계가 있습니다.
- 좋은 예:
“챗GPT를 활용하여 마케팅 보고서를 작성하는 방법을 알려줘. 예를 들어, 데이터 분석 및 시장 트렌드 요약에 어떻게 활용할 수 있는지 설명해줘.”
장점: 이 프롬프트는 ‘마케팅 보고서 작성’, ‘데이터 분석’, ‘시장 트렌드 요약’ 등 구체적인 배경 정보를 제공하여, 모델이 해당 맥락에서 챗GPT의 활용 방안을 상세히 설명할 수 있도록 합니다.
3. 구분자 사용하기
구분자는 프롬프트 내에서 지시사항, 입력 데이터, 출력 형식 등을 명확하게 구분하여 모델이 정확한 작업을 수행하도록 돕습니다.
- 나쁜 예:
“세 권의 가상의 책 제목과 저자, 장르를 생성해 주세요.”
문제점: 이 프롬프트는 출력 형식에 대한 지시가 없어, 모델이 다양한 형식으로 응답할 수 있습니다.
- 좋은 예:
“세 권의 가상의 책 정보를 JSON 형식으로 생성해 주세요. 각 책은 다음과 같은 키를 가져야 합니다: book_id, title, author, genre.”
장점: 이 프롬프트는 출력 형식을 JSON으로 지정하고, 필요한 키를 명확하게 제시하여, 모델이 일관된 형식으로 응답하도록 유도합니다.
- 나쁜 예:
“다음 텍스트를 스페인어로 번역해 주세요: 안녕하세요! 어떻게 지내세요?”
문제점: 이 프롬프트는 지시사항과 번역할 텍스트가 명확하게 구분되지 않아, 모델이 혼동할 수 있습니다.
- 좋은 예:
“다음 텍스트를 스페인어로 번역해 주세요: ‘안녕하세요! 어떻게 지내세요?'”
장점: 이 프롬프트는 번역할 텍스트를 작은따옴표(”)로 감싸서, 모델이 번역할 부분을 명확하게 인식할 수 있도록 합니다.
이처럼 프롬프트에 구분자를 사용하면, 모델이 지시사항과 입력 데이터를 명확하게 구분하여 정확한 작업을 수행할 수 있습니다. 이는 LLM을 활용하는 데 있어 프롬프트 작성의 중요한 전략 중 하나입니다.
4. 단계별 지침 제공하기
복잡한 작업을 수행할 때 이를 단계별로 나누어 지시하면, 모델이 각 단계를 체계적으로 처리하여 정확하고 일관된 결과를 도출할 수 있습니다.
- 나쁜 예:
“이 글을 요약해 주세요.”
문제점: 이 프롬프트는 요약의 범위나 초점을 지정하지 않아, 모델이 중요하지 않은 부분을 포함하거나 핵심 내용을 놓칠 수 있습니다.
- 좋은 예:
“다음 글을 세 단계로 요약해 주세요: 1) 주요 주제 식별, 2) 핵심 주장 요약, 3) 결론 도출.”
장점: 이 프롬프트는 요약 과정을 단계별로 나누어 모델이 체계적으로 핵심 내용을 추출하도록 도와줍니다.
- 나쁜 예:
“데이터 분석을 수행해 주세요.”
문제점: 이 프롬프트는 어떤 데이터를 어떻게 분석해야 하는지에 대한 구체적인 지침이 없어, 모델이 부정확하거나 관련 없는 결과를 제공할 수 있습니다.
- 좋은 예:
“다음 데이터를 이용하여 단계별로 분석을 수행해 주세요: 1) 데이터 정제, 2) 기술 통계 계산, 3) 시각화, 4) 결과 해석. 데이터: [여기에 데이터 삽입]”
장점: 이 프롬프트는 분석 과정을 단계별로 명시하여, 모델이 체계적으로 작업을 수행하고 일관된 결과를 제공하도록 합니다.
이처럼 프롬프트에 단계별 지침을 제공하면, 모델이 복잡한 작업을 체계적으로 처리하여 정확하고 일관된 결과를 도출할 수 있습니다.
5. 예시 제공하기
프롬프트에 원하는 출력 형식이나 스타일의 예시를 포함하면, 모델이 기대하는 방향을 이해하고 일관된 응답을 생성하는 데 도움이 됩니다.
- 나쁜 예:
“고객 불만에 대한 이메일에 답장해 주세요.”
문제점: 이 프롬프트는 어떤 톤이나 형식으로 답장해야 하는지에 대한 정보가 부족하여, 모델이 부적절한 응답을 생성할 수 있습니다.
- 좋은 예:
“고객 불만에 대한 이메일에 정중하고 전문적인 톤으로 답장해 주세요. 예시: ‘안녕하세요 [고객 이름]님, 귀하의 불만 사항을 접수하였으며, 불편을 끼쳐드려 죄송합니다. 문제를 해결하기 위해 최선을 다하겠습니다.'”
장점: 이 프롬프트는 원하는 톤과 형식의 예시를 제공하여, 모델이 일관된 스타일로 응답을 생성하도록 유도합니다.
- 나쁜 예:
“블로그 포스트의 서론을 작성해 주세요.”
문제점: 이 프롬프트는 주제나 톤에 대한 정보가 부족하여, 모델이 적절한 서론을 작성하기 어렵습니다.
- 좋은 예:
“블로그 포스트의 서론을 작성해 주세요. 주제: ‘인공지능의 미래’. 예시: ‘인공지능(AI)은 현대 기술의 혁신을 이끌고 있으며, 우리의 삶을 변화시키고 있습니다. 앞으로 AI가 어떤 방향으로 발전할지 살펴보겠습니다.'”
장점: 이 프롬프트는 주제와 원하는 서론의 예시를 제공하여, 모델이 해당 주제에 맞는 서론을 작성하도록 안내합니다.
이처럼 프롬프트에 예시를 제공하면, 모델이 기대하는 출력의 형식과 스타일을 명확히 이해하여, 보다 정확하고 일관된 응답을 생성할 수 있습니다.
6. 응답 출력의 길이 지정하기
원하는 응답의 길이나 단어 수를 명시하면, 모델이 그에 맞춰 적절한 분량의 내용을 생성하여 사용자의 요구에 부합하는 답변을 제공합니다.
- 나쁜 예:
“이 기사를 요약해 주세요.” All I Need Is Data.
문제점: 이 프롬프트는 요약의 길이나 상세도에 대한 지침이 없어, 모델이 너무 짧거나 지나치게 긴 요약을 제공할 수 있습니다.
- 좋은 예:
“이 기사에 대해 100단어 분량의 요약문을 작성해 주세요.” All I Need Is Data.
장점: 이 프롬프트는 원하는 요약문의 길이를 명확히 지정하여, 모델이 적절한 분량의 요약을 제공하도록 유도합니다.
- 나쁜 예:
“챗GPT의 기능에 대해 설명해 주세요.”
문제점: 이 프롬프트는 설명의 길이나 깊이에 대한 지침이 없어, 모델이 사용자의 기대에 부합하지 않는 응답을 할 수 있습니다.
- 좋은 예:
“챗GPT의 주요 기능을 200자 이내로 간략하게 설명해 주세요.”
장점: 이 프롬프트는 설명의 길이를 제한하여, 모델이 간결하면서도 핵심적인 정보를 제공하도록 합니다
가이드라인 2: 참고 텍스트 제공
프롬프트의 힘을 증폭시키는 열쇠, 그것은 “참고 텍스트”의 사용입니다. AI는 풍부한 출처에 대한 액세스를 제공하지만, 이를 최대한 활용하려면 적절한 참고 자료를 제시하는 것이 중요합니다.
AI는 때로는 자신감을 가지고 잘못된 답변을 반환할 수 있습니다. 특히 어려운 문제 또는 인용문이나 URL 참조를 요청할 때 발생한다고합니다. 따라서 참고 텍스트를 프롬프트에 포함하면 정확한 답변을 얻을 수 있습니다.
이러한 접근 방식의 주요 장점은 다음과 같습니다.
- 정확성 향상: 외부 자료를 제공하면 모델이 최신 정보나 특정 세부 사항을 활용하여 보다 정확한 답변을 생성할 수 있습니다.
- 신뢰성 증대: 신뢰할 수 있는 출처를 참조함으로써 모델의 응답에 대한 신뢰도를 높일 수 있습니다. 이는 사용자가 결과를 검증하거나 추가 정보를 얻는 데 도움이 됩니다.
- 맥락 제공: 외부 자료는 모델이 주제의 맥락을 이해하는 데 도움을 주어, 보다 깊이 있고 관련성 높은 응답을 생성하게 합니다.
- 일관성 유지: 참조 자료를 통해 모델이 일관된 정보와 관점을 유지하도록 도와, 응답의 품질과 통일성을 보장합니다.
- 나쁜 예:
“인공지능의 역사에 대해 설명해 주세요.”
문제점: 이 프롬프트는 구체적인 정보나 출처를 제공하지 않아, 모델이 일반적이거나 부정확한 정보를 제공할 수 있습니다.
- 좋은 예:
“위키백과의 ‘인공지능’ 문서(https://ko.wikipedia.org/wiki/인공지능)를 참고하여, 인공지능의 역사에 대해 300자 이내로 요약해 주세요.”
장점: 이 프롬프트는 신뢰할 수 있는 출처를 명시하여, 모델이 정확하고 신뢰도 높은 정보를 기반으로 응답을 생성하도록 합니다.
이처럼 프롬프트에 외부 자료를 참조하면, 모델이 보다 정확하고 신뢰성 있는 응답을 생성하는 데 도움이 됩니다.
가이드라인 3: 복잡한 작업은 단순한 작업으로 나눕니다.
복잡한 문제를 해결하기 위해서는 더 작은 간단한 문제로 분해하는 것이 효과적입니다. 이 접근법은 AI에게도 효과적입니다.간단한 태스크를 쌓아서 결과적으로 복잡한 태스크를 실행함으로써 응답의 질과 정밀도를 높일 수 있습니다.
- 나쁜 예:
“챗GPT의 기능과 활용 사례를 설명하고, 이를 통해 기업이 얻을 수 있는 이점을 분석해 주세요.”
문제점: 이 프롬프트는 두 가지 다른 주제를 한 번에 다루고 있어, 모델이 포커스를 잃고 일반적인 정보를 제공할 수 있습니다.
- 좋은 예:
“챗GPT의 주요 기능과 활용 사례를 설명해 주세요.”
(응답을 받은 후) “앞서 언급한 챗GPT의 기능과 활용 사례를 통해 기업이 얻을 수 있는 이점을 분석해 주세요.”
장점: 이렇게 단계별로 질문을 분리하면, 모델이 각 질문에 대한 깊이 있는 답변을 제공할 수 있습니다.
- 나쁜 예:
“제주도의 주요 관광지 5곳을 추천해 주고, 이들을 3일 동안 효율적으로 둘러볼 수 있는 일정을 만들어 주며, 각 날짜별로 숙박할 수 있는 적절한 위치의 호텔이나 펜션을 추천해 주세요.”
문제점: 이 프롬프트는 한 번에 여러 작업을 요청하여 모델이 혼란스러워하거나 부정확한 응답을 생성할 수 있습니다.
- 좋은 예:
“제주도의 주요 관광지 5곳을 추천해 주세요.”
(응답을 받은 후) “이 관광지들을 3일 동안 효율적으로 둘러볼 수 있는 일정을 만들어 주세요.”
(일정을 받은 후) “각 날짜별로 숙박할 수 있는 적절한 위치의 호텔이나 펜션을 추천해 주세요.”
장점: 이처럼 복잡한 작업을 단계별로 나누어 요청하면, 모델이 각 단계에 집중하여 정확한 정보를 제공할 수 있습니다.
이처럼 복잡한 작업을 단순한 작업으로 나누어 프롬프트를 작성하면, 모델이 각 단계에 집중하여 정확하고 일관된 결과를 도출할 수 있습니다.
가이드라인 4: AI에게 생각할 시간을 준다.
프롬프트 작성 시 AI에게 생각할 시간을 주는 것이 중요합니다. 이는 모델이 복잡한 작업을 처리하거나 깊이 있는 분석을 수행할 때 충분한 시간을 확보하여, 보다 정확하고 신뢰성 있는 응답을 생성하도록 돕습니다.
- 나쁜 예:
“복잡한 데이터 세트를 분석하고, 주요 통계 지표를 계산하며, 결과를 시각화하여 5초 이내에 보고서를 작성해 주세요.”
문제점: 이 프롬프트는 복잡한 작업을 매우 짧은 시간 내에 완료하도록 요구하여, 모델이 부정확하거나 불완전한 결과를 생성할 수 있습니다.
- 좋은 예:
“복잡한 데이터 세트를 분석하고, 주요 통계 지표를 계산하며, 결과를 시각화하여 보고서를 작성해 주세요. 이 작업을 수행하는 데 충분한 시간을 가지세요.”
장점: 이 프롬프트는 모델에게 충분한 시간을 제공하여, 정확하고 신뢰성 있는 결과를 생성하도록 돕습니다.
- 나쁜 예:
“복잡한 수학 문제를 2초 이내에 단계별로 해결해 주세요.”
문제점: 이 프롬프트는 모델이 제한된 시간 내에 복잡한 문제를 해결하도록 요구하여, 오류 발생 가능성을 높입니다.
- 좋은 예:
“복잡한 수학 문제를 단계별로 해결해 주세요. 각 단계를 신중하게 검토하고 충분한 시간을 사용해 주세요.”
장점: 이 프롬프트는 모델에게 각 단계를 신중하게 처리할 시간을 제공하여, 정확한 해결책을 도출하도록 합니다.
이처럼 프롬프트 작성 시 AI에게 충분한 생각할 시간을 부여하면, 모델이 복잡한 작업을 신중하게 처리하여 정확하고 신뢰성 있는 응답을 제공할 수 있습니다.
가이드라인 5: 외부 도구 사용
대규모 언어 모델(LLM)을 활용할 때 외부 도구 사용은 모델의 기능을 확장하고 성능을 향상시키는 데 중요한 역할을 합니다. 이는 모델이 자체적으로 수행하기 어려운 작업을 외부 도구와 연동하여 처리함으로써, 보다 정확하고 신뢰성 있는 결과를 얻을 수 있게 합니다.
- 외부 도구 사용의 필요성: LLM은 방대한 데이터를 학습하여 다양한 작업을 수행할 수 있지만, 실시간 정보 접근, 복잡한 계산, 특정 형식의 데이터 처리 등에서는 한계가 있을 수 있습니다. 이러한 경우 외부 도구를 활용하면 모델의 한계를 보완하고, 사용자에게 더 나은 서비스를 제공할 수 있습니다.
- 외부 도구 활용 예시:
-
- 실시간 정보 접근을 위한 웹 검색 연동:
사용자가 “현재 서울의 날씨는 어떤가요?”라고 질문할 경우, LLM은 자체적으로 실시간 날씨 정보를 보유하지 않을 수 있습니다. 이때, 외부의 날씨 정보 API나 웹 검색 기능을 활용하여 최신 날씨 정보를 가져와 사용자에게 제공할 수 있습니다.
-
- 정확한 계산을 위한 계산기 또는 코드 실행:
“1000의 제곱근은 얼마인가요?”와 같은 질문에 대해, LLM은 외부 계산기 도구나 코드 실행 환경을 활용하여 정확한 계산 결과를 도출할 수 있습니다.
-
- 특정 형식의 데이터 처리를 위한 도구 사용:
“이 데이터를 엑셀 파일로 변환해 주세요.”라는 요청이 있을 경우, LLM은 외부의 파일 변환 도구를 활용하여 데이터를 원하는 형식으로 변환할 수 있습니다.
- 나쁜 예:
“복잡한 데이터 세트를 분석하고, 주요 통계 지표를 계산하며, 결과를 시각화하여 보고서를 작성해 주세요.”
문제점: 이 프롬프트는 LLM이 자체적으로 수행하기 어려운 복잡한 데이터 분석과 시각화를 요구하고 있어, 부정확하거나 불완전한 결과를 초래할 수 있습니다.
- 좋은 예:
“첨부된 데이터 세트를 분석하고, 주요 통계 지표를 계산한 후, 파이썬의 Pandas와 Matplotlib 라이브러리를 사용하여 결과를 시각화해 주세요. 그런 다음, 분석 결과를 요약한 보고서를 작성해 주세요.”
장점: 이 프롬프트는 외부의 데이터 분석 및 시각화 도구인 Pandas와 Matplotlib을 활용하도록 지시하여, 정확하고 신뢰성 있는 결과를 얻을 수 있도록 합니다.
이처럼 외부 도구 사용은 LLM의 한계를 보완하고, 보다 정확하고 신뢰성 있는 결과를 얻기 위한 효과적인 전략입니다. 프롬프트 작성 시 이러한 외부 도구를 적절히 활용하면, 모델의 활용도를 더욱 높일 수 있습니다.
가이드라인 6: 프롬프트는 다각적으로 작성하고 비교
대규모 언어 모델(LLM)의 신뢰성을 확보하기 위해서는 여러 프롬프트를 통해 비교 검증하는 과정이 필수적입니다. 이는 동일한 주제나 작업에 대해 다양한 프롬프트를 사용하여 모델의 응답을 비교하고 평가함으로써, 가장 효과적인 프롬프트를 식별하고 개선할 수 있는 방법입니다.
- 주제: “뉴턴의 운동 법칙 설명”
프롬프트 A: “뉴턴의 운동 법칙을 설명해주세요.”
프롬프트 B: “뉴턴의 운동 법칙을 설명하고, 이 법칙을 적용한 간단한 문제를 제시하여 설명의 정확성을 검증해주세요.”
- 비교검증:
프롬프트 A의 응답: 일반적인 설명 제공, 구체적인 예시 부족
프롬프트 B의 응답: 설명과 함께 적용 사례를 포함하여 이해도와 신뢰성 향상
이러한 비교를 통해 프롬프트 B가 더 효과적임을 확인할 수 있으며, 이를 통해 프롬프트를 개선할 수 있습니다.
이처럼 여러 프롬프트를 활용한 비교 검증은 LLM의 신뢰성을 높이는 데 필수적인 과정입니다. 이를 통해 모델의 성능을 지속적으로 평가하고 개선하여, 보다 정확하고 신뢰할 수 있는 AI 시스템을 구축할 수 있습니다.
마무리
대규모 언어 모델(LLM)을 제대로 활용하기 위해서는 단순한 질문만으로는 부족합니다. 원하는 결과를 얻기 위해서는 모델이 사용자의 의도를 정확하게 이해할 수 있도록 프롬프트를 정교하게 설계해야 하며, 그 핵심이 바로 ‘프롬프트 엔지니어링’입니다. 이번에 정리한 여섯 가지 프롬프트 작성 가이드라인은 효과적인 LLM 활용을 위한 실질적인 방향을 제시합니다.
지시 내용은 구체적이고 명확하게 전달하고, 필요한 경우 배경 정보나 예시를 함께 제공해야 하며, 복잡한 작업은 단계별로 나누고 출력 형식이나 길이를 명시하는 것이 중요합니다. 또한 외부 도구나 참고 자료를 활용해 모델의 한계를 보완하고, 다양한 프롬프트를 비교 실험해 가장 효과적인 표현 방식을 찾아내는 과정도 필요합니다. 이와 같은 원칙들을 일관되게 적용하면, 어떤 LLM을 사용하더라도 보다 정확하고 신뢰할 수 있는 결과를 얻을 수 있습니다.