Product Management

프롬프트 검토 자동화하기

jonny_stepout 2025. 10. 23. 10:28

회사에서 저는 프롬프트로 기능을 구현하는 업무를 주로 맡았습니다.

 

프롬프트로 기능을 구현하기 위해선, 특히 상용화까지 하기 위해선 굉장히 많은 노력과 노가다가 필요합니다.

 

이번 포스팅에서는 어떻게 반복적으로 프롬프트를 검증하고, 프롬프트를 상용화까지 진행하는지 살펴보려 합니다.

 

1. 기능 정의

먼저 프롬프트를 작성하기에 앞서서 기능을 정의합니다. 우리가 프롬프트를 어떤 기능을 위해 사용하는지 정의해야 합니다.

저는 이번 포스팅을 위해 간단한 예시를 들겠습니다.

 

"사용자의 개인 정보를 기반으로 국내 여행지를 추천해준다." 라고 기능을 정의하겠습니다.

 

2. 기능 구현을 위한 프롬프트 요소 정의

다음은 정의된 기능을 프롬프트에 텍스트로 입력하기 위해 프롬프트의 기본 구성 요소를 정의합니다.

저는 사용자의 개인 정보를 기반으로 할 것이기 때문에 개인 정보를 입력받을 수 있도록 필드를 정의합니다.

 

Input data

- 사용자 나이

- 사용자 성별

- 사용자의 거주지

- 사용자의 MBTI

- 같이 가는 인원수

 

기본 가이드라인 정의

당신은 한국 여행 추천 전문가입니다.  
사용자가 입력한 개인 정보를 기반으로, 대한민국 내에서 가장 적합한 여행지를 추천하는 것이 당신의 역할입니다.  

[당신의 목표]
- 사용자의 나이, 성별, 거주지, MBTI, 동행 인원수를 종합적으로 고려해 맞춤형 여행지를 제안하세요.
- 각 추천은 사용자의 성향과 상황에 어울리는 이유를 명확히 설명해야 합니다.
- 대한민국 내 여행지만 추천해야 하며, 해외 지역은 절대 언급하지 마세요.
- 결과는 사용자가 바로 이해할 수 있도록 **자연스럽고 따뜻한 한국어 문체**로 작성하세요.

[추천 작성 원칙]
1. **성향 반영**: MBTI 및 나이대, 성별을 고려하여 성향에 맞는 분위기의 여행지를 고르세요.  
   (예: INFP → 감성적이고 조용한 장소, ESTJ → 활동적이고 계획적인 코스)
2. **거주지 고려**: 거주지로부터 이동이 부담되지 않는 거리나 교통편을 고려하세요.
3. **동행 인원 반영**: 혼자/커플/가족/친구와 함께 등 인원에 따라 추천 유형을 조정하세요.
4. **정보 구성**: 각 추천지는 아래 요소를 반드시 포함해야 합니다.
   - 여행지 이름  
   - 추천 이유 (1~2문장)  
   - 주요 활동 또는 명소  
   - 이동 거리 또는 교통 편의 요약
5. **추천 개수**: 2~3곳을 제안하세요.
6. **금지사항**: 
   - 해외 여행지, 특정 상호명, 광고성 문구를 포함하지 마세요.  
   - 불필요한 감탄사나 장황한 표현은 피하세요.

[출력 예시 형식]
1️⃣ <여행지 이름>  
- 추천 이유: <사용자 성향과 연결된 이유>  
- 주요 활동: <대표 명소나 활동 2~3가지>  
- 이동 거리: <사용자 거주지 기준 대략적인 소요 시간 또는 교통편>

 

 

3. 검토 시트 제작

복수의 데이터를 검토하기 위해 검토 시트를 만듭니다. 아래와 같이 시트를 구성합니다.

input data 컬럼들: 위에서 정의한 인풋 데이터를 각 컬럼에 적습니다.

Expected 결과값: 프롬프트로 결과를 생성하기 전 기대값들을 적어둡니다.

Output 출력부분: 실제로 출력했을때 결과가 찍히는 컬럼을 정의합니다.

검토자 코멘트 부분: 결과값과 같거나 다를 때 최종적으로 검토자가 Pass 또는 Fail을 판단하고, 코멘트를 적습니다.

 

 

4. 샘플 데이터 확보

서로 다른 케이스를 확보합니다. 다양한 사용자의 케이스가 나올 것을 대비하여, 최대한 다르고 많은 케이스를 확보하여 프롬프트를 돌려봅니다. 가장 좋은 것은 실제 데이터를 기반으로 측정하는 것이 가장 좋습니다.

 

5. 검토 자동화

한번 프롬프트를 개선할 때마다 수기로  수 백 개의 케이스를 모두 호출해볼 수 없으니 검토 자동화를 구축합니다.

 

자동화는 Google Spread Sheet의 App Script를 활용하여 구축합니다.

 

제가 세운 자동화의 목표는,

"한 행씩 검토 또는 선택 행 이후부터 끝까지 검토하는 기능 2개를 구현" 입니다.

 

이를 위해서 저는 다음과 같은 UI로 구성되도록 하였습니다

 

아예 별도의 탭이 생겨서 그걸 누르면 기능을 선택할 수 있도록 했습니다.

 

이를 위해서 아래와 같은 구성으로 코드를 작성했습니다. (GPT의 도움을 받아 작성하였습니다.)

1) 메뉴 등록

2) 각 기능 정의

3) 행 단위 처리

4) OpenAI API 호출 (이때 코드에 직접 API Key를 삽입하지 않고, 설정에 들어가서 따로 변수를 지정해줍니다.)

5) 응답 파싱 및 JSON 블록만 추출

6) 결과 기록

7) 로그 찍기

 

반복적으로 실행해가며 코드를 수정 보완하여 완성했습니다.