프롬프트 공유 논란으로 보는 프롬프트 엔지니어링(Prompt Engineering)의 본질
프롬프트…란 무엇인가? - LLM과 원만하게 합의하시기 바랍니다.
최근 “프롬프트 공유 안 하는 신입”이라는 글이 스레드에서 꽤 화제가 되었습니다. 제가 읽기엔 AI를 도입한 회사에서 발생할 수 있는 갈등과, 팀장으로서 어떻게 해야 하는가 하는 고민 정도의 글로 보였습니다.
스레드에 공유가 되고 퍼지고, 여기저기 살이 붙더니 “신입의 노하우를 착취하려는 회사” vs “사회 경험 없는 싸가지 없는 MZ” 정도의 구도로 의견이 나뉘었습니다. 아마 개인의 경험들이 투영되어 상황에 이입된 게 아닌가 하는 생각도 듭니다.
회사의 상황이나 신입의 행동, 생각을 글에서 확인할 수 있는 정보가 적으니, 저는 프롬프트1에 대해서 얘기해보고자 합니다.
프롬프트 엔지니어링의 진화
LLM 서비스를 관심 있게 살펴보다 보니, 현재는 프롬프트 엔지니어2 > 컨텍스트 엔지니어링3 > 하네스4 엔지니어 > 암묵지5에 대한 고민으로 빠르게 흘러왔다고 느낍니다. 프롬프트 엔지니어는 필요 없다는 주장도 간간이 보입니다. 사실 프롬프트가 근간이 되기 때문에 필요 없다기보다, 잘 짜인 프롬프트 문장 자체의 가치는 예전보다 낮아지고, 맥락과 절차의 중요성이 커졌다고 표현하는 게 더 좋겠다고 생각합니다.
요즘은 프롬프트를 처음부터 완성문처럼 쓰기보다, LLM과 대화하면서 조건을 정리하고 압축하는 방식이 훨씬 자연스럽다고 느낍니다. 적어도 제가 사용하는 범위에서는 이 방식이 가장 빠르고 반복 사용에 유리한 방법이었습니다.
프롬프트 만드는 방법
- 챗지피티, 클로드, 제미나이 뭐든 채팅창을 엽니다.
- LLM에게 원하는 것을 얘기합니다. 두서없어도 상관없습니다.
- LLM의 답변을 보고, 추가 또는 삭제를 요청합니다.
- 작업에 필요한 맥락을 충분히 쌓습니다.
- 재사용 가능한 프롬프트로 압축해달라고 요청합니다.
- 실제 테스트를 여러 차례 거치며, 일관성과 재사용 가능성을 테스트합니다.
오히려 LLM과 얘기하는 과정에서 생각지 못한 부분, 대화 중 확장된 생각이 반영되어 개선된 경우가 많습니다.
이렇게 만들어진 프롬프트는 별도로 저장하고, 제가 말하는 스킬 형태나 에이전트 형태로 재사용됩니다. 여기서 한 가지 짚고 넘어가야 할 점은, 프롬프트의 결과물은 멱등성6을 보장하지는 않는다는 것입니다.
(1) 프롬프트(Prompt) — AI 모델에게 특정 작업을 수행하도록 지시하는 입력 문장이나 명령어입니다. OpenAI 가이드 보기 →
(2) 프롬프트 엔지니어(Prompt Engineer) — AI로부터 최적의 결과물을 얻기 위해 질문을 설계하고 최적화하는 역할을 의미합니다.
(3) 컨텍스트 엔지니어링(Context Engineering) — AI가 문제를 정확히 이해하도록 필요한 배경 지식, 데이터, 규칙을 효과적으로 구성하여 제공하는 기술입니다. Anthropic 기술 블로그 →
멱등성과 스킬의 형태
LLM은 같은 프롬프트를 넣어도 매번 완전히 같은 결과를 내지는 않습니다. 하지만 일관성을 가진 작업물의 생성은 가능합니다. 만약 멱등성을 원한다면, 프롬프트만으로 해결하려 하기보다 스크립트나 구조화된 출력 형식을 함께 사용하는 편이 낫습니다. 그리고 그 사용법을 프롬프트로 정리하여 스킬의 형태로 만들면 됩니다.
회사에서 만든 생성물은 회사에 귀속된다고 생각하는 것 같습니다. 다만 프롬프트의 경우는 새로운 형태의 작업물이기 때문에 그 의견이 분분합니다.
하지만 업무 시간과 회사 자원으로 만든 프롬프트라면, 최소한 업무 결과를 재현하는 데 필요한 형태로 문서화하고 공유하는 쪽이 조직 운영상 자연스럽다고 봅니다. 프롬프트 작성법은 이미 공개된 자료가 많기 때문에, 도메인 지식을 많이 가진 타 팀원들의 의지에 따라 신입의 결과물과 비슷하거나 나아질 확률이 높다고 생각합니다.
(4) 하네스(Harness) — 에이전트가 도구를 사용하거나 특정 절차를 안전하고 일관되게 수행할 수 있도록 감싸는 실행 구조입니다. Agent Skills 개념 확인 →
(5) 암묵지(Tacit Knowledge) — 말이나 글로 설명하기 어려운, 개인의 경험이나 직관에 녹아 있는 노하우를 뜻합니다.
(6) 멱등성(Idempotency) — 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미합니다.
공유해야 할 것은 '로그'가 아니라 '절차'
뭐 이런 얘기를 언급했다가 무수한 조롱을 받았습니다만…
물론 LLM과의 대화 내역을 내놓으라면 저는 반대의 입장입니다. 대화 내역은 민감정보에 가까운 데이터라고 생각합니다. (저도 제 대화 내역을 공개하라고 하면 바로 퇴사를....)
제가 말하는 공유는 전체 대화 로그를 내놓으라는 뜻이 아니라, 업무 결과를 재현할 수 있는 최소한의 프롬프트, 기준, 절차를 정리하는 것에 가깝습니다.
사실 더 중요한 것은 암묵지에 관한 내용입니다. 신입사원의 노하우는 프롬프트를 만들어내는 능력이지, 그 결과물이 아니라고 생각합니다. 다음 글에는 암묵지에 대해 이어 적어보도록 하겠습니다.
참고 문서
- OpenAI API Docs — Working with evals
프롬프트를 테스트 입력으로 실행하고, 결과를 분석한 뒤 반복 개선하는 흐름을 참고했습니다. - OpenAI API Docs — Prompt generation
작업 설명이나 기존 프롬프트를 바탕으로 LLM이 프롬프트를 생성·개선할 수 있다는 설명을 참고했습니다. - Anthropic Docs — Prompt engineering overview
프롬프트 엔지니어링 전에 성공 기준, 경험적 테스트 방법, 개선할 초안 프롬프트를 먼저 갖추라고 설명하고, Claude Console의 prompt generator와 prompt improver를 소개하는 부분을 참고했습니다.