Skip to content

"결혼식 축의금 얼마내지? 돈워리가 함께 해결해 줄게요!" 축의금 고민 해결을 위한 커뮤니티 서비스

Notifications You must be signed in to change notification settings

dnd-side-project/dnd-10th-3-frontend

Repository files navigation

donworry-main

돈워리 (DonWorry)

결혼식 축의금 얼마내지? 돈워리가 함께 해결해 줄게요!

친밀도, 참석 여부, 물가 상승 등 고민할 부분이 너무 많은 축의금! 돈워리를 통해 언제 어디서나 손쉽게 축의금 고민을 나눠보세요.

목차

  1. 주요 기능
  2. 배포 링크
  3. 시연 영상
  4. 기술 스택
  5. 폴더 구조
  6. 커밋 컨벤션
  7. 팀 소개

주요 기능

1. 친밀도 테스트

다양한 상황 테스트를 통해 상대방과의 친밀도를 알아보고, 축의금 금액을 결정해 보세요.

  • 테스트 진행
    • 2개의 사전 질문과 9개의 질문으로 구성된 친밀도 확인 테스트
    • 사용자 이탈률을 낮추기 위한 퍼널 UI
  • 테스트 결과
    • 테스트 결과 비동기 통신 성공 전 로딩 기능
    • 테스트 결과 이미지 저장 및 공유 기능

2. 투표

축의금 고민부터 결혼 축하 파티와 하객룩까지, 3초만에 로그인한 다음 투표를 만들고 참여하며 하객들의 다양한 고민을 해결해 보세요.

  • 투표 등록하기
    • 카테고리, 제목, 본문 내용, 투표 항목을 입력할 수 있는 투표 작성 폼
    • 각 항목 유효성 검사 기능
  • 투표 참여하기
    • 커뮤니티에 등록된 투표의 항목을 선택해 투표 참여 및 결과 확인 가능
    • 투표 공감 기능
  • 댓글 작성하기
    • 커뮤니티에 등록된 투표에 댓글 등록 및 삭제, 공감 기능
    • optimistic update 적용

배포 링크

시연 영상

준비중입니다.

기술 스택

스크린샷 2024-03-15 오후 2 28 14

선정 이유

스택 이름 장점 단점 결론
Next.js - 리액트와 달리 프레임워크기 때문에 라우팅이나 SSR 등을 구현하고자 할 때 필요한 보일러플레이트를 줄일 수 있음 - 리액트와 다르게 Static Rendering이 기본이기 때문에 서버/클라이언트 컴포넌트에 대한 이해 필요 (러닝 커브) 이 서비스의 주 목적은 고민 해결 커뮤니티이므로 유저 유입을 위한 SEO가 중요함. Next.js는 이러한 작업이 잘 추상화되어 있는 프레임워크기 때문에 프레임워크의 장점을 누리고자 채택
Typescript - 지정한 타입이 일종의 코드 설명서 역할을 해 주기 때문에 협업, 코드 리뷰에 매우 용이
- 인텔리센스를 활용한 개발 생산성 증가
- 타입을 작성하는 데에 추가적인 시간이 필요함 타입을 통해 팀원이 작성한 코드를 쉽게 이해할 수 있고 개발 과정에서 발생할 수 있는 오류를 사전에 방지할 수 있다는 장점이 있기 때문에 채택
Storybook - 의식적으로 재사용 가능한 컴포넌트에 대해 고민할 수 있음
- 컴포넌트를 문서화함으로써 개발자 간 협업에 용이
- 배포하여 활용할 경우 디자이너와의 협업에도 용이
- 스토리를 작성하는 데에 추가적인 시간이 필요함
- 스토리북을 사용한 경험이 없다면 약간의 러닝 커브
스토리를 작성하는 데에 추가적인 시간이 들지라도, 디자이너와 함께 진행되는 프로젝트인만큼 효율적인 협업과 공통 컴포넌트 관리를 위해 도입
React-Query - 다양한 API 제공
- 데이터 동기화를 간편하게 처리할 수 있음
- 훅을 사용함으로써 비동기 로직 코드 정리에 용이
- SWR보다 번들 사이즈가 큼 서버 상태 관리 및 통일성 있는 비동기 로직 관리를 위해 팀원 간 공통된 기술 스택인 리액트 쿼리 도입
Framer-motion - 애니메이션 라이브러리 중 가장 높은 점유율
- 리액트 친화적
- 작지 않은 번들 사이즈 디자인 상에서 필요한 애니메이션을 비롯하여 ExitAnimation 적용이 가능하고, 점유율이 높은 라이브러리인 만큼 공부해 보고자 도입
React-hook-form - 폼 라이브러리 중 가장 높은 점유율
- 비제어 방식이기 때문에 성능 상 이점
- 비제어 방식이기 때문에 입력에 따른 즉각적인 유효성 검사 불가 (→watch 기능 사용 시 해결됨) 복잡한 폼 구성을 필요로 하는 기능이 있기 때문에 폼 라이브러리가 필요하다고 생각. 기획 상 즉각적인 유효성 검사를 필요로하지 않기 때문에 성능 상 이점이 있는 React-hook-form 도입
Zod - typescript 기반으로 설계되어 typescript 프로젝트와 잘 맞고, 종속성이 없음
- 스키마를 바탕으로 typescript에서 유효한 타입 사용 가능
- typescript에 친숙하지 않은 경우 러닝 커브 존재 유효성 검사 라이브러리를 사용하면 유효성 검증 관련 코드를 schema로 분리하여 코드를 깔끔하게 유지할 수 있음 + 라이브러리 중에서도 스키마를 바탕으로 타입을 추출할 수 있는 장점이 있는 zod 도입

폴더 구조

.
└── src
    ├── api
    ├── app
    ├── assets
    ├── components
    │   ├── common
    │   ├── features
    │   ├── layout
    │   └── shared
    ├── constants
    ├── contexts
    ├── hooks
    ├── lib
    ├── schema
    ├── types
    └── utils

커밋 컨벤션

type description
(feat) 새로운 기능 추가
🐛 (fix) 버그 수정
⚡️ (performance) 성능 향상 작업
♻️ (refactor) 기능 추가가 없는 코드 리팩토링
📝 (docs) 문서 수정
🚀 (deploy) 배포 관련 작업
💄 (design) 단순 css 디자인 수정 작업
(test) 테스트 관련 작업
🚧 (wip) working in progress, 임시 커밋
(add file) 파일 추가
(remove file) 파일 삭제
🛠️ (set) 프로젝트 셋팅 작업 및 라이브러리 설치/제거
🧹 (chore) 기타 작업
💬 (comment) 주석 추가 삭제 작업

팀 소개

이주영 성지현 이진호 이희건 길도현 길은진
@CodyMan0 @jhsung23 @wlshooo @dlrjs2360 @chaehaeun @ukssss
@CodyMan0 @jhsung23 @wlshooo @dlrjs2360 @e_unjin

팀장, 프론트엔드

프론트엔드

백엔드

백엔드

디자이너

디자이너

About

"결혼식 축의금 얼마내지? 돈워리가 함께 해결해 줄게요!" 축의금 고민 해결을 위한 커뮤니티 서비스

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages