Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[김태영] sprint10 #179

Open
wants to merge 7 commits into
base: next-김태영
Choose a base branch
from

Conversation

csbizz
Copy link
Collaborator

@csbizz csbizz commented Nov 13, 2024

요구사항

기본 요구사항

공통

  • Github에 위클리 미션 PR을 만들어 주세요.

  • React.js 혹은 Next.js를 사용해 진행합니다.

  • RESTful를 설계하고 백엔드 코드를 변경하세요.

  • (풀스택) 설계한 백엔드 코드에 맞게 프론트엔드 코드를 변경해 주세요.
    https://panda-market-api.vercel.app의 API를 사용한 코드를 본인의 백엔드 API 코드로 변경하세요.

  • (백엔드) 프론트엔드 코드에 맞게 백엔드 코드를 변경해 주세요.

  • 백엔드 코드에 swagger를 추가해 API 명세 문서를 생성해 주세요.

프론트엔드 구현 요구사항

중고마켓 페이지

  • 디폴트 이미지로 처리한 이미지를 실제 Product Get API에서 가져온 이미지로 변경해 주세요.
  • 좋아요 순 정렬 기능을 붙여주세요.
  • 베스트 상품 기능을 추가해 주세요. 베스트 상품은 가장 많이 좋아요를 받은 순으로 PC 기준 최대 4개까지 조회 가능합니다.

상품 등록하기 페이지

  • 상품 이미지 등록 기능을 구현합니다. 파일을 선택해 이미지를 업로드하고, preview를 볼 수 있도록 구현합니다. 이미지는 최대 3개까지만 등록 가능하도록 구현해 주세요.
  • 동일하게 상품 이미지 수정 기능도 추가합니다.
  • 상품 등록 성공 시 중고마켓 페이지로 이동해 주세요.

심화 요구사항

상태코드 (웹 API 관련)

  • 프론트엔드에서는 서버 응답의 상태코드에 따라 적절한 사용자 피드백을 제공합니다.

인증

  • 토큰 기반 방식을 사용할 경우, 만료된 액세스 토큰을 새로 발급하는 리프레시 토큰 발급 기능을 구현합니다.(jwt sliding session 적용)

OAuth를 활용한 인증

  • 구글 OAuth를 사용하여 회원가입 및 로그인 기능을 구현합니다.

###프로젝트 구조 변경

  • 프로젝트의 구조와 복잡성을 관리하기 위해 MVC 패턴이나 Layered Architecture와 같은 설계 방식을 적용해 보세요.

(생략 가능) 자유게시판 게시물 등록

  • 프론트엔드를 Next.js로 Migration 했을 경우에만 진행해 주세요.

  • 게시물 등록 시 이미지 등록 기능을 구현합니다. 파일을 선택해 이미지를 업로드하고, preview를 볼 수 있도록 구현합니다. 이미지는 최대 3개까지만 등록 가능하도록 구현해 주세요.

  • 게시물 등록 시 필요한 필드(제목, 내용 등)의 유효성 검증하는 미들웨어를 구현합니다.

  • multer 미들웨어를 사용하여 이미지 업로드 API를 구현해 주세요.

  • 업로드된 이미지는 서버에 저장하고, 해당 이미지의 경로를 response 객체에 포함해 반환합니다.

주요 변경사항

  • 미션10 시작

스크린샷

멘토에게

@csbizz csbizz requested a review from MCprotein November 13, 2024 02:32
@csbizz csbizz self-assigned this Nov 13, 2024
@csbizz csbizz added 매운맛 🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 진행중 아직 스프린트 미션 제출일이 아닙니다. 새로 커밋된 내용에 대해 코드리뷰 해주세요! labels Nov 13, 2024
Comment on lines +146 to +148
if (!value.trim()) return setTagObj(old => ({ ...old, errMsg: '빈 문자만 입력할 수 없습니다.' }));
if (tags.length >= 5) return setTagObj(old => ({ ...old, errMsg: '태그는 5개까지 입력 가능합니다.' }));
if (tags.includes(value)) return setTagObj(old => ({ ...old, errMsg: '같은 태그가 존재합니다' }));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@csbizz 여기 중복코드가 세개있는데, 조건에따라 errMsg만 다르게 하고 setTagObj는 조건문밖에서 하는게 더 깔끔할거같아요

Copy link
Collaborator

@MCprotein MCprotein left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@csbizz 태영님 고생하셨습니다!

@MCprotein
Copy link
Collaborator

@csbizz 앗 merge가 안되는데 충돌만한번 해결해주세요!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛 🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 진행중 아직 스프린트 미션 제출일이 아닙니다. 새로 커밋된 내용에 대해 코드리뷰 해주세요!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants