ChatGPT가 나오고 나서 프롬프트 엔지니어링이 정말 중요해졌죠.
실제로 비개발자 분들도 프롬프트 엔지니어링을 잘 하시면
앱, 웹 등 쉽게 만드실 수 있습니다.
이번 포스팅에서는 프롬프트 엔지니어링을 어떻게하면 더 잘하는지
엔드류응 교수님께서 직접 올려주신 강의를 토대로 정리해볼게요.

프롬프트 엔지니어링 잘하는 방법
명확하고 구체적인 지시
첫 번째 방법은 명확하고 구체적인 지시를 하는 것입니다.
그 방법은 여러가지가 있는데요. 간단하게 먼저 정리해볼게요.
- "", ```, ---, <>, <tag></tag>등의 구분자를 이용하여 입력의 구분된 부분을 명확하게 표시
- HTML, JSON 형태와 같은 구조화된 출력 요구
- 모든 조건이 만족하는지 체크하도록 요구
- 적절한 예시 제공
| 사용전 | 사용후 |
| 이 고양이 장난감은 진짜 잘만든 것 같아요. 우리 야옹이가 진짜 잘 가지고 노는데, 어떻게만드셨나요? 정말 최고입니다. 위의 텍스트에서 어떤 상품을 산 것인지 알려줘. |
입력받은 텍스트에 대해 어떤 상품을 산 것인지 JSON 형태로 출력해주세요. 다음을 따라서 해주세요. ## 예시 -입력 : 강아지 사료가 정말 질이 좋은 것 같아요. 우리 강아지가 건강해졌어요. -출력 : 강아지 사료 step1. 입력받은 텍스트에 상품명이 있는지 체크한다. step2. 출력이 json형태가 맞는지 체크한다. ## 입력 이 고양이 장난감은 진짜 잘만든 것 같아요. 우리 야옹이가 진짜 잘 가지고 노는데, 어떻게만드셨나요? 정말 최고입니다. |
![]() |
![]() |
사실 엄청나게 어려운 task를 준 것은 아니라 둘 다 답변을 잘 하는데요.
그래도 명확하고 구체적으로 말한 쪽이 더 정교하게 추출했죠. 어려운 task에 적용할수록 결과값 차이가 많이 납니다.
모델에게 생각할 시간을 주기
두 번째는 모델에게 자체적으로 생각할 시간을 주는 것입니다.
사람도 어떤 문제를 줄 때 급하게 푸는 것과 시간을 가지고 푸는 것의 결과가 꽤 차이가 납니다.
- step1, step2 등의 작업을 완료하는 데 필요한 단계를 명시
- 결론에 도달하기 전 자신만의 해결책을 찾도록 지시
| 사용전 | 사용후 |
| 철수가 사과 3개를 사고, 영희가 5개를 샀습니다. 둘이 합쳐 몇 개입니까? |
철수가 사과 3개를 샀고, 영희는 5개를 샀습니다. Step 1: 철수가 산 개수를 계산하세요. Step 2: 영희가 산 개수를 계산하세요. Step 3: 두 개수를 더해서 총합을 구하세요. 마지막으로 정답을 말해주세요. |
![]() |
![]() |
이번에도 간단한 예시라 다들 잘하지만, 확실히 생각할 시간을 주는 쪽이 더 정교하게 일을 처리하죠.
실제로 업무에 사용하다보면, 프롬프트를 어떻게 넣냐에 따라 받는 답변의 만족도가 달라집니다.
반복해서 프롬프트 수정하기
이제 질문의 답변을 잘 받는 방법을 배웠으니, 어떻게 더 나은 프롬프트를 만들 수 있는지 알아보겠습니다.
강의에서는 "반복적 작업으로 프롬프트 개발을 해야한다"라고 하셨는데요.
그 의미가 무엇인지 한번 살펴볼게요.
예를 들어 제가 파리 여행을 가는 데 chatgpt에게 계획을 세워달라고 하면, 다음과 같은 과정을 거칠 수 있습니다.
| 1step. 초기 계획 짜달라고하기 - 프롬프트 : 파리에서 3일간 여행할 건데, 여행 일정 짜줘. > 너무 일반적인 결과라 답변이 마음에 안들 수 있음 |
| 2step. 조금 더 원하는 포인트를 구체적으로 적기(예술,역사 중심 + 걷기 최소화) - 프롬프트 : 파리에서 3일간 여행할 건데, 예술과 역사 중심의 일정으로 짜줘. 걷는 시간은 하루 3시간 이하로 해줘. > 관심사와 걷기 시간 제한이 생김 |
| 3step. 더 구체적으로 원하는 포인트 적기(하루에 3개 이하 명소 + 대중교통 위주 + 맛집) - 프롬프트 : 파리에서 3일간 예술과 역사 중심으로 여행할 거야. 하루에 3개 이하의 명소만 추천해줘. 대중교통 이동 위주로 계획해줘. 그리고 맛집도 하루에 1곳씩 넣어줘. > 명소 수 제한, 이동 방식 지정, 맛집 추가 |
위의 예는 명확하고 구체적인 예시, 생각할 시간 주기 등의 방식을 쓰지 않고 간단하게 작성해 보았는데요.
실제로 저 두 방법을 다 넣는다고 해도, 완전히 원하는 결과가 나오지 않을 수 있습니다.
그런 경우에는 프롬프트를 조금씩 수정해서 원하는 결과가 나오도록 반복적인 작업을 해야합니다.
이번 포스팅에서는 프롬프트 엔지니어링 잘 하는 방법에 대해서 알려드렸는데요.
다음 포스팅에서는 어떤 문제에 LLM을 적용할 수 있을지 말씀드릴게요.
궁금한 부분이 있다면 언제든지 댓글 남겨주세요!

'인공지능공부 > LLM' 카테고리의 다른 글
| RAG Retrieval 단계 Langchain Document loaders 종류 알아보기 (0) | 2025.04.07 |
|---|---|
| RAG(Retrieval-Augmented Generation) 기본 개념 정리 및 Langchain코드 예제 (0) | 2025.04.03 |



