Skip to content

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

Merged
yong203 merged 1 commit into
devfrom
feat#38
Jun 19, 2026
Merged

[✨Feat] LLM Job 상태 조회 skeleton 구현#39
yong203 merged 1 commit into
devfrom
feat#38

Conversation

@yong203

@yong203 yong203 commented Jun 19, 2026

Copy link
Copy Markdown
Member

작업 내용

  • llm_jobs JPA entity와 repository를 추가했습니다.
  • Job type, status, target, progress, result reference, error 필드를 구현했습니다.
  • GET /llm-jobs/{jobId} 상태 조회 API를 추가했습니다.
  • 현재 사용자 소유의 active 자기소개서에 연결된 Job만 조회하도록 검증합니다.
  • skeleton 범위에서 partialResult는 항상 null로 반환합니다.
  • repository, service, controller 테스트를 추가했습니다.

관련 이슈

문서 반영

  • 반영한 문서:
    • docs/api/README.md
    • docs/api/llm-jobs.md
    • docs/status.md

확인 결과

  • ./gradlew test
  • ./gradlew check
  • git diff --check

Summary by CodeRabbit

릴리스 노트

  • New Features

    • LLM 작업 조회 기능 구현 - 작업 ID로 현재 진행 상태, 진행률, 결과 및 오류 정보 조회 가능
  • Documentation

    • API 문서 업데이트 - 작업 조회 API 상태를 '구현' 상태로 표기
    • 부분 결과 동작 명시 - 현재 skeleton 범위에서는 null 반환
  • Tests

    • 작업 조회 및 상태 검증 테스트 추가

@yong203 yong203 linked an issue Jun 19, 2026 that may be closed by this pull request
5 tasks
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

llm_jobs 테이블에 매핑되는 LlmJob JPA 엔티티와 관련 enum 4종, LlmJobRepository, LlmJobService.findMyJob, LlmJobResponse DTO, GET /llm-jobs/{jobId} 컨트롤러를 신규 추가한다. repository/service/controller 테스트 및 API 문서도 함께 갱신한다.

Changes

LLM Job 상태 조회 skeleton (API-015)

Layer / File(s) Summary
LlmJob 엔티티 및 enum 타입 정의
src/main/java/com/daon/rewrite/llmjob/entity/LlmJob.java, src/main/java/com/daon/rewrite/llmjob/entity/LlmJobType.java, src/main/java/com/daon/rewrite/llmjob/entity/LlmJobStatus.java, src/main/java/com/daon/rewrite/llmjob/entity/LlmJobTargetType.java, src/main/java/com/daon/rewrite/llmjob/entity/LlmJobResultRefType.java
llm_jobs 테이블 매핑 필드(type/status/targetType enum, 진행도, attempt, 결과/에러 참조, 생성/완료 시각), private 생성자, pendingReview 정적 팩토리, markCompleted/markFailed 상태 전이 메서드와 4종 enum을 신규 추가한다.
LlmJobRepository 및 LlmJobService.findMyJob
src/main/java/com/daon/rewrite/llmjob/repository/LlmJobRepository.java, src/main/java/com/daon/rewrite/llmjob/service/LlmJobService.java
JpaRepository 상속 리포지토리를 추가하고, findMyJob에서 job 조회 → COVER_LETTER targetType 검증 → 현재 사용자 소유 CoverLetter 존재/삭제 상태 검증 순으로 NOT_FOUND를 발생시키는 읽기 전용 트랜잭션 로직을 구현한다.
LlmJobResponse DTO 및 GET /llm-jobs/{jobId} 컨트롤러
src/main/java/com/daon/rewrite/llmjob/dto/LlmJobResponse.java, src/main/java/com/daon/rewrite/llmjob/controller/LlmJobController.java
ProgressResponse, ResultRefResponse, ErrorResponse 중첩 record와 Asia/Seoul 타임존 기반 시간 변환, null 처리를 포함한 from() 변환 로직을 추가하고, 컨트롤러에서 findMyJob 결과를 LlmJobResponse.from()으로 변환해 반환한다.
repository/service/controller 테스트
src/test/java/com/daon/rewrite/llmjob/repository/LlmJobRepositoryTest.java, src/test/java/com/daon/rewrite/llmjob/service/LlmJobServiceTest.java, src/test/java/com/daon/rewrite/llmjob/controller/LlmJobControllerTest.java
JPA 라운드트립(pending/completed/failed 영속화), findMyJob 소유권·삭제 상태 NOT_FOUND 시나리오, MockMvc PENDING/COMPLETED/FAILED/NOT_FOUND 응답 필드를 각각 검증한다.
API 문서 및 상태 추적 갱신
docs/api/README.md, docs/api/llm-jobs.md, docs/status.md
API-015 상태를 Implemented로 갱신하고, partialResult가 skeleton 범위에서 null임을 명시하며 스트림 API 미구현 안내를 추가한다. REQ-005In Progress로 전환하고 다음 이슈 후보를 API-014 중심으로 재정리한다.

Suggested labels

✨ Feature

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항(LLM Job 상태 조회 skeleton 구현)을 명확하게 설명하고 있습니다.
Description check ✅ Passed PR 설명이 작업 내용, 관련 이슈, 문서 반영, 확인 결과를 포함하여 템플릿 요구사항을 충족합니다.
Linked Issues check ✅ Passed 코드 변경사항이 #38의 모든 포함 요구사항(entity/repository, controller/service/DTO, 권한 검증, 테스트, 문서 갱신)을 충족합니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 #38에 정의된 작업 범위 내에 있으며, 제외 항목(API-014, API-016, LLM provider 호출 등)은 포함되지 않았습니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@yong203 yong203 marked this pull request as ready for review June 19, 2026 16:53
@codecov

codecov Bot commented Jun 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.38554% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...com/daon/rewrite/llmjob/service/LlmJobService.java 77.77% 1 Missing and 1 partial ⚠️
...va/com/daon/rewrite/llmjob/dto/LlmJobResponse.java 96.15% 0 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@yong203 yong203 merged commit cc589e6 into dev Jun 19, 2026
3 of 4 checks passed
@yong203 yong203 self-assigned this Jun 19, 2026
@yong203 yong203 added the ✨ Feature 새로운 기능 구현 label Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 새로운 기능 구현

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

1 participant