Skip to content

TSK-018-00 Epic: Profile avatar front consumption #571

Description

@ClarusIubar

Task ID: TSK-018-00
Task type: Parent roadmap / Core
Scope-ID: profile-avatar-front-consumption
Status: active
Parent Issue: self
Child Issue: TBD
Branch: not applicable

Goal

Backend/Admin의 profile avatar provider-side contract가 배포됐으므로 Web Front가 POST /api/me/avatar, DELETE /api/me/avatar, authorProfileImage를 안전하게 소비한다.

마이페이지에는 큰 빈 프로필 사진 슬롯을 만들지 않는다. 작은 avatar와 실제 요약 데이터 중심으로 계정 헤더를 구성한다.

Core Classification

Core: TSK-018-00
Parent Issue: self
Rationale: 이 작업은 Web Front service가 소유하는 consumer-side API client, DTO, client image preprocessing, My Page/profile/feed/comment avatar rendering을 다룬다.
Misroute blocked: Backend/API implementation, Supabase Storage direct call, DB schema/migration, OAuth success path 변경, provider contract 임의 변경.

Scope

  • POST /api/me/avatar, DELETE /api/me/avatar consumer client
  • 프로필 이미지 업로드 전 256x256, 80KB 이하, WebP 우선/JPEG fallback 전처리
  • Review/CommentauthorProfileImage?: string | null additive DTO 소비
  • updateProfile이 nickname 전용으로 남도록 타입/테스트 고정
  • 마이페이지 작은 avatar + 실제 summary header
  • feed/comment/my-feed author avatar 렌더링
  • 관련 테스트와 traceability

Out Of Scope

  • Backend/API route 구현
  • Supabase Storage 직접 호출
  • DB schema/migration
  • OAuth/Kakao/Naver 성공 경로 변경
  • 큰 프로필 사진 hero 영역 추가
  • 제품 copy 스타일 개선

Child Issues

Backend Contract Source

  • Backend/Admin source of truth: ClarusIubar/JamIssue_admin TSK-007 profile avatar contract
  • POST /api/me/avatar: multipart form-data field file
  • DELETE /api/me/avatar: active avatar delete
  • success response: auth.user.profileImage reflects new image state
  • PATCH /api/auth/profile: nickname only. avatarUrl/avatar_url must not be sent.
  • review/feed/comment author image field: authorProfileImage: string | null

Current Evidence

  • Implementation PR: Consume profile avatar contract in Web Front #577
  • Merge SHA: 2d081e6f1eab628132710115831a6801ddf6cbc5
  • Remote checks: frontend, deploy-pages, CodeQL analyze jobs passed.
  • Local validation: check:numeric-literals, lint, typecheck, test:unit, test:integration, test:regression, test:e2e, build, git diff --check, UTF-8 integrity passed.

Completion Rule

Close this parent only after all child issues record PR URL, merge SHA, CI URL, validation output, and deployed/readback evidence where applicable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:frontendReact UI, hooks, coordinator, and client service workpriority:highHigh priority worktopic:architectureResponsibility boundaries, dependency flow, and module shapetype:featureFeature or additive behavior work

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions