전체 프로젝트 보기

RYUNGFOLIO

ZWITTER

실시간 소통이 가능한 소셜 네트워크 서비스 [제트위터]

ZWITTER 대표 이미지

프로젝트 정보

기한
2023/11/29 - 2024/01/31
규모 / 인원
개인 프로젝트
역할
Front-End
사용 기술
  • React.jsReact.js
  • Vite.jsVite.js
  • TypeScriptTypeScript
  • RecoilRecoil
  • tanstack querytanstack query
  • FirebaseFirebase
  • styled-componentsstyled-components

기술 선정 이유

  • 정적 타입 검사를 통해 안정성 높은 코드를 작성하기 위해서 TypeScript를 채택해 사용했습니다.

주요 기능 및 개인 기여

📍 안정이 우선된 프로젝트 스케폴딩 진행
일관성 있는 코드 작성을 위한 보조 도구로 eslint, prettier를 도입 후 적용
체계적인 프로젝트 일정 관리를 위한 github issues, projects 적극 활용
📍 로그인 및 회원가입 기능 구현
Firebase Authentication 를 활용하여 이메일 로그인과 Google, GitHub 계정을 활용한 소셜 로그인을 차례로 도입
react-router-dom 을 활용하여 비로그인 유저의 홈 진입 방어
비로그인 유저, 중복 로그인, 로그인 실패 등의 에러 케이스를 조사하고 분류. 각 에러에 따라 경고 스낵바를 노출하는 커스텀 훅 구현
📍 포스팅 작성 및 조회
getDoc과 onSnapshot의 차이점을 숙지하고, onSnapshot을 활용하여 모든 사용자가 작성한 게시물들을 실시간으로 확인할 수 있도록 구현.
포스팅 CRUD 외 좋아요 표시 및 댓글 기능 구현
Firebase 일일 사용량을 초과하는 문제의 원인을 파악하고 개선
📍 사용자 프로필 및 작성 포스팅 조회
recoil-persist를 활용하여 현재 로그인한 사용자의 정보를 local storage에 저장해 관리
현재 로그인한 사용자와 일반 사용자를 구분하여 프로필 수정 및 탈퇴 기능을 조건부로 렌더링
📍 테마 모드 전환
styled-components의 theme와 Recoil의 atom을 활용하여 어느 페이지에서나 라이트 / 다크 테마를 전환할 수 있도록 제어