TaskyTasky는 일상의 업무를 효율적으로 계획할 수 있는 플랫폼입니다. 날짜와 시간에 따라 할 일을 간편하게 정리하고 일정을 효과적으로 관리할 수 있습니다. 칼럼을 이용해 할 일을 구분하고 카테고리로 정리할 수 있으며, 마감일, 태그, 사진 등을 이용해 다양하게 할 일을 기록할 수 있습니다.
담당한 기능
공통 컴포넌트 개발, 로그인/회원가입 페이지 구현, proxy 기능 이용하여 API 연결 함수 제공, 사이드 메뉴 무한스크롤
페이지 전환 없이 대량의 데이터를 동적으로 로드해야 하는 요구사항과 촉박한 구현 시간 문제를 해결하기 위해 라이브러리를 활용하여 무한 스크롤을 구현했습니다.
React Infinite Scroller
라이브러리를 활용하여 무한 스크롤 기능을 빠르고 효율적으로 구현매일 데일리 스크럼을 진행하여 팀원 간 작업 상황을 공유하고 실시간 피드백을 제공했습니다.
Keep
, Problem
, Try
) 회고를 실시하여 지속적인 개선을 도모기존 Context API
방식에서 발생하던 상태 변경 시 불필요한 전체 컴포넌트 리렌더링 문제로 인한 성능 저하를 해결했습니다.
Zustand
를 도입하여 전역 상태를 관리prop drilling
을 제거하여 컴포넌트 간 데이터 흐름을 최적화하고 유지보수성을 크게 개선비효율적인 API 통신 및 데이터 로딩 문제를 React Query를 통해 성능을 향상시켰습니다..
React Query
를 도입하여 API 요청 캐싱, 데이터 패칭, 상태 동기화 프로세스를 효율적으로 관리로그인/회원가입 페이지의 중복되는 에러 메시지 관리 문제를 해결했습니다.
Input
에러 처리 규칙을 상수화하여 재사용성을 높이고, 공통 컴포넌트 (입력 필드, 버튼, 모달, 알림 등)를 설계모바일, 태블릿, 데스크탑 등 다양한 디바이스에서 일관되고 최적화된 사용자 경험을 제공하기 위해 반응형 디자인을 적용했습니다.
📌 문제 배경
원래 팀원 중 한 분이 무한 스크롤을 커스텀 훅으로 구현하기로 했지만, 발표 전날까지 완료하지 못해 각자가 맡은 페이지에서 직접 무한 스크롤을 구현해야 하는 상황이 되었습니다. 그러나 무한 스크롤을 처음 시도하는 상황에서 시간도 촉박해 빠르게 적용할 방법이 필요했습니다.
🔍 원인 분석
Intersection Observer API
또는 scroll
이벤트 활용 및 디바운싱, 최적화 작업 필요🛠 해결 과정
InfiniteScroll
컴포넌트를 통해 간단하게 무한 스크롤 적용 가능react-infinite-scroller
는 내부적으로 Intersection Observer
를 사용하여 성능 최적화 제공InfiniteScroll
컴포넌트를 각 페이지에 적용하고, loadMore
, hasMore
, loader
등의 props를 통해 데이터 로드 제어✅ 결과
react-infinite-scroller
라이브러리를 성공적으로 활용했습니다.🧠 배운 점
시간 제약이 있는 상황에서는 적절한 라이브러리를 선택해 빠르게 해결하는 것이 중요하다는 점을 배웠습니다. 처음 접하는 기능도 적절한 도구를 활용하면 효율적으로 구현할 수 있으며, 불필요한 작업을 줄여 개발 속도를 높일 수 있었습니다. 팀원 간 작업 분배와 일정 관리의 중요성을 다시 한 번 실감했으며, 일정이 지연될 경우 대체할 수 있는 대안을 빠르게 마련하는 것이 필요하다는 점을 배웠습니다.