Skip to content

Conversation

@johnbosco0414
Copy link
Collaborator

@johnbosco0414 johnbosco0414 commented Oct 9, 2025

제목(필수): [TYPE]: 제목 예) [FEAT]: 회원가입 기능 추가

제목 규칙 자세히 보기
  • 형식: [TYPE]: 제목
  • 제한: 50자 이내, 첫 글자 대문자, 명령문
  • TYPE: FEAT FIX REFACTOR COMMENT STYLE TEST CHORE INIT

무엇을 / 왜

  • 무엇(What):
  1. AI 성능 최적화
  • application.yml의 maxOutputTokens 최적화 (384 → 128로 조정)
  • SituationPrompt 프롬프트 템플릿 간소화 (불필요한 예시/가이드라인 제거)
  • Context 길이 제한 적용 (previousNodes 최대 3개, 각 50자 제한)
  • topK 값 조정 (5 → 3으로 후보 축소)
  • 스레드풀 설정 적용 (TextAiConfig에 스레드풀 구성)
  1. 사용자 정보 반영 로직 추가
  • BaseScenarioPrompt에 사용자 기본정보 필드 추가 (birthday, gender, mbti, beliefs)
  • BaseScenarioPrompt에 사용자 성향정보 필드 추가 (lifeSatis, relationship, workLifeBal, riskAvoid)
  • DecisionScenarioPrompt에 동일한 사용자 정보 필드 추가
  • Null-safe 처리 로직 구현 (성향 정보 미입력 시 "미입력" 표시)
  1. 테스트 코드 재작성
  • AiServiceImplTest 전면 재작성 (기존 로직 문제로 인한 완전 교체)
  • JSON 파싱 로직 개선 (SituationPrompt.extractSituation() ObjectMapper 기반으로 변경)
  1. 더미데이터 추가
  • InitData에 SceneCompare 더미데이터 생성 로직 추가 (6개: TOTAL + 5개 지표)

  • InitData의 user1에 성향정보 더미값 추가 (lifeSatis: 6, relationship: 7, workLifeBal: 8, riskAvoid: 5)

  • 왜(Why):

  1. AI 성능 최적화 이유
  • 응답속도 개선: 기존 10초 이상 소요되던 상황 생성을 2-3초로 단축하여 사용자 경험 개선
  • 토큰 비용 절감: maxOutputTokens 축소로 API 호출 비용 66% 감소
  • 불필요한 출력 제거: 프롬프트 간소화로 AI가 핵심 내용만 생성하도록 유도
  • 성능 병목 해소: 긴 context와 높은 topK 값이 응답 지연의 주 원인이었음
  • 동시성 처리 향상: 스레드풀 적용으로 여러 AI 호출을 효율적으로 병렬 처리
  1. 사용자 정보 반영 이유
  • 개인화된 시나리오 생성: 사용자의 성별, 나이, MBTI, 가치관에 맞춤형 인생 시나리오 제공
  • 현실성 향상: 워라밸 중요도, 위험 회피 성향 등 개인 성향을 반영하여 더욱 현실적인 결과 도출
  • 사용자 만족도 고려: 현재 삶/관계 만족도를 바탕으로 사용자의 심리 상태에 맞는 시나리오 생성
  • 설계 의도 구현: 원래 기획에서 사용자 정보를 반영하기로 했으나 누락된 부분 보완
  1. 테스트 코드 재작성 이유
  • 로직 오류 수정: 기존 AiServiceImplTest가 꼬여서 정상 작동하지 않음
  • JSON 파싱 정확도: 문자열 substring 방식의 한계로 콤마(,)가 포함된 응답 파싱 실패 → ObjectMapper로 전환
  1. 더미데이터 추가 이유
  • 프론트엔드 개발 지원: 비교 분석 화면 개발 시 실제 응답 데이터 확인 가능
  • 데이터 완성도: 기존 시나리오 더미데이터에는 비교 분석이 없어 불완전했음

어떻게(요약) — 3줄 이내

  1. AI 응답 성능 최적화: 상황 생성(SituationPrompt) 응답시간을 10초 → 2-3초로 단축 (maxOutputTokens, 프롬프트 간소화, context 제한, topK 조정, 스레드풀 적용)
  2. 사용자 개인화 강화: 시나리오 생성 시 사용자 기본정보(생년월일, 성별, MBTI, 가치관)와 성향정보(삶 만족도, 관계 만족도, 워라밸 중요도, 위험 회피 성향) 반영
  3. 테스트 안정성 및 더미데이터 확충: AiServiceImplTest 전면 재작성으로 테스트 신뢰성 확보, SceneCompare 더미데이터로 비교 분석 기능 검증 가능

영향 범위

  • API 변경
  • DB 마이그레이션
  • Breaking Change
  • 보안/권한 영향
  • 문서/가이드 업데이트 필요

체크리스트

  • 타입 라벨 부착 (FEAT/FIX/REFACTOR/COMMENT/STYLE/TEST/CHORE/INIT)
  • 로컬/CI 테스트 통과
  • 영향도 점검 완료
  • 주석/문서 반영(필요 시)

ToDo (선택)

  • 할 일 1
  • 할 일 2

스크린샷/증빙(선택)

이슈 연결 (자동)

Closes #87

@johnbosco0414 johnbosco0414 self-assigned this Oct 9, 2025
@johnbosco0414 johnbosco0414 added the REFACTOR 리팩토링 label Oct 9, 2025
@lcs9317 lcs9317 mentioned this pull request Oct 9, 2025
11 tasks
Copy link
Collaborator

@simount3 simount3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!

Copy link
Collaborator

@lcs9317 lcs9317 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다

@johnbosco0414 johnbosco0414 merged commit c13bea3 into main Oct 9, 2025
3 checks passed
@lcs9317 lcs9317 deleted the aiOptimization branch October 9, 2025 02:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

REFACTOR 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REFACTOR]: AI처리시간 최적화

4 participants