daoxin
배경
선협 소설의 '도심(道心)' 설정을 모티브로 하여, 매일 같은 루틴을 반복하며 스스로를 단련하는 과정에 몰입할 수 있도록 설계된 플래너입니다. 단순한 기록 도구를 넘어 사용자가 자신의 수행(습관)을 지속할 수 있는 환경을 구축하는 데 중점을 두었으며, 데이터 보안과 접근성을 최우선으로 고려했습니다.
해결한 문제
- 상태 관리 최적화:
Jotai를 사용하여 습관 데이터를 아토믹(Atomic)하게 관리함으로써, 데이터 변경 시 발생하는 리렌더링을 최소화하고 상태 업데이트 로직을 간결하게 유지했습니다. - 데이터 보안 강화: 사용자의 기록을
LocalStorage에 저장할 때 암호화 로직을 거치도록 설계하여, 브라우저 로컬 환경에서도 개인 데이터를 안전하게 보호할 수 있도록 구현했습니다. - 네이티브 앱 경험 제공 (PWA): 서비스 워커와 매니페스트 설정을 통해
PWA를 적용했습니다. 이를 통해 모바일 환경에서 홈 화면에 추가하여 앱처럼 접근할 수 있게 했으며, 네트워크 연결이 불안정한 상황에서도 중단 없는 사용 경험을 제공합니다.
기술적 선택 근거
- React & Vite: 고성능 빌드 도구인 Vite를 사용하여 개발 생산성을 높이고, 컴포넌트 기반 아키텍처를 통해 유지보수가 용이한 UI를 구축했습니다.
- Jotai: 리액트의 상태 관리 철학을 유지하면서도 전역 상태를 작고 유연하게 분산 관리하기 위해 채택했습니다.
- PWA (Progressive Web App): 웹과 앱의 장점을 결합하여 설치 가능성(Installable)과 오프라인 접근성을 확보함으로써 습관 형성의 연속성을 보장하고자 했습니다.
- Data Encryption: 별도의 백엔드 서버 없이도 클라이언트 측에서 최소한의 보안성을 확보하기 위해 암호화 후 스토리지에 저장하는 방식을 선택했습니다.