Skip to content

세차용품 안전정보 제공 및 검증 된 세차 관련 정보를 보여주는 플랫폼

License

Notifications You must be signed in to change notification settings

seoye0ng/WashFit

 
 

Repository files navigation

header

🚗 안전한 세차용품 정보 제공 플랫폼

🔗 프로젝트 링크


📖 개요

Washfit는 차를 깨끗하게 만드는 "세차 용품"에 대한 기본 정보와 유해성 유무를 쉽게 찾아볼 수 있는 웹 서비스입니다.


🔥 주요 기능 소개

세차장 지도 페이지

  • 카카오 오픈 api을 이용하여 사용자 주변 세차장 위치와 세차장 정보를 볼 수 있습니다.
  • 내 위치로 이동 버튼을 통해 접속 위치로 이동할 수 있습니다.

즐겨찾기 페이지

  • 사용자가 찜한 세차 용품들을 볼 수 있습니다.
  • 조회순 / 특이사항 / 최신순 / 추천순으로 세차용품들을 필터링 할 수 있습니다.

홈페이지

  • 공지사항을 슬라이드로 연속해서 볼 수 있습니다.
  • 마이페이지에서 등록한 정보를 토대로 회원들이 많이 찜한 세차 용품을 추천 받을 수 있습니다
  • 조회순 / 특이사항 / 최신순 / 추천순에 따라 세차 용품을 볼 수 있습니다.

채널 페이지

  • 10만명 이상의 구독자를 보유한 유명 유튜버 5명을 추려 최신 세차 관련 영상을 추천 받을 수 있습니다.

검색 페이지

  • 2000개 이상의 세차 용품을 조회순 / 특이사항 / 최신순 / 추천순으로 검색할 수 있습니다.

세차 용품 상세 페이지

  • 세차 용품의 이미지와 제품명, 브랜드, 업체명, 제품용도, 응급처치 등 다양한 정보를 제공받을 수 있습니다.
  • 사용자들의 직접적인 경험을 리뷰를 통해 확인할 수 있습니다.
  • 찜 버튼을 이용해 나만의 세차 용품을 즐겨찾기 페이지에 담을 수 있습니다.
  • 카카오 공유하기 기능을 이용해 타인과 세차용품을 공유할 수 있습니다.

인증

  • 아이디 / 비밀번호 / 이메일 / 성별 / 연령층을 토대로 회원가입 할 수 있습니다.
  • 회원가입된 회원 정보를 이용하여 로그인 할 수 있습니다.
  • 카카오 계정을 이용하여 로그인 할 수 있습니다.
  • 아이디를 잊어버렸다면 가입된 이메일을 통해 아이디를 찾을 수 있습니다.
  • 비밀번호를 잊어버렸다면 가입된 아이디를 통해 비밀번호를 찾을 수 있습니다.
  • 15분마다 토큰 인증을 통해 로그인 자동 연장이 가능하고, 인증 오류 시에는 로그인 페이지로 돌아갑니다.

마이페이지

  • 내 프로필을 수정할 수 있습니다.
  • 5단계의 차량 정보와 3단계의 세차 용품의 정보를 입력하여 회원들이 많이 사용하는 세차 용품을 추천 받을 수 있습니다.
  • 문의하기를 이용하여 사용자가 불편했던 점이나 개선하고싶은 사항을 전달 받을 수 있습니다.
  • 비밀번호 변경을 할 수 있습니다.

🕹️ 기술적 성취

  • 백엔드팀과 디자이너 간의 비동기적 소통 및 협업 경험
  • CI/CD 배포, 빌드, 테스트 자동화 파이프 라인 구축
  • storybook을 이용한 시각적 회귀 테스트 및 vitest, msw를 이용한 테스트 코드 작성
  • 프로젝트 설정부터 실제 운영까지의 경험
  • 로컬 / 개발 / 운영 서버를 분리하여 작업한 경험

🎯 팀 소개

임병욱 백서영 조기범

@bottlewook

@seoye0ng

@eun-hak

⚒️ 기술 스택

프로그래밍 언어
TypeScript

프레임워크
NextJS

스타일
Sass

전역 상태 관리
ReduxToolkit

테스팅
Vitest Storybook MockServiceWorker Testing Library Postman

협업 툴
GitHub Notion Slack Figma

버전 관리
Git

API
Axios

라이브러리
TanstackQuery React Hook Form Swiper

배포
AMAZON EC2 DOCKER Vercel Chromatic

그 외
Eslint Style_Lint


👍 성능 최적화

  • 초기 랜더링 속도 향상을 위해 SSR 환경 도입 및 prefetch를 통한 유저 경험 최적화
  • 사용자의 차량 정보와 자주 사용하는 세차 용품을 등록하기 위해 퍼널구조를 통한 유저 경험 최적화
  • 유저 경험 최적화를 위한 무한 스크롤 구현
  • 리플로우와 리페인트 과정을 생략하기 위해 transform 속성 사용
  • throttling을 이용한 무분별한 스크롤 이벤트 방지
  • 웹 폰트 다운로드 시간을 줄이기 위해 woff2 확장자 추가와 subset 사용 및 3초 이상 폰트가 다운로드 되지 못한 경우, 기존 폰트를 사용하도록 fallback 설정
  • 필요한 시점에 이미지를 불러오도록 lazy loading을 적용 및 layout shift를 방지하기 위한 Next.js image 태그 적용
  • 렌더링 시 불필요한 연산을 줄이기 위해 useCallback, useMemo, React.memo 사용
  • dynamic import를 사용하여 빌드 타임이 아닌 런타임에서 컴포넌트를 랜더링 하도록 코드 스플리팅 적용
  • react-hook-form을 사용하여 불필요한 리랜더링 방지 및 마운팅 속도 증가
  • 불필요한 api 요청을 방지하기 위해 tanstack-query를 활용한 데이터 캐싱

✈️ 작업 내용

  • 초기 환경 설정

    • 린트 및 스타일 린트 설정
    • tanstack-query 보일러 플레이트 제작
    • redux-toolkit 보일러 플레이트 제작
    • storybook 보일러 플레이트 제작
    • vitest 보일러 플레이트 제작
    • msw 보일러 플레이트 제작
    • pretandard 폰트 설정
    • 컬러 팔레트 제작
  • 테스트

    • 25개 이상의 공통 컴포넌트 제작과 storybook을 이용한 데이터 시각적 회귀 테스트 및 chromatic 배포
    • vitest를 이용한 회원가입 페이지 유효성 검사 로직 안정성 향상 및 코드 품질 개선
    • 백엔드의 api 제작 기간이 길어짐에 따라 개발 의존성을 배제할 수 있도록 msw를 이용한 mocking 작업
  • 배포 환경

    • CI/CD 배포,빌드 ,테스트 자동화 파이프 라인 구축
    • vercel과 vultr을 이용한 개발 서버 배포
    • docker와 amazon ec2를 이용한 운영 서버 배포

✍️CONVENTION✍️

태그 설명
feat: 새로운 기능 추가 및 개선
style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
design: CSS 등 사용자 UI 디자인 변경
fix: 기존 기능 수정 (주로 안 좋았던 것에서 좋은 것으로)
bug: 버그 수정
refactor: 결과의 변경 없이 코드의 구조를 재조정한 경우
test: 테스트 코드 추가
docs: 코드가 아닌 문서를 수정한 경우
remove: 파일을 삭제하는 작업만 수행
rename: 파일 또는 폴더명을 수정하거나 위치(경로)를 변경
asset: 이미지 등 assets 파일 추가
chore: 그 외 기타 수정

About

세차용품 안전정보 제공 및 검증 된 세차 관련 정보를 보여주는 플랫폼

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 86.8%
  • SCSS 6.4%
  • MDX 3.1%
  • JavaScript 2.1%
  • CSS 1.2%
  • Dockerfile 0.4%