프로젝트명: 최애의 포토
목적: 사용자들이 자신이 좋아하는 사진을 생성하고, 이를 교환, 구매, 판매할 수 있는 웹 플랫폼 제공
핵심 기능:
역할: 마켓플레이스 개발 담당
주요 기여:
마켓 플레이스 페이지(공통) · Issue #5 · MyBiasPhoto/7-MyBiasPhoto-team1-FE
[구매자]마켓플레이스 페이지 · Issue #10 · MyBiasPhoto/7-MyBiasPhoto-team1-FE
[판매자] 마켓플레이스 판매 포토카드 상세 페이지 · Issue #14 · MyBiasPhoto/7-MyBiasPhoto-team1-FE
판매자 전용 기능 API 개발:
프론트엔드 CSS 작업 및 Skeleton UI 적용
Swagger 문서를 통한 API 명세화 및 문서화
사용 기술:
주요 기능 구현:
마켓플레이스 내에서 구매자 판매자에 따른 페이지 분리 로직 구현 및 ui최적화
(로그인한 해당 이름과 판매카드리스트의 판매자의 이름이 동일한경우 판매자페이지 아닐경우는 구매자페이지로보내는 로직 )
판매자 입장에서의 판매상품의 수정 및 삭제 기능 api 구현 [ 유사 삭제를 함으로써 데이터가 남아있음 ]
(delete를 쓰지않고 patch로 deletedAt스키마를 만들어 삭제를 했을경우 현재시간이 deletedAt스키마에 남아 판매카드리스트를 불러올때 deletedAt이 존재할 경우 불러오지않는 로직 )
Skeleton UI 적용으로 로딩 시 사용자 경험 개선
Swagger를 통해 API 명세 문서화
상황 (Situation):
과제 (Task):
행동 (Action):
결과 (Result):
프론트에서 아래링크처럼 해당 area에대해 컴포넌트화 하여 프론트에서의 가독성을 높임
마켓플레이스내에서의 리렌더링될 때 useCallback을 씀으로 써 불필요하게 새 함수가 생성되는 것을 막아 의존성 배열에 따라 함수를 기억해두고, 필요할 때만 새로 만들어 성능적으로 개선함
React.memo를 씀으로써 리렌더링되더라도, props가 안 바뀌면 자식 컴포넌트를 다시 렌더링하지 않게 방지
[마켓플레이스 이슈 5번에 댓글로 성능에대한 보고서를 작성하였음]
마켓 플레이스 페이지(공통) · Issue #5 · MyBiasPhoto/7-MyBiasPhoto-team1-FE
height
는 301px로고정, width
는 100%로 설정되어 발생) → 추후 반응형 이미지 처리 방식 개선 필요