Skip to content

[Feat] 프로필 및 온보딩 API 구현 #29

Description

@yeonjuncho

Issue : ✅ Feature

사용자의 프로필을 조회·수정하고, 온보딩 입력 내용을 임시저장한 뒤 완료할 수 있는 API를 구현합니다.

온보딩을 시작하지 않은 사용자는 UserProfile을 생성하지 않으며, 최초 임시저장 요청 시 프로필을 생성합니다. 직무 성향 퀴즈는 선택 사항으로 건너뛸 수 있습니다.

✅ TODO

  1. UserProfile 엔티티의 careerLevel nullable 변경
  2. 온보딩 진행 단계(PROFILE, QUIZ, REVIEW) 필드 및 enum 추가
  3. 관심 직무 최대 3개 및 대표 직무 검증 구현
  4. 희망 지역 1개 저장 및 검증 구현
  5. 선호 조건, 제외 조건, 기술 스택 List 변환 로직 구현
  6. 온보딩 임시저장 API 구현
  7. 온보딩 임시저장 조회 API 구현
  8. 온보딩 완료 API 및 필수값 검증 구현
  9. 프로필 조회 API 구현
  10. 프로필 수정 API 구현
  11. 공통 성공·오류 응답 코드 추가
  12. 서비스 및 컨트롤러 테스트 작성
  13. 전체 Gradle 테스트 통과 확인

📎 ETC

  • 관련 API
    • PUT /api/profile/draft
    • GET /api/profile/draft
    • POST /api/profile/onboarding/complete
    • GET /api/profile
    • PATCH /api/profile
  • 모든 API는 Access Token 인증이 필요합니다.
  • 관심 직무는 1개 이상, 최대 3개까지 선택할 수 있습니다.
  • 대표 관심 직무는 선택한 관심 직무 목록에 포함되어야 합니다.
  • 희망 지역은 온보딩 완료 시 정확히 1개가 필요합니다.
  • 경력 단계는 임시저장 중에는 nullable이며 온보딩 완료 시 필수입니다.
  • 퀴즈는 선택 사항이며 완료 또는 건너뛰기 후 REVIEW 단계로 이동합니다.
  • 퀴즈 완료 여부는 기존 jobTestCompleted 필드로 구분합니다.
  • 온보딩을 시작하지 않은 사용자의 임시저장 조회는 200 OK, data: null을 반환합니다.
  • 이력서·자소서와 직무 성향 퀴즈 API는 별도 이슈에서 구현합니다.

Metadata

Metadata

Assignees

Labels

✨ Feat새로운 기능 추가

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions