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 라이브러리를 성공적으로 활용했습니다.🧠 배운 점
이 상황에서 가장 큰 교훈은 "완벽한 구현보다는 적절한 솔루션"이라는 것이었습니다. 처음에는 직접 구현해야 한다는 강박이 있었는데 발표 전날이라는 시간 제약 상황에서 react-infinite-scroller를 선택한 게 정말 현명한 판단이었습니다. Intersection Observer API나 스크롤 이벤트 처리, 디바운싱 등을 직접 구현하려면 시간도 오래 걸리고 버그 가능성도 높았을 텐데 라이브러리 하나로 깔끔하게 해결되니까 오히려 안정적이었습니다. 개발자로서 모든 걸 직접 만들고 싶은 욕심이 있었지만 이 경험을 통해 상황에 맞는 도구 선택의 중요성을 배웠고 때로는 검증된 솔루션을 활용하는 것이 더 나은 결과를 가져올 수 있다는 걸 깨달았습니다. 특히 팀 프로젝트에서는 일정 관리와 리스크 최소화가 중요하다는 점도 다시 한 번 실감했습니다.