[강동7기 전Z전능 AI PM] 코멘토 청년취업사관학교 DAY 22
DAY 22 | 오답노트 PRD로 AI 기능 하나씩 테스트해보다
오늘 실습은 오답노트 서비스 PRD 하나를 계속 붙들고, 모델 선택부터 System Prompt, Temperature/Top-P, Output Length/Stop Sequence, Thinking Level, Function Calling, Search Grounding까지 옵션 하나씩 바꿔가며 결과가 어떻게 달라지는지 직접 비교하는 방식으로 진행됐다.
모델 비교: Flash vs Pro
| 비교 항목 | Flash | Pro |
|---|---|---|
| 응답 속도 | 5.2초 | 19.8초 |
| 피드백의 정확도 | ★★★★ | ★★★★★ |
| 설명의 깊이 | ★★★★ | ★★★★★ |
같은 PRD를 줬는데도 Flash는 “이번 주에 줄인 오답노트 작성 시간: 120분” 같은 문구와 F1의 크롭 기능 요구 정도를 잡아냈고, Pro는 훨씬 깊게 들어갔다. 종이 문제집에 이미 펜 자국이나 체크 표시가 남아있어서 사진을 찍으면 그 자체가 정답 힌트가 되어버린다는 지적, 복습을 끝낸 문제를 “졸업” 처리하는 흐름이 없다는 지적, 실제 벤더(Google Vision, Clova OCR, GPT-4o)로 PoC를 먼저 돌려보라는 제안, Anki식 SRS 버튼 방식 제안까지 나왔다. 속도와 깊이 사이의 트레이드오프를 체감한 시간이었다. 빠른 1차 스크리닝은 Flash로, 근거가 필요한 의사결정은 Pro로 나눠 쓰면 되겠다는 감이 왔다.
System Prompt 적용 전/후
시스템 프롬프트 없이 PRD를 검토시켰을 때는 F1~F4 기능별 적절성을 표로 정리하는 정도의, 다소 형식적인 분석이었다. “10년 차 서비스 기획 강사”라는 페르소나를 시스템 프롬프트로 넣자 훨씬 비판적인 피드백이 나왔다. 잘한 점(가치 제안의 명확성, 학습 루프 설계)과 부족한 점(F1·F2의 기술적 리스크 과소평가, F4가 MVP치고 무겁다는 점, 정답이 이미 적힌 문제집을 찍었을 때의 UX 누락)을 나누고, F1을 텍스트 추출 대신 이미지 크롭 중심으로, F2를 자동 분류 대신 수동 태그로 낮추라는 개선 방향을 제시했다. 마지막엔 “AI 추출 정확도가 70%밖에 안 된다면?”, “문제집에 이미 정답이 적혀 있다면?” 같은 질문 세 개로 마무리됐다.
정답이 이미 적힌 문제집을 찍으면 그 자체가 힌트가 되어버린다는 지적은 시스템 프롬프트 적용 후에만 나온 내용이었는데, 예전에 개발자로 일할 때도 이런 식으로 기획서에는 없던 실사용 케이스를 뒤늦게 발견해서 기획 쪽에 다시 요청했던 기억이 겹쳐 보였다. 정의・실제 서비스 예시・적용법이 포함됐는지, 잘한 점・부족한 점・개선 방향이 있는지, 무조건 긍정이 아니라 비판적인 내용인지, 마지막에 생각해볼 질문을 던지는지 — 이 네 가지 체크리스트가 시스템 프롬프트를 넣은 뒤에야 전부 충족됐다.
Temperature와 Top-P
슬로건 10개를 뽑는 프롬프트를 Temperature 0과 2로 각각 세 번씩 돌려봤다. 0에서는 세 번 다 거의 비슷한 결과가 나왔고, 2에서는 조금씩 달랐다. 다만 전체적인 구조와 방향성 자체는 크게 다르지 않았고, 서비스명이나 핵심 가치를 해석하는 방식에서만 차이가 났다. 이름 20개를 뽑는 프롬프트로는 Top-P 0.2와 1을 비교했는데, 0.2에서는 현실적인 이름이 많이 나왔고 1에서는 좀 더 독창적인 이름이 나왔다. 확정된 카피가 필요할 땐 Temperature를 낮추고, 브레인스토밍 단계에서는 높이면 되겠다는 게 실무적으로 바로 쓸 수 있는 기준이었다.
Output Length와 Stop Sequence
Output Length를 1000으로 잡고 “AI의 역사를 자세히 설명해줘”를 물었더니 문장이 자연스럽게 끝나지 못하고 중간에서 끊겼다. 답변 길이를 제한하는 옵션이 요약이 아니라 그냥 잘라내기라는 걸 눈으로 확인한 셈이다.
Stop Sequence는 “단점”이라는 단어로 걸어두고 “재택근무의 장점과 단점을 설명해줘”를 물었다. Stop Sequence를 걸어둔 쪽은 “단점”이라는 단어가 나오는 지점에서 답변이 멈췄고, 걸어두지 않은 쪽은 장단점 전체가 끝까지 출력됐다. 특정 섹션 이전까지만 받고 싶을 때 쓸 수 있는 옵션이라는 게 명확해졌다.
Thinking Level
| 비교 항목 | Minimal | High |
|---|---|---|
| 응답 속도 | 9.1초 | 14.7초 |
| 분석의 깊이 | ★★★★ | ★★★★★ |
| 근거 제시 | ★★★★ | ★★★★★ |
| 장단점 비교 | ★★★★ | ★★★★★ |
| 최종 결론의 설득력 | ★★★★ | ★★★★★ |
Minimal에서 가장 기억에 남은 답변은 “사용자가 문제를 등록하면서 ‘이게 어느 과목, 어느 단원 문제였지?‘라고 직접 선택하는 과정 자체가 메타인지를 자극하는 최소한의 학습 과정이 될 수 있다”는 문장이었다. 개발 비용을 줄이자는 논리가 아니라 기능을 없애는 게 오히려 학습 효과를 높일 수도 있다는, 교육 서비스 관점의 해석이라 인상적이었다.
High에서는 “사용자가 오답노트를 포기하는 가장 큰 Pain Point는 ‘문제를 옮겨 적는 5분’이지, ‘과목 버튼 하나를 누르는 1초’가 아니다”라는 답이 남았다. 핵심 문제를 수치로 대비시켜 MVP에서 무엇에 집중해야 하는지 우선순위를 명확히 제시했고, F1·F3·F4를 각각 왜 유지해야 하는지까지 비교해서 의사결정 과정 자체를 더 설득력 있게 보여줬다.
결과적으로 결론(F2를 걷어낸다는 판단)은 두 레벨이 같았지만, 그 결론에 이르는 근거와 설득력에서 차이가 났다. 아이디어를 많이 뽑아야 하거나 서비스 이름을 추천받거나 회의록을 요약할 때는 Minimal로 충분했고, PRD 리뷰나 MVP 우선순위 결정, 기능 제거 같은 의사결정이 걸린 작업에는 High가 더 맞았다.
Function Calling
“서울 날씨 어때?”라고 물었을 때 모델이 먼저 반환한 건 일반 답변이 아니라 함수 호출(Function Call)이었다. 호출된 함수는 get_weather, 전달된 인자는 city: Seoul. 여기에 {"condition":"맑음","temp_c":23}이라는 결과값을 입력해주자, 모델은 “현재 서울의 날씨는 맑음이며, 기온은 23°C입니다. 산책하기에 아주 좋은 날씨네요! 외출 시 가벼운 옷차림을 추천드려요”라는 자연스러운 문장으로 결과를 정리해줬다. 이론에서 배운 get_weather 명세가 실제로 어떻게 동작하는지 직접 확인한 부분이었다.
Search Grounding
“오늘 원/달러 환율이 얼마야?”를 Grounding 없이 물었을 때는 최신 정보를 주지 못했고 출처도 없이 일반적인 설명에 그쳤다. Grounding을 켜자 최신 정보와 함께 출처가 표시됐고, 실제 웹페이지까지 확인할 수 있었다. “이번 주말 서울 날씨 어때?”도 마찬가지로 최신 예보를 날짜 기준으로 설명하고 출처를 확인할 수 있었다. 최신 기준의 근거 있는 정보가 필요할 때 켜두면 되는 옵션이라는 게 명확했다.
취업 부트캠프 청년취업사관학교 새싹 aipm dx교육 ai교육 실무프로젝트 실무경험 취업포트폴리오 포트폴리오 전z전능 코멘토 모비니티