3.A. 프롬프트 엔지니어링의 개념
3장 개요🔗
LLM과 같은 강력한 도구를 효과적으로 활용하기 위해서는 적절한 사용 방법을 익히는 것이 필수적입니다. 그렇지 않으면 마치 'F1 레이싱카로 시내 주행만 하는 격'이 될 수 있습니다. 엄청난 잠재력을 지녔지만, 그 힘을 제대로 끌어내지 못하는 셈이죠. 이번 장에서는 이러한 첨단 AI 기술과 효과적으로 대화하며 원하는 답을 더 빨리, 더 정확하게 얻어내는 방법, 즉 프롬프트 엔지니어링 기법들에 대해 알아보겠습니다.
💭 본 가이드의 초판을 쓰던 2024년에도 어느 정도 예상했습니다만, 2025년 현재 당초 예상보다 더 빠르게 AI 활용 패러다임이 변화하고 있습니다. 요즘은 AI가 좋은 답변을 주기 위해 '어떻게 질문할까?(=프롬프트 엔지니어링)'보다, '어떤 정보를 제공할까?'가 더 중요하다는 인식이 확산되기 시작했습니다. 이 같은 개념이 바로 3장의 마지막에 새로 추가한 컨텍스트 엔지니어링입니다.
SF 소설 '삼체'에 등장하는 외계 문명의 초거대 AI는 지구상 어디든 침투해 모든 매체와 통신을 엿볼 수 있지만, 인류 전략가들의 머릿속 생각까지는 읽을 수 없었습니다. 현실에서도 마찬가지로, 앞으로 기술이 아무리 발전하더라도 우리가 적절한 정보나 맥락을 제공하지 않으면 우리가 무엇을 원하는지 AI가 스스로 알아내기는 어려울 것입니다.
답변 형식이나 스타일을 원하는 방식으로 조절할 수 있는 프롬프트 엔지니어링 기법은 여전히, 그리고 앞으로도 유용할 것이기에 기존의 내용을 줄이거나 삭제하진 않았습니다. 다만 프롬프트 엔지니어링의 핵심이자 다른 모든 기법을 포괄하는 기법은 바로 '명확하고 구체적인 지시'라는 것을 한번 더 강조하겠습니다.
3.A. 프롬프트 엔지니어링의 개념🔗
사실, '프롬프트 엔지니어링'이라고 해서 정형화된 학문 분야나 엄격한 기술 체계가 있는 것은 아닙니다. 이는 LLM과의 대화 경험이나 다양한 실험을 통해 발견된 효과적인 의사소통 방법들의 모음이라고 보는 게 더 정확합니다.
프롬프트 엔지니어링은 쉽게 말해 'AI에게 더 똑똑하게 질문하는 기술'이라고 할 수 있습니다. 마치 우리가 전문가에게 조언을 구할 때 질문을 잘 만들어야 원하는 답변을 얻을 수 있는 것처럼, AI와 대화할 때도 같은 원리가 적용됩니다.
* AI 생성 이미지 with Nano Banana Pro
이들은 LLM의 강점을 최대한 활용하고 약점을 보완하는 방식으로 질문이나 지시를 구성하는 것을 포함합니다. 예를 들어, 맥락 제공, 단계별 지시, 예시 활용 등의 방법을 사용하여 AI가 우리의 의도를 더 정확히 이해하고 더 유용한 답변을 제공하도록 유도합니다.
📌 참고 : 따라서 LLM마다 어떤 기법은 잘 통하고, 어떤 기법은 잘 통하지 않으며, 어떤 기법은 LLM을 가리지 않고 통용될 수 있기도 합니다.
모든 LLM에 대한 프롬프트 엔지니어링 기법을 다 다룰 수는 없기 때문에, 이 가이드는 2024년 작성 당시에 공개됐던 OpenAI의 프롬프트 엔지니어링 가이드와 Anthropic의 가이드를 참조 및 종합하여 작성했습니다.
지금은 OpenAI의 해당 자료가 다른 페이지로 연결되고 당시의 자료를 찾을 수 없어, 프롬프트 엔지니어링 관련 참고할만한 자료들을 소개해주는 페이지로 대체하겠습니다.
프롬프트 엔지니어링은 이제 거의 성숙기에 접어든 분야입니다. 새로운 프롬프트 기법의 등장은 점점 줄어들고 있는 반면, 새로운 모델이 등장할 때마다 상대적으로 중요도가 증가하거나 감소하는 기법들이 있습니다. 동시에 모델에 상관없이 효과적이고 중요하다고 여겨지는 기법이나 원칙들도 있습니다.
사실, AI 기술이 발전하면서 이제는 굳이 복잡한 형식에 얽매이지 않더라도 충분한 정보를 제공하기만 하면 매우 훌륭한 답변이 가능해졌습니다. 그럼에도 불구하고 프롬프트 엔지니어링 기법은 '충분한 정보를 제공하기 위한 효과적인 방법'으로써 여전히 나름의 의미가 있습니다.
이어지는 내용에서는 다음과 같이 다양한 프롬프트 엔지니어링 기법들을 구체적인 예시와 함께 활용 방법 및 그 효과를 알아보겠습니다.
| 섹션 | 내용 |
|---|---|
| 3.B. 명확하고 구체적으로 지시하기 | '명확하고 구체적인 지시'의 의미와 중요성을 설명하고, 예시를 통해 효과적인 프롬프트 작성의 기본 원칙을 소개합니다. |
| 3.C. 구분 기호 사용하기 | 구분 기호를 활용해 지시사항을 구조화하여 LLM의 이해도와 답변 품질을 높이는 방법을 설명합니다. |
| 3.D. 단계적으로 지시하기 | 복잡한 작업을 단계별로 나누어 LLM에게 지시하는 방법과 그 효과를 설명합니다. |
| 3.E. 역할 부여하기 | LLM에 특정 '역할'을 부여하여 답변의 특성을 조절하는 기법을 소개합니다. |
| 3.F. 예시 제공하기 | 구체적인 예시를 통해 LLM의 답변을 유도하고 개선하는 방법을 설명합니다. |
| 3.G. 그 밖의 기법들 | 답변 길이 조절, 프롬프트 체이닝, 톤/스타일 조절 등 추가적인 프롬프트 엔지니어링 기법들을 소개합니다. ※ 2025년 추가: 생각의 트리(ToT), 생각하고 행동하기(ReAct), Verbalized Sampling(VS) |
그리고 다음 3.H. 프롬프트 공유 사이트에서는 프롬프트 공유 사이트 몇 가지를 소개하고, 프롬프트 최적화 도구에 대해서도 다루겠습니다.
마지막으로 추가된 3.I. 컨텍스트 엔지니어링 섹션에서는 컨텍스트 엔지니어링에 대해 프롬프트 엔지니어링과의 차이점, 왜 주목 받게 되었는지 등을 살펴보겠습니다.
📌 참고 :
각각의 기법들은 따로 사용해도 효과적이지만, 함께 사용할 때 더 효과적일 수 있습니다. 따라서 적어도 한번은 모두 읽어볼 것을 권장합니다.
이후에도 종종 언급할텐데 모두 '명확하고 구체적인 지시'를 위한 다른 방법일 뿐 궁극적인 목적은 같다는 점을 잊지 말아야 합니다.
