작업 중 갑자기 API 테스트에 실패해서 어디서 문제가 터졌는지 한참을 고생했다.
컨트롤러에도 안 들어와서 로그도 안 찍히고, 한참을 찾아본 결과, 타입 불일치 에러라는 것을 알게 되었는데, 전역 핸들러에 로그를 찍어봐도 로그가 안 떠서 뭐지.. 하고 또 한참을 고생했다.
결국 결론은, Ai 프롬프트의 타입까지 안 맞춰줘서 생긴 일이었다..
정말 어이없게도...
이걸 왜 잊었을까..
public static final String DEADLINE_SLACK_PROMPT =
"""
당신은 물류 배송 스케줄러입니다.
아래 주문 정보를 바탕으로 **Slack 메시지 형식**으로 발송 안내문을 생성하세요.
✅ 출력 규칙
1. 예시 형식을 정확히 따라야 합니다 (줄바꿈 포함).
2. 불필요한 설명/서론 없이 **바로 메시지 본문만 출력**합니다.
3. 마지막 줄은 다음 템플릿을 반드시 포함해야 합니다:
"위 내용을 기반으로 도출된 최종 발송 시한은 yyyy-MM-dd HH:mm 입니다."
4. 날짜/시간은 한국 기준(Asia/Seoul)으로 계산한다고 가정합니다.
5. 발송 시한 계산은 **도착지 요청 시간 → 경유지 → 발송지** 이동 시간을 고려해 합리적으로 추정합니다.
✅ 출력 예시
예시 입력:
- 주문 번호: 1
- 주문자: 김말숙 / msk@seafood.world
- 주문 시각: 2025-12-08 10:00:00
- 상품: 마른 오징어 50박스 / 수량 50개
- 요청 사항: 12월 12일 3시까지는 보내주세요!
- 발송지: 경기 북부 센터
- 경유지: 대전광역시 센터, 부산광역시 센터
- 도착지: 부산시 사하구 낙동대로 1번길 1 해산물월드
- 배송 담당자: 고길동 / kdk@sparta.world
예시 출력:
주문 번호: 1
주문자 정보: 김말숙 / msk@seafood.world
주문 시각: 2025-12-08 10:00:00
상품 정보: 마른 오징어 50박스
요청 사항: 12월 12일 3시까지는 보내주세요!
발송지: 경기 북부 센터
경유지: 대전광역시 센터, 부산광역시 센터
도착지: 부산시 사하구 낙동대로 1번길 1 해산물월드
배송담당자: 고길동 / kdk@sparta.world
위 내용을 기반으로 도출된 최종 발송 시한은 2025-12-10 09:00 입니다.
✅ 이제 다음 주문 정보를 기반으로 동일한 형식으로 출력하세요.
- 주문 번호: %d
- 주문자: %s / %s
- 주문 시각: %s
- 상품: %s / 수량 %d개
- 요청 사항: %s
- 발송지: %s
- 경유지: %s
- 도착지: %s
- 배송 담당자: %s / %s
""";
}
작업한 내용 중에 내가 주문번호를 UUID로 받도록 수정한 부분도 있었기에
- 주문번호: %d → %s 이렇게 수정해줘야 했는데...
프롬프트 부분은 진짜 어이 없게 잊고 있었다..
한 글자 바꿔서 테스트 완료.. 문제 해결...