RYUNGFOLIO
ZWITTER
실시간 소통이 가능한 소셜 네트워크 서비스 [제트위터]
프로젝트 정보
- 기한
- 2023/11/29 - 2024/01/31
- 규모 / 인원
- 개인 프로젝트
- 역할
- Front-End
- 사용 기술
- React.js
- Vite.js
- TypeScript
- Recoil
- tanstack query
- Firebase
- styled-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을 활용하여 어느 페이지에서나 라이트 / 다크 테마를 전환할 수 있도록 제어