Skip to content

[✨Feat] 현재 사용자 자기소개서 목록 조회 API 구현 #28

Description

@yong203

목표

현재 로그인한 사용자가 본인이 작성한 자기소개서 목록을 페이지 단위로 조회할 수 있게 한다.

DB/JPA 전환 이후 첫 CRUD 확장 slice로, API-007 GET /cover-letters를 구현해 owner filter, status filter, pagination, 정렬, soft delete 제외 정책을 실제 repository query 기준으로 검증한다.

작업 범위

  • 관련 요구사항/API:
  • 포함할 것:
    • GET /cover-letters?page=1&size=9&status=DRAFT
    • 현재 사용자 ownerId 기준 목록 조회
    • deletedAt == null인 자기소개서만 조회
    • status query parameter optional filter
    • createdAt desc 정렬
    • API의 page는 1-base, 내부 Pageable은 0-base로 변환
    • size 기본값 9, 최대 9
    • 응답 필드: items, page, size, totalItems, totalPages
    • item 필드: id, title, companyName, positionTitle, status, createdAt, latestReviewVersionId
    • controller/service/repository 테스트
    • 구현 상태에 맞춰 docs/status.md, docs/api/README.md 갱신
  • 제외할 것:
    • API-012 자기소개서 상세 조회
    • API-013 자기소개서 soft delete
    • API-009~011 등록 step 저장
    • cover_letter_questions 구현
    • LLM Job 요약 또는 첨삭 버전 상세 조회

완료 기준

  • API-007 GET /cover-letters가 문서 계약대로 동작한다.
  • 현재 사용자 소유가 아닌 자기소개서는 목록에 포함되지 않는다.
  • soft delete된 자기소개서는 목록에 포함되지 않는다.
  • status query parameter가 있으면 해당 상태만 조회된다.
  • page/size/totalItems/totalPages가 DB pagination 결과와 일치한다.
  • createdAt desc 정렬이 적용된다.
  • controller/service/repository 테스트가 추가된다.
  • ./gradlew test가 통과한다.
  • 완료 전 ./gradlew check가 통과한다.

참고

  • docs/status.md의 Next Issue Slice Candidates에서 API-007이 DB/JPA 전환 이후 첫 후보로 정리되어 있다.
  • docs/decisions/persistence.md의 후속 작업 순서도 API-007 목록 조회를 DB/JPA repository 기반 구현의 다음 단계로 둔다.
  • #27이 merge된 뒤 dev에서 새 브랜치를 생성해 진행한다.

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