요즘은 새로운 모델, 새로운 workflow, 새로운 AI skill이 너무 빠르게 등장합니다. 조금만 시선을 돌려도 또 다른 개념이나 도구가 화제가 됩니다. 이런 흐름 속에서는 프롬프트 엔지니어링(Prompt Engineering)이 다소 지난 주제처럼 보일 수도 있습니다.
하지만 실제로 LLM을 업무에 활용해보면 이야기가 조금 다릅니다. 결과물의 품질을 가장 크게 좌우하는 요소 중 하나는 여전히 프롬프트입니다. 모델이 좋아졌다고 해서 프롬프트가 중요하지 않게 된 것은 아니며 오히려 지금은 무엇을, 어떻게 요청해야 하는지가 더 중요해졌습니다.
1. 프롬프트 엔지니어링을 어떻게 봐야 할까
프롬프트 엔지니어링은 종종 “문장을 얼마나 그럴듯하게 쓰느냐”의 문제로 오해됩니다. 하지만 지금 시점에서 그 정의만으로는 충분하지 않습니다.
실무에서 프롬프트 엔지니어링은 모델이 다음 네 가지를 분명히 이해하도록 요청을 설계하는 일에 가깝습니다.
- 무엇을 해야 하는가
- 어떤 맥락(context)을 알아야 하는가
- 어떤 제약(constraints)을 따라야 하는가
- 어떤 형태의 결과물을 내야 하는가
즉, 좋은 프롬프트는 멋진 표현을 찾는 작업이라기보다, 모델이 헷갈리지 않도록 일을 잘 정의하는 작업에 가깝습니다. 핵심은 더 그럴듯한 표현이 아니라 더 명확한 지시(clear instructions), 충분한 맥락(context), 그리고 원하는 출력 형태(output shape)입니다.
2. 무엇이 달라졌는가
초기 LLM 활용기에는 프롬프트가 일종의 “요령”처럼 다뤄지는 경우가 많았습니다.
대표적으로는 이런 방식들이 자주 언급됐습니다.
- “Act as a consultant” 같은 페르소나
- 길게 만들어 둔 범용 템플릿
- 표현만 조금 바꿔도 결과가 크게 달라진다는 기대
이런 방식이 완전히 틀렸던 것은 아닙니다. 당시 모델들은 framing에 더 민감했고, role이나 tone 지정이 실제로 도움이 되는 경우도 많았습니다.
다만 시간이 지나면서 중심이 달라졌습니다. 모델이 점점 더 많은 의도를 기본적으로 이해하게 되면서, 지금 더 중요한 것은 “어떻게 있어 보이게 쓰느냐”보다 “어떤 일을 시키는지 분명하게 정의하느냐”가 되었습니다.
3. 지금도 유효한 다섯 가지
모델이 좋아졌다고 해서 프롬프트가 덜 중요해진 것은 아닙니다. 다만 무엇이 중요한지가 더 분명해졌습니다.
1) 해야 할 일을 명확히 적기
모델은 생각보다 많은 것을 “추측”합니다.
그래서 요청이 넓을수록 답변도 넓고 무난해지기 쉽습니다.
예를 들어 “이 개념을 설명해줘”보다는 “이 개념을 실무에서 처음 접한 소프트웨어 종사자에게 간단하고 실용적으로 설명해줘”가 훨씬 강한 프롬프트입니다.
2) 필요한 맥락(context) 주기
같은 질문도 누가 읽을지, 어디에 쓸지, 어느 정도 배경지식을 전제로 하는지에 따라 좋은 답이 달라집니다.
실제로 도움이 되는 답을 얻으려면 최소한 다음 중 일부는 함께 주는 편이 좋습니다.
- 독자가 누구인지
- 어느 정도 배경지식을 가정하는지
- 무엇이 가장 궁금한지
- 이 답변을 어디에 쓸 것인지
3) 제약 조건을 분명히 적기
좋은 결과물과 그럴듯한 결과물의 차이는 제약 조건에서 갈립니다.
예를 들면 이런 식입니다.
- 5분 안에 읽히는 분량으로
- 불필요한 jargon은 제외하고
- bullet list 중심으로
- 예시는 1개만 포함해서
이런 제약이 없으면 모델은 틀린 답을 내지 않더라도, 내 목적과는 맞지 않는 답을 내기 쉽습니다.
4) 원하는 output 형태를 지정하기
생각보다 많은 실패는 내용보다 형식 때문에 발생합니다.
사용자는 짧은 정리를 기대했는데 모델은 장문의 설명을 내놓고, 사용자는 비교를 원했는데 모델은 서술형 답변을 내놓는 식입니다. 그래서 다음처럼 output 형태를 지정하는 것이 도움이 됩니다.
- 짧은 설명
- 번호 목록
- 비교표
- 단계별 정리
- 요약 후 예시 1개
5) 필요하면 예시를 함께 주기
설명이 미묘한 작업일수록 “어떻게 해라”보다 “이 정도를 원한다”는 예시가 더 강력할 수 있습니다.
특히 스타일, 깊이, 답변의 밀도를 맞추고 싶을 때는 한 개의 짧은 예시가 긴 설명보다 효과적입니다.
4. 간단한 예시
예를 들어 아래처럼 묻는 상황을 생각해볼 수 있습니다.
하네스 엔지니어링(harness engineering)을 설명해줘.
이 프롬프트도 틀린 것은 아닙니다.
하지만 모델 입장에서는 여러 가지를 스스로 결정해야 합니다.
- 초보자를 위한 설명인지
- 프롬프트 엔지니어링과 비교해야 하는지
- agentic workflow 관점이 중요한지
- coding workflow 예시가 필요한지
- 짧은 정의가 필요한지, 구조적인 설명이 필요한지
반면 아래처럼 쓰면 훨씬 일이 분명해집니다.
프롬프트 엔지니어링에는 익숙하지만 agentic workflow에는 익숙하지 않은 소프트웨어 종사자를 대상으로 하네스 엔지니어링(harness engineering)을 설명해줘.
설명은 간결하고 실용적으로 작성해줘.
아래 다섯 가지만 포함해줘.
1. 하네스 엔지니어링이 무엇인지
2. LLM 시스템이 더 agentic해지면서 왜 중요해졌는지
3. 프롬프트 엔지니어링과 어떻게 다른지
4. AI coding workflow에서의 구체적인 예시 1개
5. 일상적으로 LLM을 사용하는 사람에게 줄 수 있는 팁 1개
답변은 불필요한 jargon 없이, 짧은 번호 목록 중심으로 정리해줘.
두 번째 프롬프트가 더 좋은 이유는 더 “영리한 문장”이어서가 아닙니다.
대신 다음 요소가 분명하기 때문입니다.
- 독자
- 범위
- 우선순위
- 답변 형식
이 차이가 바로 지금도 프롬프트 엔지니어링이 중요한 이유입니다.
5. 실무에서 바로 쓸 수 있는 간단한 템플릿
실제로는 거창한 프롬프트보다 아래 정도의 템플릿이 더 효과적입니다.
Task: 무엇을 하게 할 것인가
Context: 무엇을 알고 있어야 하는가
Constraints: 무엇을 포함하거나 피해야 하는가
Output: 어떤 형태로 받을 것인가
이 구조는 단순하지만, 프롬프트가 성공하거나 실패하는 이유를 꽤 정확하게 반영합니다.
6. 마무리
프롬프트 엔지니어링은 사라진 것이 아닙니다. 다만 조금 더 현실적인 기술이 되었습니다.
예전처럼 “한 줄의 비법”에 기대기보다는, 일을 분명하게 정의하고 맥락을 충분히 전달하며 원하는 결과물의 형태를 명시하는 쪽으로 중심이 이동했습니다.
모델은 계속 바뀌겠지만, 이 점은 당분간 크게 달라지지 않을 것 같습니다.
좋은 프롬프트는 대체로 더 신기한 프롬프트가 아니라, 더 잘 설계된 프롬프트입니다.