Skip to content

[✨Feat] LLM Job 상태 조회 skeleton 구현 #38

Description

@yong203

목표

LLM 기반 비동기 작업의 공통 기반인 llm_jobs persistence와 Job 상태 조회 API skeleton을 구현한다.

이번 이슈는 실제 Job 생성 API나 LLM provider 호출 없이, 다음 submit API가 사용할 Job 저장 모델과 GET /llm-jobs/{jobId} 응답 계약을 먼저 고정한다.

작업 범위

  • 관련 요구사항/API:

    • REQ-005
    • API-015 GET /llm-jobs/{jobId}
  • 포함할 것:

    • llm_jobs JPA entity/repository 추가
    • Job type/status/target/result/error/progress 필드 구현
    • GET /llm-jobs/{jobId} controller/service/DTO 구현
    • targetType=COVER_LETTER인 Job은 연결된 자기소개서의 owner 기준으로 접근 권한 검증
    • 존재하지 않는 Job, 다른 사용자 소유 자기소개서에 연결된 Job, 삭제된 자기소개서에 연결된 Job은 NOT_FOUND
    • partialResult는 이번 이슈에서 항상 null
    • repository/service/controller 테스트 추가
    • docs/api/README.md, docs/api/llm-jobs.md, docs/status.md 갱신
  • 제외할 것:

    • API-014 submit 구현
    • API-016 SSE stream
    • 실제 LLM provider 호출
    • background worker/async executor
    • ReviewVersion 생성
    • partial result cache/storage

완료 기준

  • 저장된 Job을 GET /llm-jobs/{jobId}로 조회할 수 있다.
  • 응답에 id, type, status, target, progress, attempt, resultRef, error, createdAt, completedAt이 계약대로 포함된다.
  • partialResult는 skeleton 범위에서 null로 반환된다.
  • 다른 사용자 소유 또는 삭제된 자기소개서에 연결된 Job은 NOT_FOUND를 반환한다.
  • git diff --check, ./gradlew test, ./gradlew check가 통과한다.

참고

Metadata

Metadata

Assignees

Labels

✨ Feature새로운 기능 구현

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions