Skip to content

✨ [Feat] AI 직무 브리핑 중계 API#62

Merged
jwon0523 merged 1 commit into
developfrom
feat/55
Jun 4, 2026
Merged

✨ [Feat] AI 직무 브리핑 중계 API#62
jwon0523 merged 1 commit into
developfrom
feat/55

Conversation

@jwon0523

@jwon0523 jwon0523 commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

✨ PR 유형

Feat

🛠️ 작업 내용

앱 → Spring Backend → AI 중계 서버 흐름으로 추천 직무 기준 큐레이션 브리핑 카드를 중계하는 GET /api/v1/briefings 추가.

  • 계약 DTO: AI 중계(POST /api/v1/ai/briefing) 요청/응답 mirror — AiBriefingRequest({job_ids} snake_case), AiBriefingResponse(briefings[].{job_id,job_name,headline,summary,skills,sources[]}), published_at → publishedAt 매핑, 미지 필드 무시
  • BriefingClient: aiRelayWebClient 로 호출, 실패/envelope null/!success 시 AI_RELAY_ERROR(502) — 기존 AiRecommendClient/ChatbotClient 동형
  • BriefingService: 활성 추천의 직무 코드를 적합도(score) 내림차순 + 중복 제거로 추출해 중계, 큐레이션 없는 직무는 응답에서 빠짐(부분 충족). 추천 직무가 없으면 AI 422 회피 후 빈 결과. 활성 추천 없으면 RECOMMENDATION_NOT_FOUND(404)
  • 앱 응답 DTO 분리: AI 계약과 디커플 (code/name 하우스 컨벤션)
  • BriefingController: @AuthenticationPrincipal 로 userId 추출, SecurityConfiganyRequest().authenticated() 로 보호 (별도 변경 불필요)

📋 추후 진행 상황

(해당 없음)

📌 리뷰 포인트

  • BriefingService.jobCodesByScoreDesc — 적합도 내림차순 + LinkedHashSet 중복 제거 순서, null job/code 방어
  • AI 계약 DTO ↔ FastAPI 실제 envelope 정합 (AiBriefingEnvelopeContractTest 가 실 응답 역직렬화 검증)
  • 빈 직무 목록 short-circuit (AI 422 회피) 분기

🔗 관련 이슈

Closes #55

📸 스크린샷

(해당 없음)

✅ 체크리스트

  • `./gradlew spotlessApply` 로 포매팅 적용
  • `./gradlew spotlessCheck` 통과
  • `./gradlew checkstyleMain checkstyleTest` 통과
  • `./gradlew build` 성공
  • `./gradlew test` 모든 테스트 통과
  • 관련 문서 업데이트 / 커밋 메시지 컨벤션 확인

@jwon0523 jwon0523 self-assigned this Jun 4, 2026
@jwon0523 jwon0523 added the enhancement New feature or request label Jun 4, 2026
@jwon0523 jwon0523 changed the base branch from main to develop June 4, 2026 15:40
@jwon0523 jwon0523 merged commit b55c39f into develop Jun 4, 2026
2 checks passed
@jwon0523 jwon0523 deleted the feat/55 branch June 4, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Feat: AI 직무 브리핑 중계 API

1 participant