-
Notifications
You must be signed in to change notification settings - Fork 0
Description
변경 유형 (Type): REFACTOR
제목(Subject): AI처리시간 최적화
무엇을 / 왜
무엇(What):
-
AI 성능 최적화
application.yml의 maxOutputTokens 최적화 (384 → 128로 조정)
SituationPrompt 프롬프트 템플릿 간소화 (불필요한 예시/가이드라인 제거)
Context 길이 제한 적용 (previousNodes 최대 3개, 각 50자 제한)
topK 값 조정 (5 → 3으로 후보 축소)
스레드풀 설정 적용 (TextAiConfig에 스레드풀 구성) -
사용자 정보 반영 로직 추가
BaseScenarioPrompt에 사용자 기본정보 필드 추가 (birthday, gender, mbti, beliefs)
BaseScenarioPrompt에 사용자 성향정보 필드 추가 (lifeSatis, relationship, workLifeBal, riskAvoid)
DecisionScenarioPrompt에 동일한 사용자 정보 필드 추가
Null-safe 처리 로직 구현 (성향 정보 미입력 시 "미입력" 표시) -
테스트 코드 재작성
AiServiceImplTest 전면 재작성 (기존 로직 문제로 인한 완전 교체)
JSON 파싱 로직 개선 (SituationPrompt.extractSituation() ObjectMapper 기반으로 변경) -
더미데이터 추가
InitData에 SceneCompare 더미데이터 생성 로직 추가 (6개: TOTAL + 5개 지표)
InitData의 user1에 성향정보 더미값 추가 (lifeSatis: 6, relationship: 7, workLifeBal: 8, riskAvoid: 5)
왜(Why): -
AI 성능 최적화 이유
-
응답속도 개선: 기존 10초 이상 소요되던 상황 생성을 2-3초로 단축하여 사용자 경험 개선
-
토큰 비용 절감: maxOutputTokens 축소로 API 호출 비용 66% 감소
-
불필요한 출력 제거: 프롬프트 간소화로 AI가 핵심 내용만 생성하도록 유도
-
성능 병목 해소: 긴 context와 높은 topK 값이 응답 지연의 주 원인이었음
-
동시성 처리 향상: 스레드풀 적용으로 여러 AI 호출을 효율적으로 병렬 처리
-
사용자 정보 반영 이유
개인화된 시나리오 생성: 사용자의 성별, 나이, MBTI, 가치관에 맞춤형 인생 시나리오 제공
현실성 향상: 워라밸 중요도, 위험 회피 성향 등 개인 성향을 반영하여 더욱 현실적인 결과 도출
사용자 만족도 고려: 현재 삶/관계 만족도를 바탕으로 사용자의 심리 상태에 맞는 시나리오 생성
설계 의도 구현: 원래 기획에서 사용자 정보를 반영하기로 했으나 누락된 부분 보완 -
테스트 코드 재작성 이유
로직 오류 수정: 기존 AiServiceImplTest가 꼬여서 정상 작동하지 않음
JSON 파싱 정확도: 문자열 substring 방식의 한계로 콤마(,)가 포함된 응답 파싱 실패 → ObjectMapper로 전환 -
더미데이터 추가 이유
프론트엔드 개발 지원: 비교 분석 화면 개발 시 실제 응답 데이터 확인 가능
데이터 완성도: 기존 시나리오 더미데이터에는 비교 분석이 없어 불완전했음
어떻게(요약) — 3줄 이내
- AI 응답 성능 최적화: 상황 생성(SituationPrompt) 응답시간을 10초 → 2-3초로 단축 (maxOutputTokens, 프롬프트 간소화, context 제한, topK 조정, 스레드풀 적용)
- 사용자 개인화 강화: 시나리오 생성 시 사용자 기본정보(생년월일, 성별, MBTI, 가치관)와 성향정보(삶 만족도, 관계 만족도, 워라밸 중요도, 위험 회피 성향) 반영
- 테스트 안정성 및 더미데이터 확충: AiServiceImplTest 전면 재작성으로 테스트 신뢰성 확보, SceneCompare 더미데이터로 비교 분석 기능 검증 가능
영향 범위
- API 변경
- DB 마이그레이션
- Breaking Change
- 보안/권한 영향
- 문서/가이드 업데이트 필요
체크리스트
- 타입 라벨 부착 (FEAT/FIX/REFACTOR/COMMENT/STYLE/TEST/CHORE/INIT)
- 로컬/CI 테스트 통과
- 영향도 점검 완료
- 주석/문서 반영(필요 시)
ToDo (선택)
- 할 일 1
- 할 일 2
스크린샷/증빙(선택)
Auto-created for PR #86